LCOV - code coverage report
Current view: top level - src/hfxbase - hfx_compression_core_methods.F (source / functions) Hit Total Coverage
Test: CP2K Regtests (git:b8e0b09) Lines: 51379 51404 99.9 %
Date: 2024-08-31 06:31:37 Functions: 130 131 99.2 %

          Line data    Source code
       1             : !--------------------------------------------------------------------------------------------------!
       2             : !   CP2K: A general program to perform molecular dynamics simulations                              !
       3             : !   Copyright 2000-2024 CP2K developers group <https://cp2k.org>                                   !
       4             : !                                                                                                  !
       5             : !   SPDX-License-Identifier: GPL-2.0-or-later                                                      !
       6             : !--------------------------------------------------------------------------------------------------!
       7             : 
       8             : ! **************************************************************************************************
       9             : !> \brief Contains routines for data compression. PLEASE DO NOT MODIFY.
      10             : !> \par History
      11             : !>      04.2008 created [Manuel Guidon]
      12             : !> \author Manuel Guidon
      13             : ! **************************************************************************************************
      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     1364230 :    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     1364230 :       idata = 0
      96             : 
      97             :       ! number of data bits in the pack_tmp that should still be read
      98     1364230 :       ibits_remaining = 64
      99     1364230 :       ipack = 1
     100     1364230 :       pack_tmp = packed_data(ipack)
     101             : 
     102             :       ! give the compiler a hint that Nbits is strictly positive
     103     1364230 :       IF (Nbits < 1) CPABORT("This is a bug")
     104             :       ! we also limit the making number of bits
     105     1364230 :       IF (Nbits >= 64) CPABORT("This is a bug")
     106             : 
     107             :       DO
     108             :          ! we've unpacked all data
     109    45019590 :          IF (idata == Ndata) EXIT
     110    43655360 :          idata = idata + 1
     111    45019590 :          IF (ibits_remaining >= Nbits) THEN
     112    22604127 :             data_tmp = IAND(pack_tmp, mask_right(Nbits)) ! get the last Nbits
     113    22604127 :             full_data(idata) = data_tmp
     114    22604127 :             pack_tmp = ISHFT(pack_tmp, -Nbits) ! and shift right to get the bits in place for the next
     115    22604127 :             ibits_remaining = ibits_remaining - Nbits
     116             :          ELSE
     117    21051233 :             i_odd_bits = Nbits - ibits_remaining
     118    21051233 :             data_tmp = ISHFT(pack_tmp, i_odd_bits) ! use all remaining bits, shifted left to make place for the missing bits
     119    21051233 :             ipack = ipack + 1
     120    21051233 :             pack_tmp = packed_data(ipack) ! get new storage
     121    21051233 :             ibits_remaining = 64
     122    21051233 :             full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(i_odd_bits))) ! and use the missing bits to assemble the data
     123    21051233 :             pack_tmp = ISHFT(pack_tmp, -i_odd_bits) ! shift right to get the bits in place for the next
     124    21051233 :             ibits_remaining = 64 - i_odd_bits
     125             :          END IF
     126             :       END DO
     127             : 
     128     1364230 :    END SUBROUTINE bits2ints_generic
     129             : 
     130             : ! **************************************************************************************************
     131             : !> \brief ...
     132             : !> \param Nbits ...
     133             : !> \param Ndata ...
     134             : !> \param packed_data ...
     135             : !> \param full_data ...
     136             : ! **************************************************************************************************
     137      199962 :    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      199962 :       idata = 0
     146      199962 :       ipack = 0
     147      199962 :       pack_tmp = 0
     148             : 
     149             :       ! number of data bits in the pack_tmp that should still be written
     150      199962 :       ibits_remaining = 64
     151             : 
     152             :       ! give the compiler a hint that Nbits is strictly positive
     153      199962 :       IF (Nbits < 1) CPABORT("This is a bug")
     154             :       ! we also limit the making number of bits
     155      199962 :       IF (Nbits >= 64) CPABORT("This is a bug")
     156             : 
     157             :       DO
     158             :          ! we've packed all data
     159     6598746 :          IF (idata == Ndata) EXIT
     160     6398784 :          idata = idata + 1
     161     6598746 :          IF (ibits_remaining >= Nbits) THEN
     162     3334001 :             data_tmp = full_data(idata)
     163     3334001 :             data_tmp = ISHFT(data_tmp, 64 - Nbits) ! put bits on the left
     164     3334001 :             pack_tmp = IOR(pack_tmp, data_tmp) ! add to the packed data
     165     3334001 :             ibits_remaining = ibits_remaining - Nbits
     166     3334001 :             pack_tmp = ISHFT(pack_tmp, -MIN(Nbits, ibits_remaining)) ! and shift to the right to make place for the next
     167             :          ELSE
     168     3064783 :             i_odd_bits = ibits_remaining
     169     3064783 :             data_tmp = full_data(idata)
     170     3064783 :             data_tmp = ISHFT(data_tmp, 64 - Nbits) ! put bits on the left
     171     3064783 :             data_tmp = IAND(data_tmp, mask_left(i_odd_bits)) ! restrict to those bits for which we still have space
     172     3064783 :             pack_tmp = IOR(pack_tmp, data_tmp) ! add them to the packed bits
     173     3064783 :             ipack = ipack + 1
     174     3064783 :             packed_data(ipack) = pack_tmp ! store the full packed data away and start with a new one
     175     3064783 :             data_tmp = full_data(idata)
     176     3064783 :             pack_tmp = ISHFT(data_tmp, 64 - Nbits + i_odd_bits) ! put the missing bits on the left if pack_tmp
     177     3064783 :             ibits_remaining = 64 - Nbits + i_odd_bits
     178     3064783 :             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      199962 :       pack_tmp = ISHFT(pack_tmp, -MAX(0, ibits_remaining - Nbits))
     184      199962 :       ipack = ipack + 1
     185      199962 :       packed_data(ipack) = pack_tmp
     186             : 
     187      199962 :    END SUBROUTINE ints2bits_generic
     188             : 
     189             : ! **************************************************************************************************
     190             : !> \brief ...
     191             : !> \param Ndata ...
     192             : !> \param packed_data ...
     193             : !> \param full_data ...
     194             : ! **************************************************************************************************
     195       23004 :    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       23004 :       idata = 0
     206       23004 :       ipack = 0
     207       23004 :       Ndata_rep = (Ndata/64)*64
     208       23004 :       DO kdata = 1, Ndata_rep, 64
     209      368064 :          pack_tmp = 0
     210      368064 :          idata = idata + 1
     211      368064 :          data_tmp = full_data(idata)
     212      368064 :          data_tmp = ISHFT(data_tmp, 63)
     213      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     214      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     215      368064 :          idata = idata + 1
     216      368064 :          data_tmp = full_data(idata)
     217      368064 :          data_tmp = ISHFT(data_tmp, 63)
     218      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     219      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     220      368064 :          idata = idata + 1
     221      368064 :          data_tmp = full_data(idata)
     222      368064 :          data_tmp = ISHFT(data_tmp, 63)
     223      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     224      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     225      368064 :          idata = idata + 1
     226      368064 :          data_tmp = full_data(idata)
     227      368064 :          data_tmp = ISHFT(data_tmp, 63)
     228      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     229      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     230      368064 :          idata = idata + 1
     231      368064 :          data_tmp = full_data(idata)
     232      368064 :          data_tmp = ISHFT(data_tmp, 63)
     233      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     234      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     235      368064 :          idata = idata + 1
     236      368064 :          data_tmp = full_data(idata)
     237      368064 :          data_tmp = ISHFT(data_tmp, 63)
     238      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     239      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     240      368064 :          idata = idata + 1
     241      368064 :          data_tmp = full_data(idata)
     242      368064 :          data_tmp = ISHFT(data_tmp, 63)
     243      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     244      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     245      368064 :          idata = idata + 1
     246      368064 :          data_tmp = full_data(idata)
     247      368064 :          data_tmp = ISHFT(data_tmp, 63)
     248      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     249      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     250      368064 :          idata = idata + 1
     251      368064 :          data_tmp = full_data(idata)
     252      368064 :          data_tmp = ISHFT(data_tmp, 63)
     253      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     254      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     255      368064 :          idata = idata + 1
     256      368064 :          data_tmp = full_data(idata)
     257      368064 :          data_tmp = ISHFT(data_tmp, 63)
     258      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     259      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     260      368064 :          idata = idata + 1
     261      368064 :          data_tmp = full_data(idata)
     262      368064 :          data_tmp = ISHFT(data_tmp, 63)
     263      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     264      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     265      368064 :          idata = idata + 1
     266      368064 :          data_tmp = full_data(idata)
     267      368064 :          data_tmp = ISHFT(data_tmp, 63)
     268      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     269      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     270      368064 :          idata = idata + 1
     271      368064 :          data_tmp = full_data(idata)
     272      368064 :          data_tmp = ISHFT(data_tmp, 63)
     273      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     274      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     275      368064 :          idata = idata + 1
     276      368064 :          data_tmp = full_data(idata)
     277      368064 :          data_tmp = ISHFT(data_tmp, 63)
     278      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     279      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     280      368064 :          idata = idata + 1
     281      368064 :          data_tmp = full_data(idata)
     282      368064 :          data_tmp = ISHFT(data_tmp, 63)
     283      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     284      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     285      368064 :          idata = idata + 1
     286      368064 :          data_tmp = full_data(idata)
     287      368064 :          data_tmp = ISHFT(data_tmp, 63)
     288      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     289      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     290      368064 :          idata = idata + 1
     291      368064 :          data_tmp = full_data(idata)
     292      368064 :          data_tmp = ISHFT(data_tmp, 63)
     293      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     294      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     295      368064 :          idata = idata + 1
     296      368064 :          data_tmp = full_data(idata)
     297      368064 :          data_tmp = ISHFT(data_tmp, 63)
     298      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     299      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     300      368064 :          idata = idata + 1
     301      368064 :          data_tmp = full_data(idata)
     302      368064 :          data_tmp = ISHFT(data_tmp, 63)
     303      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     304      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     305      368064 :          idata = idata + 1
     306      368064 :          data_tmp = full_data(idata)
     307      368064 :          data_tmp = ISHFT(data_tmp, 63)
     308      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     309      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     310      368064 :          idata = idata + 1
     311      368064 :          data_tmp = full_data(idata)
     312      368064 :          data_tmp = ISHFT(data_tmp, 63)
     313      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     314      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     315      368064 :          idata = idata + 1
     316      368064 :          data_tmp = full_data(idata)
     317      368064 :          data_tmp = ISHFT(data_tmp, 63)
     318      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     319      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     320      368064 :          idata = idata + 1
     321      368064 :          data_tmp = full_data(idata)
     322      368064 :          data_tmp = ISHFT(data_tmp, 63)
     323      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     324      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     325      368064 :          idata = idata + 1
     326      368064 :          data_tmp = full_data(idata)
     327      368064 :          data_tmp = ISHFT(data_tmp, 63)
     328      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     329      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     330      368064 :          idata = idata + 1
     331      368064 :          data_tmp = full_data(idata)
     332      368064 :          data_tmp = ISHFT(data_tmp, 63)
     333      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     334      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     335      368064 :          idata = idata + 1
     336      368064 :          data_tmp = full_data(idata)
     337      368064 :          data_tmp = ISHFT(data_tmp, 63)
     338      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     339      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     340      368064 :          idata = idata + 1
     341      368064 :          data_tmp = full_data(idata)
     342      368064 :          data_tmp = ISHFT(data_tmp, 63)
     343      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     344      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     345      368064 :          idata = idata + 1
     346      368064 :          data_tmp = full_data(idata)
     347      368064 :          data_tmp = ISHFT(data_tmp, 63)
     348      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     349      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     350      368064 :          idata = idata + 1
     351      368064 :          data_tmp = full_data(idata)
     352      368064 :          data_tmp = ISHFT(data_tmp, 63)
     353      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     354      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     355      368064 :          idata = idata + 1
     356      368064 :          data_tmp = full_data(idata)
     357      368064 :          data_tmp = ISHFT(data_tmp, 63)
     358      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     359      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     360      368064 :          idata = idata + 1
     361      368064 :          data_tmp = full_data(idata)
     362      368064 :          data_tmp = ISHFT(data_tmp, 63)
     363      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     364      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     365      368064 :          idata = idata + 1
     366      368064 :          data_tmp = full_data(idata)
     367      368064 :          data_tmp = ISHFT(data_tmp, 63)
     368      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     369      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     370      368064 :          idata = idata + 1
     371      368064 :          data_tmp = full_data(idata)
     372      368064 :          data_tmp = ISHFT(data_tmp, 63)
     373      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     374      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     375      368064 :          idata = idata + 1
     376      368064 :          data_tmp = full_data(idata)
     377      368064 :          data_tmp = ISHFT(data_tmp, 63)
     378      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     379      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     380      368064 :          idata = idata + 1
     381      368064 :          data_tmp = full_data(idata)
     382      368064 :          data_tmp = ISHFT(data_tmp, 63)
     383      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     384      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     385      368064 :          idata = idata + 1
     386      368064 :          data_tmp = full_data(idata)
     387      368064 :          data_tmp = ISHFT(data_tmp, 63)
     388      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     389      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     390      368064 :          idata = idata + 1
     391      368064 :          data_tmp = full_data(idata)
     392      368064 :          data_tmp = ISHFT(data_tmp, 63)
     393      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     394      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     395      368064 :          idata = idata + 1
     396      368064 :          data_tmp = full_data(idata)
     397      368064 :          data_tmp = ISHFT(data_tmp, 63)
     398      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     399      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     400      368064 :          idata = idata + 1
     401      368064 :          data_tmp = full_data(idata)
     402      368064 :          data_tmp = ISHFT(data_tmp, 63)
     403      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     404      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     405      368064 :          idata = idata + 1
     406      368064 :          data_tmp = full_data(idata)
     407      368064 :          data_tmp = ISHFT(data_tmp, 63)
     408      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     409      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     410      368064 :          idata = idata + 1
     411      368064 :          data_tmp = full_data(idata)
     412      368064 :          data_tmp = ISHFT(data_tmp, 63)
     413      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     414      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     415      368064 :          idata = idata + 1
     416      368064 :          data_tmp = full_data(idata)
     417      368064 :          data_tmp = ISHFT(data_tmp, 63)
     418      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     419      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     420      368064 :          idata = idata + 1
     421      368064 :          data_tmp = full_data(idata)
     422      368064 :          data_tmp = ISHFT(data_tmp, 63)
     423      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     424      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     425      368064 :          idata = idata + 1
     426      368064 :          data_tmp = full_data(idata)
     427      368064 :          data_tmp = ISHFT(data_tmp, 63)
     428      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     429      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     430      368064 :          idata = idata + 1
     431      368064 :          data_tmp = full_data(idata)
     432      368064 :          data_tmp = ISHFT(data_tmp, 63)
     433      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     434      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     435      368064 :          idata = idata + 1
     436      368064 :          data_tmp = full_data(idata)
     437      368064 :          data_tmp = ISHFT(data_tmp, 63)
     438      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     439      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     440      368064 :          idata = idata + 1
     441      368064 :          data_tmp = full_data(idata)
     442      368064 :          data_tmp = ISHFT(data_tmp, 63)
     443      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     444      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     445      368064 :          idata = idata + 1
     446      368064 :          data_tmp = full_data(idata)
     447      368064 :          data_tmp = ISHFT(data_tmp, 63)
     448      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     449      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     450      368064 :          idata = idata + 1
     451      368064 :          data_tmp = full_data(idata)
     452      368064 :          data_tmp = ISHFT(data_tmp, 63)
     453      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     454      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     455      368064 :          idata = idata + 1
     456      368064 :          data_tmp = full_data(idata)
     457      368064 :          data_tmp = ISHFT(data_tmp, 63)
     458      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     459      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     460      368064 :          idata = idata + 1
     461      368064 :          data_tmp = full_data(idata)
     462      368064 :          data_tmp = ISHFT(data_tmp, 63)
     463      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     464      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     465      368064 :          idata = idata + 1
     466      368064 :          data_tmp = full_data(idata)
     467      368064 :          data_tmp = ISHFT(data_tmp, 63)
     468      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     469      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     470      368064 :          idata = idata + 1
     471      368064 :          data_tmp = full_data(idata)
     472      368064 :          data_tmp = ISHFT(data_tmp, 63)
     473      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     474      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     475      368064 :          idata = idata + 1
     476      368064 :          data_tmp = full_data(idata)
     477      368064 :          data_tmp = ISHFT(data_tmp, 63)
     478      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     479      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     480      368064 :          idata = idata + 1
     481      368064 :          data_tmp = full_data(idata)
     482      368064 :          data_tmp = ISHFT(data_tmp, 63)
     483      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     484      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     485      368064 :          idata = idata + 1
     486      368064 :          data_tmp = full_data(idata)
     487      368064 :          data_tmp = ISHFT(data_tmp, 63)
     488      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     489      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     490      368064 :          idata = idata + 1
     491      368064 :          data_tmp = full_data(idata)
     492      368064 :          data_tmp = ISHFT(data_tmp, 63)
     493      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     494      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     495      368064 :          idata = idata + 1
     496      368064 :          data_tmp = full_data(idata)
     497      368064 :          data_tmp = ISHFT(data_tmp, 63)
     498      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     499      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     500      368064 :          idata = idata + 1
     501      368064 :          data_tmp = full_data(idata)
     502      368064 :          data_tmp = ISHFT(data_tmp, 63)
     503      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     504      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     505      368064 :          idata = idata + 1
     506      368064 :          data_tmp = full_data(idata)
     507      368064 :          data_tmp = ISHFT(data_tmp, 63)
     508      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     509      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     510      368064 :          idata = idata + 1
     511      368064 :          data_tmp = full_data(idata)
     512      368064 :          data_tmp = ISHFT(data_tmp, 63)
     513      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     514      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     515      368064 :          idata = idata + 1
     516      368064 :          data_tmp = full_data(idata)
     517      368064 :          data_tmp = ISHFT(data_tmp, 63)
     518      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     519      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     520      368064 :          idata = idata + 1
     521      368064 :          data_tmp = full_data(idata)
     522      368064 :          data_tmp = ISHFT(data_tmp, 63)
     523      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     524      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
     525      368064 :          idata = idata + 1
     526      368064 :          data_tmp = full_data(idata)
     527      368064 :          data_tmp = ISHFT(data_tmp, 63)
     528      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     529             :          pack_tmp = ISHFT(pack_tmp, 0)
     530      368064 :          pack_tmp = ISHFT(pack_tmp, 0)
     531      368064 :          ipack = ipack + 1
     532      368064 :          packed_data(ipack) = pack_tmp
     533             :       END DO
     534       23004 :       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       23004 :    END SUBROUTINE ints2bits_1
     538             : 
     539             : ! **************************************************************************************************
     540             : !> \brief ...
     541             : !> \param Ndata ...
     542             : !> \param packed_data ...
     543             : !> \param full_data ...
     544             : ! **************************************************************************************************
     545       93707 :    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       93707 :       ipack = 0
     556       93707 :       idata = 0
     557       93707 :       pack_tmp = 0
     558       93707 :       Ndata_rep = (Ndata/64)*64
     559       93707 :       DO kdata = 1, Ndata_rep, 64
     560     1499312 :          idata = idata + 1
     561     1499312 :          data_tmp = ISHFT(pack_tmp, 1)
     562     1499312 :          ipack = ipack + 1
     563     1499312 :          pack_tmp = packed_data(ipack)
     564     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
     565     1499312 :          pack_tmp = ISHFT(pack_tmp, -1)
     566     1499312 :          idata = idata + 1
     567     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     568     1499312 :          full_data(idata) = data_tmp
     569     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     570     1499312 :          idata = idata + 1
     571     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     572     1499312 :          full_data(idata) = data_tmp
     573     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     574     1499312 :          idata = idata + 1
     575     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     576     1499312 :          full_data(idata) = data_tmp
     577     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     578     1499312 :          idata = idata + 1
     579     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     580     1499312 :          full_data(idata) = data_tmp
     581     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     582     1499312 :          idata = idata + 1
     583     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     584     1499312 :          full_data(idata) = data_tmp
     585     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     586     1499312 :          idata = idata + 1
     587     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     588     1499312 :          full_data(idata) = data_tmp
     589     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     590     1499312 :          idata = idata + 1
     591     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     592     1499312 :          full_data(idata) = data_tmp
     593     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     594     1499312 :          idata = idata + 1
     595     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     596     1499312 :          full_data(idata) = data_tmp
     597     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     598     1499312 :          idata = idata + 1
     599     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     600     1499312 :          full_data(idata) = data_tmp
     601     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     602     1499312 :          idata = idata + 1
     603     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     604     1499312 :          full_data(idata) = data_tmp
     605     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     606     1499312 :          idata = idata + 1
     607     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     608     1499312 :          full_data(idata) = data_tmp
     609     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     610     1499312 :          idata = idata + 1
     611     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     612     1499312 :          full_data(idata) = data_tmp
     613     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     614     1499312 :          idata = idata + 1
     615     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     616     1499312 :          full_data(idata) = data_tmp
     617     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     618     1499312 :          idata = idata + 1
     619     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     620     1499312 :          full_data(idata) = data_tmp
     621     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     622     1499312 :          idata = idata + 1
     623     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     624     1499312 :          full_data(idata) = data_tmp
     625     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     626     1499312 :          idata = idata + 1
     627     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     628     1499312 :          full_data(idata) = data_tmp
     629     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     630     1499312 :          idata = idata + 1
     631     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     632     1499312 :          full_data(idata) = data_tmp
     633     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     634     1499312 :          idata = idata + 1
     635     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     636     1499312 :          full_data(idata) = data_tmp
     637     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     638     1499312 :          idata = idata + 1
     639     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     640     1499312 :          full_data(idata) = data_tmp
     641     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     642     1499312 :          idata = idata + 1
     643     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     644     1499312 :          full_data(idata) = data_tmp
     645     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     646     1499312 :          idata = idata + 1
     647     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     648     1499312 :          full_data(idata) = data_tmp
     649     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     650     1499312 :          idata = idata + 1
     651     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     652     1499312 :          full_data(idata) = data_tmp
     653     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     654     1499312 :          idata = idata + 1
     655     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     656     1499312 :          full_data(idata) = data_tmp
     657     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     658     1499312 :          idata = idata + 1
     659     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     660     1499312 :          full_data(idata) = data_tmp
     661     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     662     1499312 :          idata = idata + 1
     663     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     664     1499312 :          full_data(idata) = data_tmp
     665     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     666     1499312 :          idata = idata + 1
     667     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     668     1499312 :          full_data(idata) = data_tmp
     669     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     670     1499312 :          idata = idata + 1
     671     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     672     1499312 :          full_data(idata) = data_tmp
     673     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     674     1499312 :          idata = idata + 1
     675     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     676     1499312 :          full_data(idata) = data_tmp
     677     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     678     1499312 :          idata = idata + 1
     679     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     680     1499312 :          full_data(idata) = data_tmp
     681     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     682     1499312 :          idata = idata + 1
     683     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     684     1499312 :          full_data(idata) = data_tmp
     685     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     686     1499312 :          idata = idata + 1
     687     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     688     1499312 :          full_data(idata) = data_tmp
     689     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     690     1499312 :          idata = idata + 1
     691     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     692     1499312 :          full_data(idata) = data_tmp
     693     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     694     1499312 :          idata = idata + 1
     695     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     696     1499312 :          full_data(idata) = data_tmp
     697     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     698     1499312 :          idata = idata + 1
     699     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     700     1499312 :          full_data(idata) = data_tmp
     701     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     702     1499312 :          idata = idata + 1
     703     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     704     1499312 :          full_data(idata) = data_tmp
     705     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     706     1499312 :          idata = idata + 1
     707     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     708     1499312 :          full_data(idata) = data_tmp
     709     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     710     1499312 :          idata = idata + 1
     711     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     712     1499312 :          full_data(idata) = data_tmp
     713     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     714     1499312 :          idata = idata + 1
     715     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     716     1499312 :          full_data(idata) = data_tmp
     717     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     718     1499312 :          idata = idata + 1
     719     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     720     1499312 :          full_data(idata) = data_tmp
     721     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     722     1499312 :          idata = idata + 1
     723     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     724     1499312 :          full_data(idata) = data_tmp
     725     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     726     1499312 :          idata = idata + 1
     727     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     728     1499312 :          full_data(idata) = data_tmp
     729     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     730     1499312 :          idata = idata + 1
     731     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     732     1499312 :          full_data(idata) = data_tmp
     733     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     734     1499312 :          idata = idata + 1
     735     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     736     1499312 :          full_data(idata) = data_tmp
     737     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     738     1499312 :          idata = idata + 1
     739     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     740     1499312 :          full_data(idata) = data_tmp
     741     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     742     1499312 :          idata = idata + 1
     743     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     744     1499312 :          full_data(idata) = data_tmp
     745     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     746     1499312 :          idata = idata + 1
     747     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     748     1499312 :          full_data(idata) = data_tmp
     749     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     750     1499312 :          idata = idata + 1
     751     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     752     1499312 :          full_data(idata) = data_tmp
     753     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     754     1499312 :          idata = idata + 1
     755     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     756     1499312 :          full_data(idata) = data_tmp
     757     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     758     1499312 :          idata = idata + 1
     759     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     760     1499312 :          full_data(idata) = data_tmp
     761     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     762     1499312 :          idata = idata + 1
     763     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     764     1499312 :          full_data(idata) = data_tmp
     765     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     766     1499312 :          idata = idata + 1
     767     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     768     1499312 :          full_data(idata) = data_tmp
     769     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     770     1499312 :          idata = idata + 1
     771     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     772     1499312 :          full_data(idata) = data_tmp
     773     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     774     1499312 :          idata = idata + 1
     775     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     776     1499312 :          full_data(idata) = data_tmp
     777     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     778     1499312 :          idata = idata + 1
     779     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     780     1499312 :          full_data(idata) = data_tmp
     781     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     782     1499312 :          idata = idata + 1
     783     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     784     1499312 :          full_data(idata) = data_tmp
     785     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     786     1499312 :          idata = idata + 1
     787     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     788     1499312 :          full_data(idata) = data_tmp
     789     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     790     1499312 :          idata = idata + 1
     791     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     792     1499312 :          full_data(idata) = data_tmp
     793     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     794     1499312 :          idata = idata + 1
     795     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     796     1499312 :          full_data(idata) = data_tmp
     797     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     798     1499312 :          idata = idata + 1
     799     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     800     1499312 :          full_data(idata) = data_tmp
     801     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     802     1499312 :          idata = idata + 1
     803     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     804     1499312 :          full_data(idata) = data_tmp
     805     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     806     1499312 :          idata = idata + 1
     807     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     808     1499312 :          full_data(idata) = data_tmp
     809     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     810     1499312 :          idata = idata + 1
     811     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     812     1499312 :          full_data(idata) = data_tmp
     813     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     814     1499312 :          idata = idata + 1
     815     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     816     1499312 :          full_data(idata) = data_tmp
     817     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     818             :       END DO
     819       93707 :       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       93707 :    END SUBROUTINE bits2ints_1
     823             : 
     824             : ! **************************************************************************************************
     825             : !> \brief ...
     826             : !> \param Ndata ...
     827             : !> \param packed_data ...
     828             : !> \param full_data ...
     829             : ! **************************************************************************************************
     830       23004 :    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       23004 :       idata = 0
     841       23004 :       ipack = 0
     842       23004 :       Ndata_rep = (Ndata/64)*64
     843       23004 :       DO kdata = 1, Ndata_rep, 64
     844      368064 :          pack_tmp = 0
     845      368064 :          idata = idata + 1
     846      368064 :          data_tmp = full_data(idata)
     847      368064 :          data_tmp = ISHFT(data_tmp, 62)
     848      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     849      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     850      368064 :          idata = idata + 1
     851      368064 :          data_tmp = full_data(idata)
     852      368064 :          data_tmp = ISHFT(data_tmp, 62)
     853      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     854      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     855      368064 :          idata = idata + 1
     856      368064 :          data_tmp = full_data(idata)
     857      368064 :          data_tmp = ISHFT(data_tmp, 62)
     858      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     859      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     860      368064 :          idata = idata + 1
     861      368064 :          data_tmp = full_data(idata)
     862      368064 :          data_tmp = ISHFT(data_tmp, 62)
     863      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     864      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     865      368064 :          idata = idata + 1
     866      368064 :          data_tmp = full_data(idata)
     867      368064 :          data_tmp = ISHFT(data_tmp, 62)
     868      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     869      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     870      368064 :          idata = idata + 1
     871      368064 :          data_tmp = full_data(idata)
     872      368064 :          data_tmp = ISHFT(data_tmp, 62)
     873      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     874      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     875      368064 :          idata = idata + 1
     876      368064 :          data_tmp = full_data(idata)
     877      368064 :          data_tmp = ISHFT(data_tmp, 62)
     878      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     879      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     880      368064 :          idata = idata + 1
     881      368064 :          data_tmp = full_data(idata)
     882      368064 :          data_tmp = ISHFT(data_tmp, 62)
     883      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     884      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     885      368064 :          idata = idata + 1
     886      368064 :          data_tmp = full_data(idata)
     887      368064 :          data_tmp = ISHFT(data_tmp, 62)
     888      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     889      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     890      368064 :          idata = idata + 1
     891      368064 :          data_tmp = full_data(idata)
     892      368064 :          data_tmp = ISHFT(data_tmp, 62)
     893      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     894      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     895      368064 :          idata = idata + 1
     896      368064 :          data_tmp = full_data(idata)
     897      368064 :          data_tmp = ISHFT(data_tmp, 62)
     898      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     899      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     900      368064 :          idata = idata + 1
     901      368064 :          data_tmp = full_data(idata)
     902      368064 :          data_tmp = ISHFT(data_tmp, 62)
     903      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     904      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     905      368064 :          idata = idata + 1
     906      368064 :          data_tmp = full_data(idata)
     907      368064 :          data_tmp = ISHFT(data_tmp, 62)
     908      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     909      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     910      368064 :          idata = idata + 1
     911      368064 :          data_tmp = full_data(idata)
     912      368064 :          data_tmp = ISHFT(data_tmp, 62)
     913      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     914      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     915      368064 :          idata = idata + 1
     916      368064 :          data_tmp = full_data(idata)
     917      368064 :          data_tmp = ISHFT(data_tmp, 62)
     918      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     919      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     920      368064 :          idata = idata + 1
     921      368064 :          data_tmp = full_data(idata)
     922      368064 :          data_tmp = ISHFT(data_tmp, 62)
     923      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     924      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     925      368064 :          idata = idata + 1
     926      368064 :          data_tmp = full_data(idata)
     927      368064 :          data_tmp = ISHFT(data_tmp, 62)
     928      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     929      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     930      368064 :          idata = idata + 1
     931      368064 :          data_tmp = full_data(idata)
     932      368064 :          data_tmp = ISHFT(data_tmp, 62)
     933      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     934      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     935      368064 :          idata = idata + 1
     936      368064 :          data_tmp = full_data(idata)
     937      368064 :          data_tmp = ISHFT(data_tmp, 62)
     938      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     939      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     940      368064 :          idata = idata + 1
     941      368064 :          data_tmp = full_data(idata)
     942      368064 :          data_tmp = ISHFT(data_tmp, 62)
     943      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     944      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     945      368064 :          idata = idata + 1
     946      368064 :          data_tmp = full_data(idata)
     947      368064 :          data_tmp = ISHFT(data_tmp, 62)
     948      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     949      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     950      368064 :          idata = idata + 1
     951      368064 :          data_tmp = full_data(idata)
     952      368064 :          data_tmp = ISHFT(data_tmp, 62)
     953      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     954      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     955      368064 :          idata = idata + 1
     956      368064 :          data_tmp = full_data(idata)
     957      368064 :          data_tmp = ISHFT(data_tmp, 62)
     958      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     959      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     960      368064 :          idata = idata + 1
     961      368064 :          data_tmp = full_data(idata)
     962      368064 :          data_tmp = ISHFT(data_tmp, 62)
     963      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     964      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     965      368064 :          idata = idata + 1
     966      368064 :          data_tmp = full_data(idata)
     967      368064 :          data_tmp = ISHFT(data_tmp, 62)
     968      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     969      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     970      368064 :          idata = idata + 1
     971      368064 :          data_tmp = full_data(idata)
     972      368064 :          data_tmp = ISHFT(data_tmp, 62)
     973      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     974      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     975      368064 :          idata = idata + 1
     976      368064 :          data_tmp = full_data(idata)
     977      368064 :          data_tmp = ISHFT(data_tmp, 62)
     978      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     979      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     980      368064 :          idata = idata + 1
     981      368064 :          data_tmp = full_data(idata)
     982      368064 :          data_tmp = ISHFT(data_tmp, 62)
     983      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     984      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     985      368064 :          idata = idata + 1
     986      368064 :          data_tmp = full_data(idata)
     987      368064 :          data_tmp = ISHFT(data_tmp, 62)
     988      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     989      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     990      368064 :          idata = idata + 1
     991      368064 :          data_tmp = full_data(idata)
     992      368064 :          data_tmp = ISHFT(data_tmp, 62)
     993      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     994      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
     995      368064 :          idata = idata + 1
     996      368064 :          data_tmp = full_data(idata)
     997      368064 :          data_tmp = ISHFT(data_tmp, 62)
     998      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
     999      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1000      368064 :          idata = idata + 1
    1001      368064 :          data_tmp = full_data(idata)
    1002      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1003      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1004      368064 :          pack_tmp = ISHFT(pack_tmp, 0)
    1005      368064 :          idata = idata + 1
    1006      368064 :          data_tmp = full_data(idata)
    1007             :          data_tmp = ISHFT(data_tmp, 62)
    1008      368064 :          data_tmp = IAND(data_tmp, mask_left(0))
    1009      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1010      368064 :          ipack = ipack + 1
    1011      368064 :          packed_data(ipack) = pack_tmp
    1012      368064 :          data_tmp = full_data(idata)
    1013      368064 :          pack_tmp = ISHFT(data_tmp, 62)
    1014      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1015      368064 :          idata = idata + 1
    1016      368064 :          data_tmp = full_data(idata)
    1017      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1018      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1019      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1020      368064 :          idata = idata + 1
    1021      368064 :          data_tmp = full_data(idata)
    1022      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1023      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1024      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1025      368064 :          idata = idata + 1
    1026      368064 :          data_tmp = full_data(idata)
    1027      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1028      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1029      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1030      368064 :          idata = idata + 1
    1031      368064 :          data_tmp = full_data(idata)
    1032      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1033      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1034      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1035      368064 :          idata = idata + 1
    1036      368064 :          data_tmp = full_data(idata)
    1037      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1038      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1039      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1040      368064 :          idata = idata + 1
    1041      368064 :          data_tmp = full_data(idata)
    1042      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1043      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1044      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1045      368064 :          idata = idata + 1
    1046      368064 :          data_tmp = full_data(idata)
    1047      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1048      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1049      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1050      368064 :          idata = idata + 1
    1051      368064 :          data_tmp = full_data(idata)
    1052      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1053      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1054      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1055      368064 :          idata = idata + 1
    1056      368064 :          data_tmp = full_data(idata)
    1057      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1058      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1059      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1060      368064 :          idata = idata + 1
    1061      368064 :          data_tmp = full_data(idata)
    1062      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1063      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1064      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1065      368064 :          idata = idata + 1
    1066      368064 :          data_tmp = full_data(idata)
    1067      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1068      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1069      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1070      368064 :          idata = idata + 1
    1071      368064 :          data_tmp = full_data(idata)
    1072      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1073      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1074      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1075      368064 :          idata = idata + 1
    1076      368064 :          data_tmp = full_data(idata)
    1077      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1078      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1079      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1080      368064 :          idata = idata + 1
    1081      368064 :          data_tmp = full_data(idata)
    1082      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1083      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1084      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1085      368064 :          idata = idata + 1
    1086      368064 :          data_tmp = full_data(idata)
    1087      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1088      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1089      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1090      368064 :          idata = idata + 1
    1091      368064 :          data_tmp = full_data(idata)
    1092      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1093      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1094      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1095      368064 :          idata = idata + 1
    1096      368064 :          data_tmp = full_data(idata)
    1097      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1098      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1099      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1100      368064 :          idata = idata + 1
    1101      368064 :          data_tmp = full_data(idata)
    1102      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1103      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1104      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1105      368064 :          idata = idata + 1
    1106      368064 :          data_tmp = full_data(idata)
    1107      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1108      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1109      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1110      368064 :          idata = idata + 1
    1111      368064 :          data_tmp = full_data(idata)
    1112      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1113      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1114      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1115      368064 :          idata = idata + 1
    1116      368064 :          data_tmp = full_data(idata)
    1117      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1118      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1119      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1120      368064 :          idata = idata + 1
    1121      368064 :          data_tmp = full_data(idata)
    1122      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1123      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1124      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1125      368064 :          idata = idata + 1
    1126      368064 :          data_tmp = full_data(idata)
    1127      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1128      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1129      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1130      368064 :          idata = idata + 1
    1131      368064 :          data_tmp = full_data(idata)
    1132      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1133      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1134      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1135      368064 :          idata = idata + 1
    1136      368064 :          data_tmp = full_data(idata)
    1137      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1138      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1139      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1140      368064 :          idata = idata + 1
    1141      368064 :          data_tmp = full_data(idata)
    1142      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1143      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1144      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1145      368064 :          idata = idata + 1
    1146      368064 :          data_tmp = full_data(idata)
    1147      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1148      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1149      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1150      368064 :          idata = idata + 1
    1151      368064 :          data_tmp = full_data(idata)
    1152      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1153      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1154      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1155      368064 :          idata = idata + 1
    1156      368064 :          data_tmp = full_data(idata)
    1157      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1158      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1159      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1160      368064 :          idata = idata + 1
    1161      368064 :          data_tmp = full_data(idata)
    1162      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1163      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1164      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
    1165      368064 :          idata = idata + 1
    1166      368064 :          data_tmp = full_data(idata)
    1167      368064 :          data_tmp = ISHFT(data_tmp, 62)
    1168      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1169             :          pack_tmp = ISHFT(pack_tmp, 0)
    1170      368064 :          pack_tmp = ISHFT(pack_tmp, 0)
    1171      368064 :          ipack = ipack + 1
    1172      368064 :          packed_data(ipack) = pack_tmp
    1173             :       END DO
    1174       23004 :       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       23004 :    END SUBROUTINE ints2bits_2
    1178             : 
    1179             : ! **************************************************************************************************
    1180             : !> \brief ...
    1181             : !> \param Ndata ...
    1182             : !> \param packed_data ...
    1183             : !> \param full_data ...
    1184             : ! **************************************************************************************************
    1185       93707 :    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       93707 :       ipack = 0
    1196       93707 :       idata = 0
    1197       93707 :       pack_tmp = 0
    1198       93707 :       Ndata_rep = (Ndata/64)*64
    1199       93707 :       DO kdata = 1, Ndata_rep, 64
    1200     1499312 :          idata = idata + 1
    1201     1499312 :          data_tmp = ISHFT(pack_tmp, 2)
    1202     1499312 :          ipack = ipack + 1
    1203     1499312 :          pack_tmp = packed_data(ipack)
    1204     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    1205     1499312 :          pack_tmp = ISHFT(pack_tmp, -2)
    1206     1499312 :          idata = idata + 1
    1207     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1208     1499312 :          full_data(idata) = data_tmp
    1209     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1210     1499312 :          idata = idata + 1
    1211     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1212     1499312 :          full_data(idata) = data_tmp
    1213     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1214     1499312 :          idata = idata + 1
    1215     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1216     1499312 :          full_data(idata) = data_tmp
    1217     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1218     1499312 :          idata = idata + 1
    1219     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1220     1499312 :          full_data(idata) = data_tmp
    1221     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1222     1499312 :          idata = idata + 1
    1223     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1224     1499312 :          full_data(idata) = data_tmp
    1225     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1226     1499312 :          idata = idata + 1
    1227     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1228     1499312 :          full_data(idata) = data_tmp
    1229     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1230     1499312 :          idata = idata + 1
    1231     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1232     1499312 :          full_data(idata) = data_tmp
    1233     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1234     1499312 :          idata = idata + 1
    1235     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1236     1499312 :          full_data(idata) = data_tmp
    1237     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1238     1499312 :          idata = idata + 1
    1239     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1240     1499312 :          full_data(idata) = data_tmp
    1241     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1242     1499312 :          idata = idata + 1
    1243     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1244     1499312 :          full_data(idata) = data_tmp
    1245     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1246     1499312 :          idata = idata + 1
    1247     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1248     1499312 :          full_data(idata) = data_tmp
    1249     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1250     1499312 :          idata = idata + 1
    1251     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1252     1499312 :          full_data(idata) = data_tmp
    1253     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1254     1499312 :          idata = idata + 1
    1255     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1256     1499312 :          full_data(idata) = data_tmp
    1257     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1258     1499312 :          idata = idata + 1
    1259     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1260     1499312 :          full_data(idata) = data_tmp
    1261     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1262     1499312 :          idata = idata + 1
    1263     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1264     1499312 :          full_data(idata) = data_tmp
    1265     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1266     1499312 :          idata = idata + 1
    1267     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1268     1499312 :          full_data(idata) = data_tmp
    1269     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1270     1499312 :          idata = idata + 1
    1271     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1272     1499312 :          full_data(idata) = data_tmp
    1273     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1274     1499312 :          idata = idata + 1
    1275     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1276     1499312 :          full_data(idata) = data_tmp
    1277     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1278     1499312 :          idata = idata + 1
    1279     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1280     1499312 :          full_data(idata) = data_tmp
    1281     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1282     1499312 :          idata = idata + 1
    1283     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1284     1499312 :          full_data(idata) = data_tmp
    1285     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1286     1499312 :          idata = idata + 1
    1287     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1288     1499312 :          full_data(idata) = data_tmp
    1289     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1290     1499312 :          idata = idata + 1
    1291     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1292     1499312 :          full_data(idata) = data_tmp
    1293     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1294     1499312 :          idata = idata + 1
    1295     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1296     1499312 :          full_data(idata) = data_tmp
    1297     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1298     1499312 :          idata = idata + 1
    1299     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1300     1499312 :          full_data(idata) = data_tmp
    1301     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1302     1499312 :          idata = idata + 1
    1303     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1304     1499312 :          full_data(idata) = data_tmp
    1305     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1306     1499312 :          idata = idata + 1
    1307     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1308     1499312 :          full_data(idata) = data_tmp
    1309     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1310     1499312 :          idata = idata + 1
    1311     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1312     1499312 :          full_data(idata) = data_tmp
    1313     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1314     1499312 :          idata = idata + 1
    1315     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1316     1499312 :          full_data(idata) = data_tmp
    1317     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1318     1499312 :          idata = idata + 1
    1319     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1320     1499312 :          full_data(idata) = data_tmp
    1321     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1322     1499312 :          idata = idata + 1
    1323     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1324     1499312 :          full_data(idata) = data_tmp
    1325     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1326     1499312 :          idata = idata + 1
    1327     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1328     1499312 :          full_data(idata) = data_tmp
    1329     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1330     1499312 :          idata = idata + 1
    1331     1499312 :          data_tmp = ISHFT(pack_tmp, 2)
    1332     1499312 :          ipack = ipack + 1
    1333     1499312 :          pack_tmp = packed_data(ipack)
    1334     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    1335     1499312 :          pack_tmp = ISHFT(pack_tmp, -2)
    1336     1499312 :          idata = idata + 1
    1337     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1338     1499312 :          full_data(idata) = data_tmp
    1339     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1340     1499312 :          idata = idata + 1
    1341     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1342     1499312 :          full_data(idata) = data_tmp
    1343     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1344     1499312 :          idata = idata + 1
    1345     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1346     1499312 :          full_data(idata) = data_tmp
    1347     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1348     1499312 :          idata = idata + 1
    1349     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1350     1499312 :          full_data(idata) = data_tmp
    1351     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1352     1499312 :          idata = idata + 1
    1353     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1354     1499312 :          full_data(idata) = data_tmp
    1355     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1356     1499312 :          idata = idata + 1
    1357     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1358     1499312 :          full_data(idata) = data_tmp
    1359     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1360     1499312 :          idata = idata + 1
    1361     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1362     1499312 :          full_data(idata) = data_tmp
    1363     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1364     1499312 :          idata = idata + 1
    1365     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1366     1499312 :          full_data(idata) = data_tmp
    1367     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1368     1499312 :          idata = idata + 1
    1369     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1370     1499312 :          full_data(idata) = data_tmp
    1371     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1372     1499312 :          idata = idata + 1
    1373     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1374     1499312 :          full_data(idata) = data_tmp
    1375     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1376     1499312 :          idata = idata + 1
    1377     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1378     1499312 :          full_data(idata) = data_tmp
    1379     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1380     1499312 :          idata = idata + 1
    1381     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1382     1499312 :          full_data(idata) = data_tmp
    1383     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1384     1499312 :          idata = idata + 1
    1385     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1386     1499312 :          full_data(idata) = data_tmp
    1387     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1388     1499312 :          idata = idata + 1
    1389     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1390     1499312 :          full_data(idata) = data_tmp
    1391     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1392     1499312 :          idata = idata + 1
    1393     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1394     1499312 :          full_data(idata) = data_tmp
    1395     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1396     1499312 :          idata = idata + 1
    1397     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1398     1499312 :          full_data(idata) = data_tmp
    1399     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1400     1499312 :          idata = idata + 1
    1401     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1402     1499312 :          full_data(idata) = data_tmp
    1403     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1404     1499312 :          idata = idata + 1
    1405     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1406     1499312 :          full_data(idata) = data_tmp
    1407     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1408     1499312 :          idata = idata + 1
    1409     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1410     1499312 :          full_data(idata) = data_tmp
    1411     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1412     1499312 :          idata = idata + 1
    1413     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1414     1499312 :          full_data(idata) = data_tmp
    1415     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1416     1499312 :          idata = idata + 1
    1417     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1418     1499312 :          full_data(idata) = data_tmp
    1419     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1420     1499312 :          idata = idata + 1
    1421     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1422     1499312 :          full_data(idata) = data_tmp
    1423     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1424     1499312 :          idata = idata + 1
    1425     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1426     1499312 :          full_data(idata) = data_tmp
    1427     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1428     1499312 :          idata = idata + 1
    1429     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1430     1499312 :          full_data(idata) = data_tmp
    1431     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1432     1499312 :          idata = idata + 1
    1433     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1434     1499312 :          full_data(idata) = data_tmp
    1435     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1436     1499312 :          idata = idata + 1
    1437     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1438     1499312 :          full_data(idata) = data_tmp
    1439     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1440     1499312 :          idata = idata + 1
    1441     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1442     1499312 :          full_data(idata) = data_tmp
    1443     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1444     1499312 :          idata = idata + 1
    1445     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1446     1499312 :          full_data(idata) = data_tmp
    1447     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1448     1499312 :          idata = idata + 1
    1449     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1450     1499312 :          full_data(idata) = data_tmp
    1451     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1452     1499312 :          idata = idata + 1
    1453     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1454     1499312 :          full_data(idata) = data_tmp
    1455     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1456     1499312 :          idata = idata + 1
    1457     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1458     1499312 :          full_data(idata) = data_tmp
    1459     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1460             :       END DO
    1461       93707 :       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       93707 :    END SUBROUTINE bits2ints_2
    1465             : 
    1466             : ! **************************************************************************************************
    1467             : !> \brief ...
    1468             : !> \param Ndata ...
    1469             : !> \param packed_data ...
    1470             : !> \param full_data ...
    1471             : ! **************************************************************************************************
    1472       23250 :    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       23250 :       idata = 0
    1483       23250 :       ipack = 0
    1484       23250 :       Ndata_rep = (Ndata/64)*64
    1485       23250 :       DO kdata = 1, Ndata_rep, 64
    1486      371864 :          pack_tmp = 0
    1487      371864 :          idata = idata + 1
    1488      371864 :          data_tmp = full_data(idata)
    1489      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1490      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1491      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1492      371864 :          idata = idata + 1
    1493      371864 :          data_tmp = full_data(idata)
    1494      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1495      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1496      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1497      371864 :          idata = idata + 1
    1498      371864 :          data_tmp = full_data(idata)
    1499      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1500      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1501      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1502      371864 :          idata = idata + 1
    1503      371864 :          data_tmp = full_data(idata)
    1504      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1505      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1506      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1507      371864 :          idata = idata + 1
    1508      371864 :          data_tmp = full_data(idata)
    1509      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1510      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1511      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1512      371864 :          idata = idata + 1
    1513      371864 :          data_tmp = full_data(idata)
    1514      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1515      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1516      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1517      371864 :          idata = idata + 1
    1518      371864 :          data_tmp = full_data(idata)
    1519      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1520      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1521      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1522      371864 :          idata = idata + 1
    1523      371864 :          data_tmp = full_data(idata)
    1524      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1525      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1526      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1527      371864 :          idata = idata + 1
    1528      371864 :          data_tmp = full_data(idata)
    1529      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1530      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1531      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1532      371864 :          idata = idata + 1
    1533      371864 :          data_tmp = full_data(idata)
    1534      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1535      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1536      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1537      371864 :          idata = idata + 1
    1538      371864 :          data_tmp = full_data(idata)
    1539      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1540      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1541      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1542      371864 :          idata = idata + 1
    1543      371864 :          data_tmp = full_data(idata)
    1544      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1545      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1546      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1547      371864 :          idata = idata + 1
    1548      371864 :          data_tmp = full_data(idata)
    1549      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1550      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1551      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1552      371864 :          idata = idata + 1
    1553      371864 :          data_tmp = full_data(idata)
    1554      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1555      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1556      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1557      371864 :          idata = idata + 1
    1558      371864 :          data_tmp = full_data(idata)
    1559      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1560      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1561      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1562      371864 :          idata = idata + 1
    1563      371864 :          data_tmp = full_data(idata)
    1564      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1565      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1566      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1567      371864 :          idata = idata + 1
    1568      371864 :          data_tmp = full_data(idata)
    1569      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1570      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1571      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1572      371864 :          idata = idata + 1
    1573      371864 :          data_tmp = full_data(idata)
    1574      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1575      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1576      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1577      371864 :          idata = idata + 1
    1578      371864 :          data_tmp = full_data(idata)
    1579      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1580      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1581      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1582      371864 :          idata = idata + 1
    1583      371864 :          data_tmp = full_data(idata)
    1584      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1585      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1586      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1587      371864 :          idata = idata + 1
    1588      371864 :          data_tmp = full_data(idata)
    1589      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1590      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1591      371864 :          pack_tmp = ISHFT(pack_tmp, -1)
    1592      371864 :          idata = idata + 1
    1593      371864 :          data_tmp = full_data(idata)
    1594      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1595      371864 :          data_tmp = IAND(data_tmp, mask_left(1))
    1596      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1597      371864 :          ipack = ipack + 1
    1598      371864 :          packed_data(ipack) = pack_tmp
    1599      371864 :          data_tmp = full_data(idata)
    1600      371864 :          pack_tmp = ISHFT(data_tmp, 62)
    1601      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1602      371864 :          idata = idata + 1
    1603      371864 :          data_tmp = full_data(idata)
    1604      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1605      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1606      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1607      371864 :          idata = idata + 1
    1608      371864 :          data_tmp = full_data(idata)
    1609      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1610      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1611      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1612      371864 :          idata = idata + 1
    1613      371864 :          data_tmp = full_data(idata)
    1614      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1615      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1616      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1617      371864 :          idata = idata + 1
    1618      371864 :          data_tmp = full_data(idata)
    1619      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1620      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1621      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1622      371864 :          idata = idata + 1
    1623      371864 :          data_tmp = full_data(idata)
    1624      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1625      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1626      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1627      371864 :          idata = idata + 1
    1628      371864 :          data_tmp = full_data(idata)
    1629      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1630      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1631      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1632      371864 :          idata = idata + 1
    1633      371864 :          data_tmp = full_data(idata)
    1634      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1635      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1636      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1637      371864 :          idata = idata + 1
    1638      371864 :          data_tmp = full_data(idata)
    1639      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1640      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1641      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1642      371864 :          idata = idata + 1
    1643      371864 :          data_tmp = full_data(idata)
    1644      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1645      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1646      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1647      371864 :          idata = idata + 1
    1648      371864 :          data_tmp = full_data(idata)
    1649      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1650      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1651      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1652      371864 :          idata = idata + 1
    1653      371864 :          data_tmp = full_data(idata)
    1654      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1655      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1656      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1657      371864 :          idata = idata + 1
    1658      371864 :          data_tmp = full_data(idata)
    1659      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1660      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1661      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1662      371864 :          idata = idata + 1
    1663      371864 :          data_tmp = full_data(idata)
    1664      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1665      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1666      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1667      371864 :          idata = idata + 1
    1668      371864 :          data_tmp = full_data(idata)
    1669      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1670      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1671      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1672      371864 :          idata = idata + 1
    1673      371864 :          data_tmp = full_data(idata)
    1674      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1675      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1676      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1677      371864 :          idata = idata + 1
    1678      371864 :          data_tmp = full_data(idata)
    1679      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1680      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1681      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1682      371864 :          idata = idata + 1
    1683      371864 :          data_tmp = full_data(idata)
    1684      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1685      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1686      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1687      371864 :          idata = idata + 1
    1688      371864 :          data_tmp = full_data(idata)
    1689      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1690      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1691      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1692      371864 :          idata = idata + 1
    1693      371864 :          data_tmp = full_data(idata)
    1694      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1695      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1696      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1697      371864 :          idata = idata + 1
    1698      371864 :          data_tmp = full_data(idata)
    1699      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1700      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1701      371864 :          pack_tmp = ISHFT(pack_tmp, -2)
    1702      371864 :          idata = idata + 1
    1703      371864 :          data_tmp = full_data(idata)
    1704      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1705      371864 :          data_tmp = IAND(data_tmp, mask_left(2))
    1706      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1707      371864 :          ipack = ipack + 1
    1708      371864 :          packed_data(ipack) = pack_tmp
    1709      371864 :          data_tmp = full_data(idata)
    1710      371864 :          pack_tmp = ISHFT(data_tmp, 63)
    1711      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1712      371864 :          idata = idata + 1
    1713      371864 :          data_tmp = full_data(idata)
    1714      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1715      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1716      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1717      371864 :          idata = idata + 1
    1718      371864 :          data_tmp = full_data(idata)
    1719      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1720      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1721      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1722      371864 :          idata = idata + 1
    1723      371864 :          data_tmp = full_data(idata)
    1724      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1725      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1726      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1727      371864 :          idata = idata + 1
    1728      371864 :          data_tmp = full_data(idata)
    1729      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1730      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1731      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1732      371864 :          idata = idata + 1
    1733      371864 :          data_tmp = full_data(idata)
    1734      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1735      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1736      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1737      371864 :          idata = idata + 1
    1738      371864 :          data_tmp = full_data(idata)
    1739      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1740      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1741      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1742      371864 :          idata = idata + 1
    1743      371864 :          data_tmp = full_data(idata)
    1744      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1745      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1746      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1747      371864 :          idata = idata + 1
    1748      371864 :          data_tmp = full_data(idata)
    1749      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1750      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1751      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1752      371864 :          idata = idata + 1
    1753      371864 :          data_tmp = full_data(idata)
    1754      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1755      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1756      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1757      371864 :          idata = idata + 1
    1758      371864 :          data_tmp = full_data(idata)
    1759      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1760      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1761      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1762      371864 :          idata = idata + 1
    1763      371864 :          data_tmp = full_data(idata)
    1764      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1765      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1766      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1767      371864 :          idata = idata + 1
    1768      371864 :          data_tmp = full_data(idata)
    1769      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1770      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1771      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1772      371864 :          idata = idata + 1
    1773      371864 :          data_tmp = full_data(idata)
    1774      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1775      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1776      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1777      371864 :          idata = idata + 1
    1778      371864 :          data_tmp = full_data(idata)
    1779      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1780      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1781      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1782      371864 :          idata = idata + 1
    1783      371864 :          data_tmp = full_data(idata)
    1784      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1785      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1786      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1787      371864 :          idata = idata + 1
    1788      371864 :          data_tmp = full_data(idata)
    1789      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1790      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1791      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1792      371864 :          idata = idata + 1
    1793      371864 :          data_tmp = full_data(idata)
    1794      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1795      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1796      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1797      371864 :          idata = idata + 1
    1798      371864 :          data_tmp = full_data(idata)
    1799      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1800      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1801      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1802      371864 :          idata = idata + 1
    1803      371864 :          data_tmp = full_data(idata)
    1804      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1805      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1806      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1807      371864 :          idata = idata + 1
    1808      371864 :          data_tmp = full_data(idata)
    1809      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1810      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1811      371864 :          pack_tmp = ISHFT(pack_tmp, -3)
    1812      371864 :          idata = idata + 1
    1813      371864 :          data_tmp = full_data(idata)
    1814      371864 :          data_tmp = ISHFT(data_tmp, 61)
    1815      371864 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1816             :          pack_tmp = ISHFT(pack_tmp, 0)
    1817      371864 :          pack_tmp = ISHFT(pack_tmp, 0)
    1818      371864 :          ipack = ipack + 1
    1819      371866 :          packed_data(ipack) = pack_tmp
    1820             :       END DO
    1821       23250 :       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       23250 :    END SUBROUTINE ints2bits_3
    1825             : 
    1826             : ! **************************************************************************************************
    1827             : !> \brief ...
    1828             : !> \param Ndata ...
    1829             : !> \param packed_data ...
    1830             : !> \param full_data ...
    1831             : ! **************************************************************************************************
    1832       95093 :    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       95093 :       ipack = 0
    1843       95093 :       idata = 0
    1844       95093 :       pack_tmp = 0
    1845       95093 :       Ndata_rep = (Ndata/64)*64
    1846       95093 :       DO kdata = 1, Ndata_rep, 64
    1847     1520536 :          idata = idata + 1
    1848     1520536 :          data_tmp = ISHFT(pack_tmp, 3)
    1849     1520536 :          ipack = ipack + 1
    1850     1520536 :          pack_tmp = packed_data(ipack)
    1851     1520536 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    1852     1520536 :          pack_tmp = ISHFT(pack_tmp, -3)
    1853     1520536 :          idata = idata + 1
    1854     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1855     1520536 :          full_data(idata) = data_tmp
    1856     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1857     1520536 :          idata = idata + 1
    1858     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1859     1520536 :          full_data(idata) = data_tmp
    1860     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1861     1520536 :          idata = idata + 1
    1862     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1863     1520536 :          full_data(idata) = data_tmp
    1864     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1865     1520536 :          idata = idata + 1
    1866     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1867     1520536 :          full_data(idata) = data_tmp
    1868     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1869     1520536 :          idata = idata + 1
    1870     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1871     1520536 :          full_data(idata) = data_tmp
    1872     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1873     1520536 :          idata = idata + 1
    1874     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1875     1520536 :          full_data(idata) = data_tmp
    1876     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1877     1520536 :          idata = idata + 1
    1878     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1879     1520536 :          full_data(idata) = data_tmp
    1880     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1881     1520536 :          idata = idata + 1
    1882     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1883     1520536 :          full_data(idata) = data_tmp
    1884     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1885     1520536 :          idata = idata + 1
    1886     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1887     1520536 :          full_data(idata) = data_tmp
    1888     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1889     1520536 :          idata = idata + 1
    1890     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1891     1520536 :          full_data(idata) = data_tmp
    1892     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1893     1520536 :          idata = idata + 1
    1894     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1895     1520536 :          full_data(idata) = data_tmp
    1896     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1897     1520536 :          idata = idata + 1
    1898     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1899     1520536 :          full_data(idata) = data_tmp
    1900     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1901     1520536 :          idata = idata + 1
    1902     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1903     1520536 :          full_data(idata) = data_tmp
    1904     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1905     1520536 :          idata = idata + 1
    1906     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1907     1520536 :          full_data(idata) = data_tmp
    1908     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1909     1520536 :          idata = idata + 1
    1910     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1911     1520536 :          full_data(idata) = data_tmp
    1912     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1913     1520536 :          idata = idata + 1
    1914     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1915     1520536 :          full_data(idata) = data_tmp
    1916     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1917     1520536 :          idata = idata + 1
    1918     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1919     1520536 :          full_data(idata) = data_tmp
    1920     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1921     1520536 :          idata = idata + 1
    1922     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1923     1520536 :          full_data(idata) = data_tmp
    1924     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1925     1520536 :          idata = idata + 1
    1926     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1927     1520536 :          full_data(idata) = data_tmp
    1928     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1929     1520536 :          idata = idata + 1
    1930     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1931     1520536 :          full_data(idata) = data_tmp
    1932     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1933     1520536 :          idata = idata + 1
    1934     1520536 :          data_tmp = ISHFT(pack_tmp, 2)
    1935     1520536 :          ipack = ipack + 1
    1936     1520536 :          pack_tmp = packed_data(ipack)
    1937     1520536 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    1938     1520536 :          pack_tmp = ISHFT(pack_tmp, -2)
    1939     1520536 :          idata = idata + 1
    1940     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1941     1520536 :          full_data(idata) = data_tmp
    1942     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1943     1520536 :          idata = idata + 1
    1944     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1945     1520536 :          full_data(idata) = data_tmp
    1946     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1947     1520536 :          idata = idata + 1
    1948     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1949     1520536 :          full_data(idata) = data_tmp
    1950     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1951     1520536 :          idata = idata + 1
    1952     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1953     1520536 :          full_data(idata) = data_tmp
    1954     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1955     1520536 :          idata = idata + 1
    1956     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1957     1520536 :          full_data(idata) = data_tmp
    1958     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1959     1520536 :          idata = idata + 1
    1960     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1961     1520536 :          full_data(idata) = data_tmp
    1962     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1963     1520536 :          idata = idata + 1
    1964     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1965     1520536 :          full_data(idata) = data_tmp
    1966     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1967     1520536 :          idata = idata + 1
    1968     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1969     1520536 :          full_data(idata) = data_tmp
    1970     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1971     1520536 :          idata = idata + 1
    1972     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1973     1520536 :          full_data(idata) = data_tmp
    1974     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1975     1520536 :          idata = idata + 1
    1976     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1977     1520536 :          full_data(idata) = data_tmp
    1978     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1979     1520536 :          idata = idata + 1
    1980     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1981     1520536 :          full_data(idata) = data_tmp
    1982     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1983     1520536 :          idata = idata + 1
    1984     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1985     1520536 :          full_data(idata) = data_tmp
    1986     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1987     1520536 :          idata = idata + 1
    1988     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1989     1520536 :          full_data(idata) = data_tmp
    1990     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1991     1520536 :          idata = idata + 1
    1992     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1993     1520536 :          full_data(idata) = data_tmp
    1994     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1995     1520536 :          idata = idata + 1
    1996     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1997     1520536 :          full_data(idata) = data_tmp
    1998     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1999     1520536 :          idata = idata + 1
    2000     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2001     1520536 :          full_data(idata) = data_tmp
    2002     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2003     1520536 :          idata = idata + 1
    2004     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2005     1520536 :          full_data(idata) = data_tmp
    2006     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2007     1520536 :          idata = idata + 1
    2008     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2009     1520536 :          full_data(idata) = data_tmp
    2010     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2011     1520536 :          idata = idata + 1
    2012     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2013     1520536 :          full_data(idata) = data_tmp
    2014     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2015     1520536 :          idata = idata + 1
    2016     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2017     1520536 :          full_data(idata) = data_tmp
    2018     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2019     1520536 :          idata = idata + 1
    2020     1520536 :          data_tmp = ISHFT(pack_tmp, 1)
    2021     1520536 :          ipack = ipack + 1
    2022     1520536 :          pack_tmp = packed_data(ipack)
    2023     1520536 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    2024     1520536 :          pack_tmp = ISHFT(pack_tmp, -1)
    2025     1520536 :          idata = idata + 1
    2026     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2027     1520536 :          full_data(idata) = data_tmp
    2028     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2029     1520536 :          idata = idata + 1
    2030     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2031     1520536 :          full_data(idata) = data_tmp
    2032     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2033     1520536 :          idata = idata + 1
    2034     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2035     1520536 :          full_data(idata) = data_tmp
    2036     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2037     1520536 :          idata = idata + 1
    2038     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2039     1520536 :          full_data(idata) = data_tmp
    2040     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2041     1520536 :          idata = idata + 1
    2042     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2043     1520536 :          full_data(idata) = data_tmp
    2044     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2045     1520536 :          idata = idata + 1
    2046     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2047     1520536 :          full_data(idata) = data_tmp
    2048     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2049     1520536 :          idata = idata + 1
    2050     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2051     1520536 :          full_data(idata) = data_tmp
    2052     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2053     1520536 :          idata = idata + 1
    2054     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2055     1520536 :          full_data(idata) = data_tmp
    2056     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2057     1520536 :          idata = idata + 1
    2058     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2059     1520536 :          full_data(idata) = data_tmp
    2060     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2061     1520536 :          idata = idata + 1
    2062     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2063     1520536 :          full_data(idata) = data_tmp
    2064     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2065     1520536 :          idata = idata + 1
    2066     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2067     1520536 :          full_data(idata) = data_tmp
    2068     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2069     1520536 :          idata = idata + 1
    2070     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2071     1520536 :          full_data(idata) = data_tmp
    2072     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2073     1520536 :          idata = idata + 1
    2074     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2075     1520536 :          full_data(idata) = data_tmp
    2076     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2077     1520536 :          idata = idata + 1
    2078     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2079     1520536 :          full_data(idata) = data_tmp
    2080     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2081     1520536 :          idata = idata + 1
    2082     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2083     1520536 :          full_data(idata) = data_tmp
    2084     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2085     1520536 :          idata = idata + 1
    2086     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2087     1520536 :          full_data(idata) = data_tmp
    2088     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2089     1520536 :          idata = idata + 1
    2090     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2091     1520536 :          full_data(idata) = data_tmp
    2092     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2093     1520536 :          idata = idata + 1
    2094     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2095     1520536 :          full_data(idata) = data_tmp
    2096     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2097     1520536 :          idata = idata + 1
    2098     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2099     1520536 :          full_data(idata) = data_tmp
    2100     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2101     1520536 :          idata = idata + 1
    2102     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2103     1520536 :          full_data(idata) = data_tmp
    2104     1520536 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2105     1520536 :          idata = idata + 1
    2106     1520536 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2107     1520536 :          full_data(idata) = data_tmp
    2108     1520550 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2109             :       END DO
    2110       95093 :       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       95093 :    END SUBROUTINE bits2ints_3
    2114             : 
    2115             : ! **************************************************************************************************
    2116             : !> \brief ...
    2117             : !> \param Ndata ...
    2118             : !> \param packed_data ...
    2119             : !> \param full_data ...
    2120             : ! **************************************************************************************************
    2121       23356 :    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       23356 :       idata = 0
    2132       23356 :       ipack = 0
    2133       23356 :       Ndata_rep = (Ndata/64)*64
    2134       23356 :       DO kdata = 1, Ndata_rep, 64
    2135      373392 :          pack_tmp = 0
    2136      373392 :          idata = idata + 1
    2137      373392 :          data_tmp = full_data(idata)
    2138      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2139      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2140      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2141      373392 :          idata = idata + 1
    2142      373392 :          data_tmp = full_data(idata)
    2143      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2144      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2145      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2146      373392 :          idata = idata + 1
    2147      373392 :          data_tmp = full_data(idata)
    2148      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2149      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2150      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2151      373392 :          idata = idata + 1
    2152      373392 :          data_tmp = full_data(idata)
    2153      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2154      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2155      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2156      373392 :          idata = idata + 1
    2157      373392 :          data_tmp = full_data(idata)
    2158      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2159      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2160      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2161      373392 :          idata = idata + 1
    2162      373392 :          data_tmp = full_data(idata)
    2163      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2164      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2165      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2166      373392 :          idata = idata + 1
    2167      373392 :          data_tmp = full_data(idata)
    2168      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2169      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2170      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2171      373392 :          idata = idata + 1
    2172      373392 :          data_tmp = full_data(idata)
    2173      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2174      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2175      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2176      373392 :          idata = idata + 1
    2177      373392 :          data_tmp = full_data(idata)
    2178      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2179      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2180      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2181      373392 :          idata = idata + 1
    2182      373392 :          data_tmp = full_data(idata)
    2183      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2184      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2185      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2186      373392 :          idata = idata + 1
    2187      373392 :          data_tmp = full_data(idata)
    2188      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2189      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2190      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2191      373392 :          idata = idata + 1
    2192      373392 :          data_tmp = full_data(idata)
    2193      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2194      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2195      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2196      373392 :          idata = idata + 1
    2197      373392 :          data_tmp = full_data(idata)
    2198      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2199      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2200      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2201      373392 :          idata = idata + 1
    2202      373392 :          data_tmp = full_data(idata)
    2203      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2204      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2205      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2206      373392 :          idata = idata + 1
    2207      373392 :          data_tmp = full_data(idata)
    2208      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2209      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2210      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2211      373392 :          idata = idata + 1
    2212      373392 :          data_tmp = full_data(idata)
    2213      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2214      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2215      373392 :          pack_tmp = ISHFT(pack_tmp, 0)
    2216      373392 :          idata = idata + 1
    2217      373392 :          data_tmp = full_data(idata)
    2218             :          data_tmp = ISHFT(data_tmp, 60)
    2219      373392 :          data_tmp = IAND(data_tmp, mask_left(0))
    2220      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2221      373392 :          ipack = ipack + 1
    2222      373392 :          packed_data(ipack) = pack_tmp
    2223      373392 :          data_tmp = full_data(idata)
    2224      373392 :          pack_tmp = ISHFT(data_tmp, 60)
    2225      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2226      373392 :          idata = idata + 1
    2227      373392 :          data_tmp = full_data(idata)
    2228      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2229      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2230      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2231      373392 :          idata = idata + 1
    2232      373392 :          data_tmp = full_data(idata)
    2233      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2234      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2235      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2236      373392 :          idata = idata + 1
    2237      373392 :          data_tmp = full_data(idata)
    2238      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2239      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2240      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2241      373392 :          idata = idata + 1
    2242      373392 :          data_tmp = full_data(idata)
    2243      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2244      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2245      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2246      373392 :          idata = idata + 1
    2247      373392 :          data_tmp = full_data(idata)
    2248      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2249      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2250      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2251      373392 :          idata = idata + 1
    2252      373392 :          data_tmp = full_data(idata)
    2253      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2254      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2255      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2256      373392 :          idata = idata + 1
    2257      373392 :          data_tmp = full_data(idata)
    2258      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2259      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2260      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2261      373392 :          idata = idata + 1
    2262      373392 :          data_tmp = full_data(idata)
    2263      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2264      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2265      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2266      373392 :          idata = idata + 1
    2267      373392 :          data_tmp = full_data(idata)
    2268      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2269      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2270      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2271      373392 :          idata = idata + 1
    2272      373392 :          data_tmp = full_data(idata)
    2273      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2274      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2275      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2276      373392 :          idata = idata + 1
    2277      373392 :          data_tmp = full_data(idata)
    2278      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2279      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2280      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2281      373392 :          idata = idata + 1
    2282      373392 :          data_tmp = full_data(idata)
    2283      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2284      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2285      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2286      373392 :          idata = idata + 1
    2287      373392 :          data_tmp = full_data(idata)
    2288      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2289      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2290      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2291      373392 :          idata = idata + 1
    2292      373392 :          data_tmp = full_data(idata)
    2293      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2294      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2295      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2296      373392 :          idata = idata + 1
    2297      373392 :          data_tmp = full_data(idata)
    2298      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2299      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2300      373392 :          pack_tmp = ISHFT(pack_tmp, 0)
    2301      373392 :          idata = idata + 1
    2302      373392 :          data_tmp = full_data(idata)
    2303             :          data_tmp = ISHFT(data_tmp, 60)
    2304      373392 :          data_tmp = IAND(data_tmp, mask_left(0))
    2305      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2306      373392 :          ipack = ipack + 1
    2307      373392 :          packed_data(ipack) = pack_tmp
    2308      373392 :          data_tmp = full_data(idata)
    2309      373392 :          pack_tmp = ISHFT(data_tmp, 60)
    2310      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2311      373392 :          idata = idata + 1
    2312      373392 :          data_tmp = full_data(idata)
    2313      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2314      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2315      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2316      373392 :          idata = idata + 1
    2317      373392 :          data_tmp = full_data(idata)
    2318      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2319      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2320      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2321      373392 :          idata = idata + 1
    2322      373392 :          data_tmp = full_data(idata)
    2323      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2324      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2325      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2326      373392 :          idata = idata + 1
    2327      373392 :          data_tmp = full_data(idata)
    2328      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2329      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2330      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2331      373392 :          idata = idata + 1
    2332      373392 :          data_tmp = full_data(idata)
    2333      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2334      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2335      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2336      373392 :          idata = idata + 1
    2337      373392 :          data_tmp = full_data(idata)
    2338      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2339      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2340      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2341      373392 :          idata = idata + 1
    2342      373392 :          data_tmp = full_data(idata)
    2343      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2344      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2345      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2346      373392 :          idata = idata + 1
    2347      373392 :          data_tmp = full_data(idata)
    2348      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2349      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2350      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2351      373392 :          idata = idata + 1
    2352      373392 :          data_tmp = full_data(idata)
    2353      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2354      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2355      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2356      373392 :          idata = idata + 1
    2357      373392 :          data_tmp = full_data(idata)
    2358      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2359      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2360      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2361      373392 :          idata = idata + 1
    2362      373392 :          data_tmp = full_data(idata)
    2363      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2364      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2365      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2366      373392 :          idata = idata + 1
    2367      373392 :          data_tmp = full_data(idata)
    2368      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2369      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2370      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2371      373392 :          idata = idata + 1
    2372      373392 :          data_tmp = full_data(idata)
    2373      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2374      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2375      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2376      373392 :          idata = idata + 1
    2377      373392 :          data_tmp = full_data(idata)
    2378      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2379      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2380      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2381      373392 :          idata = idata + 1
    2382      373392 :          data_tmp = full_data(idata)
    2383      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2384      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2385      373392 :          pack_tmp = ISHFT(pack_tmp, 0)
    2386      373392 :          idata = idata + 1
    2387      373392 :          data_tmp = full_data(idata)
    2388             :          data_tmp = ISHFT(data_tmp, 60)
    2389      373392 :          data_tmp = IAND(data_tmp, mask_left(0))
    2390      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2391      373392 :          ipack = ipack + 1
    2392      373392 :          packed_data(ipack) = pack_tmp
    2393      373392 :          data_tmp = full_data(idata)
    2394      373392 :          pack_tmp = ISHFT(data_tmp, 60)
    2395      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2396      373392 :          idata = idata + 1
    2397      373392 :          data_tmp = full_data(idata)
    2398      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2399      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2400      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2401      373392 :          idata = idata + 1
    2402      373392 :          data_tmp = full_data(idata)
    2403      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2404      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2405      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2406      373392 :          idata = idata + 1
    2407      373392 :          data_tmp = full_data(idata)
    2408      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2409      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2410      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2411      373392 :          idata = idata + 1
    2412      373392 :          data_tmp = full_data(idata)
    2413      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2414      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2415      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2416      373392 :          idata = idata + 1
    2417      373392 :          data_tmp = full_data(idata)
    2418      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2419      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2420      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2421      373392 :          idata = idata + 1
    2422      373392 :          data_tmp = full_data(idata)
    2423      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2424      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2425      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2426      373392 :          idata = idata + 1
    2427      373392 :          data_tmp = full_data(idata)
    2428      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2429      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2430      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2431      373392 :          idata = idata + 1
    2432      373392 :          data_tmp = full_data(idata)
    2433      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2434      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2435      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2436      373392 :          idata = idata + 1
    2437      373392 :          data_tmp = full_data(idata)
    2438      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2439      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2440      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2441      373392 :          idata = idata + 1
    2442      373392 :          data_tmp = full_data(idata)
    2443      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2444      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2445      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2446      373392 :          idata = idata + 1
    2447      373392 :          data_tmp = full_data(idata)
    2448      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2449      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2450      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2451      373392 :          idata = idata + 1
    2452      373392 :          data_tmp = full_data(idata)
    2453      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2454      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2455      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2456      373392 :          idata = idata + 1
    2457      373392 :          data_tmp = full_data(idata)
    2458      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2459      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2460      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2461      373392 :          idata = idata + 1
    2462      373392 :          data_tmp = full_data(idata)
    2463      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2464      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2465      373392 :          pack_tmp = ISHFT(pack_tmp, -4)
    2466      373392 :          idata = idata + 1
    2467      373392 :          data_tmp = full_data(idata)
    2468      373392 :          data_tmp = ISHFT(data_tmp, 60)
    2469      373392 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2470             :          pack_tmp = ISHFT(pack_tmp, 0)
    2471      373392 :          pack_tmp = ISHFT(pack_tmp, 0)
    2472      373392 :          ipack = ipack + 1
    2473      373411 :          packed_data(ipack) = pack_tmp
    2474             :       END DO
    2475       23356 :       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       23356 :    END SUBROUTINE ints2bits_4
    2479             : 
    2480             : ! **************************************************************************************************
    2481             : !> \brief ...
    2482             : !> \param Ndata ...
    2483             : !> \param packed_data ...
    2484             : !> \param full_data ...
    2485             : ! **************************************************************************************************
    2486       95929 :    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       95929 :       ipack = 0
    2497       95929 :       idata = 0
    2498       95929 :       pack_tmp = 0
    2499       95929 :       Ndata_rep = (Ndata/64)*64
    2500       95929 :       DO kdata = 1, Ndata_rep, 64
    2501     1532960 :          idata = idata + 1
    2502     1532960 :          data_tmp = ISHFT(pack_tmp, 4)
    2503     1532960 :          ipack = ipack + 1
    2504     1532960 :          pack_tmp = packed_data(ipack)
    2505     1532960 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    2506     1532960 :          pack_tmp = ISHFT(pack_tmp, -4)
    2507     1532960 :          idata = idata + 1
    2508     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2509     1532960 :          full_data(idata) = data_tmp
    2510     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2511     1532960 :          idata = idata + 1
    2512     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2513     1532960 :          full_data(idata) = data_tmp
    2514     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2515     1532960 :          idata = idata + 1
    2516     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2517     1532960 :          full_data(idata) = data_tmp
    2518     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2519     1532960 :          idata = idata + 1
    2520     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2521     1532960 :          full_data(idata) = data_tmp
    2522     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2523     1532960 :          idata = idata + 1
    2524     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2525     1532960 :          full_data(idata) = data_tmp
    2526     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2527     1532960 :          idata = idata + 1
    2528     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2529     1532960 :          full_data(idata) = data_tmp
    2530     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2531     1532960 :          idata = idata + 1
    2532     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2533     1532960 :          full_data(idata) = data_tmp
    2534     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2535     1532960 :          idata = idata + 1
    2536     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2537     1532960 :          full_data(idata) = data_tmp
    2538     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2539     1532960 :          idata = idata + 1
    2540     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2541     1532960 :          full_data(idata) = data_tmp
    2542     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2543     1532960 :          idata = idata + 1
    2544     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2545     1532960 :          full_data(idata) = data_tmp
    2546     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2547     1532960 :          idata = idata + 1
    2548     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2549     1532960 :          full_data(idata) = data_tmp
    2550     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2551     1532960 :          idata = idata + 1
    2552     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2553     1532960 :          full_data(idata) = data_tmp
    2554     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2555     1532960 :          idata = idata + 1
    2556     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2557     1532960 :          full_data(idata) = data_tmp
    2558     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2559     1532960 :          idata = idata + 1
    2560     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2561     1532960 :          full_data(idata) = data_tmp
    2562     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2563     1532960 :          idata = idata + 1
    2564     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2565     1532960 :          full_data(idata) = data_tmp
    2566     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2567     1532960 :          idata = idata + 1
    2568     1532960 :          data_tmp = ISHFT(pack_tmp, 4)
    2569     1532960 :          ipack = ipack + 1
    2570     1532960 :          pack_tmp = packed_data(ipack)
    2571     1532960 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    2572     1532960 :          pack_tmp = ISHFT(pack_tmp, -4)
    2573     1532960 :          idata = idata + 1
    2574     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2575     1532960 :          full_data(idata) = data_tmp
    2576     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2577     1532960 :          idata = idata + 1
    2578     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2579     1532960 :          full_data(idata) = data_tmp
    2580     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2581     1532960 :          idata = idata + 1
    2582     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2583     1532960 :          full_data(idata) = data_tmp
    2584     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2585     1532960 :          idata = idata + 1
    2586     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2587     1532960 :          full_data(idata) = data_tmp
    2588     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2589     1532960 :          idata = idata + 1
    2590     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2591     1532960 :          full_data(idata) = data_tmp
    2592     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2593     1532960 :          idata = idata + 1
    2594     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2595     1532960 :          full_data(idata) = data_tmp
    2596     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2597     1532960 :          idata = idata + 1
    2598     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2599     1532960 :          full_data(idata) = data_tmp
    2600     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2601     1532960 :          idata = idata + 1
    2602     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2603     1532960 :          full_data(idata) = data_tmp
    2604     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2605     1532960 :          idata = idata + 1
    2606     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2607     1532960 :          full_data(idata) = data_tmp
    2608     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2609     1532960 :          idata = idata + 1
    2610     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2611     1532960 :          full_data(idata) = data_tmp
    2612     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2613     1532960 :          idata = idata + 1
    2614     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2615     1532960 :          full_data(idata) = data_tmp
    2616     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2617     1532960 :          idata = idata + 1
    2618     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2619     1532960 :          full_data(idata) = data_tmp
    2620     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2621     1532960 :          idata = idata + 1
    2622     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2623     1532960 :          full_data(idata) = data_tmp
    2624     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2625     1532960 :          idata = idata + 1
    2626     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2627     1532960 :          full_data(idata) = data_tmp
    2628     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2629     1532960 :          idata = idata + 1
    2630     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2631     1532960 :          full_data(idata) = data_tmp
    2632     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2633     1532960 :          idata = idata + 1
    2634     1532960 :          data_tmp = ISHFT(pack_tmp, 4)
    2635     1532960 :          ipack = ipack + 1
    2636     1532960 :          pack_tmp = packed_data(ipack)
    2637     1532960 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    2638     1532960 :          pack_tmp = ISHFT(pack_tmp, -4)
    2639     1532960 :          idata = idata + 1
    2640     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2641     1532960 :          full_data(idata) = data_tmp
    2642     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2643     1532960 :          idata = idata + 1
    2644     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2645     1532960 :          full_data(idata) = data_tmp
    2646     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2647     1532960 :          idata = idata + 1
    2648     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2649     1532960 :          full_data(idata) = data_tmp
    2650     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2651     1532960 :          idata = idata + 1
    2652     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2653     1532960 :          full_data(idata) = data_tmp
    2654     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2655     1532960 :          idata = idata + 1
    2656     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2657     1532960 :          full_data(idata) = data_tmp
    2658     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2659     1532960 :          idata = idata + 1
    2660     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2661     1532960 :          full_data(idata) = data_tmp
    2662     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2663     1532960 :          idata = idata + 1
    2664     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2665     1532960 :          full_data(idata) = data_tmp
    2666     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2667     1532960 :          idata = idata + 1
    2668     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2669     1532960 :          full_data(idata) = data_tmp
    2670     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2671     1532960 :          idata = idata + 1
    2672     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2673     1532960 :          full_data(idata) = data_tmp
    2674     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2675     1532960 :          idata = idata + 1
    2676     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2677     1532960 :          full_data(idata) = data_tmp
    2678     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2679     1532960 :          idata = idata + 1
    2680     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2681     1532960 :          full_data(idata) = data_tmp
    2682     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2683     1532960 :          idata = idata + 1
    2684     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2685     1532960 :          full_data(idata) = data_tmp
    2686     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2687     1532960 :          idata = idata + 1
    2688     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2689     1532960 :          full_data(idata) = data_tmp
    2690     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2691     1532960 :          idata = idata + 1
    2692     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2693     1532960 :          full_data(idata) = data_tmp
    2694     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2695     1532960 :          idata = idata + 1
    2696     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2697     1532960 :          full_data(idata) = data_tmp
    2698     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2699     1532960 :          idata = idata + 1
    2700     1532960 :          data_tmp = ISHFT(pack_tmp, 4)
    2701     1532960 :          ipack = ipack + 1
    2702     1532960 :          pack_tmp = packed_data(ipack)
    2703     1532960 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    2704     1532960 :          pack_tmp = ISHFT(pack_tmp, -4)
    2705     1532960 :          idata = idata + 1
    2706     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2707     1532960 :          full_data(idata) = data_tmp
    2708     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2709     1532960 :          idata = idata + 1
    2710     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2711     1532960 :          full_data(idata) = data_tmp
    2712     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2713     1532960 :          idata = idata + 1
    2714     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2715     1532960 :          full_data(idata) = data_tmp
    2716     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2717     1532960 :          idata = idata + 1
    2718     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2719     1532960 :          full_data(idata) = data_tmp
    2720     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2721     1532960 :          idata = idata + 1
    2722     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2723     1532960 :          full_data(idata) = data_tmp
    2724     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2725     1532960 :          idata = idata + 1
    2726     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2727     1532960 :          full_data(idata) = data_tmp
    2728     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2729     1532960 :          idata = idata + 1
    2730     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2731     1532960 :          full_data(idata) = data_tmp
    2732     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2733     1532960 :          idata = idata + 1
    2734     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2735     1532960 :          full_data(idata) = data_tmp
    2736     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2737     1532960 :          idata = idata + 1
    2738     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2739     1532960 :          full_data(idata) = data_tmp
    2740     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2741     1532960 :          idata = idata + 1
    2742     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2743     1532960 :          full_data(idata) = data_tmp
    2744     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2745     1532960 :          idata = idata + 1
    2746     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2747     1532960 :          full_data(idata) = data_tmp
    2748     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2749     1532960 :          idata = idata + 1
    2750     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2751     1532960 :          full_data(idata) = data_tmp
    2752     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2753     1532960 :          idata = idata + 1
    2754     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2755     1532960 :          full_data(idata) = data_tmp
    2756     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2757     1532960 :          idata = idata + 1
    2758     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2759     1532960 :          full_data(idata) = data_tmp
    2760     1532960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2761     1532960 :          idata = idata + 1
    2762     1532960 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2763     1532960 :          full_data(idata) = data_tmp
    2764     1533079 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2765             :       END DO
    2766       95929 :       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       95929 :    END SUBROUTINE bits2ints_4
    2770             : 
    2771             : ! **************************************************************************************************
    2772             : !> \brief ...
    2773             : !> \param Ndata ...
    2774             : !> \param packed_data ...
    2775             : !> \param full_data ...
    2776             : ! **************************************************************************************************
    2777       23239 :    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       23239 :       idata = 0
    2788       23239 :       ipack = 0
    2789       23239 :       Ndata_rep = (Ndata/64)*64
    2790       23239 :       DO kdata = 1, Ndata_rep, 64
    2791      371605 :          pack_tmp = 0
    2792      371605 :          idata = idata + 1
    2793      371605 :          data_tmp = full_data(idata)
    2794      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2795      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2796      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2797      371605 :          idata = idata + 1
    2798      371605 :          data_tmp = full_data(idata)
    2799      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2800      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2801      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2802      371605 :          idata = idata + 1
    2803      371605 :          data_tmp = full_data(idata)
    2804      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2805      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2806      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2807      371605 :          idata = idata + 1
    2808      371605 :          data_tmp = full_data(idata)
    2809      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2810      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2811      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2812      371605 :          idata = idata + 1
    2813      371605 :          data_tmp = full_data(idata)
    2814      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2815      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2816      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2817      371605 :          idata = idata + 1
    2818      371605 :          data_tmp = full_data(idata)
    2819      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2820      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2821      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2822      371605 :          idata = idata + 1
    2823      371605 :          data_tmp = full_data(idata)
    2824      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2825      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2826      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2827      371605 :          idata = idata + 1
    2828      371605 :          data_tmp = full_data(idata)
    2829      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2830      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2831      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2832      371605 :          idata = idata + 1
    2833      371605 :          data_tmp = full_data(idata)
    2834      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2835      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2836      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2837      371605 :          idata = idata + 1
    2838      371605 :          data_tmp = full_data(idata)
    2839      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2840      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2841      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2842      371605 :          idata = idata + 1
    2843      371605 :          data_tmp = full_data(idata)
    2844      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2845      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2846      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2847      371605 :          idata = idata + 1
    2848      371605 :          data_tmp = full_data(idata)
    2849      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2850      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2851      371605 :          pack_tmp = ISHFT(pack_tmp, -4)
    2852      371605 :          idata = idata + 1
    2853      371605 :          data_tmp = full_data(idata)
    2854      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2855      371605 :          data_tmp = IAND(data_tmp, mask_left(4))
    2856      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2857      371605 :          ipack = ipack + 1
    2858      371605 :          packed_data(ipack) = pack_tmp
    2859      371605 :          data_tmp = full_data(idata)
    2860      371605 :          pack_tmp = ISHFT(data_tmp, 63)
    2861      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2862      371605 :          idata = idata + 1
    2863      371605 :          data_tmp = full_data(idata)
    2864      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2865      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2866      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2867      371605 :          idata = idata + 1
    2868      371605 :          data_tmp = full_data(idata)
    2869      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2870      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2871      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2872      371605 :          idata = idata + 1
    2873      371605 :          data_tmp = full_data(idata)
    2874      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2875      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2876      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2877      371605 :          idata = idata + 1
    2878      371605 :          data_tmp = full_data(idata)
    2879      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2880      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2881      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2882      371605 :          idata = idata + 1
    2883      371605 :          data_tmp = full_data(idata)
    2884      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2885      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2886      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2887      371605 :          idata = idata + 1
    2888      371605 :          data_tmp = full_data(idata)
    2889      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2890      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2891      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2892      371605 :          idata = idata + 1
    2893      371605 :          data_tmp = full_data(idata)
    2894      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2895      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2896      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2897      371605 :          idata = idata + 1
    2898      371605 :          data_tmp = full_data(idata)
    2899      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2900      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2901      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2902      371605 :          idata = idata + 1
    2903      371605 :          data_tmp = full_data(idata)
    2904      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2905      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2906      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2907      371605 :          idata = idata + 1
    2908      371605 :          data_tmp = full_data(idata)
    2909      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2910      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2911      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2912      371605 :          idata = idata + 1
    2913      371605 :          data_tmp = full_data(idata)
    2914      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2915      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2916      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2917      371605 :          idata = idata + 1
    2918      371605 :          data_tmp = full_data(idata)
    2919      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2920      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2921      371605 :          pack_tmp = ISHFT(pack_tmp, -3)
    2922      371605 :          idata = idata + 1
    2923      371605 :          data_tmp = full_data(idata)
    2924      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2925      371605 :          data_tmp = IAND(data_tmp, mask_left(3))
    2926      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2927      371605 :          ipack = ipack + 1
    2928      371605 :          packed_data(ipack) = pack_tmp
    2929      371605 :          data_tmp = full_data(idata)
    2930      371605 :          pack_tmp = ISHFT(data_tmp, 62)
    2931      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2932      371605 :          idata = idata + 1
    2933      371605 :          data_tmp = full_data(idata)
    2934      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2935      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2936      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2937      371605 :          idata = idata + 1
    2938      371605 :          data_tmp = full_data(idata)
    2939      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2940      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2941      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2942      371605 :          idata = idata + 1
    2943      371605 :          data_tmp = full_data(idata)
    2944      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2945      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2946      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2947      371605 :          idata = idata + 1
    2948      371605 :          data_tmp = full_data(idata)
    2949      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2950      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2951      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2952      371605 :          idata = idata + 1
    2953      371605 :          data_tmp = full_data(idata)
    2954      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2955      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2956      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2957      371605 :          idata = idata + 1
    2958      371605 :          data_tmp = full_data(idata)
    2959      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2960      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2961      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2962      371605 :          idata = idata + 1
    2963      371605 :          data_tmp = full_data(idata)
    2964      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2965      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2966      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2967      371605 :          idata = idata + 1
    2968      371605 :          data_tmp = full_data(idata)
    2969      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2970      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2971      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2972      371605 :          idata = idata + 1
    2973      371605 :          data_tmp = full_data(idata)
    2974      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2975      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2976      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2977      371605 :          idata = idata + 1
    2978      371605 :          data_tmp = full_data(idata)
    2979      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2980      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2981      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2982      371605 :          idata = idata + 1
    2983      371605 :          data_tmp = full_data(idata)
    2984      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2985      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2986      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    2987      371605 :          idata = idata + 1
    2988      371605 :          data_tmp = full_data(idata)
    2989      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2990      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2991      371605 :          pack_tmp = ISHFT(pack_tmp, -2)
    2992      371605 :          idata = idata + 1
    2993      371605 :          data_tmp = full_data(idata)
    2994      371605 :          data_tmp = ISHFT(data_tmp, 59)
    2995      371605 :          data_tmp = IAND(data_tmp, mask_left(2))
    2996      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2997      371605 :          ipack = ipack + 1
    2998      371605 :          packed_data(ipack) = pack_tmp
    2999      371605 :          data_tmp = full_data(idata)
    3000      371605 :          pack_tmp = ISHFT(data_tmp, 61)
    3001      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    3002      371605 :          idata = idata + 1
    3003      371605 :          data_tmp = full_data(idata)
    3004      371605 :          data_tmp = ISHFT(data_tmp, 59)
    3005      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3006      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    3007      371605 :          idata = idata + 1
    3008      371605 :          data_tmp = full_data(idata)
    3009      371605 :          data_tmp = ISHFT(data_tmp, 59)
    3010      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3011      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    3012      371605 :          idata = idata + 1
    3013      371605 :          data_tmp = full_data(idata)
    3014      371605 :          data_tmp = ISHFT(data_tmp, 59)
    3015      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3016      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    3017      371605 :          idata = idata + 1
    3018      371605 :          data_tmp = full_data(idata)
    3019      371605 :          data_tmp = ISHFT(data_tmp, 59)
    3020      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3021      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    3022      371605 :          idata = idata + 1
    3023      371605 :          data_tmp = full_data(idata)
    3024      371605 :          data_tmp = ISHFT(data_tmp, 59)
    3025      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3026      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    3027      371605 :          idata = idata + 1
    3028      371605 :          data_tmp = full_data(idata)
    3029      371605 :          data_tmp = ISHFT(data_tmp, 59)
    3030      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3031      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    3032      371605 :          idata = idata + 1
    3033      371605 :          data_tmp = full_data(idata)
    3034      371605 :          data_tmp = ISHFT(data_tmp, 59)
    3035      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3036      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    3037      371605 :          idata = idata + 1
    3038      371605 :          data_tmp = full_data(idata)
    3039      371605 :          data_tmp = ISHFT(data_tmp, 59)
    3040      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3041      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    3042      371605 :          idata = idata + 1
    3043      371605 :          data_tmp = full_data(idata)
    3044      371605 :          data_tmp = ISHFT(data_tmp, 59)
    3045      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3046      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    3047      371605 :          idata = idata + 1
    3048      371605 :          data_tmp = full_data(idata)
    3049      371605 :          data_tmp = ISHFT(data_tmp, 59)
    3050      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3051      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    3052      371605 :          idata = idata + 1
    3053      371605 :          data_tmp = full_data(idata)
    3054      371605 :          data_tmp = ISHFT(data_tmp, 59)
    3055      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3056      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    3057      371605 :          idata = idata + 1
    3058      371605 :          data_tmp = full_data(idata)
    3059      371605 :          data_tmp = ISHFT(data_tmp, 59)
    3060      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3061      371605 :          pack_tmp = ISHFT(pack_tmp, -1)
    3062      371605 :          idata = idata + 1
    3063      371605 :          data_tmp = full_data(idata)
    3064      371605 :          data_tmp = ISHFT(data_tmp, 59)
    3065      371605 :          data_tmp = IAND(data_tmp, mask_left(1))
    3066      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3067      371605 :          ipack = ipack + 1
    3068      371605 :          packed_data(ipack) = pack_tmp
    3069      371605 :          data_tmp = full_data(idata)
    3070      371605 :          pack_tmp = ISHFT(data_tmp, 60)
    3071      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    3072      371605 :          idata = idata + 1
    3073      371605 :          data_tmp = full_data(idata)
    3074      371605 :          data_tmp = ISHFT(data_tmp, 59)
    3075      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3076      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    3077      371605 :          idata = idata + 1
    3078      371605 :          data_tmp = full_data(idata)
    3079      371605 :          data_tmp = ISHFT(data_tmp, 59)
    3080      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3081      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    3082      371605 :          idata = idata + 1
    3083      371605 :          data_tmp = full_data(idata)
    3084      371605 :          data_tmp = ISHFT(data_tmp, 59)
    3085      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3086      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    3087      371605 :          idata = idata + 1
    3088      371605 :          data_tmp = full_data(idata)
    3089      371605 :          data_tmp = ISHFT(data_tmp, 59)
    3090      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3091      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    3092      371605 :          idata = idata + 1
    3093      371605 :          data_tmp = full_data(idata)
    3094      371605 :          data_tmp = ISHFT(data_tmp, 59)
    3095      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3096      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    3097      371605 :          idata = idata + 1
    3098      371605 :          data_tmp = full_data(idata)
    3099      371605 :          data_tmp = ISHFT(data_tmp, 59)
    3100      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3101      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    3102      371605 :          idata = idata + 1
    3103      371605 :          data_tmp = full_data(idata)
    3104      371605 :          data_tmp = ISHFT(data_tmp, 59)
    3105      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3106      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    3107      371605 :          idata = idata + 1
    3108      371605 :          data_tmp = full_data(idata)
    3109      371605 :          data_tmp = ISHFT(data_tmp, 59)
    3110      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3111      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    3112      371605 :          idata = idata + 1
    3113      371605 :          data_tmp = full_data(idata)
    3114      371605 :          data_tmp = ISHFT(data_tmp, 59)
    3115      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3116      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    3117      371605 :          idata = idata + 1
    3118      371605 :          data_tmp = full_data(idata)
    3119      371605 :          data_tmp = ISHFT(data_tmp, 59)
    3120      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3121      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    3122      371605 :          idata = idata + 1
    3123      371605 :          data_tmp = full_data(idata)
    3124      371605 :          data_tmp = ISHFT(data_tmp, 59)
    3125      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3126      371605 :          pack_tmp = ISHFT(pack_tmp, -5)
    3127      371605 :          idata = idata + 1
    3128      371605 :          data_tmp = full_data(idata)
    3129      371605 :          data_tmp = ISHFT(data_tmp, 59)
    3130      371605 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3131             :          pack_tmp = ISHFT(pack_tmp, 0)
    3132      371605 :          pack_tmp = ISHFT(pack_tmp, 0)
    3133      371605 :          ipack = ipack + 1
    3134      371606 :          packed_data(ipack) = pack_tmp
    3135             :       END DO
    3136       23239 :       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       23239 :    END SUBROUTINE ints2bits_5
    3140             : 
    3141             : ! **************************************************************************************************
    3142             : !> \brief ...
    3143             : !> \param Ndata ...
    3144             : !> \param packed_data ...
    3145             : !> \param full_data ...
    3146             : ! **************************************************************************************************
    3147       94932 :    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       94932 :       ipack = 0
    3158       94932 :       idata = 0
    3159       94932 :       pack_tmp = 0
    3160       94932 :       Ndata_rep = (Ndata/64)*64
    3161       94932 :       DO kdata = 1, Ndata_rep, 64
    3162     1517804 :          idata = idata + 1
    3163     1517804 :          data_tmp = ISHFT(pack_tmp, 5)
    3164     1517804 :          ipack = ipack + 1
    3165     1517804 :          pack_tmp = packed_data(ipack)
    3166     1517804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
    3167     1517804 :          pack_tmp = ISHFT(pack_tmp, -5)
    3168     1517804 :          idata = idata + 1
    3169     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3170     1517804 :          full_data(idata) = data_tmp
    3171     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3172     1517804 :          idata = idata + 1
    3173     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3174     1517804 :          full_data(idata) = data_tmp
    3175     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3176     1517804 :          idata = idata + 1
    3177     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3178     1517804 :          full_data(idata) = data_tmp
    3179     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3180     1517804 :          idata = idata + 1
    3181     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3182     1517804 :          full_data(idata) = data_tmp
    3183     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3184     1517804 :          idata = idata + 1
    3185     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3186     1517804 :          full_data(idata) = data_tmp
    3187     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3188     1517804 :          idata = idata + 1
    3189     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3190     1517804 :          full_data(idata) = data_tmp
    3191     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3192     1517804 :          idata = idata + 1
    3193     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3194     1517804 :          full_data(idata) = data_tmp
    3195     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3196     1517804 :          idata = idata + 1
    3197     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3198     1517804 :          full_data(idata) = data_tmp
    3199     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3200     1517804 :          idata = idata + 1
    3201     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3202     1517804 :          full_data(idata) = data_tmp
    3203     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3204     1517804 :          idata = idata + 1
    3205     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3206     1517804 :          full_data(idata) = data_tmp
    3207     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3208     1517804 :          idata = idata + 1
    3209     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3210     1517804 :          full_data(idata) = data_tmp
    3211     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3212     1517804 :          idata = idata + 1
    3213     1517804 :          data_tmp = ISHFT(pack_tmp, 1)
    3214     1517804 :          ipack = ipack + 1
    3215     1517804 :          pack_tmp = packed_data(ipack)
    3216     1517804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    3217     1517804 :          pack_tmp = ISHFT(pack_tmp, -1)
    3218     1517804 :          idata = idata + 1
    3219     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3220     1517804 :          full_data(idata) = data_tmp
    3221     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3222     1517804 :          idata = idata + 1
    3223     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3224     1517804 :          full_data(idata) = data_tmp
    3225     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3226     1517804 :          idata = idata + 1
    3227     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3228     1517804 :          full_data(idata) = data_tmp
    3229     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3230     1517804 :          idata = idata + 1
    3231     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3232     1517804 :          full_data(idata) = data_tmp
    3233     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3234     1517804 :          idata = idata + 1
    3235     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3236     1517804 :          full_data(idata) = data_tmp
    3237     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3238     1517804 :          idata = idata + 1
    3239     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3240     1517804 :          full_data(idata) = data_tmp
    3241     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3242     1517804 :          idata = idata + 1
    3243     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3244     1517804 :          full_data(idata) = data_tmp
    3245     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3246     1517804 :          idata = idata + 1
    3247     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3248     1517804 :          full_data(idata) = data_tmp
    3249     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3250     1517804 :          idata = idata + 1
    3251     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3252     1517804 :          full_data(idata) = data_tmp
    3253     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3254     1517804 :          idata = idata + 1
    3255     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3256     1517804 :          full_data(idata) = data_tmp
    3257     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3258     1517804 :          idata = idata + 1
    3259     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3260     1517804 :          full_data(idata) = data_tmp
    3261     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3262     1517804 :          idata = idata + 1
    3263     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3264     1517804 :          full_data(idata) = data_tmp
    3265     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3266     1517804 :          idata = idata + 1
    3267     1517804 :          data_tmp = ISHFT(pack_tmp, 2)
    3268     1517804 :          ipack = ipack + 1
    3269     1517804 :          pack_tmp = packed_data(ipack)
    3270     1517804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    3271     1517804 :          pack_tmp = ISHFT(pack_tmp, -2)
    3272     1517804 :          idata = idata + 1
    3273     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3274     1517804 :          full_data(idata) = data_tmp
    3275     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3276     1517804 :          idata = idata + 1
    3277     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3278     1517804 :          full_data(idata) = data_tmp
    3279     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3280     1517804 :          idata = idata + 1
    3281     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3282     1517804 :          full_data(idata) = data_tmp
    3283     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3284     1517804 :          idata = idata + 1
    3285     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3286     1517804 :          full_data(idata) = data_tmp
    3287     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3288     1517804 :          idata = idata + 1
    3289     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3290     1517804 :          full_data(idata) = data_tmp
    3291     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3292     1517804 :          idata = idata + 1
    3293     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3294     1517804 :          full_data(idata) = data_tmp
    3295     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3296     1517804 :          idata = idata + 1
    3297     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3298     1517804 :          full_data(idata) = data_tmp
    3299     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3300     1517804 :          idata = idata + 1
    3301     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3302     1517804 :          full_data(idata) = data_tmp
    3303     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3304     1517804 :          idata = idata + 1
    3305     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3306     1517804 :          full_data(idata) = data_tmp
    3307     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3308     1517804 :          idata = idata + 1
    3309     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3310     1517804 :          full_data(idata) = data_tmp
    3311     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3312     1517804 :          idata = idata + 1
    3313     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3314     1517804 :          full_data(idata) = data_tmp
    3315     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3316     1517804 :          idata = idata + 1
    3317     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3318     1517804 :          full_data(idata) = data_tmp
    3319     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3320     1517804 :          idata = idata + 1
    3321     1517804 :          data_tmp = ISHFT(pack_tmp, 3)
    3322     1517804 :          ipack = ipack + 1
    3323     1517804 :          pack_tmp = packed_data(ipack)
    3324     1517804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    3325     1517804 :          pack_tmp = ISHFT(pack_tmp, -3)
    3326     1517804 :          idata = idata + 1
    3327     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3328     1517804 :          full_data(idata) = data_tmp
    3329     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3330     1517804 :          idata = idata + 1
    3331     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3332     1517804 :          full_data(idata) = data_tmp
    3333     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3334     1517804 :          idata = idata + 1
    3335     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3336     1517804 :          full_data(idata) = data_tmp
    3337     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3338     1517804 :          idata = idata + 1
    3339     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3340     1517804 :          full_data(idata) = data_tmp
    3341     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3342     1517804 :          idata = idata + 1
    3343     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3344     1517804 :          full_data(idata) = data_tmp
    3345     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3346     1517804 :          idata = idata + 1
    3347     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3348     1517804 :          full_data(idata) = data_tmp
    3349     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3350     1517804 :          idata = idata + 1
    3351     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3352     1517804 :          full_data(idata) = data_tmp
    3353     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3354     1517804 :          idata = idata + 1
    3355     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3356     1517804 :          full_data(idata) = data_tmp
    3357     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3358     1517804 :          idata = idata + 1
    3359     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3360     1517804 :          full_data(idata) = data_tmp
    3361     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3362     1517804 :          idata = idata + 1
    3363     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3364     1517804 :          full_data(idata) = data_tmp
    3365     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3366     1517804 :          idata = idata + 1
    3367     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3368     1517804 :          full_data(idata) = data_tmp
    3369     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3370     1517804 :          idata = idata + 1
    3371     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3372     1517804 :          full_data(idata) = data_tmp
    3373     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3374     1517804 :          idata = idata + 1
    3375     1517804 :          data_tmp = ISHFT(pack_tmp, 4)
    3376     1517804 :          ipack = ipack + 1
    3377     1517804 :          pack_tmp = packed_data(ipack)
    3378     1517804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    3379     1517804 :          pack_tmp = ISHFT(pack_tmp, -4)
    3380     1517804 :          idata = idata + 1
    3381     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3382     1517804 :          full_data(idata) = data_tmp
    3383     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3384     1517804 :          idata = idata + 1
    3385     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3386     1517804 :          full_data(idata) = data_tmp
    3387     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3388     1517804 :          idata = idata + 1
    3389     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3390     1517804 :          full_data(idata) = data_tmp
    3391     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3392     1517804 :          idata = idata + 1
    3393     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3394     1517804 :          full_data(idata) = data_tmp
    3395     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3396     1517804 :          idata = idata + 1
    3397     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3398     1517804 :          full_data(idata) = data_tmp
    3399     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3400     1517804 :          idata = idata + 1
    3401     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3402     1517804 :          full_data(idata) = data_tmp
    3403     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3404     1517804 :          idata = idata + 1
    3405     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3406     1517804 :          full_data(idata) = data_tmp
    3407     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3408     1517804 :          idata = idata + 1
    3409     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3410     1517804 :          full_data(idata) = data_tmp
    3411     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3412     1517804 :          idata = idata + 1
    3413     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3414     1517804 :          full_data(idata) = data_tmp
    3415     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3416     1517804 :          idata = idata + 1
    3417     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3418     1517804 :          full_data(idata) = data_tmp
    3419     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3420     1517804 :          idata = idata + 1
    3421     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3422     1517804 :          full_data(idata) = data_tmp
    3423     1517804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3424     1517804 :          idata = idata + 1
    3425     1517804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3426     1517804 :          full_data(idata) = data_tmp
    3427     1517811 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3428             :       END DO
    3429       94932 :       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       94932 :    END SUBROUTINE bits2ints_5
    3433             : 
    3434             : ! **************************************************************************************************
    3435             : !> \brief ...
    3436             : !> \param Ndata ...
    3437             : !> \param packed_data ...
    3438             : !> \param full_data ...
    3439             : ! **************************************************************************************************
    3440       50173 :    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       50173 :       idata = 0
    3451       50173 :       ipack = 0
    3452       50173 :       Ndata_rep = (Ndata/64)*64
    3453       50173 :       DO kdata = 1, Ndata_rep, 64
    3454      799028 :          pack_tmp = 0
    3455      799028 :          idata = idata + 1
    3456      799028 :          data_tmp = full_data(idata)
    3457      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3458      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3459      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3460      799028 :          idata = idata + 1
    3461      799028 :          data_tmp = full_data(idata)
    3462      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3463      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3464      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3465      799028 :          idata = idata + 1
    3466      799028 :          data_tmp = full_data(idata)
    3467      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3468      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3469      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3470      799028 :          idata = idata + 1
    3471      799028 :          data_tmp = full_data(idata)
    3472      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3473      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3474      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3475      799028 :          idata = idata + 1
    3476      799028 :          data_tmp = full_data(idata)
    3477      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3478      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3479      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3480      799028 :          idata = idata + 1
    3481      799028 :          data_tmp = full_data(idata)
    3482      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3483      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3484      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3485      799028 :          idata = idata + 1
    3486      799028 :          data_tmp = full_data(idata)
    3487      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3488      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3489      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3490      799028 :          idata = idata + 1
    3491      799028 :          data_tmp = full_data(idata)
    3492      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3493      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3494      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3495      799028 :          idata = idata + 1
    3496      799028 :          data_tmp = full_data(idata)
    3497      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3498      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3499      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3500      799028 :          idata = idata + 1
    3501      799028 :          data_tmp = full_data(idata)
    3502      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3503      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3504      799028 :          pack_tmp = ISHFT(pack_tmp, -4)
    3505      799028 :          idata = idata + 1
    3506      799028 :          data_tmp = full_data(idata)
    3507      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3508      799028 :          data_tmp = IAND(data_tmp, mask_left(4))
    3509      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3510      799028 :          ipack = ipack + 1
    3511      799028 :          packed_data(ipack) = pack_tmp
    3512      799028 :          data_tmp = full_data(idata)
    3513      799028 :          pack_tmp = ISHFT(data_tmp, 62)
    3514      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3515      799028 :          idata = idata + 1
    3516      799028 :          data_tmp = full_data(idata)
    3517      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3518      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3519      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3520      799028 :          idata = idata + 1
    3521      799028 :          data_tmp = full_data(idata)
    3522      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3523      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3524      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3525      799028 :          idata = idata + 1
    3526      799028 :          data_tmp = full_data(idata)
    3527      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3528      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3529      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3530      799028 :          idata = idata + 1
    3531      799028 :          data_tmp = full_data(idata)
    3532      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3533      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3534      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3535      799028 :          idata = idata + 1
    3536      799028 :          data_tmp = full_data(idata)
    3537      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3538      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3539      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3540      799028 :          idata = idata + 1
    3541      799028 :          data_tmp = full_data(idata)
    3542      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3543      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3544      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3545      799028 :          idata = idata + 1
    3546      799028 :          data_tmp = full_data(idata)
    3547      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3548      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3549      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3550      799028 :          idata = idata + 1
    3551      799028 :          data_tmp = full_data(idata)
    3552      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3553      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3554      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3555      799028 :          idata = idata + 1
    3556      799028 :          data_tmp = full_data(idata)
    3557      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3558      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3559      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3560      799028 :          idata = idata + 1
    3561      799028 :          data_tmp = full_data(idata)
    3562      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3563      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3564      799028 :          pack_tmp = ISHFT(pack_tmp, -2)
    3565      799028 :          idata = idata + 1
    3566      799028 :          data_tmp = full_data(idata)
    3567      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3568      799028 :          data_tmp = IAND(data_tmp, mask_left(2))
    3569      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3570      799028 :          ipack = ipack + 1
    3571      799028 :          packed_data(ipack) = pack_tmp
    3572      799028 :          data_tmp = full_data(idata)
    3573      799028 :          pack_tmp = ISHFT(data_tmp, 60)
    3574      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3575      799028 :          idata = idata + 1
    3576      799028 :          data_tmp = full_data(idata)
    3577      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3578      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3579      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3580      799028 :          idata = idata + 1
    3581      799028 :          data_tmp = full_data(idata)
    3582      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3583      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3584      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3585      799028 :          idata = idata + 1
    3586      799028 :          data_tmp = full_data(idata)
    3587      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3588      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3589      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3590      799028 :          idata = idata + 1
    3591      799028 :          data_tmp = full_data(idata)
    3592      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3593      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3594      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3595      799028 :          idata = idata + 1
    3596      799028 :          data_tmp = full_data(idata)
    3597      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3598      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3599      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3600      799028 :          idata = idata + 1
    3601      799028 :          data_tmp = full_data(idata)
    3602      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3603      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3604      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3605      799028 :          idata = idata + 1
    3606      799028 :          data_tmp = full_data(idata)
    3607      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3608      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3609      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3610      799028 :          idata = idata + 1
    3611      799028 :          data_tmp = full_data(idata)
    3612      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3613      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3614      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3615      799028 :          idata = idata + 1
    3616      799028 :          data_tmp = full_data(idata)
    3617      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3618      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3619      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3620      799028 :          idata = idata + 1
    3621      799028 :          data_tmp = full_data(idata)
    3622      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3623      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3624      799028 :          pack_tmp = ISHFT(pack_tmp, 0)
    3625      799028 :          idata = idata + 1
    3626      799028 :          data_tmp = full_data(idata)
    3627             :          data_tmp = ISHFT(data_tmp, 58)
    3628      799028 :          data_tmp = IAND(data_tmp, mask_left(0))
    3629      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3630      799028 :          ipack = ipack + 1
    3631      799028 :          packed_data(ipack) = pack_tmp
    3632      799028 :          data_tmp = full_data(idata)
    3633      799028 :          pack_tmp = ISHFT(data_tmp, 58)
    3634      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3635      799028 :          idata = idata + 1
    3636      799028 :          data_tmp = full_data(idata)
    3637      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3638      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3639      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3640      799028 :          idata = idata + 1
    3641      799028 :          data_tmp = full_data(idata)
    3642      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3643      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3644      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3645      799028 :          idata = idata + 1
    3646      799028 :          data_tmp = full_data(idata)
    3647      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3648      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3649      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3650      799028 :          idata = idata + 1
    3651      799028 :          data_tmp = full_data(idata)
    3652      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3653      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3654      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3655      799028 :          idata = idata + 1
    3656      799028 :          data_tmp = full_data(idata)
    3657      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3658      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3659      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3660      799028 :          idata = idata + 1
    3661      799028 :          data_tmp = full_data(idata)
    3662      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3663      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3664      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3665      799028 :          idata = idata + 1
    3666      799028 :          data_tmp = full_data(idata)
    3667      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3668      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3669      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3670      799028 :          idata = idata + 1
    3671      799028 :          data_tmp = full_data(idata)
    3672      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3673      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3674      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3675      799028 :          idata = idata + 1
    3676      799028 :          data_tmp = full_data(idata)
    3677      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3678      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3679      799028 :          pack_tmp = ISHFT(pack_tmp, -4)
    3680      799028 :          idata = idata + 1
    3681      799028 :          data_tmp = full_data(idata)
    3682      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3683      799028 :          data_tmp = IAND(data_tmp, mask_left(4))
    3684      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3685      799028 :          ipack = ipack + 1
    3686      799028 :          packed_data(ipack) = pack_tmp
    3687      799028 :          data_tmp = full_data(idata)
    3688      799028 :          pack_tmp = ISHFT(data_tmp, 62)
    3689      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3690      799028 :          idata = idata + 1
    3691      799028 :          data_tmp = full_data(idata)
    3692      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3693      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3694      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3695      799028 :          idata = idata + 1
    3696      799028 :          data_tmp = full_data(idata)
    3697      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3698      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3699      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3700      799028 :          idata = idata + 1
    3701      799028 :          data_tmp = full_data(idata)
    3702      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3703      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3704      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3705      799028 :          idata = idata + 1
    3706      799028 :          data_tmp = full_data(idata)
    3707      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3708      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3709      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3710      799028 :          idata = idata + 1
    3711      799028 :          data_tmp = full_data(idata)
    3712      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3713      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3714      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3715      799028 :          idata = idata + 1
    3716      799028 :          data_tmp = full_data(idata)
    3717      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3718      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3719      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3720      799028 :          idata = idata + 1
    3721      799028 :          data_tmp = full_data(idata)
    3722      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3723      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3724      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3725      799028 :          idata = idata + 1
    3726      799028 :          data_tmp = full_data(idata)
    3727      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3728      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3729      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3730      799028 :          idata = idata + 1
    3731      799028 :          data_tmp = full_data(idata)
    3732      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3733      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3734      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3735      799028 :          idata = idata + 1
    3736      799028 :          data_tmp = full_data(idata)
    3737      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3738      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3739      799028 :          pack_tmp = ISHFT(pack_tmp, -2)
    3740      799028 :          idata = idata + 1
    3741      799028 :          data_tmp = full_data(idata)
    3742      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3743      799028 :          data_tmp = IAND(data_tmp, mask_left(2))
    3744      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3745      799028 :          ipack = ipack + 1
    3746      799028 :          packed_data(ipack) = pack_tmp
    3747      799028 :          data_tmp = full_data(idata)
    3748      799028 :          pack_tmp = ISHFT(data_tmp, 60)
    3749      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3750      799028 :          idata = idata + 1
    3751      799028 :          data_tmp = full_data(idata)
    3752      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3753      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3754      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3755      799028 :          idata = idata + 1
    3756      799028 :          data_tmp = full_data(idata)
    3757      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3758      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3759      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3760      799028 :          idata = idata + 1
    3761      799028 :          data_tmp = full_data(idata)
    3762      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3763      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3764      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3765      799028 :          idata = idata + 1
    3766      799028 :          data_tmp = full_data(idata)
    3767      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3768      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3769      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3770      799028 :          idata = idata + 1
    3771      799028 :          data_tmp = full_data(idata)
    3772      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3773      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3774      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3775      799028 :          idata = idata + 1
    3776      799028 :          data_tmp = full_data(idata)
    3777      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3778      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3779      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3780      799028 :          idata = idata + 1
    3781      799028 :          data_tmp = full_data(idata)
    3782      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3783      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3784      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3785      799028 :          idata = idata + 1
    3786      799028 :          data_tmp = full_data(idata)
    3787      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3788      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3789      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3790      799028 :          idata = idata + 1
    3791      799028 :          data_tmp = full_data(idata)
    3792      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3793      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3794      799028 :          pack_tmp = ISHFT(pack_tmp, -6)
    3795      799028 :          idata = idata + 1
    3796      799028 :          data_tmp = full_data(idata)
    3797      799028 :          data_tmp = ISHFT(data_tmp, 58)
    3798      799028 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3799             :          pack_tmp = ISHFT(pack_tmp, 0)
    3800      799028 :          pack_tmp = ISHFT(pack_tmp, 0)
    3801      799028 :          ipack = ipack + 1
    3802      799057 :          packed_data(ipack) = pack_tmp
    3803             :       END DO
    3804       50173 :       IF (Ndata_rep < Ndata) THEN
    3805         440 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    3806             :       END IF
    3807       50173 :    END SUBROUTINE ints2bits_6
    3808             : 
    3809             : ! **************************************************************************************************
    3810             : !> \brief ...
    3811             : !> \param Ndata ...
    3812             : !> \param packed_data ...
    3813             : !> \param full_data ...
    3814             : ! **************************************************************************************************
    3815      239960 :    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      239960 :       ipack = 0
    3826      239960 :       idata = 0
    3827      239960 :       pack_tmp = 0
    3828      239960 :       Ndata_rep = (Ndata/64)*64
    3829      239960 :       DO kdata = 1, Ndata_rep, 64
    3830     3809967 :          idata = idata + 1
    3831     3809967 :          data_tmp = ISHFT(pack_tmp, 6)
    3832     3809967 :          ipack = ipack + 1
    3833     3809967 :          pack_tmp = packed_data(ipack)
    3834     3809967 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    3835     3809967 :          pack_tmp = ISHFT(pack_tmp, -6)
    3836     3809967 :          idata = idata + 1
    3837     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3838     3809967 :          full_data(idata) = data_tmp
    3839     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3840     3809967 :          idata = idata + 1
    3841     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3842     3809967 :          full_data(idata) = data_tmp
    3843     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3844     3809967 :          idata = idata + 1
    3845     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3846     3809967 :          full_data(idata) = data_tmp
    3847     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3848     3809967 :          idata = idata + 1
    3849     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3850     3809967 :          full_data(idata) = data_tmp
    3851     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3852     3809967 :          idata = idata + 1
    3853     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3854     3809967 :          full_data(idata) = data_tmp
    3855     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3856     3809967 :          idata = idata + 1
    3857     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3858     3809967 :          full_data(idata) = data_tmp
    3859     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3860     3809967 :          idata = idata + 1
    3861     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3862     3809967 :          full_data(idata) = data_tmp
    3863     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3864     3809967 :          idata = idata + 1
    3865     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3866     3809967 :          full_data(idata) = data_tmp
    3867     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3868     3809967 :          idata = idata + 1
    3869     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3870     3809967 :          full_data(idata) = data_tmp
    3871     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3872     3809967 :          idata = idata + 1
    3873     3809967 :          data_tmp = ISHFT(pack_tmp, 2)
    3874     3809967 :          ipack = ipack + 1
    3875     3809967 :          pack_tmp = packed_data(ipack)
    3876     3809967 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    3877     3809967 :          pack_tmp = ISHFT(pack_tmp, -2)
    3878     3809967 :          idata = idata + 1
    3879     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3880     3809967 :          full_data(idata) = data_tmp
    3881     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3882     3809967 :          idata = idata + 1
    3883     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3884     3809967 :          full_data(idata) = data_tmp
    3885     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3886     3809967 :          idata = idata + 1
    3887     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3888     3809967 :          full_data(idata) = data_tmp
    3889     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3890     3809967 :          idata = idata + 1
    3891     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3892     3809967 :          full_data(idata) = data_tmp
    3893     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3894     3809967 :          idata = idata + 1
    3895     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3896     3809967 :          full_data(idata) = data_tmp
    3897     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3898     3809967 :          idata = idata + 1
    3899     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3900     3809967 :          full_data(idata) = data_tmp
    3901     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3902     3809967 :          idata = idata + 1
    3903     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3904     3809967 :          full_data(idata) = data_tmp
    3905     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3906     3809967 :          idata = idata + 1
    3907     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3908     3809967 :          full_data(idata) = data_tmp
    3909     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3910     3809967 :          idata = idata + 1
    3911     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3912     3809967 :          full_data(idata) = data_tmp
    3913     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3914     3809967 :          idata = idata + 1
    3915     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3916     3809967 :          full_data(idata) = data_tmp
    3917     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3918     3809967 :          idata = idata + 1
    3919     3809967 :          data_tmp = ISHFT(pack_tmp, 4)
    3920     3809967 :          ipack = ipack + 1
    3921     3809967 :          pack_tmp = packed_data(ipack)
    3922     3809967 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    3923     3809967 :          pack_tmp = ISHFT(pack_tmp, -4)
    3924     3809967 :          idata = idata + 1
    3925     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3926     3809967 :          full_data(idata) = data_tmp
    3927     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3928     3809967 :          idata = idata + 1
    3929     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3930     3809967 :          full_data(idata) = data_tmp
    3931     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3932     3809967 :          idata = idata + 1
    3933     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3934     3809967 :          full_data(idata) = data_tmp
    3935     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3936     3809967 :          idata = idata + 1
    3937     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3938     3809967 :          full_data(idata) = data_tmp
    3939     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3940     3809967 :          idata = idata + 1
    3941     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3942     3809967 :          full_data(idata) = data_tmp
    3943     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3944     3809967 :          idata = idata + 1
    3945     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3946     3809967 :          full_data(idata) = data_tmp
    3947     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3948     3809967 :          idata = idata + 1
    3949     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3950     3809967 :          full_data(idata) = data_tmp
    3951     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3952     3809967 :          idata = idata + 1
    3953     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3954     3809967 :          full_data(idata) = data_tmp
    3955     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3956     3809967 :          idata = idata + 1
    3957     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3958     3809967 :          full_data(idata) = data_tmp
    3959     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3960     3809967 :          idata = idata + 1
    3961     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3962     3809967 :          full_data(idata) = data_tmp
    3963     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3964     3809967 :          idata = idata + 1
    3965     3809967 :          data_tmp = ISHFT(pack_tmp, 6)
    3966     3809967 :          ipack = ipack + 1
    3967     3809967 :          pack_tmp = packed_data(ipack)
    3968     3809967 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    3969     3809967 :          pack_tmp = ISHFT(pack_tmp, -6)
    3970     3809967 :          idata = idata + 1
    3971     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3972     3809967 :          full_data(idata) = data_tmp
    3973     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3974     3809967 :          idata = idata + 1
    3975     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3976     3809967 :          full_data(idata) = data_tmp
    3977     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3978     3809967 :          idata = idata + 1
    3979     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3980     3809967 :          full_data(idata) = data_tmp
    3981     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3982     3809967 :          idata = idata + 1
    3983     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3984     3809967 :          full_data(idata) = data_tmp
    3985     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3986     3809967 :          idata = idata + 1
    3987     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3988     3809967 :          full_data(idata) = data_tmp
    3989     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3990     3809967 :          idata = idata + 1
    3991     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3992     3809967 :          full_data(idata) = data_tmp
    3993     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3994     3809967 :          idata = idata + 1
    3995     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3996     3809967 :          full_data(idata) = data_tmp
    3997     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3998     3809967 :          idata = idata + 1
    3999     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4000     3809967 :          full_data(idata) = data_tmp
    4001     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4002     3809967 :          idata = idata + 1
    4003     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4004     3809967 :          full_data(idata) = data_tmp
    4005     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4006     3809967 :          idata = idata + 1
    4007     3809967 :          data_tmp = ISHFT(pack_tmp, 2)
    4008     3809967 :          ipack = ipack + 1
    4009     3809967 :          pack_tmp = packed_data(ipack)
    4010     3809967 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    4011     3809967 :          pack_tmp = ISHFT(pack_tmp, -2)
    4012     3809967 :          idata = idata + 1
    4013     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4014     3809967 :          full_data(idata) = data_tmp
    4015     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4016     3809967 :          idata = idata + 1
    4017     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4018     3809967 :          full_data(idata) = data_tmp
    4019     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4020     3809967 :          idata = idata + 1
    4021     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4022     3809967 :          full_data(idata) = data_tmp
    4023     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4024     3809967 :          idata = idata + 1
    4025     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4026     3809967 :          full_data(idata) = data_tmp
    4027     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4028     3809967 :          idata = idata + 1
    4029     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4030     3809967 :          full_data(idata) = data_tmp
    4031     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4032     3809967 :          idata = idata + 1
    4033     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4034     3809967 :          full_data(idata) = data_tmp
    4035     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4036     3809967 :          idata = idata + 1
    4037     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4038     3809967 :          full_data(idata) = data_tmp
    4039     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4040     3809967 :          idata = idata + 1
    4041     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4042     3809967 :          full_data(idata) = data_tmp
    4043     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4044     3809967 :          idata = idata + 1
    4045     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4046     3809967 :          full_data(idata) = data_tmp
    4047     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4048     3809967 :          idata = idata + 1
    4049     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4050     3809967 :          full_data(idata) = data_tmp
    4051     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4052     3809967 :          idata = idata + 1
    4053     3809967 :          data_tmp = ISHFT(pack_tmp, 4)
    4054     3809967 :          ipack = ipack + 1
    4055     3809967 :          pack_tmp = packed_data(ipack)
    4056     3809967 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    4057     3809967 :          pack_tmp = ISHFT(pack_tmp, -4)
    4058     3809967 :          idata = idata + 1
    4059     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4060     3809967 :          full_data(idata) = data_tmp
    4061     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4062     3809967 :          idata = idata + 1
    4063     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4064     3809967 :          full_data(idata) = data_tmp
    4065     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4066     3809967 :          idata = idata + 1
    4067     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4068     3809967 :          full_data(idata) = data_tmp
    4069     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4070     3809967 :          idata = idata + 1
    4071     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4072     3809967 :          full_data(idata) = data_tmp
    4073     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4074     3809967 :          idata = idata + 1
    4075     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4076     3809967 :          full_data(idata) = data_tmp
    4077     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4078     3809967 :          idata = idata + 1
    4079     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4080     3809967 :          full_data(idata) = data_tmp
    4081     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4082     3809967 :          idata = idata + 1
    4083     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4084     3809967 :          full_data(idata) = data_tmp
    4085     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4086     3809967 :          idata = idata + 1
    4087     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4088     3809967 :          full_data(idata) = data_tmp
    4089     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4090     3809967 :          idata = idata + 1
    4091     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4092     3809967 :          full_data(idata) = data_tmp
    4093     3809967 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4094     3809967 :          idata = idata + 1
    4095     3809967 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4096     3809967 :          full_data(idata) = data_tmp
    4097     3810148 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4098             :       END DO
    4099      239960 :       IF (Ndata_rep < Ndata) THEN
    4100        3458 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    4101             :       END IF
    4102      239960 :    END SUBROUTINE bits2ints_6
    4103             : 
    4104             : ! **************************************************************************************************
    4105             : !> \brief ...
    4106             : !> \param Ndata ...
    4107             : !> \param packed_data ...
    4108             : !> \param full_data ...
    4109             : ! **************************************************************************************************
    4110       23367 :    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       23367 :       idata = 0
    4121       23367 :       ipack = 0
    4122       23367 :       Ndata_rep = (Ndata/64)*64
    4123       23367 :       DO kdata = 1, Ndata_rep, 64
    4124      373330 :          pack_tmp = 0
    4125      373330 :          idata = idata + 1
    4126      373330 :          data_tmp = full_data(idata)
    4127      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4128      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4129      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4130      373330 :          idata = idata + 1
    4131      373330 :          data_tmp = full_data(idata)
    4132      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4133      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4134      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4135      373330 :          idata = idata + 1
    4136      373330 :          data_tmp = full_data(idata)
    4137      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4138      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4139      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4140      373330 :          idata = idata + 1
    4141      373330 :          data_tmp = full_data(idata)
    4142      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4143      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4144      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4145      373330 :          idata = idata + 1
    4146      373330 :          data_tmp = full_data(idata)
    4147      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4148      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4149      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4150      373330 :          idata = idata + 1
    4151      373330 :          data_tmp = full_data(idata)
    4152      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4153      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4154      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4155      373330 :          idata = idata + 1
    4156      373330 :          data_tmp = full_data(idata)
    4157      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4158      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4159      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4160      373330 :          idata = idata + 1
    4161      373330 :          data_tmp = full_data(idata)
    4162      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4163      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4164      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4165      373330 :          idata = idata + 1
    4166      373330 :          data_tmp = full_data(idata)
    4167      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4168      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4169      373330 :          pack_tmp = ISHFT(pack_tmp, -1)
    4170      373330 :          idata = idata + 1
    4171      373330 :          data_tmp = full_data(idata)
    4172      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4173      373330 :          data_tmp = IAND(data_tmp, mask_left(1))
    4174      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4175      373330 :          ipack = ipack + 1
    4176      373330 :          packed_data(ipack) = pack_tmp
    4177      373330 :          data_tmp = full_data(idata)
    4178      373330 :          pack_tmp = ISHFT(data_tmp, 58)
    4179      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4180      373330 :          idata = idata + 1
    4181      373330 :          data_tmp = full_data(idata)
    4182      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4183      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4184      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4185      373330 :          idata = idata + 1
    4186      373330 :          data_tmp = full_data(idata)
    4187      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4188      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4189      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4190      373330 :          idata = idata + 1
    4191      373330 :          data_tmp = full_data(idata)
    4192      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4193      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4194      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4195      373330 :          idata = idata + 1
    4196      373330 :          data_tmp = full_data(idata)
    4197      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4198      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4199      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4200      373330 :          idata = idata + 1
    4201      373330 :          data_tmp = full_data(idata)
    4202      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4203      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4204      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4205      373330 :          idata = idata + 1
    4206      373330 :          data_tmp = full_data(idata)
    4207      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4208      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4209      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4210      373330 :          idata = idata + 1
    4211      373330 :          data_tmp = full_data(idata)
    4212      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4213      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4214      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4215      373330 :          idata = idata + 1
    4216      373330 :          data_tmp = full_data(idata)
    4217      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4218      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4219      373330 :          pack_tmp = ISHFT(pack_tmp, -2)
    4220      373330 :          idata = idata + 1
    4221      373330 :          data_tmp = full_data(idata)
    4222      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4223      373330 :          data_tmp = IAND(data_tmp, mask_left(2))
    4224      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4225      373330 :          ipack = ipack + 1
    4226      373330 :          packed_data(ipack) = pack_tmp
    4227      373330 :          data_tmp = full_data(idata)
    4228      373330 :          pack_tmp = ISHFT(data_tmp, 59)
    4229      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4230      373330 :          idata = idata + 1
    4231      373330 :          data_tmp = full_data(idata)
    4232      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4233      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4234      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4235      373330 :          idata = idata + 1
    4236      373330 :          data_tmp = full_data(idata)
    4237      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4238      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4239      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4240      373330 :          idata = idata + 1
    4241      373330 :          data_tmp = full_data(idata)
    4242      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4243      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4244      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4245      373330 :          idata = idata + 1
    4246      373330 :          data_tmp = full_data(idata)
    4247      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4248      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4249      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4250      373330 :          idata = idata + 1
    4251      373330 :          data_tmp = full_data(idata)
    4252      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4253      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4254      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4255      373330 :          idata = idata + 1
    4256      373330 :          data_tmp = full_data(idata)
    4257      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4258      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4259      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4260      373330 :          idata = idata + 1
    4261      373330 :          data_tmp = full_data(idata)
    4262      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4263      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4264      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4265      373330 :          idata = idata + 1
    4266      373330 :          data_tmp = full_data(idata)
    4267      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4268      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4269      373330 :          pack_tmp = ISHFT(pack_tmp, -3)
    4270      373330 :          idata = idata + 1
    4271      373330 :          data_tmp = full_data(idata)
    4272      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4273      373330 :          data_tmp = IAND(data_tmp, mask_left(3))
    4274      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4275      373330 :          ipack = ipack + 1
    4276      373330 :          packed_data(ipack) = pack_tmp
    4277      373330 :          data_tmp = full_data(idata)
    4278      373330 :          pack_tmp = ISHFT(data_tmp, 60)
    4279      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4280      373330 :          idata = idata + 1
    4281      373330 :          data_tmp = full_data(idata)
    4282      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4283      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4284      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4285      373330 :          idata = idata + 1
    4286      373330 :          data_tmp = full_data(idata)
    4287      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4288      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4289      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4290      373330 :          idata = idata + 1
    4291      373330 :          data_tmp = full_data(idata)
    4292      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4293      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4294      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4295      373330 :          idata = idata + 1
    4296      373330 :          data_tmp = full_data(idata)
    4297      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4298      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4299      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4300      373330 :          idata = idata + 1
    4301      373330 :          data_tmp = full_data(idata)
    4302      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4303      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4304      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4305      373330 :          idata = idata + 1
    4306      373330 :          data_tmp = full_data(idata)
    4307      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4308      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4309      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4310      373330 :          idata = idata + 1
    4311      373330 :          data_tmp = full_data(idata)
    4312      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4313      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4314      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4315      373330 :          idata = idata + 1
    4316      373330 :          data_tmp = full_data(idata)
    4317      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4318      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4319      373330 :          pack_tmp = ISHFT(pack_tmp, -4)
    4320      373330 :          idata = idata + 1
    4321      373330 :          data_tmp = full_data(idata)
    4322      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4323      373330 :          data_tmp = IAND(data_tmp, mask_left(4))
    4324      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4325      373330 :          ipack = ipack + 1
    4326      373330 :          packed_data(ipack) = pack_tmp
    4327      373330 :          data_tmp = full_data(idata)
    4328      373330 :          pack_tmp = ISHFT(data_tmp, 61)
    4329      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4330      373330 :          idata = idata + 1
    4331      373330 :          data_tmp = full_data(idata)
    4332      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4333      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4334      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4335      373330 :          idata = idata + 1
    4336      373330 :          data_tmp = full_data(idata)
    4337      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4338      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4339      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4340      373330 :          idata = idata + 1
    4341      373330 :          data_tmp = full_data(idata)
    4342      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4343      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4344      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4345      373330 :          idata = idata + 1
    4346      373330 :          data_tmp = full_data(idata)
    4347      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4348      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4349      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4350      373330 :          idata = idata + 1
    4351      373330 :          data_tmp = full_data(idata)
    4352      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4353      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4354      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4355      373330 :          idata = idata + 1
    4356      373330 :          data_tmp = full_data(idata)
    4357      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4358      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4359      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4360      373330 :          idata = idata + 1
    4361      373330 :          data_tmp = full_data(idata)
    4362      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4363      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4364      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4365      373330 :          idata = idata + 1
    4366      373330 :          data_tmp = full_data(idata)
    4367      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4368      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4369      373330 :          pack_tmp = ISHFT(pack_tmp, -5)
    4370      373330 :          idata = idata + 1
    4371      373330 :          data_tmp = full_data(idata)
    4372      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4373      373330 :          data_tmp = IAND(data_tmp, mask_left(5))
    4374      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4375      373330 :          ipack = ipack + 1
    4376      373330 :          packed_data(ipack) = pack_tmp
    4377      373330 :          data_tmp = full_data(idata)
    4378      373330 :          pack_tmp = ISHFT(data_tmp, 62)
    4379      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4380      373330 :          idata = idata + 1
    4381      373330 :          data_tmp = full_data(idata)
    4382      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4383      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4384      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4385      373330 :          idata = idata + 1
    4386      373330 :          data_tmp = full_data(idata)
    4387      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4388      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4389      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4390      373330 :          idata = idata + 1
    4391      373330 :          data_tmp = full_data(idata)
    4392      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4393      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4394      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4395      373330 :          idata = idata + 1
    4396      373330 :          data_tmp = full_data(idata)
    4397      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4398      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4399      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4400      373330 :          idata = idata + 1
    4401      373330 :          data_tmp = full_data(idata)
    4402      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4403      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4404      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4405      373330 :          idata = idata + 1
    4406      373330 :          data_tmp = full_data(idata)
    4407      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4408      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4409      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4410      373330 :          idata = idata + 1
    4411      373330 :          data_tmp = full_data(idata)
    4412      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4413      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4414      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4415      373330 :          idata = idata + 1
    4416      373330 :          data_tmp = full_data(idata)
    4417      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4418      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4419      373330 :          pack_tmp = ISHFT(pack_tmp, -6)
    4420      373330 :          idata = idata + 1
    4421      373330 :          data_tmp = full_data(idata)
    4422      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4423      373330 :          data_tmp = IAND(data_tmp, mask_left(6))
    4424      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4425      373330 :          ipack = ipack + 1
    4426      373330 :          packed_data(ipack) = pack_tmp
    4427      373330 :          data_tmp = full_data(idata)
    4428      373330 :          pack_tmp = ISHFT(data_tmp, 63)
    4429      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4430      373330 :          idata = idata + 1
    4431      373330 :          data_tmp = full_data(idata)
    4432      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4433      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4434      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4435      373330 :          idata = idata + 1
    4436      373330 :          data_tmp = full_data(idata)
    4437      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4438      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4439      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4440      373330 :          idata = idata + 1
    4441      373330 :          data_tmp = full_data(idata)
    4442      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4443      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4444      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4445      373330 :          idata = idata + 1
    4446      373330 :          data_tmp = full_data(idata)
    4447      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4448      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4449      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4450      373330 :          idata = idata + 1
    4451      373330 :          data_tmp = full_data(idata)
    4452      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4453      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4454      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4455      373330 :          idata = idata + 1
    4456      373330 :          data_tmp = full_data(idata)
    4457      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4458      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4459      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4460      373330 :          idata = idata + 1
    4461      373330 :          data_tmp = full_data(idata)
    4462      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4463      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4464      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4465      373330 :          idata = idata + 1
    4466      373330 :          data_tmp = full_data(idata)
    4467      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4468      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4469      373330 :          pack_tmp = ISHFT(pack_tmp, -7)
    4470      373330 :          idata = idata + 1
    4471      373330 :          data_tmp = full_data(idata)
    4472      373330 :          data_tmp = ISHFT(data_tmp, 57)
    4473      373330 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4474             :          pack_tmp = ISHFT(pack_tmp, 0)
    4475      373330 :          pack_tmp = ISHFT(pack_tmp, 0)
    4476      373330 :          ipack = ipack + 1
    4477      373332 :          packed_data(ipack) = pack_tmp
    4478             :       END DO
    4479       23367 :       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       23367 :    END SUBROUTINE ints2bits_7
    4483             : 
    4484             : ! **************************************************************************************************
    4485             : !> \brief ...
    4486             : !> \param Ndata ...
    4487             : !> \param packed_data ...
    4488             : !> \param full_data ...
    4489             : ! **************************************************************************************************
    4490       97295 :    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       97295 :       ipack = 0
    4501       97295 :       idata = 0
    4502       97295 :       pack_tmp = 0
    4503       97295 :       Ndata_rep = (Ndata/64)*64
    4504       97295 :       DO kdata = 1, Ndata_rep, 64
    4505     1551311 :          idata = idata + 1
    4506     1551311 :          data_tmp = ISHFT(pack_tmp, 7)
    4507     1551311 :          ipack = ipack + 1
    4508     1551311 :          pack_tmp = packed_data(ipack)
    4509     1551311 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
    4510     1551311 :          pack_tmp = ISHFT(pack_tmp, -7)
    4511     1551311 :          idata = idata + 1
    4512     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4513     1551311 :          full_data(idata) = data_tmp
    4514     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4515     1551311 :          idata = idata + 1
    4516     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4517     1551311 :          full_data(idata) = data_tmp
    4518     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4519     1551311 :          idata = idata + 1
    4520     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4521     1551311 :          full_data(idata) = data_tmp
    4522     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4523     1551311 :          idata = idata + 1
    4524     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4525     1551311 :          full_data(idata) = data_tmp
    4526     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4527     1551311 :          idata = idata + 1
    4528     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4529     1551311 :          full_data(idata) = data_tmp
    4530     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4531     1551311 :          idata = idata + 1
    4532     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4533     1551311 :          full_data(idata) = data_tmp
    4534     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4535     1551311 :          idata = idata + 1
    4536     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4537     1551311 :          full_data(idata) = data_tmp
    4538     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4539     1551311 :          idata = idata + 1
    4540     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4541     1551311 :          full_data(idata) = data_tmp
    4542     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4543     1551311 :          idata = idata + 1
    4544     1551311 :          data_tmp = ISHFT(pack_tmp, 6)
    4545     1551311 :          ipack = ipack + 1
    4546     1551311 :          pack_tmp = packed_data(ipack)
    4547     1551311 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    4548     1551311 :          pack_tmp = ISHFT(pack_tmp, -6)
    4549     1551311 :          idata = idata + 1
    4550     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4551     1551311 :          full_data(idata) = data_tmp
    4552     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4553     1551311 :          idata = idata + 1
    4554     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4555     1551311 :          full_data(idata) = data_tmp
    4556     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4557     1551311 :          idata = idata + 1
    4558     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4559     1551311 :          full_data(idata) = data_tmp
    4560     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4561     1551311 :          idata = idata + 1
    4562     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4563     1551311 :          full_data(idata) = data_tmp
    4564     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4565     1551311 :          idata = idata + 1
    4566     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4567     1551311 :          full_data(idata) = data_tmp
    4568     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4569     1551311 :          idata = idata + 1
    4570     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4571     1551311 :          full_data(idata) = data_tmp
    4572     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4573     1551311 :          idata = idata + 1
    4574     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4575     1551311 :          full_data(idata) = data_tmp
    4576     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4577     1551311 :          idata = idata + 1
    4578     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4579     1551311 :          full_data(idata) = data_tmp
    4580     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4581     1551311 :          idata = idata + 1
    4582     1551311 :          data_tmp = ISHFT(pack_tmp, 5)
    4583     1551311 :          ipack = ipack + 1
    4584     1551311 :          pack_tmp = packed_data(ipack)
    4585     1551311 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
    4586     1551311 :          pack_tmp = ISHFT(pack_tmp, -5)
    4587     1551311 :          idata = idata + 1
    4588     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4589     1551311 :          full_data(idata) = data_tmp
    4590     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4591     1551311 :          idata = idata + 1
    4592     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4593     1551311 :          full_data(idata) = data_tmp
    4594     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4595     1551311 :          idata = idata + 1
    4596     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4597     1551311 :          full_data(idata) = data_tmp
    4598     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4599     1551311 :          idata = idata + 1
    4600     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4601     1551311 :          full_data(idata) = data_tmp
    4602     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4603     1551311 :          idata = idata + 1
    4604     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4605     1551311 :          full_data(idata) = data_tmp
    4606     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4607     1551311 :          idata = idata + 1
    4608     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4609     1551311 :          full_data(idata) = data_tmp
    4610     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4611     1551311 :          idata = idata + 1
    4612     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4613     1551311 :          full_data(idata) = data_tmp
    4614     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4615     1551311 :          idata = idata + 1
    4616     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4617     1551311 :          full_data(idata) = data_tmp
    4618     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4619     1551311 :          idata = idata + 1
    4620     1551311 :          data_tmp = ISHFT(pack_tmp, 4)
    4621     1551311 :          ipack = ipack + 1
    4622     1551311 :          pack_tmp = packed_data(ipack)
    4623     1551311 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    4624     1551311 :          pack_tmp = ISHFT(pack_tmp, -4)
    4625     1551311 :          idata = idata + 1
    4626     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4627     1551311 :          full_data(idata) = data_tmp
    4628     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4629     1551311 :          idata = idata + 1
    4630     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4631     1551311 :          full_data(idata) = data_tmp
    4632     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4633     1551311 :          idata = idata + 1
    4634     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4635     1551311 :          full_data(idata) = data_tmp
    4636     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4637     1551311 :          idata = idata + 1
    4638     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4639     1551311 :          full_data(idata) = data_tmp
    4640     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4641     1551311 :          idata = idata + 1
    4642     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4643     1551311 :          full_data(idata) = data_tmp
    4644     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4645     1551311 :          idata = idata + 1
    4646     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4647     1551311 :          full_data(idata) = data_tmp
    4648     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4649     1551311 :          idata = idata + 1
    4650     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4651     1551311 :          full_data(idata) = data_tmp
    4652     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4653     1551311 :          idata = idata + 1
    4654     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4655     1551311 :          full_data(idata) = data_tmp
    4656     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4657     1551311 :          idata = idata + 1
    4658     1551311 :          data_tmp = ISHFT(pack_tmp, 3)
    4659     1551311 :          ipack = ipack + 1
    4660     1551311 :          pack_tmp = packed_data(ipack)
    4661     1551311 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    4662     1551311 :          pack_tmp = ISHFT(pack_tmp, -3)
    4663     1551311 :          idata = idata + 1
    4664     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4665     1551311 :          full_data(idata) = data_tmp
    4666     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4667     1551311 :          idata = idata + 1
    4668     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4669     1551311 :          full_data(idata) = data_tmp
    4670     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4671     1551311 :          idata = idata + 1
    4672     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4673     1551311 :          full_data(idata) = data_tmp
    4674     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4675     1551311 :          idata = idata + 1
    4676     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4677     1551311 :          full_data(idata) = data_tmp
    4678     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4679     1551311 :          idata = idata + 1
    4680     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4681     1551311 :          full_data(idata) = data_tmp
    4682     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4683     1551311 :          idata = idata + 1
    4684     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4685     1551311 :          full_data(idata) = data_tmp
    4686     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4687     1551311 :          idata = idata + 1
    4688     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4689     1551311 :          full_data(idata) = data_tmp
    4690     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4691     1551311 :          idata = idata + 1
    4692     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4693     1551311 :          full_data(idata) = data_tmp
    4694     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4695     1551311 :          idata = idata + 1
    4696     1551311 :          data_tmp = ISHFT(pack_tmp, 2)
    4697     1551311 :          ipack = ipack + 1
    4698     1551311 :          pack_tmp = packed_data(ipack)
    4699     1551311 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    4700     1551311 :          pack_tmp = ISHFT(pack_tmp, -2)
    4701     1551311 :          idata = idata + 1
    4702     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4703     1551311 :          full_data(idata) = data_tmp
    4704     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4705     1551311 :          idata = idata + 1
    4706     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4707     1551311 :          full_data(idata) = data_tmp
    4708     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4709     1551311 :          idata = idata + 1
    4710     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4711     1551311 :          full_data(idata) = data_tmp
    4712     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4713     1551311 :          idata = idata + 1
    4714     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4715     1551311 :          full_data(idata) = data_tmp
    4716     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4717     1551311 :          idata = idata + 1
    4718     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4719     1551311 :          full_data(idata) = data_tmp
    4720     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4721     1551311 :          idata = idata + 1
    4722     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4723     1551311 :          full_data(idata) = data_tmp
    4724     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4725     1551311 :          idata = idata + 1
    4726     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4727     1551311 :          full_data(idata) = data_tmp
    4728     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4729     1551311 :          idata = idata + 1
    4730     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4731     1551311 :          full_data(idata) = data_tmp
    4732     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4733     1551311 :          idata = idata + 1
    4734     1551311 :          data_tmp = ISHFT(pack_tmp, 1)
    4735     1551311 :          ipack = ipack + 1
    4736     1551311 :          pack_tmp = packed_data(ipack)
    4737     1551311 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    4738     1551311 :          pack_tmp = ISHFT(pack_tmp, -1)
    4739     1551311 :          idata = idata + 1
    4740     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4741     1551311 :          full_data(idata) = data_tmp
    4742     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4743     1551311 :          idata = idata + 1
    4744     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4745     1551311 :          full_data(idata) = data_tmp
    4746     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4747     1551311 :          idata = idata + 1
    4748     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4749     1551311 :          full_data(idata) = data_tmp
    4750     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4751     1551311 :          idata = idata + 1
    4752     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4753     1551311 :          full_data(idata) = data_tmp
    4754     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4755     1551311 :          idata = idata + 1
    4756     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4757     1551311 :          full_data(idata) = data_tmp
    4758     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4759     1551311 :          idata = idata + 1
    4760     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4761     1551311 :          full_data(idata) = data_tmp
    4762     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4763     1551311 :          idata = idata + 1
    4764     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4765     1551311 :          full_data(idata) = data_tmp
    4766     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4767     1551311 :          idata = idata + 1
    4768     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4769     1551311 :          full_data(idata) = data_tmp
    4770     1551311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4771     1551311 :          idata = idata + 1
    4772     1551311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4773     1551311 :          full_data(idata) = data_tmp
    4774     1551325 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4775             :       END DO
    4776       97295 :       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       97295 :    END SUBROUTINE bits2ints_7
    4780             : 
    4781             : ! **************************************************************************************************
    4782             : !> \brief ...
    4783             : !> \param Ndata ...
    4784             : !> \param packed_data ...
    4785             : !> \param full_data ...
    4786             : ! **************************************************************************************************
    4787       23331 :    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       23331 :       idata = 0
    4798       23331 :       ipack = 0
    4799       23331 :       Ndata_rep = (Ndata/64)*64
    4800       23331 :       DO kdata = 1, Ndata_rep, 64
    4801      372784 :          pack_tmp = 0
    4802      372784 :          idata = idata + 1
    4803      372784 :          data_tmp = full_data(idata)
    4804      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4805      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4806      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4807      372784 :          idata = idata + 1
    4808      372784 :          data_tmp = full_data(idata)
    4809      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4810      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4811      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4812      372784 :          idata = idata + 1
    4813      372784 :          data_tmp = full_data(idata)
    4814      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4815      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4816      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4817      372784 :          idata = idata + 1
    4818      372784 :          data_tmp = full_data(idata)
    4819      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4820      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4821      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4822      372784 :          idata = idata + 1
    4823      372784 :          data_tmp = full_data(idata)
    4824      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4825      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4826      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4827      372784 :          idata = idata + 1
    4828      372784 :          data_tmp = full_data(idata)
    4829      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4830      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4831      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4832      372784 :          idata = idata + 1
    4833      372784 :          data_tmp = full_data(idata)
    4834      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4835      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4836      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4837      372784 :          idata = idata + 1
    4838      372784 :          data_tmp = full_data(idata)
    4839      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4840      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4841      372784 :          pack_tmp = ISHFT(pack_tmp, 0)
    4842      372784 :          idata = idata + 1
    4843      372784 :          data_tmp = full_data(idata)
    4844             :          data_tmp = ISHFT(data_tmp, 56)
    4845      372784 :          data_tmp = IAND(data_tmp, mask_left(0))
    4846      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4847      372784 :          ipack = ipack + 1
    4848      372784 :          packed_data(ipack) = pack_tmp
    4849      372784 :          data_tmp = full_data(idata)
    4850      372784 :          pack_tmp = ISHFT(data_tmp, 56)
    4851      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4852      372784 :          idata = idata + 1
    4853      372784 :          data_tmp = full_data(idata)
    4854      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4855      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4856      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4857      372784 :          idata = idata + 1
    4858      372784 :          data_tmp = full_data(idata)
    4859      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4860      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4861      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4862      372784 :          idata = idata + 1
    4863      372784 :          data_tmp = full_data(idata)
    4864      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4865      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4866      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4867      372784 :          idata = idata + 1
    4868      372784 :          data_tmp = full_data(idata)
    4869      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4870      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4871      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4872      372784 :          idata = idata + 1
    4873      372784 :          data_tmp = full_data(idata)
    4874      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4875      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4876      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4877      372784 :          idata = idata + 1
    4878      372784 :          data_tmp = full_data(idata)
    4879      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4880      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4881      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4882      372784 :          idata = idata + 1
    4883      372784 :          data_tmp = full_data(idata)
    4884      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4885      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4886      372784 :          pack_tmp = ISHFT(pack_tmp, 0)
    4887      372784 :          idata = idata + 1
    4888      372784 :          data_tmp = full_data(idata)
    4889             :          data_tmp = ISHFT(data_tmp, 56)
    4890      372784 :          data_tmp = IAND(data_tmp, mask_left(0))
    4891      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4892      372784 :          ipack = ipack + 1
    4893      372784 :          packed_data(ipack) = pack_tmp
    4894      372784 :          data_tmp = full_data(idata)
    4895      372784 :          pack_tmp = ISHFT(data_tmp, 56)
    4896      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4897      372784 :          idata = idata + 1
    4898      372784 :          data_tmp = full_data(idata)
    4899      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4900      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4901      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4902      372784 :          idata = idata + 1
    4903      372784 :          data_tmp = full_data(idata)
    4904      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4905      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4906      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4907      372784 :          idata = idata + 1
    4908      372784 :          data_tmp = full_data(idata)
    4909      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4910      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4911      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4912      372784 :          idata = idata + 1
    4913      372784 :          data_tmp = full_data(idata)
    4914      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4915      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4916      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4917      372784 :          idata = idata + 1
    4918      372784 :          data_tmp = full_data(idata)
    4919      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4920      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4921      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4922      372784 :          idata = idata + 1
    4923      372784 :          data_tmp = full_data(idata)
    4924      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4925      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4926      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4927      372784 :          idata = idata + 1
    4928      372784 :          data_tmp = full_data(idata)
    4929      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4930      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4931      372784 :          pack_tmp = ISHFT(pack_tmp, 0)
    4932      372784 :          idata = idata + 1
    4933      372784 :          data_tmp = full_data(idata)
    4934             :          data_tmp = ISHFT(data_tmp, 56)
    4935      372784 :          data_tmp = IAND(data_tmp, mask_left(0))
    4936      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4937      372784 :          ipack = ipack + 1
    4938      372784 :          packed_data(ipack) = pack_tmp
    4939      372784 :          data_tmp = full_data(idata)
    4940      372784 :          pack_tmp = ISHFT(data_tmp, 56)
    4941      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4942      372784 :          idata = idata + 1
    4943      372784 :          data_tmp = full_data(idata)
    4944      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4945      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4946      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4947      372784 :          idata = idata + 1
    4948      372784 :          data_tmp = full_data(idata)
    4949      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4950      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4951      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4952      372784 :          idata = idata + 1
    4953      372784 :          data_tmp = full_data(idata)
    4954      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4955      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4956      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4957      372784 :          idata = idata + 1
    4958      372784 :          data_tmp = full_data(idata)
    4959      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4960      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4961      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4962      372784 :          idata = idata + 1
    4963      372784 :          data_tmp = full_data(idata)
    4964      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4965      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4966      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4967      372784 :          idata = idata + 1
    4968      372784 :          data_tmp = full_data(idata)
    4969      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4970      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4971      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4972      372784 :          idata = idata + 1
    4973      372784 :          data_tmp = full_data(idata)
    4974      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4975      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4976      372784 :          pack_tmp = ISHFT(pack_tmp, 0)
    4977      372784 :          idata = idata + 1
    4978      372784 :          data_tmp = full_data(idata)
    4979             :          data_tmp = ISHFT(data_tmp, 56)
    4980      372784 :          data_tmp = IAND(data_tmp, mask_left(0))
    4981      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4982      372784 :          ipack = ipack + 1
    4983      372784 :          packed_data(ipack) = pack_tmp
    4984      372784 :          data_tmp = full_data(idata)
    4985      372784 :          pack_tmp = ISHFT(data_tmp, 56)
    4986      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4987      372784 :          idata = idata + 1
    4988      372784 :          data_tmp = full_data(idata)
    4989      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4990      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4991      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4992      372784 :          idata = idata + 1
    4993      372784 :          data_tmp = full_data(idata)
    4994      372784 :          data_tmp = ISHFT(data_tmp, 56)
    4995      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4996      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    4997      372784 :          idata = idata + 1
    4998      372784 :          data_tmp = full_data(idata)
    4999      372784 :          data_tmp = ISHFT(data_tmp, 56)
    5000      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5001      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    5002      372784 :          idata = idata + 1
    5003      372784 :          data_tmp = full_data(idata)
    5004      372784 :          data_tmp = ISHFT(data_tmp, 56)
    5005      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5006      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    5007      372784 :          idata = idata + 1
    5008      372784 :          data_tmp = full_data(idata)
    5009      372784 :          data_tmp = ISHFT(data_tmp, 56)
    5010      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5011      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    5012      372784 :          idata = idata + 1
    5013      372784 :          data_tmp = full_data(idata)
    5014      372784 :          data_tmp = ISHFT(data_tmp, 56)
    5015      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5016      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    5017      372784 :          idata = idata + 1
    5018      372784 :          data_tmp = full_data(idata)
    5019      372784 :          data_tmp = ISHFT(data_tmp, 56)
    5020      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5021      372784 :          pack_tmp = ISHFT(pack_tmp, 0)
    5022      372784 :          idata = idata + 1
    5023      372784 :          data_tmp = full_data(idata)
    5024             :          data_tmp = ISHFT(data_tmp, 56)
    5025      372784 :          data_tmp = IAND(data_tmp, mask_left(0))
    5026      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5027      372784 :          ipack = ipack + 1
    5028      372784 :          packed_data(ipack) = pack_tmp
    5029      372784 :          data_tmp = full_data(idata)
    5030      372784 :          pack_tmp = ISHFT(data_tmp, 56)
    5031      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    5032      372784 :          idata = idata + 1
    5033      372784 :          data_tmp = full_data(idata)
    5034      372784 :          data_tmp = ISHFT(data_tmp, 56)
    5035      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5036      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    5037      372784 :          idata = idata + 1
    5038      372784 :          data_tmp = full_data(idata)
    5039      372784 :          data_tmp = ISHFT(data_tmp, 56)
    5040      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5041      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    5042      372784 :          idata = idata + 1
    5043      372784 :          data_tmp = full_data(idata)
    5044      372784 :          data_tmp = ISHFT(data_tmp, 56)
    5045      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5046      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    5047      372784 :          idata = idata + 1
    5048      372784 :          data_tmp = full_data(idata)
    5049      372784 :          data_tmp = ISHFT(data_tmp, 56)
    5050      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5051      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    5052      372784 :          idata = idata + 1
    5053      372784 :          data_tmp = full_data(idata)
    5054      372784 :          data_tmp = ISHFT(data_tmp, 56)
    5055      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5056      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    5057      372784 :          idata = idata + 1
    5058      372784 :          data_tmp = full_data(idata)
    5059      372784 :          data_tmp = ISHFT(data_tmp, 56)
    5060      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5061      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    5062      372784 :          idata = idata + 1
    5063      372784 :          data_tmp = full_data(idata)
    5064      372784 :          data_tmp = ISHFT(data_tmp, 56)
    5065      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5066      372784 :          pack_tmp = ISHFT(pack_tmp, 0)
    5067      372784 :          idata = idata + 1
    5068      372784 :          data_tmp = full_data(idata)
    5069             :          data_tmp = ISHFT(data_tmp, 56)
    5070      372784 :          data_tmp = IAND(data_tmp, mask_left(0))
    5071      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5072      372784 :          ipack = ipack + 1
    5073      372784 :          packed_data(ipack) = pack_tmp
    5074      372784 :          data_tmp = full_data(idata)
    5075      372784 :          pack_tmp = ISHFT(data_tmp, 56)
    5076      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    5077      372784 :          idata = idata + 1
    5078      372784 :          data_tmp = full_data(idata)
    5079      372784 :          data_tmp = ISHFT(data_tmp, 56)
    5080      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5081      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    5082      372784 :          idata = idata + 1
    5083      372784 :          data_tmp = full_data(idata)
    5084      372784 :          data_tmp = ISHFT(data_tmp, 56)
    5085      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5086      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    5087      372784 :          idata = idata + 1
    5088      372784 :          data_tmp = full_data(idata)
    5089      372784 :          data_tmp = ISHFT(data_tmp, 56)
    5090      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5091      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    5092      372784 :          idata = idata + 1
    5093      372784 :          data_tmp = full_data(idata)
    5094      372784 :          data_tmp = ISHFT(data_tmp, 56)
    5095      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5096      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    5097      372784 :          idata = idata + 1
    5098      372784 :          data_tmp = full_data(idata)
    5099      372784 :          data_tmp = ISHFT(data_tmp, 56)
    5100      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5101      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    5102      372784 :          idata = idata + 1
    5103      372784 :          data_tmp = full_data(idata)
    5104      372784 :          data_tmp = ISHFT(data_tmp, 56)
    5105      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5106      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    5107      372784 :          idata = idata + 1
    5108      372784 :          data_tmp = full_data(idata)
    5109      372784 :          data_tmp = ISHFT(data_tmp, 56)
    5110      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5111      372784 :          pack_tmp = ISHFT(pack_tmp, 0)
    5112      372784 :          idata = idata + 1
    5113      372784 :          data_tmp = full_data(idata)
    5114             :          data_tmp = ISHFT(data_tmp, 56)
    5115      372784 :          data_tmp = IAND(data_tmp, mask_left(0))
    5116      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5117      372784 :          ipack = ipack + 1
    5118      372784 :          packed_data(ipack) = pack_tmp
    5119      372784 :          data_tmp = full_data(idata)
    5120      372784 :          pack_tmp = ISHFT(data_tmp, 56)
    5121      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    5122      372784 :          idata = idata + 1
    5123      372784 :          data_tmp = full_data(idata)
    5124      372784 :          data_tmp = ISHFT(data_tmp, 56)
    5125      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5126      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    5127      372784 :          idata = idata + 1
    5128      372784 :          data_tmp = full_data(idata)
    5129      372784 :          data_tmp = ISHFT(data_tmp, 56)
    5130      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5131      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    5132      372784 :          idata = idata + 1
    5133      372784 :          data_tmp = full_data(idata)
    5134      372784 :          data_tmp = ISHFT(data_tmp, 56)
    5135      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5136      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    5137      372784 :          idata = idata + 1
    5138      372784 :          data_tmp = full_data(idata)
    5139      372784 :          data_tmp = ISHFT(data_tmp, 56)
    5140      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5141      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    5142      372784 :          idata = idata + 1
    5143      372784 :          data_tmp = full_data(idata)
    5144      372784 :          data_tmp = ISHFT(data_tmp, 56)
    5145      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5146      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    5147      372784 :          idata = idata + 1
    5148      372784 :          data_tmp = full_data(idata)
    5149      372784 :          data_tmp = ISHFT(data_tmp, 56)
    5150      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5151      372784 :          pack_tmp = ISHFT(pack_tmp, -8)
    5152      372784 :          idata = idata + 1
    5153      372784 :          data_tmp = full_data(idata)
    5154      372784 :          data_tmp = ISHFT(data_tmp, 56)
    5155      372784 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5156             :          pack_tmp = ISHFT(pack_tmp, 0)
    5157      372784 :          pack_tmp = ISHFT(pack_tmp, 0)
    5158      372784 :          ipack = ipack + 1
    5159      372816 :          packed_data(ipack) = pack_tmp
    5160             :       END DO
    5161       23331 :       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       23331 :    END SUBROUTINE ints2bits_8
    5165             : 
    5166             : ! **************************************************************************************************
    5167             : !> \brief ...
    5168             : !> \param Ndata ...
    5169             : !> \param packed_data ...
    5170             : !> \param full_data ...
    5171             : ! **************************************************************************************************
    5172       97203 :    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       97203 :       ipack = 0
    5183       97203 :       idata = 0
    5184       97203 :       pack_tmp = 0
    5185       97203 :       Ndata_rep = (Ndata/64)*64
    5186       97203 :       DO kdata = 1, Ndata_rep, 64
    5187     1549664 :          idata = idata + 1
    5188     1549664 :          data_tmp = ISHFT(pack_tmp, 8)
    5189     1549664 :          ipack = ipack + 1
    5190     1549664 :          pack_tmp = packed_data(ipack)
    5191     1549664 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5192     1549664 :          pack_tmp = ISHFT(pack_tmp, -8)
    5193     1549664 :          idata = idata + 1
    5194     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5195     1549664 :          full_data(idata) = data_tmp
    5196     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5197     1549664 :          idata = idata + 1
    5198     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5199     1549664 :          full_data(idata) = data_tmp
    5200     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5201     1549664 :          idata = idata + 1
    5202     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5203     1549664 :          full_data(idata) = data_tmp
    5204     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5205     1549664 :          idata = idata + 1
    5206     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5207     1549664 :          full_data(idata) = data_tmp
    5208     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5209     1549664 :          idata = idata + 1
    5210     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5211     1549664 :          full_data(idata) = data_tmp
    5212     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5213     1549664 :          idata = idata + 1
    5214     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5215     1549664 :          full_data(idata) = data_tmp
    5216     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5217     1549664 :          idata = idata + 1
    5218     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5219     1549664 :          full_data(idata) = data_tmp
    5220     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5221     1549664 :          idata = idata + 1
    5222     1549664 :          data_tmp = ISHFT(pack_tmp, 8)
    5223     1549664 :          ipack = ipack + 1
    5224     1549664 :          pack_tmp = packed_data(ipack)
    5225     1549664 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5226     1549664 :          pack_tmp = ISHFT(pack_tmp, -8)
    5227     1549664 :          idata = idata + 1
    5228     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5229     1549664 :          full_data(idata) = data_tmp
    5230     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5231     1549664 :          idata = idata + 1
    5232     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5233     1549664 :          full_data(idata) = data_tmp
    5234     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5235     1549664 :          idata = idata + 1
    5236     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5237     1549664 :          full_data(idata) = data_tmp
    5238     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5239     1549664 :          idata = idata + 1
    5240     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5241     1549664 :          full_data(idata) = data_tmp
    5242     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5243     1549664 :          idata = idata + 1
    5244     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5245     1549664 :          full_data(idata) = data_tmp
    5246     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5247     1549664 :          idata = idata + 1
    5248     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5249     1549664 :          full_data(idata) = data_tmp
    5250     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5251     1549664 :          idata = idata + 1
    5252     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5253     1549664 :          full_data(idata) = data_tmp
    5254     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5255     1549664 :          idata = idata + 1
    5256     1549664 :          data_tmp = ISHFT(pack_tmp, 8)
    5257     1549664 :          ipack = ipack + 1
    5258     1549664 :          pack_tmp = packed_data(ipack)
    5259     1549664 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5260     1549664 :          pack_tmp = ISHFT(pack_tmp, -8)
    5261     1549664 :          idata = idata + 1
    5262     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5263     1549664 :          full_data(idata) = data_tmp
    5264     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5265     1549664 :          idata = idata + 1
    5266     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5267     1549664 :          full_data(idata) = data_tmp
    5268     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5269     1549664 :          idata = idata + 1
    5270     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5271     1549664 :          full_data(idata) = data_tmp
    5272     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5273     1549664 :          idata = idata + 1
    5274     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5275     1549664 :          full_data(idata) = data_tmp
    5276     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5277     1549664 :          idata = idata + 1
    5278     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5279     1549664 :          full_data(idata) = data_tmp
    5280     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5281     1549664 :          idata = idata + 1
    5282     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5283     1549664 :          full_data(idata) = data_tmp
    5284     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5285     1549664 :          idata = idata + 1
    5286     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5287     1549664 :          full_data(idata) = data_tmp
    5288     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5289     1549664 :          idata = idata + 1
    5290     1549664 :          data_tmp = ISHFT(pack_tmp, 8)
    5291     1549664 :          ipack = ipack + 1
    5292     1549664 :          pack_tmp = packed_data(ipack)
    5293     1549664 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5294     1549664 :          pack_tmp = ISHFT(pack_tmp, -8)
    5295     1549664 :          idata = idata + 1
    5296     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5297     1549664 :          full_data(idata) = data_tmp
    5298     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5299     1549664 :          idata = idata + 1
    5300     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5301     1549664 :          full_data(idata) = data_tmp
    5302     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5303     1549664 :          idata = idata + 1
    5304     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5305     1549664 :          full_data(idata) = data_tmp
    5306     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5307     1549664 :          idata = idata + 1
    5308     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5309     1549664 :          full_data(idata) = data_tmp
    5310     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5311     1549664 :          idata = idata + 1
    5312     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5313     1549664 :          full_data(idata) = data_tmp
    5314     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5315     1549664 :          idata = idata + 1
    5316     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5317     1549664 :          full_data(idata) = data_tmp
    5318     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5319     1549664 :          idata = idata + 1
    5320     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5321     1549664 :          full_data(idata) = data_tmp
    5322     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5323     1549664 :          idata = idata + 1
    5324     1549664 :          data_tmp = ISHFT(pack_tmp, 8)
    5325     1549664 :          ipack = ipack + 1
    5326     1549664 :          pack_tmp = packed_data(ipack)
    5327     1549664 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5328     1549664 :          pack_tmp = ISHFT(pack_tmp, -8)
    5329     1549664 :          idata = idata + 1
    5330     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5331     1549664 :          full_data(idata) = data_tmp
    5332     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5333     1549664 :          idata = idata + 1
    5334     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5335     1549664 :          full_data(idata) = data_tmp
    5336     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5337     1549664 :          idata = idata + 1
    5338     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5339     1549664 :          full_data(idata) = data_tmp
    5340     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5341     1549664 :          idata = idata + 1
    5342     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5343     1549664 :          full_data(idata) = data_tmp
    5344     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5345     1549664 :          idata = idata + 1
    5346     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5347     1549664 :          full_data(idata) = data_tmp
    5348     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5349     1549664 :          idata = idata + 1
    5350     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5351     1549664 :          full_data(idata) = data_tmp
    5352     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5353     1549664 :          idata = idata + 1
    5354     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5355     1549664 :          full_data(idata) = data_tmp
    5356     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5357     1549664 :          idata = idata + 1
    5358     1549664 :          data_tmp = ISHFT(pack_tmp, 8)
    5359     1549664 :          ipack = ipack + 1
    5360     1549664 :          pack_tmp = packed_data(ipack)
    5361     1549664 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5362     1549664 :          pack_tmp = ISHFT(pack_tmp, -8)
    5363     1549664 :          idata = idata + 1
    5364     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5365     1549664 :          full_data(idata) = data_tmp
    5366     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5367     1549664 :          idata = idata + 1
    5368     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5369     1549664 :          full_data(idata) = data_tmp
    5370     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5371     1549664 :          idata = idata + 1
    5372     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5373     1549664 :          full_data(idata) = data_tmp
    5374     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5375     1549664 :          idata = idata + 1
    5376     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5377     1549664 :          full_data(idata) = data_tmp
    5378     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5379     1549664 :          idata = idata + 1
    5380     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5381     1549664 :          full_data(idata) = data_tmp
    5382     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5383     1549664 :          idata = idata + 1
    5384     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5385     1549664 :          full_data(idata) = data_tmp
    5386     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5387     1549664 :          idata = idata + 1
    5388     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5389     1549664 :          full_data(idata) = data_tmp
    5390     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5391     1549664 :          idata = idata + 1
    5392     1549664 :          data_tmp = ISHFT(pack_tmp, 8)
    5393     1549664 :          ipack = ipack + 1
    5394     1549664 :          pack_tmp = packed_data(ipack)
    5395     1549664 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5396     1549664 :          pack_tmp = ISHFT(pack_tmp, -8)
    5397     1549664 :          idata = idata + 1
    5398     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5399     1549664 :          full_data(idata) = data_tmp
    5400     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5401     1549664 :          idata = idata + 1
    5402     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5403     1549664 :          full_data(idata) = data_tmp
    5404     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5405     1549664 :          idata = idata + 1
    5406     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5407     1549664 :          full_data(idata) = data_tmp
    5408     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5409     1549664 :          idata = idata + 1
    5410     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5411     1549664 :          full_data(idata) = data_tmp
    5412     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5413     1549664 :          idata = idata + 1
    5414     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5415     1549664 :          full_data(idata) = data_tmp
    5416     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5417     1549664 :          idata = idata + 1
    5418     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5419     1549664 :          full_data(idata) = data_tmp
    5420     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5421     1549664 :          idata = idata + 1
    5422     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5423     1549664 :          full_data(idata) = data_tmp
    5424     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5425     1549664 :          idata = idata + 1
    5426     1549664 :          data_tmp = ISHFT(pack_tmp, 8)
    5427     1549664 :          ipack = ipack + 1
    5428     1549664 :          pack_tmp = packed_data(ipack)
    5429     1549664 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5430     1549664 :          pack_tmp = ISHFT(pack_tmp, -8)
    5431     1549664 :          idata = idata + 1
    5432     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5433     1549664 :          full_data(idata) = data_tmp
    5434     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5435     1549664 :          idata = idata + 1
    5436     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5437     1549664 :          full_data(idata) = data_tmp
    5438     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5439     1549664 :          idata = idata + 1
    5440     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5441     1549664 :          full_data(idata) = data_tmp
    5442     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5443     1549664 :          idata = idata + 1
    5444     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5445     1549664 :          full_data(idata) = data_tmp
    5446     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5447     1549664 :          idata = idata + 1
    5448     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5449     1549664 :          full_data(idata) = data_tmp
    5450     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5451     1549664 :          idata = idata + 1
    5452     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5453     1549664 :          full_data(idata) = data_tmp
    5454     1549664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5455     1549664 :          idata = idata + 1
    5456     1549664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5457     1549664 :          full_data(idata) = data_tmp
    5458     1550013 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5459             :       END DO
    5460       97203 :       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       97203 :    END SUBROUTINE bits2ints_8
    5464             : 
    5465             : ! **************************************************************************************************
    5466             : !> \brief ...
    5467             : !> \param Ndata ...
    5468             : !> \param packed_data ...
    5469             : !> \param full_data ...
    5470             : ! **************************************************************************************************
    5471       23292 :    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       23292 :       idata = 0
    5482       23292 :       ipack = 0
    5483       23292 :       Ndata_rep = (Ndata/64)*64
    5484       23292 :       DO kdata = 1, Ndata_rep, 64
    5485      372145 :          pack_tmp = 0
    5486      372145 :          idata = idata + 1
    5487      372145 :          data_tmp = full_data(idata)
    5488      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5489      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5490      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5491      372145 :          idata = idata + 1
    5492      372145 :          data_tmp = full_data(idata)
    5493      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5494      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5495      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5496      372145 :          idata = idata + 1
    5497      372145 :          data_tmp = full_data(idata)
    5498      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5499      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5500      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5501      372145 :          idata = idata + 1
    5502      372145 :          data_tmp = full_data(idata)
    5503      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5504      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5505      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5506      372145 :          idata = idata + 1
    5507      372145 :          data_tmp = full_data(idata)
    5508      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5509      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5510      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5511      372145 :          idata = idata + 1
    5512      372145 :          data_tmp = full_data(idata)
    5513      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5514      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5515      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5516      372145 :          idata = idata + 1
    5517      372145 :          data_tmp = full_data(idata)
    5518      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5519      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5520      372145 :          pack_tmp = ISHFT(pack_tmp, -1)
    5521      372145 :          idata = idata + 1
    5522      372145 :          data_tmp = full_data(idata)
    5523      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5524      372145 :          data_tmp = IAND(data_tmp, mask_left(1))
    5525      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5526      372145 :          ipack = ipack + 1
    5527      372145 :          packed_data(ipack) = pack_tmp
    5528      372145 :          data_tmp = full_data(idata)
    5529      372145 :          pack_tmp = ISHFT(data_tmp, 56)
    5530      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5531      372145 :          idata = idata + 1
    5532      372145 :          data_tmp = full_data(idata)
    5533      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5534      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5535      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5536      372145 :          idata = idata + 1
    5537      372145 :          data_tmp = full_data(idata)
    5538      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5539      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5540      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5541      372145 :          idata = idata + 1
    5542      372145 :          data_tmp = full_data(idata)
    5543      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5544      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5545      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5546      372145 :          idata = idata + 1
    5547      372145 :          data_tmp = full_data(idata)
    5548      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5549      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5550      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5551      372145 :          idata = idata + 1
    5552      372145 :          data_tmp = full_data(idata)
    5553      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5554      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5555      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5556      372145 :          idata = idata + 1
    5557      372145 :          data_tmp = full_data(idata)
    5558      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5559      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5560      372145 :          pack_tmp = ISHFT(pack_tmp, -2)
    5561      372145 :          idata = idata + 1
    5562      372145 :          data_tmp = full_data(idata)
    5563      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5564      372145 :          data_tmp = IAND(data_tmp, mask_left(2))
    5565      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5566      372145 :          ipack = ipack + 1
    5567      372145 :          packed_data(ipack) = pack_tmp
    5568      372145 :          data_tmp = full_data(idata)
    5569      372145 :          pack_tmp = ISHFT(data_tmp, 57)
    5570      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5571      372145 :          idata = idata + 1
    5572      372145 :          data_tmp = full_data(idata)
    5573      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5574      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5575      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5576      372145 :          idata = idata + 1
    5577      372145 :          data_tmp = full_data(idata)
    5578      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5579      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5580      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5581      372145 :          idata = idata + 1
    5582      372145 :          data_tmp = full_data(idata)
    5583      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5584      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5585      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5586      372145 :          idata = idata + 1
    5587      372145 :          data_tmp = full_data(idata)
    5588      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5589      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5590      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5591      372145 :          idata = idata + 1
    5592      372145 :          data_tmp = full_data(idata)
    5593      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5594      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5595      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5596      372145 :          idata = idata + 1
    5597      372145 :          data_tmp = full_data(idata)
    5598      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5599      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5600      372145 :          pack_tmp = ISHFT(pack_tmp, -3)
    5601      372145 :          idata = idata + 1
    5602      372145 :          data_tmp = full_data(idata)
    5603      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5604      372145 :          data_tmp = IAND(data_tmp, mask_left(3))
    5605      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5606      372145 :          ipack = ipack + 1
    5607      372145 :          packed_data(ipack) = pack_tmp
    5608      372145 :          data_tmp = full_data(idata)
    5609      372145 :          pack_tmp = ISHFT(data_tmp, 58)
    5610      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5611      372145 :          idata = idata + 1
    5612      372145 :          data_tmp = full_data(idata)
    5613      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5614      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5615      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5616      372145 :          idata = idata + 1
    5617      372145 :          data_tmp = full_data(idata)
    5618      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5619      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5620      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5621      372145 :          idata = idata + 1
    5622      372145 :          data_tmp = full_data(idata)
    5623      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5624      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5625      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5626      372145 :          idata = idata + 1
    5627      372145 :          data_tmp = full_data(idata)
    5628      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5629      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5630      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5631      372145 :          idata = idata + 1
    5632      372145 :          data_tmp = full_data(idata)
    5633      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5634      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5635      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5636      372145 :          idata = idata + 1
    5637      372145 :          data_tmp = full_data(idata)
    5638      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5639      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5640      372145 :          pack_tmp = ISHFT(pack_tmp, -4)
    5641      372145 :          idata = idata + 1
    5642      372145 :          data_tmp = full_data(idata)
    5643      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5644      372145 :          data_tmp = IAND(data_tmp, mask_left(4))
    5645      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5646      372145 :          ipack = ipack + 1
    5647      372145 :          packed_data(ipack) = pack_tmp
    5648      372145 :          data_tmp = full_data(idata)
    5649      372145 :          pack_tmp = ISHFT(data_tmp, 59)
    5650      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5651      372145 :          idata = idata + 1
    5652      372145 :          data_tmp = full_data(idata)
    5653      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5654      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5655      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5656      372145 :          idata = idata + 1
    5657      372145 :          data_tmp = full_data(idata)
    5658      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5659      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5660      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5661      372145 :          idata = idata + 1
    5662      372145 :          data_tmp = full_data(idata)
    5663      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5664      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5665      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5666      372145 :          idata = idata + 1
    5667      372145 :          data_tmp = full_data(idata)
    5668      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5669      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5670      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5671      372145 :          idata = idata + 1
    5672      372145 :          data_tmp = full_data(idata)
    5673      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5674      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5675      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5676      372145 :          idata = idata + 1
    5677      372145 :          data_tmp = full_data(idata)
    5678      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5679      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5680      372145 :          pack_tmp = ISHFT(pack_tmp, -5)
    5681      372145 :          idata = idata + 1
    5682      372145 :          data_tmp = full_data(idata)
    5683      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5684      372145 :          data_tmp = IAND(data_tmp, mask_left(5))
    5685      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5686      372145 :          ipack = ipack + 1
    5687      372145 :          packed_data(ipack) = pack_tmp
    5688      372145 :          data_tmp = full_data(idata)
    5689      372145 :          pack_tmp = ISHFT(data_tmp, 60)
    5690      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5691      372145 :          idata = idata + 1
    5692      372145 :          data_tmp = full_data(idata)
    5693      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5694      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5695      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5696      372145 :          idata = idata + 1
    5697      372145 :          data_tmp = full_data(idata)
    5698      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5699      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5700      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5701      372145 :          idata = idata + 1
    5702      372145 :          data_tmp = full_data(idata)
    5703      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5704      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5705      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5706      372145 :          idata = idata + 1
    5707      372145 :          data_tmp = full_data(idata)
    5708      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5709      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5710      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5711      372145 :          idata = idata + 1
    5712      372145 :          data_tmp = full_data(idata)
    5713      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5714      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5715      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5716      372145 :          idata = idata + 1
    5717      372145 :          data_tmp = full_data(idata)
    5718      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5719      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5720      372145 :          pack_tmp = ISHFT(pack_tmp, -6)
    5721      372145 :          idata = idata + 1
    5722      372145 :          data_tmp = full_data(idata)
    5723      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5724      372145 :          data_tmp = IAND(data_tmp, mask_left(6))
    5725      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5726      372145 :          ipack = ipack + 1
    5727      372145 :          packed_data(ipack) = pack_tmp
    5728      372145 :          data_tmp = full_data(idata)
    5729      372145 :          pack_tmp = ISHFT(data_tmp, 61)
    5730      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5731      372145 :          idata = idata + 1
    5732      372145 :          data_tmp = full_data(idata)
    5733      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5734      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5735      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5736      372145 :          idata = idata + 1
    5737      372145 :          data_tmp = full_data(idata)
    5738      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5739      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5740      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5741      372145 :          idata = idata + 1
    5742      372145 :          data_tmp = full_data(idata)
    5743      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5744      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5745      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5746      372145 :          idata = idata + 1
    5747      372145 :          data_tmp = full_data(idata)
    5748      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5749      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5750      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5751      372145 :          idata = idata + 1
    5752      372145 :          data_tmp = full_data(idata)
    5753      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5754      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5755      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5756      372145 :          idata = idata + 1
    5757      372145 :          data_tmp = full_data(idata)
    5758      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5759      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5760      372145 :          pack_tmp = ISHFT(pack_tmp, -7)
    5761      372145 :          idata = idata + 1
    5762      372145 :          data_tmp = full_data(idata)
    5763      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5764      372145 :          data_tmp = IAND(data_tmp, mask_left(7))
    5765      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5766      372145 :          ipack = ipack + 1
    5767      372145 :          packed_data(ipack) = pack_tmp
    5768      372145 :          data_tmp = full_data(idata)
    5769      372145 :          pack_tmp = ISHFT(data_tmp, 62)
    5770      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5771      372145 :          idata = idata + 1
    5772      372145 :          data_tmp = full_data(idata)
    5773      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5774      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5775      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5776      372145 :          idata = idata + 1
    5777      372145 :          data_tmp = full_data(idata)
    5778      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5779      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5780      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5781      372145 :          idata = idata + 1
    5782      372145 :          data_tmp = full_data(idata)
    5783      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5784      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5785      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5786      372145 :          idata = idata + 1
    5787      372145 :          data_tmp = full_data(idata)
    5788      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5789      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5790      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5791      372145 :          idata = idata + 1
    5792      372145 :          data_tmp = full_data(idata)
    5793      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5794      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5795      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5796      372145 :          idata = idata + 1
    5797      372145 :          data_tmp = full_data(idata)
    5798      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5799      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5800      372145 :          pack_tmp = ISHFT(pack_tmp, -8)
    5801      372145 :          idata = idata + 1
    5802      372145 :          data_tmp = full_data(idata)
    5803      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5804      372145 :          data_tmp = IAND(data_tmp, mask_left(8))
    5805      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5806      372145 :          ipack = ipack + 1
    5807      372145 :          packed_data(ipack) = pack_tmp
    5808      372145 :          data_tmp = full_data(idata)
    5809      372145 :          pack_tmp = ISHFT(data_tmp, 63)
    5810      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5811      372145 :          idata = idata + 1
    5812      372145 :          data_tmp = full_data(idata)
    5813      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5814      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5815      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5816      372145 :          idata = idata + 1
    5817      372145 :          data_tmp = full_data(idata)
    5818      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5819      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5820      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5821      372145 :          idata = idata + 1
    5822      372145 :          data_tmp = full_data(idata)
    5823      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5824      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5825      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5826      372145 :          idata = idata + 1
    5827      372145 :          data_tmp = full_data(idata)
    5828      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5829      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5830      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5831      372145 :          idata = idata + 1
    5832      372145 :          data_tmp = full_data(idata)
    5833      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5834      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5835      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5836      372145 :          idata = idata + 1
    5837      372145 :          data_tmp = full_data(idata)
    5838      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5839      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5840      372145 :          pack_tmp = ISHFT(pack_tmp, -9)
    5841      372145 :          idata = idata + 1
    5842      372145 :          data_tmp = full_data(idata)
    5843      372145 :          data_tmp = ISHFT(data_tmp, 55)
    5844      372145 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5845             :          pack_tmp = ISHFT(pack_tmp, 0)
    5846      372145 :          pack_tmp = ISHFT(pack_tmp, 0)
    5847      372145 :          ipack = ipack + 1
    5848      372145 :          packed_data(ipack) = pack_tmp
    5849             :       END DO
    5850       23292 :       IF (Ndata_rep < Ndata) THEN
    5851          62 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    5852             :       END IF
    5853       23292 :    END SUBROUTINE ints2bits_9
    5854             : 
    5855             : ! **************************************************************************************************
    5856             : !> \brief ...
    5857             : !> \param Ndata ...
    5858             : !> \param packed_data ...
    5859             : !> \param full_data ...
    5860             : ! **************************************************************************************************
    5861       96466 :    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       96466 :       ipack = 0
    5872       96466 :       idata = 0
    5873       96466 :       pack_tmp = 0
    5874       96466 :       Ndata_rep = (Ndata/64)*64
    5875       96466 :       DO kdata = 1, Ndata_rep, 64
    5876     1538509 :          idata = idata + 1
    5877     1538509 :          data_tmp = ISHFT(pack_tmp, 9)
    5878     1538509 :          ipack = ipack + 1
    5879     1538509 :          pack_tmp = packed_data(ipack)
    5880     1538509 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
    5881     1538509 :          pack_tmp = ISHFT(pack_tmp, -9)
    5882     1538509 :          idata = idata + 1
    5883     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5884     1538509 :          full_data(idata) = data_tmp
    5885     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5886     1538509 :          idata = idata + 1
    5887     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5888     1538509 :          full_data(idata) = data_tmp
    5889     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5890     1538509 :          idata = idata + 1
    5891     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5892     1538509 :          full_data(idata) = data_tmp
    5893     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5894     1538509 :          idata = idata + 1
    5895     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5896     1538509 :          full_data(idata) = data_tmp
    5897     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5898     1538509 :          idata = idata + 1
    5899     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5900     1538509 :          full_data(idata) = data_tmp
    5901     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5902     1538509 :          idata = idata + 1
    5903     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5904     1538509 :          full_data(idata) = data_tmp
    5905     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5906     1538509 :          idata = idata + 1
    5907     1538509 :          data_tmp = ISHFT(pack_tmp, 8)
    5908     1538509 :          ipack = ipack + 1
    5909     1538509 :          pack_tmp = packed_data(ipack)
    5910     1538509 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5911     1538509 :          pack_tmp = ISHFT(pack_tmp, -8)
    5912     1538509 :          idata = idata + 1
    5913     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5914     1538509 :          full_data(idata) = data_tmp
    5915     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5916     1538509 :          idata = idata + 1
    5917     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5918     1538509 :          full_data(idata) = data_tmp
    5919     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5920     1538509 :          idata = idata + 1
    5921     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5922     1538509 :          full_data(idata) = data_tmp
    5923     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5924     1538509 :          idata = idata + 1
    5925     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5926     1538509 :          full_data(idata) = data_tmp
    5927     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5928     1538509 :          idata = idata + 1
    5929     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5930     1538509 :          full_data(idata) = data_tmp
    5931     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5932     1538509 :          idata = idata + 1
    5933     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5934     1538509 :          full_data(idata) = data_tmp
    5935     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5936     1538509 :          idata = idata + 1
    5937     1538509 :          data_tmp = ISHFT(pack_tmp, 7)
    5938     1538509 :          ipack = ipack + 1
    5939     1538509 :          pack_tmp = packed_data(ipack)
    5940     1538509 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
    5941     1538509 :          pack_tmp = ISHFT(pack_tmp, -7)
    5942     1538509 :          idata = idata + 1
    5943     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5944     1538509 :          full_data(idata) = data_tmp
    5945     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5946     1538509 :          idata = idata + 1
    5947     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5948     1538509 :          full_data(idata) = data_tmp
    5949     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5950     1538509 :          idata = idata + 1
    5951     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5952     1538509 :          full_data(idata) = data_tmp
    5953     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5954     1538509 :          idata = idata + 1
    5955     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5956     1538509 :          full_data(idata) = data_tmp
    5957     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5958     1538509 :          idata = idata + 1
    5959     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5960     1538509 :          full_data(idata) = data_tmp
    5961     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5962     1538509 :          idata = idata + 1
    5963     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5964     1538509 :          full_data(idata) = data_tmp
    5965     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5966     1538509 :          idata = idata + 1
    5967     1538509 :          data_tmp = ISHFT(pack_tmp, 6)
    5968     1538509 :          ipack = ipack + 1
    5969     1538509 :          pack_tmp = packed_data(ipack)
    5970     1538509 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    5971     1538509 :          pack_tmp = ISHFT(pack_tmp, -6)
    5972     1538509 :          idata = idata + 1
    5973     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5974     1538509 :          full_data(idata) = data_tmp
    5975     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5976     1538509 :          idata = idata + 1
    5977     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5978     1538509 :          full_data(idata) = data_tmp
    5979     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5980     1538509 :          idata = idata + 1
    5981     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5982     1538509 :          full_data(idata) = data_tmp
    5983     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5984     1538509 :          idata = idata + 1
    5985     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5986     1538509 :          full_data(idata) = data_tmp
    5987     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5988     1538509 :          idata = idata + 1
    5989     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5990     1538509 :          full_data(idata) = data_tmp
    5991     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5992     1538509 :          idata = idata + 1
    5993     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5994     1538509 :          full_data(idata) = data_tmp
    5995     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5996     1538509 :          idata = idata + 1
    5997     1538509 :          data_tmp = ISHFT(pack_tmp, 5)
    5998     1538509 :          ipack = ipack + 1
    5999     1538509 :          pack_tmp = packed_data(ipack)
    6000     1538509 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
    6001     1538509 :          pack_tmp = ISHFT(pack_tmp, -5)
    6002     1538509 :          idata = idata + 1
    6003     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6004     1538509 :          full_data(idata) = data_tmp
    6005     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6006     1538509 :          idata = idata + 1
    6007     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6008     1538509 :          full_data(idata) = data_tmp
    6009     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6010     1538509 :          idata = idata + 1
    6011     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6012     1538509 :          full_data(idata) = data_tmp
    6013     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6014     1538509 :          idata = idata + 1
    6015     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6016     1538509 :          full_data(idata) = data_tmp
    6017     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6018     1538509 :          idata = idata + 1
    6019     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6020     1538509 :          full_data(idata) = data_tmp
    6021     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6022     1538509 :          idata = idata + 1
    6023     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6024     1538509 :          full_data(idata) = data_tmp
    6025     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6026     1538509 :          idata = idata + 1
    6027     1538509 :          data_tmp = ISHFT(pack_tmp, 4)
    6028     1538509 :          ipack = ipack + 1
    6029     1538509 :          pack_tmp = packed_data(ipack)
    6030     1538509 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    6031     1538509 :          pack_tmp = ISHFT(pack_tmp, -4)
    6032     1538509 :          idata = idata + 1
    6033     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6034     1538509 :          full_data(idata) = data_tmp
    6035     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6036     1538509 :          idata = idata + 1
    6037     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6038     1538509 :          full_data(idata) = data_tmp
    6039     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6040     1538509 :          idata = idata + 1
    6041     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6042     1538509 :          full_data(idata) = data_tmp
    6043     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6044     1538509 :          idata = idata + 1
    6045     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6046     1538509 :          full_data(idata) = data_tmp
    6047     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6048     1538509 :          idata = idata + 1
    6049     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6050     1538509 :          full_data(idata) = data_tmp
    6051     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6052     1538509 :          idata = idata + 1
    6053     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6054     1538509 :          full_data(idata) = data_tmp
    6055     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6056     1538509 :          idata = idata + 1
    6057     1538509 :          data_tmp = ISHFT(pack_tmp, 3)
    6058     1538509 :          ipack = ipack + 1
    6059     1538509 :          pack_tmp = packed_data(ipack)
    6060     1538509 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    6061     1538509 :          pack_tmp = ISHFT(pack_tmp, -3)
    6062     1538509 :          idata = idata + 1
    6063     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6064     1538509 :          full_data(idata) = data_tmp
    6065     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6066     1538509 :          idata = idata + 1
    6067     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6068     1538509 :          full_data(idata) = data_tmp
    6069     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6070     1538509 :          idata = idata + 1
    6071     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6072     1538509 :          full_data(idata) = data_tmp
    6073     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6074     1538509 :          idata = idata + 1
    6075     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6076     1538509 :          full_data(idata) = data_tmp
    6077     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6078     1538509 :          idata = idata + 1
    6079     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6080     1538509 :          full_data(idata) = data_tmp
    6081     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6082     1538509 :          idata = idata + 1
    6083     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6084     1538509 :          full_data(idata) = data_tmp
    6085     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6086     1538509 :          idata = idata + 1
    6087     1538509 :          data_tmp = ISHFT(pack_tmp, 2)
    6088     1538509 :          ipack = ipack + 1
    6089     1538509 :          pack_tmp = packed_data(ipack)
    6090     1538509 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    6091     1538509 :          pack_tmp = ISHFT(pack_tmp, -2)
    6092     1538509 :          idata = idata + 1
    6093     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6094     1538509 :          full_data(idata) = data_tmp
    6095     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6096     1538509 :          idata = idata + 1
    6097     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6098     1538509 :          full_data(idata) = data_tmp
    6099     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6100     1538509 :          idata = idata + 1
    6101     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6102     1538509 :          full_data(idata) = data_tmp
    6103     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6104     1538509 :          idata = idata + 1
    6105     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6106     1538509 :          full_data(idata) = data_tmp
    6107     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6108     1538509 :          idata = idata + 1
    6109     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6110     1538509 :          full_data(idata) = data_tmp
    6111     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6112     1538509 :          idata = idata + 1
    6113     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6114     1538509 :          full_data(idata) = data_tmp
    6115     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6116     1538509 :          idata = idata + 1
    6117     1538509 :          data_tmp = ISHFT(pack_tmp, 1)
    6118     1538509 :          ipack = ipack + 1
    6119     1538509 :          pack_tmp = packed_data(ipack)
    6120     1538509 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    6121     1538509 :          pack_tmp = ISHFT(pack_tmp, -1)
    6122     1538509 :          idata = idata + 1
    6123     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6124     1538509 :          full_data(idata) = data_tmp
    6125     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6126     1538509 :          idata = idata + 1
    6127     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6128     1538509 :          full_data(idata) = data_tmp
    6129     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6130     1538509 :          idata = idata + 1
    6131     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6132     1538509 :          full_data(idata) = data_tmp
    6133     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6134     1538509 :          idata = idata + 1
    6135     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6136     1538509 :          full_data(idata) = data_tmp
    6137     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6138     1538509 :          idata = idata + 1
    6139     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6140     1538509 :          full_data(idata) = data_tmp
    6141     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6142     1538509 :          idata = idata + 1
    6143     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6144     1538509 :          full_data(idata) = data_tmp
    6145     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6146     1538509 :          idata = idata + 1
    6147     1538509 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6148     1538509 :          full_data(idata) = data_tmp
    6149     1538509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6150             :       END DO
    6151       96466 :       IF (Ndata_rep < Ndata) THEN
    6152         582 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    6153             :       END IF
    6154       96466 :    END SUBROUTINE bits2ints_9
    6155             : 
    6156             : ! **************************************************************************************************
    6157             : !> \brief ...
    6158             : !> \param Ndata ...
    6159             : !> \param packed_data ...
    6160             : !> \param full_data ...
    6161             : ! **************************************************************************************************
    6162       49798 :    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       49798 :       idata = 0
    6173       49798 :       ipack = 0
    6174       49798 :       Ndata_rep = (Ndata/64)*64
    6175       49798 :       DO kdata = 1, Ndata_rep, 64
    6176      736673 :          pack_tmp = 0
    6177      736673 :          idata = idata + 1
    6178      736673 :          data_tmp = full_data(idata)
    6179      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6180      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6181      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6182      736673 :          idata = idata + 1
    6183      736673 :          data_tmp = full_data(idata)
    6184      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6185      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6186      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6187      736673 :          idata = idata + 1
    6188      736673 :          data_tmp = full_data(idata)
    6189      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6190      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6191      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6192      736673 :          idata = idata + 1
    6193      736673 :          data_tmp = full_data(idata)
    6194      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6195      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6196      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6197      736673 :          idata = idata + 1
    6198      736673 :          data_tmp = full_data(idata)
    6199      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6200      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6201      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6202      736673 :          idata = idata + 1
    6203      736673 :          data_tmp = full_data(idata)
    6204      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6205      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6206      736673 :          pack_tmp = ISHFT(pack_tmp, -4)
    6207      736673 :          idata = idata + 1
    6208      736673 :          data_tmp = full_data(idata)
    6209      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6210      736673 :          data_tmp = IAND(data_tmp, mask_left(4))
    6211      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6212      736673 :          ipack = ipack + 1
    6213      736673 :          packed_data(ipack) = pack_tmp
    6214      736673 :          data_tmp = full_data(idata)
    6215      736673 :          pack_tmp = ISHFT(data_tmp, 58)
    6216      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6217      736673 :          idata = idata + 1
    6218      736673 :          data_tmp = full_data(idata)
    6219      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6220      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6221      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6222      736673 :          idata = idata + 1
    6223      736673 :          data_tmp = full_data(idata)
    6224      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6225      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6226      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6227      736673 :          idata = idata + 1
    6228      736673 :          data_tmp = full_data(idata)
    6229      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6230      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6231      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6232      736673 :          idata = idata + 1
    6233      736673 :          data_tmp = full_data(idata)
    6234      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6235      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6236      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6237      736673 :          idata = idata + 1
    6238      736673 :          data_tmp = full_data(idata)
    6239      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6240      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6241      736673 :          pack_tmp = ISHFT(pack_tmp, -8)
    6242      736673 :          idata = idata + 1
    6243      736673 :          data_tmp = full_data(idata)
    6244      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6245      736673 :          data_tmp = IAND(data_tmp, mask_left(8))
    6246      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6247      736673 :          ipack = ipack + 1
    6248      736673 :          packed_data(ipack) = pack_tmp
    6249      736673 :          data_tmp = full_data(idata)
    6250      736673 :          pack_tmp = ISHFT(data_tmp, 62)
    6251      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6252      736673 :          idata = idata + 1
    6253      736673 :          data_tmp = full_data(idata)
    6254      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6255      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6256      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6257      736673 :          idata = idata + 1
    6258      736673 :          data_tmp = full_data(idata)
    6259      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6260      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6261      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6262      736673 :          idata = idata + 1
    6263      736673 :          data_tmp = full_data(idata)
    6264      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6265      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6266      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6267      736673 :          idata = idata + 1
    6268      736673 :          data_tmp = full_data(idata)
    6269      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6270      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6271      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6272      736673 :          idata = idata + 1
    6273      736673 :          data_tmp = full_data(idata)
    6274      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6275      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6276      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6277      736673 :          idata = idata + 1
    6278      736673 :          data_tmp = full_data(idata)
    6279      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6280      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6281      736673 :          pack_tmp = ISHFT(pack_tmp, -2)
    6282      736673 :          idata = idata + 1
    6283      736673 :          data_tmp = full_data(idata)
    6284      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6285      736673 :          data_tmp = IAND(data_tmp, mask_left(2))
    6286      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6287      736673 :          ipack = ipack + 1
    6288      736673 :          packed_data(ipack) = pack_tmp
    6289      736673 :          data_tmp = full_data(idata)
    6290      736673 :          pack_tmp = ISHFT(data_tmp, 56)
    6291      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6292      736673 :          idata = idata + 1
    6293      736673 :          data_tmp = full_data(idata)
    6294      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6295      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6296      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6297      736673 :          idata = idata + 1
    6298      736673 :          data_tmp = full_data(idata)
    6299      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6300      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6301      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6302      736673 :          idata = idata + 1
    6303      736673 :          data_tmp = full_data(idata)
    6304      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6305      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6306      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6307      736673 :          idata = idata + 1
    6308      736673 :          data_tmp = full_data(idata)
    6309      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6310      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6311      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6312      736673 :          idata = idata + 1
    6313      736673 :          data_tmp = full_data(idata)
    6314      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6315      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6316      736673 :          pack_tmp = ISHFT(pack_tmp, -6)
    6317      736673 :          idata = idata + 1
    6318      736673 :          data_tmp = full_data(idata)
    6319      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6320      736673 :          data_tmp = IAND(data_tmp, mask_left(6))
    6321      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6322      736673 :          ipack = ipack + 1
    6323      736673 :          packed_data(ipack) = pack_tmp
    6324      736673 :          data_tmp = full_data(idata)
    6325      736673 :          pack_tmp = ISHFT(data_tmp, 60)
    6326      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6327      736673 :          idata = idata + 1
    6328      736673 :          data_tmp = full_data(idata)
    6329      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6330      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6331      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6332      736673 :          idata = idata + 1
    6333      736673 :          data_tmp = full_data(idata)
    6334      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6335      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6336      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6337      736673 :          idata = idata + 1
    6338      736673 :          data_tmp = full_data(idata)
    6339      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6340      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6341      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6342      736673 :          idata = idata + 1
    6343      736673 :          data_tmp = full_data(idata)
    6344      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6345      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6346      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6347      736673 :          idata = idata + 1
    6348      736673 :          data_tmp = full_data(idata)
    6349      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6350      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6351      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6352      736673 :          idata = idata + 1
    6353      736673 :          data_tmp = full_data(idata)
    6354      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6355      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6356      736673 :          pack_tmp = ISHFT(pack_tmp, 0)
    6357      736673 :          idata = idata + 1
    6358      736673 :          data_tmp = full_data(idata)
    6359             :          data_tmp = ISHFT(data_tmp, 54)
    6360      736673 :          data_tmp = IAND(data_tmp, mask_left(0))
    6361      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6362      736673 :          ipack = ipack + 1
    6363      736673 :          packed_data(ipack) = pack_tmp
    6364      736673 :          data_tmp = full_data(idata)
    6365      736673 :          pack_tmp = ISHFT(data_tmp, 54)
    6366      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6367      736673 :          idata = idata + 1
    6368      736673 :          data_tmp = full_data(idata)
    6369      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6370      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6371      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6372      736673 :          idata = idata + 1
    6373      736673 :          data_tmp = full_data(idata)
    6374      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6375      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6376      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6377      736673 :          idata = idata + 1
    6378      736673 :          data_tmp = full_data(idata)
    6379      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6380      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6381      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6382      736673 :          idata = idata + 1
    6383      736673 :          data_tmp = full_data(idata)
    6384      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6385      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6386      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6387      736673 :          idata = idata + 1
    6388      736673 :          data_tmp = full_data(idata)
    6389      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6390      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6391      736673 :          pack_tmp = ISHFT(pack_tmp, -4)
    6392      736673 :          idata = idata + 1
    6393      736673 :          data_tmp = full_data(idata)
    6394      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6395      736673 :          data_tmp = IAND(data_tmp, mask_left(4))
    6396      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6397      736673 :          ipack = ipack + 1
    6398      736673 :          packed_data(ipack) = pack_tmp
    6399      736673 :          data_tmp = full_data(idata)
    6400      736673 :          pack_tmp = ISHFT(data_tmp, 58)
    6401      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6402      736673 :          idata = idata + 1
    6403      736673 :          data_tmp = full_data(idata)
    6404      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6405      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6406      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6407      736673 :          idata = idata + 1
    6408      736673 :          data_tmp = full_data(idata)
    6409      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6410      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6411      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6412      736673 :          idata = idata + 1
    6413      736673 :          data_tmp = full_data(idata)
    6414      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6415      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6416      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6417      736673 :          idata = idata + 1
    6418      736673 :          data_tmp = full_data(idata)
    6419      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6420      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6421      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6422      736673 :          idata = idata + 1
    6423      736673 :          data_tmp = full_data(idata)
    6424      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6425      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6426      736673 :          pack_tmp = ISHFT(pack_tmp, -8)
    6427      736673 :          idata = idata + 1
    6428      736673 :          data_tmp = full_data(idata)
    6429      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6430      736673 :          data_tmp = IAND(data_tmp, mask_left(8))
    6431      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6432      736673 :          ipack = ipack + 1
    6433      736673 :          packed_data(ipack) = pack_tmp
    6434      736673 :          data_tmp = full_data(idata)
    6435      736673 :          pack_tmp = ISHFT(data_tmp, 62)
    6436      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6437      736673 :          idata = idata + 1
    6438      736673 :          data_tmp = full_data(idata)
    6439      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6440      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6441      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6442      736673 :          idata = idata + 1
    6443      736673 :          data_tmp = full_data(idata)
    6444      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6445      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6446      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6447      736673 :          idata = idata + 1
    6448      736673 :          data_tmp = full_data(idata)
    6449      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6450      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6451      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6452      736673 :          idata = idata + 1
    6453      736673 :          data_tmp = full_data(idata)
    6454      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6455      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6456      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6457      736673 :          idata = idata + 1
    6458      736673 :          data_tmp = full_data(idata)
    6459      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6460      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6461      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6462      736673 :          idata = idata + 1
    6463      736673 :          data_tmp = full_data(idata)
    6464      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6465      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6466      736673 :          pack_tmp = ISHFT(pack_tmp, -2)
    6467      736673 :          idata = idata + 1
    6468      736673 :          data_tmp = full_data(idata)
    6469      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6470      736673 :          data_tmp = IAND(data_tmp, mask_left(2))
    6471      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6472      736673 :          ipack = ipack + 1
    6473      736673 :          packed_data(ipack) = pack_tmp
    6474      736673 :          data_tmp = full_data(idata)
    6475      736673 :          pack_tmp = ISHFT(data_tmp, 56)
    6476      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6477      736673 :          idata = idata + 1
    6478      736673 :          data_tmp = full_data(idata)
    6479      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6480      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6481      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6482      736673 :          idata = idata + 1
    6483      736673 :          data_tmp = full_data(idata)
    6484      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6485      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6486      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6487      736673 :          idata = idata + 1
    6488      736673 :          data_tmp = full_data(idata)
    6489      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6490      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6491      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6492      736673 :          idata = idata + 1
    6493      736673 :          data_tmp = full_data(idata)
    6494      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6495      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6496      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6497      736673 :          idata = idata + 1
    6498      736673 :          data_tmp = full_data(idata)
    6499      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6500      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6501      736673 :          pack_tmp = ISHFT(pack_tmp, -6)
    6502      736673 :          idata = idata + 1
    6503      736673 :          data_tmp = full_data(idata)
    6504      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6505      736673 :          data_tmp = IAND(data_tmp, mask_left(6))
    6506      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6507      736673 :          ipack = ipack + 1
    6508      736673 :          packed_data(ipack) = pack_tmp
    6509      736673 :          data_tmp = full_data(idata)
    6510      736673 :          pack_tmp = ISHFT(data_tmp, 60)
    6511      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6512      736673 :          idata = idata + 1
    6513      736673 :          data_tmp = full_data(idata)
    6514      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6515      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6516      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6517      736673 :          idata = idata + 1
    6518      736673 :          data_tmp = full_data(idata)
    6519      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6520      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6521      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6522      736673 :          idata = idata + 1
    6523      736673 :          data_tmp = full_data(idata)
    6524      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6525      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6526      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6527      736673 :          idata = idata + 1
    6528      736673 :          data_tmp = full_data(idata)
    6529      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6530      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6531      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6532      736673 :          idata = idata + 1
    6533      736673 :          data_tmp = full_data(idata)
    6534      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6535      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6536      736673 :          pack_tmp = ISHFT(pack_tmp, -10)
    6537      736673 :          idata = idata + 1
    6538      736673 :          data_tmp = full_data(idata)
    6539      736673 :          data_tmp = ISHFT(data_tmp, 54)
    6540      736673 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6541             :          pack_tmp = ISHFT(pack_tmp, 0)
    6542      736673 :          pack_tmp = ISHFT(pack_tmp, 0)
    6543      736673 :          ipack = ipack + 1
    6544      737038 :          packed_data(ipack) = pack_tmp
    6545             :       END DO
    6546       49798 :       IF (Ndata_rep < Ndata) THEN
    6547        4830 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    6548             :       END IF
    6549       49798 :    END SUBROUTINE ints2bits_10
    6550             : 
    6551             : ! **************************************************************************************************
    6552             : !> \brief ...
    6553             : !> \param Ndata ...
    6554             : !> \param packed_data ...
    6555             : !> \param full_data ...
    6556             : ! **************************************************************************************************
    6557      249720 :    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      249720 :       ipack = 0
    6568      249720 :       idata = 0
    6569      249720 :       pack_tmp = 0
    6570      249720 :       Ndata_rep = (Ndata/64)*64
    6571      249720 :       DO kdata = 1, Ndata_rep, 64
    6572     3650223 :          idata = idata + 1
    6573     3650223 :          data_tmp = ISHFT(pack_tmp, 10)
    6574     3650223 :          ipack = ipack + 1
    6575     3650223 :          pack_tmp = packed_data(ipack)
    6576     3650223 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    6577     3650223 :          pack_tmp = ISHFT(pack_tmp, -10)
    6578     3650223 :          idata = idata + 1
    6579     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6580     3650223 :          full_data(idata) = data_tmp
    6581     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6582     3650223 :          idata = idata + 1
    6583     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6584     3650223 :          full_data(idata) = data_tmp
    6585     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6586     3650223 :          idata = idata + 1
    6587     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6588     3650223 :          full_data(idata) = data_tmp
    6589     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6590     3650223 :          idata = idata + 1
    6591     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6592     3650223 :          full_data(idata) = data_tmp
    6593     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6594     3650223 :          idata = idata + 1
    6595     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6596     3650223 :          full_data(idata) = data_tmp
    6597     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6598     3650223 :          idata = idata + 1
    6599     3650223 :          data_tmp = ISHFT(pack_tmp, 6)
    6600     3650223 :          ipack = ipack + 1
    6601     3650223 :          pack_tmp = packed_data(ipack)
    6602     3650223 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    6603     3650223 :          pack_tmp = ISHFT(pack_tmp, -6)
    6604     3650223 :          idata = idata + 1
    6605     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6606     3650223 :          full_data(idata) = data_tmp
    6607     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6608     3650223 :          idata = idata + 1
    6609     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6610     3650223 :          full_data(idata) = data_tmp
    6611     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6612     3650223 :          idata = idata + 1
    6613     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6614     3650223 :          full_data(idata) = data_tmp
    6615     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6616     3650223 :          idata = idata + 1
    6617     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6618     3650223 :          full_data(idata) = data_tmp
    6619     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6620     3650223 :          idata = idata + 1
    6621     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6622     3650223 :          full_data(idata) = data_tmp
    6623     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6624     3650223 :          idata = idata + 1
    6625     3650223 :          data_tmp = ISHFT(pack_tmp, 2)
    6626     3650223 :          ipack = ipack + 1
    6627     3650223 :          pack_tmp = packed_data(ipack)
    6628     3650223 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    6629     3650223 :          pack_tmp = ISHFT(pack_tmp, -2)
    6630     3650223 :          idata = idata + 1
    6631     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6632     3650223 :          full_data(idata) = data_tmp
    6633     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6634     3650223 :          idata = idata + 1
    6635     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6636     3650223 :          full_data(idata) = data_tmp
    6637     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6638     3650223 :          idata = idata + 1
    6639     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6640     3650223 :          full_data(idata) = data_tmp
    6641     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6642     3650223 :          idata = idata + 1
    6643     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6644     3650223 :          full_data(idata) = data_tmp
    6645     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6646     3650223 :          idata = idata + 1
    6647     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6648     3650223 :          full_data(idata) = data_tmp
    6649     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6650     3650223 :          idata = idata + 1
    6651     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6652     3650223 :          full_data(idata) = data_tmp
    6653     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6654     3650223 :          idata = idata + 1
    6655     3650223 :          data_tmp = ISHFT(pack_tmp, 8)
    6656     3650223 :          ipack = ipack + 1
    6657     3650223 :          pack_tmp = packed_data(ipack)
    6658     3650223 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    6659     3650223 :          pack_tmp = ISHFT(pack_tmp, -8)
    6660     3650223 :          idata = idata + 1
    6661     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6662     3650223 :          full_data(idata) = data_tmp
    6663     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6664     3650223 :          idata = idata + 1
    6665     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6666     3650223 :          full_data(idata) = data_tmp
    6667     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6668     3650223 :          idata = idata + 1
    6669     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6670     3650223 :          full_data(idata) = data_tmp
    6671     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6672     3650223 :          idata = idata + 1
    6673     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6674     3650223 :          full_data(idata) = data_tmp
    6675     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6676     3650223 :          idata = idata + 1
    6677     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6678     3650223 :          full_data(idata) = data_tmp
    6679     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6680     3650223 :          idata = idata + 1
    6681     3650223 :          data_tmp = ISHFT(pack_tmp, 4)
    6682     3650223 :          ipack = ipack + 1
    6683     3650223 :          pack_tmp = packed_data(ipack)
    6684     3650223 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    6685     3650223 :          pack_tmp = ISHFT(pack_tmp, -4)
    6686     3650223 :          idata = idata + 1
    6687     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6688     3650223 :          full_data(idata) = data_tmp
    6689     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6690     3650223 :          idata = idata + 1
    6691     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6692     3650223 :          full_data(idata) = data_tmp
    6693     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6694     3650223 :          idata = idata + 1
    6695     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6696     3650223 :          full_data(idata) = data_tmp
    6697     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6698     3650223 :          idata = idata + 1
    6699     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6700     3650223 :          full_data(idata) = data_tmp
    6701     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6702     3650223 :          idata = idata + 1
    6703     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6704     3650223 :          full_data(idata) = data_tmp
    6705     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6706     3650223 :          idata = idata + 1
    6707     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6708     3650223 :          full_data(idata) = data_tmp
    6709     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6710     3650223 :          idata = idata + 1
    6711     3650223 :          data_tmp = ISHFT(pack_tmp, 10)
    6712     3650223 :          ipack = ipack + 1
    6713     3650223 :          pack_tmp = packed_data(ipack)
    6714     3650223 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    6715     3650223 :          pack_tmp = ISHFT(pack_tmp, -10)
    6716     3650223 :          idata = idata + 1
    6717     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6718     3650223 :          full_data(idata) = data_tmp
    6719     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6720     3650223 :          idata = idata + 1
    6721     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6722     3650223 :          full_data(idata) = data_tmp
    6723     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6724     3650223 :          idata = idata + 1
    6725     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6726     3650223 :          full_data(idata) = data_tmp
    6727     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6728     3650223 :          idata = idata + 1
    6729     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6730     3650223 :          full_data(idata) = data_tmp
    6731     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6732     3650223 :          idata = idata + 1
    6733     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6734     3650223 :          full_data(idata) = data_tmp
    6735     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6736     3650223 :          idata = idata + 1
    6737     3650223 :          data_tmp = ISHFT(pack_tmp, 6)
    6738     3650223 :          ipack = ipack + 1
    6739     3650223 :          pack_tmp = packed_data(ipack)
    6740     3650223 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    6741     3650223 :          pack_tmp = ISHFT(pack_tmp, -6)
    6742     3650223 :          idata = idata + 1
    6743     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6744     3650223 :          full_data(idata) = data_tmp
    6745     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6746     3650223 :          idata = idata + 1
    6747     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6748     3650223 :          full_data(idata) = data_tmp
    6749     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6750     3650223 :          idata = idata + 1
    6751     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6752     3650223 :          full_data(idata) = data_tmp
    6753     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6754     3650223 :          idata = idata + 1
    6755     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6756     3650223 :          full_data(idata) = data_tmp
    6757     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6758     3650223 :          idata = idata + 1
    6759     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6760     3650223 :          full_data(idata) = data_tmp
    6761     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6762     3650223 :          idata = idata + 1
    6763     3650223 :          data_tmp = ISHFT(pack_tmp, 2)
    6764     3650223 :          ipack = ipack + 1
    6765     3650223 :          pack_tmp = packed_data(ipack)
    6766     3650223 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    6767     3650223 :          pack_tmp = ISHFT(pack_tmp, -2)
    6768     3650223 :          idata = idata + 1
    6769     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6770     3650223 :          full_data(idata) = data_tmp
    6771     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6772     3650223 :          idata = idata + 1
    6773     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6774     3650223 :          full_data(idata) = data_tmp
    6775     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6776     3650223 :          idata = idata + 1
    6777     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6778     3650223 :          full_data(idata) = data_tmp
    6779     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6780     3650223 :          idata = idata + 1
    6781     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6782     3650223 :          full_data(idata) = data_tmp
    6783     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6784     3650223 :          idata = idata + 1
    6785     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6786     3650223 :          full_data(idata) = data_tmp
    6787     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6788     3650223 :          idata = idata + 1
    6789     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6790     3650223 :          full_data(idata) = data_tmp
    6791     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6792     3650223 :          idata = idata + 1
    6793     3650223 :          data_tmp = ISHFT(pack_tmp, 8)
    6794     3650223 :          ipack = ipack + 1
    6795     3650223 :          pack_tmp = packed_data(ipack)
    6796     3650223 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    6797     3650223 :          pack_tmp = ISHFT(pack_tmp, -8)
    6798     3650223 :          idata = idata + 1
    6799     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6800     3650223 :          full_data(idata) = data_tmp
    6801     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6802     3650223 :          idata = idata + 1
    6803     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6804     3650223 :          full_data(idata) = data_tmp
    6805     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6806     3650223 :          idata = idata + 1
    6807     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6808     3650223 :          full_data(idata) = data_tmp
    6809     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6810     3650223 :          idata = idata + 1
    6811     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6812     3650223 :          full_data(idata) = data_tmp
    6813     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6814     3650223 :          idata = idata + 1
    6815     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6816     3650223 :          full_data(idata) = data_tmp
    6817     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6818     3650223 :          idata = idata + 1
    6819     3650223 :          data_tmp = ISHFT(pack_tmp, 4)
    6820     3650223 :          ipack = ipack + 1
    6821     3650223 :          pack_tmp = packed_data(ipack)
    6822     3650223 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    6823     3650223 :          pack_tmp = ISHFT(pack_tmp, -4)
    6824     3650223 :          idata = idata + 1
    6825     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6826     3650223 :          full_data(idata) = data_tmp
    6827     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6828     3650223 :          idata = idata + 1
    6829     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6830     3650223 :          full_data(idata) = data_tmp
    6831     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6832     3650223 :          idata = idata + 1
    6833     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6834     3650223 :          full_data(idata) = data_tmp
    6835     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6836     3650223 :          idata = idata + 1
    6837     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6838     3650223 :          full_data(idata) = data_tmp
    6839     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6840     3650223 :          idata = idata + 1
    6841     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6842     3650223 :          full_data(idata) = data_tmp
    6843     3650223 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6844     3650223 :          idata = idata + 1
    6845     3650223 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6846     3650223 :          full_data(idata) = data_tmp
    6847     3652253 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6848             :       END DO
    6849      249720 :       IF (Ndata_rep < Ndata) THEN
    6850       28258 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    6851             :       END IF
    6852      249720 :    END SUBROUTINE bits2ints_10
    6853             : 
    6854             : ! **************************************************************************************************
    6855             : !> \brief ...
    6856             : !> \param Ndata ...
    6857             : !> \param packed_data ...
    6858             : !> \param full_data ...
    6859             : ! **************************************************************************************************
    6860       25763 :    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       25763 :       idata = 0
    6871       25763 :       ipack = 0
    6872       25763 :       Ndata_rep = (Ndata/64)*64
    6873       25763 :       DO kdata = 1, Ndata_rep, 64
    6874      405561 :          pack_tmp = 0
    6875      405561 :          idata = idata + 1
    6876      405561 :          data_tmp = full_data(idata)
    6877      405561 :          data_tmp = ISHFT(data_tmp, 53)
    6878      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6879      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    6880      405561 :          idata = idata + 1
    6881      405561 :          data_tmp = full_data(idata)
    6882      405561 :          data_tmp = ISHFT(data_tmp, 53)
    6883      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6884      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    6885      405561 :          idata = idata + 1
    6886      405561 :          data_tmp = full_data(idata)
    6887      405561 :          data_tmp = ISHFT(data_tmp, 53)
    6888      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6889      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    6890      405561 :          idata = idata + 1
    6891      405561 :          data_tmp = full_data(idata)
    6892      405561 :          data_tmp = ISHFT(data_tmp, 53)
    6893      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6894      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    6895      405561 :          idata = idata + 1
    6896      405561 :          data_tmp = full_data(idata)
    6897      405561 :          data_tmp = ISHFT(data_tmp, 53)
    6898      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6899      405561 :          pack_tmp = ISHFT(pack_tmp, -9)
    6900      405561 :          idata = idata + 1
    6901      405561 :          data_tmp = full_data(idata)
    6902      405561 :          data_tmp = ISHFT(data_tmp, 53)
    6903      405561 :          data_tmp = IAND(data_tmp, mask_left(9))
    6904      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6905      405561 :          ipack = ipack + 1
    6906      405561 :          packed_data(ipack) = pack_tmp
    6907      405561 :          data_tmp = full_data(idata)
    6908      405561 :          pack_tmp = ISHFT(data_tmp, 62)
    6909      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    6910      405561 :          idata = idata + 1
    6911      405561 :          data_tmp = full_data(idata)
    6912      405561 :          data_tmp = ISHFT(data_tmp, 53)
    6913      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6914      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    6915      405561 :          idata = idata + 1
    6916      405561 :          data_tmp = full_data(idata)
    6917      405561 :          data_tmp = ISHFT(data_tmp, 53)
    6918      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6919      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    6920      405561 :          idata = idata + 1
    6921      405561 :          data_tmp = full_data(idata)
    6922      405561 :          data_tmp = ISHFT(data_tmp, 53)
    6923      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6924      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    6925      405561 :          idata = idata + 1
    6926      405561 :          data_tmp = full_data(idata)
    6927      405561 :          data_tmp = ISHFT(data_tmp, 53)
    6928      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6929      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    6930      405561 :          idata = idata + 1
    6931      405561 :          data_tmp = full_data(idata)
    6932      405561 :          data_tmp = ISHFT(data_tmp, 53)
    6933      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6934      405561 :          pack_tmp = ISHFT(pack_tmp, -7)
    6935      405561 :          idata = idata + 1
    6936      405561 :          data_tmp = full_data(idata)
    6937      405561 :          data_tmp = ISHFT(data_tmp, 53)
    6938      405561 :          data_tmp = IAND(data_tmp, mask_left(7))
    6939      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6940      405561 :          ipack = ipack + 1
    6941      405561 :          packed_data(ipack) = pack_tmp
    6942      405561 :          data_tmp = full_data(idata)
    6943      405561 :          pack_tmp = ISHFT(data_tmp, 60)
    6944      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    6945      405561 :          idata = idata + 1
    6946      405561 :          data_tmp = full_data(idata)
    6947      405561 :          data_tmp = ISHFT(data_tmp, 53)
    6948      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6949      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    6950      405561 :          idata = idata + 1
    6951      405561 :          data_tmp = full_data(idata)
    6952      405561 :          data_tmp = ISHFT(data_tmp, 53)
    6953      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6954      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    6955      405561 :          idata = idata + 1
    6956      405561 :          data_tmp = full_data(idata)
    6957      405561 :          data_tmp = ISHFT(data_tmp, 53)
    6958      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6959      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    6960      405561 :          idata = idata + 1
    6961      405561 :          data_tmp = full_data(idata)
    6962      405561 :          data_tmp = ISHFT(data_tmp, 53)
    6963      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6964      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    6965      405561 :          idata = idata + 1
    6966      405561 :          data_tmp = full_data(idata)
    6967      405561 :          data_tmp = ISHFT(data_tmp, 53)
    6968      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6969      405561 :          pack_tmp = ISHFT(pack_tmp, -5)
    6970      405561 :          idata = idata + 1
    6971      405561 :          data_tmp = full_data(idata)
    6972      405561 :          data_tmp = ISHFT(data_tmp, 53)
    6973      405561 :          data_tmp = IAND(data_tmp, mask_left(5))
    6974      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6975      405561 :          ipack = ipack + 1
    6976      405561 :          packed_data(ipack) = pack_tmp
    6977      405561 :          data_tmp = full_data(idata)
    6978      405561 :          pack_tmp = ISHFT(data_tmp, 58)
    6979      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    6980      405561 :          idata = idata + 1
    6981      405561 :          data_tmp = full_data(idata)
    6982      405561 :          data_tmp = ISHFT(data_tmp, 53)
    6983      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6984      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    6985      405561 :          idata = idata + 1
    6986      405561 :          data_tmp = full_data(idata)
    6987      405561 :          data_tmp = ISHFT(data_tmp, 53)
    6988      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6989      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    6990      405561 :          idata = idata + 1
    6991      405561 :          data_tmp = full_data(idata)
    6992      405561 :          data_tmp = ISHFT(data_tmp, 53)
    6993      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6994      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    6995      405561 :          idata = idata + 1
    6996      405561 :          data_tmp = full_data(idata)
    6997      405561 :          data_tmp = ISHFT(data_tmp, 53)
    6998      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6999      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7000      405561 :          idata = idata + 1
    7001      405561 :          data_tmp = full_data(idata)
    7002      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7003      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7004      405561 :          pack_tmp = ISHFT(pack_tmp, -3)
    7005      405561 :          idata = idata + 1
    7006      405561 :          data_tmp = full_data(idata)
    7007      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7008      405561 :          data_tmp = IAND(data_tmp, mask_left(3))
    7009      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7010      405561 :          ipack = ipack + 1
    7011      405561 :          packed_data(ipack) = pack_tmp
    7012      405561 :          data_tmp = full_data(idata)
    7013      405561 :          pack_tmp = ISHFT(data_tmp, 56)
    7014      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7015      405561 :          idata = idata + 1
    7016      405561 :          data_tmp = full_data(idata)
    7017      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7018      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7019      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7020      405561 :          idata = idata + 1
    7021      405561 :          data_tmp = full_data(idata)
    7022      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7023      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7024      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7025      405561 :          idata = idata + 1
    7026      405561 :          data_tmp = full_data(idata)
    7027      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7028      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7029      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7030      405561 :          idata = idata + 1
    7031      405561 :          data_tmp = full_data(idata)
    7032      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7033      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7034      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7035      405561 :          idata = idata + 1
    7036      405561 :          data_tmp = full_data(idata)
    7037      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7038      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7039      405561 :          pack_tmp = ISHFT(pack_tmp, -1)
    7040      405561 :          idata = idata + 1
    7041      405561 :          data_tmp = full_data(idata)
    7042      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7043      405561 :          data_tmp = IAND(data_tmp, mask_left(1))
    7044      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7045      405561 :          ipack = ipack + 1
    7046      405561 :          packed_data(ipack) = pack_tmp
    7047      405561 :          data_tmp = full_data(idata)
    7048      405561 :          pack_tmp = ISHFT(data_tmp, 54)
    7049      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7050      405561 :          idata = idata + 1
    7051      405561 :          data_tmp = full_data(idata)
    7052      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7053      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7054      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7055      405561 :          idata = idata + 1
    7056      405561 :          data_tmp = full_data(idata)
    7057      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7058      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7059      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7060      405561 :          idata = idata + 1
    7061      405561 :          data_tmp = full_data(idata)
    7062      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7063      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7064      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7065      405561 :          idata = idata + 1
    7066      405561 :          data_tmp = full_data(idata)
    7067      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7068      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7069      405561 :          pack_tmp = ISHFT(pack_tmp, -10)
    7070      405561 :          idata = idata + 1
    7071      405561 :          data_tmp = full_data(idata)
    7072      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7073      405561 :          data_tmp = IAND(data_tmp, mask_left(10))
    7074      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7075      405561 :          ipack = ipack + 1
    7076      405561 :          packed_data(ipack) = pack_tmp
    7077      405561 :          data_tmp = full_data(idata)
    7078      405561 :          pack_tmp = ISHFT(data_tmp, 63)
    7079      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7080      405561 :          idata = idata + 1
    7081      405561 :          data_tmp = full_data(idata)
    7082      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7083      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7084      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7085      405561 :          idata = idata + 1
    7086      405561 :          data_tmp = full_data(idata)
    7087      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7088      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7089      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7090      405561 :          idata = idata + 1
    7091      405561 :          data_tmp = full_data(idata)
    7092      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7093      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7094      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7095      405561 :          idata = idata + 1
    7096      405561 :          data_tmp = full_data(idata)
    7097      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7098      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7099      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7100      405561 :          idata = idata + 1
    7101      405561 :          data_tmp = full_data(idata)
    7102      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7103      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7104      405561 :          pack_tmp = ISHFT(pack_tmp, -8)
    7105      405561 :          idata = idata + 1
    7106      405561 :          data_tmp = full_data(idata)
    7107      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7108      405561 :          data_tmp = IAND(data_tmp, mask_left(8))
    7109      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7110      405561 :          ipack = ipack + 1
    7111      405561 :          packed_data(ipack) = pack_tmp
    7112      405561 :          data_tmp = full_data(idata)
    7113      405561 :          pack_tmp = ISHFT(data_tmp, 61)
    7114      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7115      405561 :          idata = idata + 1
    7116      405561 :          data_tmp = full_data(idata)
    7117      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7118      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7119      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7120      405561 :          idata = idata + 1
    7121      405561 :          data_tmp = full_data(idata)
    7122      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7123      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7124      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7125      405561 :          idata = idata + 1
    7126      405561 :          data_tmp = full_data(idata)
    7127      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7128      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7129      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7130      405561 :          idata = idata + 1
    7131      405561 :          data_tmp = full_data(idata)
    7132      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7133      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7134      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7135      405561 :          idata = idata + 1
    7136      405561 :          data_tmp = full_data(idata)
    7137      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7138      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7139      405561 :          pack_tmp = ISHFT(pack_tmp, -6)
    7140      405561 :          idata = idata + 1
    7141      405561 :          data_tmp = full_data(idata)
    7142      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7143      405561 :          data_tmp = IAND(data_tmp, mask_left(6))
    7144      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7145      405561 :          ipack = ipack + 1
    7146      405561 :          packed_data(ipack) = pack_tmp
    7147      405561 :          data_tmp = full_data(idata)
    7148      405561 :          pack_tmp = ISHFT(data_tmp, 59)
    7149      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7150      405561 :          idata = idata + 1
    7151      405561 :          data_tmp = full_data(idata)
    7152      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7153      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7154      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7155      405561 :          idata = idata + 1
    7156      405561 :          data_tmp = full_data(idata)
    7157      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7158      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7159      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7160      405561 :          idata = idata + 1
    7161      405561 :          data_tmp = full_data(idata)
    7162      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7163      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7164      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7165      405561 :          idata = idata + 1
    7166      405561 :          data_tmp = full_data(idata)
    7167      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7168      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7169      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7170      405561 :          idata = idata + 1
    7171      405561 :          data_tmp = full_data(idata)
    7172      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7173      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7174      405561 :          pack_tmp = ISHFT(pack_tmp, -4)
    7175      405561 :          idata = idata + 1
    7176      405561 :          data_tmp = full_data(idata)
    7177      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7178      405561 :          data_tmp = IAND(data_tmp, mask_left(4))
    7179      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7180      405561 :          ipack = ipack + 1
    7181      405561 :          packed_data(ipack) = pack_tmp
    7182      405561 :          data_tmp = full_data(idata)
    7183      405561 :          pack_tmp = ISHFT(data_tmp, 57)
    7184      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7185      405561 :          idata = idata + 1
    7186      405561 :          data_tmp = full_data(idata)
    7187      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7188      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7189      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7190      405561 :          idata = idata + 1
    7191      405561 :          data_tmp = full_data(idata)
    7192      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7193      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7194      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7195      405561 :          idata = idata + 1
    7196      405561 :          data_tmp = full_data(idata)
    7197      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7198      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7199      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7200      405561 :          idata = idata + 1
    7201      405561 :          data_tmp = full_data(idata)
    7202      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7203      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7204      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7205      405561 :          idata = idata + 1
    7206      405561 :          data_tmp = full_data(idata)
    7207      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7208      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7209      405561 :          pack_tmp = ISHFT(pack_tmp, -2)
    7210      405561 :          idata = idata + 1
    7211      405561 :          data_tmp = full_data(idata)
    7212      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7213      405561 :          data_tmp = IAND(data_tmp, mask_left(2))
    7214      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7215      405561 :          ipack = ipack + 1
    7216      405561 :          packed_data(ipack) = pack_tmp
    7217      405561 :          data_tmp = full_data(idata)
    7218      405561 :          pack_tmp = ISHFT(data_tmp, 55)
    7219      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7220      405561 :          idata = idata + 1
    7221      405561 :          data_tmp = full_data(idata)
    7222      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7223      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7224      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7225      405561 :          idata = idata + 1
    7226      405561 :          data_tmp = full_data(idata)
    7227      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7228      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7229      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7230      405561 :          idata = idata + 1
    7231      405561 :          data_tmp = full_data(idata)
    7232      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7233      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7234      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7235      405561 :          idata = idata + 1
    7236      405561 :          data_tmp = full_data(idata)
    7237      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7238      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7239      405561 :          pack_tmp = ISHFT(pack_tmp, -11)
    7240      405561 :          idata = idata + 1
    7241      405561 :          data_tmp = full_data(idata)
    7242      405561 :          data_tmp = ISHFT(data_tmp, 53)
    7243      405561 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7244             :          pack_tmp = ISHFT(pack_tmp, 0)
    7245      405561 :          pack_tmp = ISHFT(pack_tmp, 0)
    7246      405561 :          ipack = ipack + 1
    7247      405598 :          packed_data(ipack) = pack_tmp
    7248             :       END DO
    7249       25763 :       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       25763 :    END SUBROUTINE ints2bits_11
    7253             : 
    7254             : ! **************************************************************************************************
    7255             : !> \brief ...
    7256             : !> \param Ndata ...
    7257             : !> \param packed_data ...
    7258             : !> \param full_data ...
    7259             : ! **************************************************************************************************
    7260      109160 :    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      109160 :       ipack = 0
    7271      109160 :       idata = 0
    7272      109160 :       pack_tmp = 0
    7273      109160 :       Ndata_rep = (Ndata/64)*64
    7274      109160 :       DO kdata = 1, Ndata_rep, 64
    7275     1711404 :          idata = idata + 1
    7276     1711404 :          data_tmp = ISHFT(pack_tmp, 11)
    7277     1711404 :          ipack = ipack + 1
    7278     1711404 :          pack_tmp = packed_data(ipack)
    7279     1711404 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
    7280     1711404 :          pack_tmp = ISHFT(pack_tmp, -11)
    7281     1711404 :          idata = idata + 1
    7282     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7283     1711404 :          full_data(idata) = data_tmp
    7284     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7285     1711404 :          idata = idata + 1
    7286     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7287     1711404 :          full_data(idata) = data_tmp
    7288     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7289     1711404 :          idata = idata + 1
    7290     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7291     1711404 :          full_data(idata) = data_tmp
    7292     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7293     1711404 :          idata = idata + 1
    7294     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7295     1711404 :          full_data(idata) = data_tmp
    7296     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7297     1711404 :          idata = idata + 1
    7298     1711404 :          data_tmp = ISHFT(pack_tmp, 2)
    7299     1711404 :          ipack = ipack + 1
    7300     1711404 :          pack_tmp = packed_data(ipack)
    7301     1711404 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    7302     1711404 :          pack_tmp = ISHFT(pack_tmp, -2)
    7303     1711404 :          idata = idata + 1
    7304     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7305     1711404 :          full_data(idata) = data_tmp
    7306     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7307     1711404 :          idata = idata + 1
    7308     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7309     1711404 :          full_data(idata) = data_tmp
    7310     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7311     1711404 :          idata = idata + 1
    7312     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7313     1711404 :          full_data(idata) = data_tmp
    7314     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7315     1711404 :          idata = idata + 1
    7316     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7317     1711404 :          full_data(idata) = data_tmp
    7318     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7319     1711404 :          idata = idata + 1
    7320     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7321     1711404 :          full_data(idata) = data_tmp
    7322     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7323     1711404 :          idata = idata + 1
    7324     1711404 :          data_tmp = ISHFT(pack_tmp, 4)
    7325     1711404 :          ipack = ipack + 1
    7326     1711404 :          pack_tmp = packed_data(ipack)
    7327     1711404 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    7328     1711404 :          pack_tmp = ISHFT(pack_tmp, -4)
    7329     1711404 :          idata = idata + 1
    7330     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7331     1711404 :          full_data(idata) = data_tmp
    7332     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7333     1711404 :          idata = idata + 1
    7334     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7335     1711404 :          full_data(idata) = data_tmp
    7336     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7337     1711404 :          idata = idata + 1
    7338     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7339     1711404 :          full_data(idata) = data_tmp
    7340     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7341     1711404 :          idata = idata + 1
    7342     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7343     1711404 :          full_data(idata) = data_tmp
    7344     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7345     1711404 :          idata = idata + 1
    7346     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7347     1711404 :          full_data(idata) = data_tmp
    7348     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7349     1711404 :          idata = idata + 1
    7350     1711404 :          data_tmp = ISHFT(pack_tmp, 6)
    7351     1711404 :          ipack = ipack + 1
    7352     1711404 :          pack_tmp = packed_data(ipack)
    7353     1711404 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    7354     1711404 :          pack_tmp = ISHFT(pack_tmp, -6)
    7355     1711404 :          idata = idata + 1
    7356     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7357     1711404 :          full_data(idata) = data_tmp
    7358     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7359     1711404 :          idata = idata + 1
    7360     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7361     1711404 :          full_data(idata) = data_tmp
    7362     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7363     1711404 :          idata = idata + 1
    7364     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7365     1711404 :          full_data(idata) = data_tmp
    7366     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7367     1711404 :          idata = idata + 1
    7368     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7369     1711404 :          full_data(idata) = data_tmp
    7370     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7371     1711404 :          idata = idata + 1
    7372     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7373     1711404 :          full_data(idata) = data_tmp
    7374     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7375     1711404 :          idata = idata + 1
    7376     1711404 :          data_tmp = ISHFT(pack_tmp, 8)
    7377     1711404 :          ipack = ipack + 1
    7378     1711404 :          pack_tmp = packed_data(ipack)
    7379     1711404 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    7380     1711404 :          pack_tmp = ISHFT(pack_tmp, -8)
    7381     1711404 :          idata = idata + 1
    7382     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7383     1711404 :          full_data(idata) = data_tmp
    7384     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7385     1711404 :          idata = idata + 1
    7386     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7387     1711404 :          full_data(idata) = data_tmp
    7388     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7389     1711404 :          idata = idata + 1
    7390     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7391     1711404 :          full_data(idata) = data_tmp
    7392     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7393     1711404 :          idata = idata + 1
    7394     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7395     1711404 :          full_data(idata) = data_tmp
    7396     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7397     1711404 :          idata = idata + 1
    7398     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7399     1711404 :          full_data(idata) = data_tmp
    7400     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7401     1711404 :          idata = idata + 1
    7402     1711404 :          data_tmp = ISHFT(pack_tmp, 10)
    7403     1711404 :          ipack = ipack + 1
    7404     1711404 :          pack_tmp = packed_data(ipack)
    7405     1711404 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    7406     1711404 :          pack_tmp = ISHFT(pack_tmp, -10)
    7407     1711404 :          idata = idata + 1
    7408     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7409     1711404 :          full_data(idata) = data_tmp
    7410     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7411     1711404 :          idata = idata + 1
    7412     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7413     1711404 :          full_data(idata) = data_tmp
    7414     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7415     1711404 :          idata = idata + 1
    7416     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7417     1711404 :          full_data(idata) = data_tmp
    7418     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7419     1711404 :          idata = idata + 1
    7420     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7421     1711404 :          full_data(idata) = data_tmp
    7422     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7423     1711404 :          idata = idata + 1
    7424     1711404 :          data_tmp = ISHFT(pack_tmp, 1)
    7425     1711404 :          ipack = ipack + 1
    7426     1711404 :          pack_tmp = packed_data(ipack)
    7427     1711404 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    7428     1711404 :          pack_tmp = ISHFT(pack_tmp, -1)
    7429     1711404 :          idata = idata + 1
    7430     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7431     1711404 :          full_data(idata) = data_tmp
    7432     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7433     1711404 :          idata = idata + 1
    7434     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7435     1711404 :          full_data(idata) = data_tmp
    7436     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7437     1711404 :          idata = idata + 1
    7438     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7439     1711404 :          full_data(idata) = data_tmp
    7440     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7441     1711404 :          idata = idata + 1
    7442     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7443     1711404 :          full_data(idata) = data_tmp
    7444     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7445     1711404 :          idata = idata + 1
    7446     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7447     1711404 :          full_data(idata) = data_tmp
    7448     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7449     1711404 :          idata = idata + 1
    7450     1711404 :          data_tmp = ISHFT(pack_tmp, 3)
    7451     1711404 :          ipack = ipack + 1
    7452     1711404 :          pack_tmp = packed_data(ipack)
    7453     1711404 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    7454     1711404 :          pack_tmp = ISHFT(pack_tmp, -3)
    7455     1711404 :          idata = idata + 1
    7456     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7457     1711404 :          full_data(idata) = data_tmp
    7458     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7459     1711404 :          idata = idata + 1
    7460     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7461     1711404 :          full_data(idata) = data_tmp
    7462     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7463     1711404 :          idata = idata + 1
    7464     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7465     1711404 :          full_data(idata) = data_tmp
    7466     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7467     1711404 :          idata = idata + 1
    7468     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7469     1711404 :          full_data(idata) = data_tmp
    7470     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7471     1711404 :          idata = idata + 1
    7472     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7473     1711404 :          full_data(idata) = data_tmp
    7474     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7475     1711404 :          idata = idata + 1
    7476     1711404 :          data_tmp = ISHFT(pack_tmp, 5)
    7477     1711404 :          ipack = ipack + 1
    7478     1711404 :          pack_tmp = packed_data(ipack)
    7479     1711404 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
    7480     1711404 :          pack_tmp = ISHFT(pack_tmp, -5)
    7481     1711404 :          idata = idata + 1
    7482     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7483     1711404 :          full_data(idata) = data_tmp
    7484     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7485     1711404 :          idata = idata + 1
    7486     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7487     1711404 :          full_data(idata) = data_tmp
    7488     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7489     1711404 :          idata = idata + 1
    7490     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7491     1711404 :          full_data(idata) = data_tmp
    7492     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7493     1711404 :          idata = idata + 1
    7494     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7495     1711404 :          full_data(idata) = data_tmp
    7496     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7497     1711404 :          idata = idata + 1
    7498     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7499     1711404 :          full_data(idata) = data_tmp
    7500     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7501     1711404 :          idata = idata + 1
    7502     1711404 :          data_tmp = ISHFT(pack_tmp, 7)
    7503     1711404 :          ipack = ipack + 1
    7504     1711404 :          pack_tmp = packed_data(ipack)
    7505     1711404 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
    7506     1711404 :          pack_tmp = ISHFT(pack_tmp, -7)
    7507     1711404 :          idata = idata + 1
    7508     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7509     1711404 :          full_data(idata) = data_tmp
    7510     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7511     1711404 :          idata = idata + 1
    7512     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7513     1711404 :          full_data(idata) = data_tmp
    7514     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7515     1711404 :          idata = idata + 1
    7516     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7517     1711404 :          full_data(idata) = data_tmp
    7518     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7519     1711404 :          idata = idata + 1
    7520     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7521     1711404 :          full_data(idata) = data_tmp
    7522     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7523     1711404 :          idata = idata + 1
    7524     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7525     1711404 :          full_data(idata) = data_tmp
    7526     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7527     1711404 :          idata = idata + 1
    7528     1711404 :          data_tmp = ISHFT(pack_tmp, 9)
    7529     1711404 :          ipack = ipack + 1
    7530     1711404 :          pack_tmp = packed_data(ipack)
    7531     1711404 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
    7532     1711404 :          pack_tmp = ISHFT(pack_tmp, -9)
    7533     1711404 :          idata = idata + 1
    7534     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7535     1711404 :          full_data(idata) = data_tmp
    7536     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7537     1711404 :          idata = idata + 1
    7538     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7539     1711404 :          full_data(idata) = data_tmp
    7540     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7541     1711404 :          idata = idata + 1
    7542     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7543     1711404 :          full_data(idata) = data_tmp
    7544     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7545     1711404 :          idata = idata + 1
    7546     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7547     1711404 :          full_data(idata) = data_tmp
    7548     1711404 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7549     1711404 :          idata = idata + 1
    7550     1711404 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7551     1711404 :          full_data(idata) = data_tmp
    7552     1711605 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7553             :       END DO
    7554      109160 :       IF (Ndata_rep < Ndata) THEN
    7555        4136 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    7556             :       END IF
    7557      109160 :    END SUBROUTINE bits2ints_11
    7558             : 
    7559             : ! **************************************************************************************************
    7560             : !> \brief ...
    7561             : !> \param Ndata ...
    7562             : !> \param packed_data ...
    7563             : !> \param full_data ...
    7564             : ! **************************************************************************************************
    7565       26007 :    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       26007 :       idata = 0
    7576       26007 :       ipack = 0
    7577       26007 :       Ndata_rep = (Ndata/64)*64
    7578       26007 :       DO kdata = 1, Ndata_rep, 64
    7579      408275 :          pack_tmp = 0
    7580      408275 :          idata = idata + 1
    7581      408275 :          data_tmp = full_data(idata)
    7582      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7583      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7584      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7585      408275 :          idata = idata + 1
    7586      408275 :          data_tmp = full_data(idata)
    7587      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7588      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7589      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7590      408275 :          idata = idata + 1
    7591      408275 :          data_tmp = full_data(idata)
    7592      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7593      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7594      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7595      408275 :          idata = idata + 1
    7596      408275 :          data_tmp = full_data(idata)
    7597      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7598      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7599      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7600      408275 :          idata = idata + 1
    7601      408275 :          data_tmp = full_data(idata)
    7602      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7603      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7604      408275 :          pack_tmp = ISHFT(pack_tmp, -4)
    7605      408275 :          idata = idata + 1
    7606      408275 :          data_tmp = full_data(idata)
    7607      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7608      408275 :          data_tmp = IAND(data_tmp, mask_left(4))
    7609      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7610      408275 :          ipack = ipack + 1
    7611      408275 :          packed_data(ipack) = pack_tmp
    7612      408275 :          data_tmp = full_data(idata)
    7613      408275 :          pack_tmp = ISHFT(data_tmp, 56)
    7614      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7615      408275 :          idata = idata + 1
    7616      408275 :          data_tmp = full_data(idata)
    7617      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7618      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7619      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7620      408275 :          idata = idata + 1
    7621      408275 :          data_tmp = full_data(idata)
    7622      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7623      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7624      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7625      408275 :          idata = idata + 1
    7626      408275 :          data_tmp = full_data(idata)
    7627      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7628      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7629      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7630      408275 :          idata = idata + 1
    7631      408275 :          data_tmp = full_data(idata)
    7632      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7633      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7634      408275 :          pack_tmp = ISHFT(pack_tmp, -8)
    7635      408275 :          idata = idata + 1
    7636      408275 :          data_tmp = full_data(idata)
    7637      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7638      408275 :          data_tmp = IAND(data_tmp, mask_left(8))
    7639      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7640      408275 :          ipack = ipack + 1
    7641      408275 :          packed_data(ipack) = pack_tmp
    7642      408275 :          data_tmp = full_data(idata)
    7643      408275 :          pack_tmp = ISHFT(data_tmp, 60)
    7644      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7645      408275 :          idata = idata + 1
    7646      408275 :          data_tmp = full_data(idata)
    7647      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7648      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7649      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7650      408275 :          idata = idata + 1
    7651      408275 :          data_tmp = full_data(idata)
    7652      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7653      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7654      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7655      408275 :          idata = idata + 1
    7656      408275 :          data_tmp = full_data(idata)
    7657      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7658      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7659      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7660      408275 :          idata = idata + 1
    7661      408275 :          data_tmp = full_data(idata)
    7662      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7663      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7664      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7665      408275 :          idata = idata + 1
    7666      408275 :          data_tmp = full_data(idata)
    7667      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7668      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7669      408275 :          pack_tmp = ISHFT(pack_tmp, 0)
    7670      408275 :          idata = idata + 1
    7671      408275 :          data_tmp = full_data(idata)
    7672             :          data_tmp = ISHFT(data_tmp, 52)
    7673      408275 :          data_tmp = IAND(data_tmp, mask_left(0))
    7674      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7675      408275 :          ipack = ipack + 1
    7676      408275 :          packed_data(ipack) = pack_tmp
    7677      408275 :          data_tmp = full_data(idata)
    7678      408275 :          pack_tmp = ISHFT(data_tmp, 52)
    7679      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7680      408275 :          idata = idata + 1
    7681      408275 :          data_tmp = full_data(idata)
    7682      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7683      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7684      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7685      408275 :          idata = idata + 1
    7686      408275 :          data_tmp = full_data(idata)
    7687      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7688      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7689      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7690      408275 :          idata = idata + 1
    7691      408275 :          data_tmp = full_data(idata)
    7692      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7693      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7694      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7695      408275 :          idata = idata + 1
    7696      408275 :          data_tmp = full_data(idata)
    7697      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7698      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7699      408275 :          pack_tmp = ISHFT(pack_tmp, -4)
    7700      408275 :          idata = idata + 1
    7701      408275 :          data_tmp = full_data(idata)
    7702      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7703      408275 :          data_tmp = IAND(data_tmp, mask_left(4))
    7704      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7705      408275 :          ipack = ipack + 1
    7706      408275 :          packed_data(ipack) = pack_tmp
    7707      408275 :          data_tmp = full_data(idata)
    7708      408275 :          pack_tmp = ISHFT(data_tmp, 56)
    7709      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7710      408275 :          idata = idata + 1
    7711      408275 :          data_tmp = full_data(idata)
    7712      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7713      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7714      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7715      408275 :          idata = idata + 1
    7716      408275 :          data_tmp = full_data(idata)
    7717      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7718      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7719      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7720      408275 :          idata = idata + 1
    7721      408275 :          data_tmp = full_data(idata)
    7722      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7723      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7724      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7725      408275 :          idata = idata + 1
    7726      408275 :          data_tmp = full_data(idata)
    7727      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7728      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7729      408275 :          pack_tmp = ISHFT(pack_tmp, -8)
    7730      408275 :          idata = idata + 1
    7731      408275 :          data_tmp = full_data(idata)
    7732      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7733      408275 :          data_tmp = IAND(data_tmp, mask_left(8))
    7734      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7735      408275 :          ipack = ipack + 1
    7736      408275 :          packed_data(ipack) = pack_tmp
    7737      408275 :          data_tmp = full_data(idata)
    7738      408275 :          pack_tmp = ISHFT(data_tmp, 60)
    7739      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7740      408275 :          idata = idata + 1
    7741      408275 :          data_tmp = full_data(idata)
    7742      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7743      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7744      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7745      408275 :          idata = idata + 1
    7746      408275 :          data_tmp = full_data(idata)
    7747      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7748      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7749      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7750      408275 :          idata = idata + 1
    7751      408275 :          data_tmp = full_data(idata)
    7752      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7753      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7754      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7755      408275 :          idata = idata + 1
    7756      408275 :          data_tmp = full_data(idata)
    7757      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7758      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7759      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7760      408275 :          idata = idata + 1
    7761      408275 :          data_tmp = full_data(idata)
    7762      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7763      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7764      408275 :          pack_tmp = ISHFT(pack_tmp, 0)
    7765      408275 :          idata = idata + 1
    7766      408275 :          data_tmp = full_data(idata)
    7767             :          data_tmp = ISHFT(data_tmp, 52)
    7768      408275 :          data_tmp = IAND(data_tmp, mask_left(0))
    7769      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7770      408275 :          ipack = ipack + 1
    7771      408275 :          packed_data(ipack) = pack_tmp
    7772      408275 :          data_tmp = full_data(idata)
    7773      408275 :          pack_tmp = ISHFT(data_tmp, 52)
    7774      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7775      408275 :          idata = idata + 1
    7776      408275 :          data_tmp = full_data(idata)
    7777      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7778      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7779      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7780      408275 :          idata = idata + 1
    7781      408275 :          data_tmp = full_data(idata)
    7782      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7783      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7784      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7785      408275 :          idata = idata + 1
    7786      408275 :          data_tmp = full_data(idata)
    7787      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7788      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7789      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7790      408275 :          idata = idata + 1
    7791      408275 :          data_tmp = full_data(idata)
    7792      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7793      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7794      408275 :          pack_tmp = ISHFT(pack_tmp, -4)
    7795      408275 :          idata = idata + 1
    7796      408275 :          data_tmp = full_data(idata)
    7797      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7798      408275 :          data_tmp = IAND(data_tmp, mask_left(4))
    7799      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7800      408275 :          ipack = ipack + 1
    7801      408275 :          packed_data(ipack) = pack_tmp
    7802      408275 :          data_tmp = full_data(idata)
    7803      408275 :          pack_tmp = ISHFT(data_tmp, 56)
    7804      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7805      408275 :          idata = idata + 1
    7806      408275 :          data_tmp = full_data(idata)
    7807      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7808      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7809      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7810      408275 :          idata = idata + 1
    7811      408275 :          data_tmp = full_data(idata)
    7812      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7813      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7814      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7815      408275 :          idata = idata + 1
    7816      408275 :          data_tmp = full_data(idata)
    7817      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7818      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7819      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7820      408275 :          idata = idata + 1
    7821      408275 :          data_tmp = full_data(idata)
    7822      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7823      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7824      408275 :          pack_tmp = ISHFT(pack_tmp, -8)
    7825      408275 :          idata = idata + 1
    7826      408275 :          data_tmp = full_data(idata)
    7827      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7828      408275 :          data_tmp = IAND(data_tmp, mask_left(8))
    7829      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7830      408275 :          ipack = ipack + 1
    7831      408275 :          packed_data(ipack) = pack_tmp
    7832      408275 :          data_tmp = full_data(idata)
    7833      408275 :          pack_tmp = ISHFT(data_tmp, 60)
    7834      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7835      408275 :          idata = idata + 1
    7836      408275 :          data_tmp = full_data(idata)
    7837      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7838      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7839      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7840      408275 :          idata = idata + 1
    7841      408275 :          data_tmp = full_data(idata)
    7842      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7843      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7844      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7845      408275 :          idata = idata + 1
    7846      408275 :          data_tmp = full_data(idata)
    7847      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7848      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7849      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7850      408275 :          idata = idata + 1
    7851      408275 :          data_tmp = full_data(idata)
    7852      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7853      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7854      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7855      408275 :          idata = idata + 1
    7856      408275 :          data_tmp = full_data(idata)
    7857      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7858      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7859      408275 :          pack_tmp = ISHFT(pack_tmp, 0)
    7860      408275 :          idata = idata + 1
    7861      408275 :          data_tmp = full_data(idata)
    7862             :          data_tmp = ISHFT(data_tmp, 52)
    7863      408275 :          data_tmp = IAND(data_tmp, mask_left(0))
    7864      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7865      408275 :          ipack = ipack + 1
    7866      408275 :          packed_data(ipack) = pack_tmp
    7867      408275 :          data_tmp = full_data(idata)
    7868      408275 :          pack_tmp = ISHFT(data_tmp, 52)
    7869      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7870      408275 :          idata = idata + 1
    7871      408275 :          data_tmp = full_data(idata)
    7872      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7873      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7874      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7875      408275 :          idata = idata + 1
    7876      408275 :          data_tmp = full_data(idata)
    7877      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7878      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7879      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7880      408275 :          idata = idata + 1
    7881      408275 :          data_tmp = full_data(idata)
    7882      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7883      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7884      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7885      408275 :          idata = idata + 1
    7886      408275 :          data_tmp = full_data(idata)
    7887      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7888      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7889      408275 :          pack_tmp = ISHFT(pack_tmp, -4)
    7890      408275 :          idata = idata + 1
    7891      408275 :          data_tmp = full_data(idata)
    7892      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7893      408275 :          data_tmp = IAND(data_tmp, mask_left(4))
    7894      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7895      408275 :          ipack = ipack + 1
    7896      408275 :          packed_data(ipack) = pack_tmp
    7897      408275 :          data_tmp = full_data(idata)
    7898      408275 :          pack_tmp = ISHFT(data_tmp, 56)
    7899      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7900      408275 :          idata = idata + 1
    7901      408275 :          data_tmp = full_data(idata)
    7902      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7903      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7904      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7905      408275 :          idata = idata + 1
    7906      408275 :          data_tmp = full_data(idata)
    7907      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7908      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7909      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7910      408275 :          idata = idata + 1
    7911      408275 :          data_tmp = full_data(idata)
    7912      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7913      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7914      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7915      408275 :          idata = idata + 1
    7916      408275 :          data_tmp = full_data(idata)
    7917      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7918      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7919      408275 :          pack_tmp = ISHFT(pack_tmp, -8)
    7920      408275 :          idata = idata + 1
    7921      408275 :          data_tmp = full_data(idata)
    7922      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7923      408275 :          data_tmp = IAND(data_tmp, mask_left(8))
    7924      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7925      408275 :          ipack = ipack + 1
    7926      408275 :          packed_data(ipack) = pack_tmp
    7927      408275 :          data_tmp = full_data(idata)
    7928      408275 :          pack_tmp = ISHFT(data_tmp, 60)
    7929      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7930      408275 :          idata = idata + 1
    7931      408275 :          data_tmp = full_data(idata)
    7932      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7933      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7934      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7935      408275 :          idata = idata + 1
    7936      408275 :          data_tmp = full_data(idata)
    7937      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7938      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7939      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7940      408275 :          idata = idata + 1
    7941      408275 :          data_tmp = full_data(idata)
    7942      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7943      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7944      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7945      408275 :          idata = idata + 1
    7946      408275 :          data_tmp = full_data(idata)
    7947      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7948      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7949      408275 :          pack_tmp = ISHFT(pack_tmp, -12)
    7950      408275 :          idata = idata + 1
    7951      408275 :          data_tmp = full_data(idata)
    7952      408275 :          data_tmp = ISHFT(data_tmp, 52)
    7953      408275 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7954             :          pack_tmp = ISHFT(pack_tmp, 0)
    7955      408275 :          pack_tmp = ISHFT(pack_tmp, 0)
    7956      408275 :          ipack = ipack + 1
    7957      408340 :          packed_data(ipack) = pack_tmp
    7958             :       END DO
    7959       26007 :       IF (Ndata_rep < Ndata) THEN
    7960         922 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    7961             :       END IF
    7962       26007 :    END SUBROUTINE ints2bits_12
    7963             : 
    7964             : ! **************************************************************************************************
    7965             : !> \brief ...
    7966             : !> \param Ndata ...
    7967             : !> \param packed_data ...
    7968             : !> \param full_data ...
    7969             : ! **************************************************************************************************
    7970      110336 :    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      110336 :       ipack = 0
    7981      110336 :       idata = 0
    7982      110336 :       pack_tmp = 0
    7983      110336 :       Ndata_rep = (Ndata/64)*64
    7984      110336 :       DO kdata = 1, Ndata_rep, 64
    7985     1724406 :          idata = idata + 1
    7986     1724406 :          data_tmp = ISHFT(pack_tmp, 12)
    7987     1724406 :          ipack = ipack + 1
    7988     1724406 :          pack_tmp = packed_data(ipack)
    7989     1724406 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    7990     1724406 :          pack_tmp = ISHFT(pack_tmp, -12)
    7991     1724406 :          idata = idata + 1
    7992     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7993     1724406 :          full_data(idata) = data_tmp
    7994     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7995     1724406 :          idata = idata + 1
    7996     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7997     1724406 :          full_data(idata) = data_tmp
    7998     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7999     1724406 :          idata = idata + 1
    8000     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8001     1724406 :          full_data(idata) = data_tmp
    8002     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8003     1724406 :          idata = idata + 1
    8004     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8005     1724406 :          full_data(idata) = data_tmp
    8006     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8007     1724406 :          idata = idata + 1
    8008     1724406 :          data_tmp = ISHFT(pack_tmp, 8)
    8009     1724406 :          ipack = ipack + 1
    8010     1724406 :          pack_tmp = packed_data(ipack)
    8011     1724406 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    8012     1724406 :          pack_tmp = ISHFT(pack_tmp, -8)
    8013     1724406 :          idata = idata + 1
    8014     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8015     1724406 :          full_data(idata) = data_tmp
    8016     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8017     1724406 :          idata = idata + 1
    8018     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8019     1724406 :          full_data(idata) = data_tmp
    8020     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8021     1724406 :          idata = idata + 1
    8022     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8023     1724406 :          full_data(idata) = data_tmp
    8024     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8025     1724406 :          idata = idata + 1
    8026     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8027     1724406 :          full_data(idata) = data_tmp
    8028     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8029     1724406 :          idata = idata + 1
    8030     1724406 :          data_tmp = ISHFT(pack_tmp, 4)
    8031     1724406 :          ipack = ipack + 1
    8032     1724406 :          pack_tmp = packed_data(ipack)
    8033     1724406 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    8034     1724406 :          pack_tmp = ISHFT(pack_tmp, -4)
    8035     1724406 :          idata = idata + 1
    8036     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8037     1724406 :          full_data(idata) = data_tmp
    8038     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8039     1724406 :          idata = idata + 1
    8040     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8041     1724406 :          full_data(idata) = data_tmp
    8042     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8043     1724406 :          idata = idata + 1
    8044     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8045     1724406 :          full_data(idata) = data_tmp
    8046     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8047     1724406 :          idata = idata + 1
    8048     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8049     1724406 :          full_data(idata) = data_tmp
    8050     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8051     1724406 :          idata = idata + 1
    8052     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8053     1724406 :          full_data(idata) = data_tmp
    8054     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8055     1724406 :          idata = idata + 1
    8056     1724406 :          data_tmp = ISHFT(pack_tmp, 12)
    8057     1724406 :          ipack = ipack + 1
    8058     1724406 :          pack_tmp = packed_data(ipack)
    8059     1724406 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    8060     1724406 :          pack_tmp = ISHFT(pack_tmp, -12)
    8061     1724406 :          idata = idata + 1
    8062     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8063     1724406 :          full_data(idata) = data_tmp
    8064     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8065     1724406 :          idata = idata + 1
    8066     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8067     1724406 :          full_data(idata) = data_tmp
    8068     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8069     1724406 :          idata = idata + 1
    8070     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8071     1724406 :          full_data(idata) = data_tmp
    8072     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8073     1724406 :          idata = idata + 1
    8074     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8075     1724406 :          full_data(idata) = data_tmp
    8076     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8077     1724406 :          idata = idata + 1
    8078     1724406 :          data_tmp = ISHFT(pack_tmp, 8)
    8079     1724406 :          ipack = ipack + 1
    8080     1724406 :          pack_tmp = packed_data(ipack)
    8081     1724406 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    8082     1724406 :          pack_tmp = ISHFT(pack_tmp, -8)
    8083     1724406 :          idata = idata + 1
    8084     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8085     1724406 :          full_data(idata) = data_tmp
    8086     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8087     1724406 :          idata = idata + 1
    8088     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8089     1724406 :          full_data(idata) = data_tmp
    8090     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8091     1724406 :          idata = idata + 1
    8092     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8093     1724406 :          full_data(idata) = data_tmp
    8094     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8095     1724406 :          idata = idata + 1
    8096     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8097     1724406 :          full_data(idata) = data_tmp
    8098     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8099     1724406 :          idata = idata + 1
    8100     1724406 :          data_tmp = ISHFT(pack_tmp, 4)
    8101     1724406 :          ipack = ipack + 1
    8102     1724406 :          pack_tmp = packed_data(ipack)
    8103     1724406 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    8104     1724406 :          pack_tmp = ISHFT(pack_tmp, -4)
    8105     1724406 :          idata = idata + 1
    8106     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8107     1724406 :          full_data(idata) = data_tmp
    8108     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8109     1724406 :          idata = idata + 1
    8110     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8111     1724406 :          full_data(idata) = data_tmp
    8112     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8113     1724406 :          idata = idata + 1
    8114     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8115     1724406 :          full_data(idata) = data_tmp
    8116     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8117     1724406 :          idata = idata + 1
    8118     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8119     1724406 :          full_data(idata) = data_tmp
    8120     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8121     1724406 :          idata = idata + 1
    8122     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8123     1724406 :          full_data(idata) = data_tmp
    8124     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8125     1724406 :          idata = idata + 1
    8126     1724406 :          data_tmp = ISHFT(pack_tmp, 12)
    8127     1724406 :          ipack = ipack + 1
    8128     1724406 :          pack_tmp = packed_data(ipack)
    8129     1724406 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    8130     1724406 :          pack_tmp = ISHFT(pack_tmp, -12)
    8131     1724406 :          idata = idata + 1
    8132     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8133     1724406 :          full_data(idata) = data_tmp
    8134     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8135     1724406 :          idata = idata + 1
    8136     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8137     1724406 :          full_data(idata) = data_tmp
    8138     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8139     1724406 :          idata = idata + 1
    8140     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8141     1724406 :          full_data(idata) = data_tmp
    8142     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8143     1724406 :          idata = idata + 1
    8144     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8145     1724406 :          full_data(idata) = data_tmp
    8146     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8147     1724406 :          idata = idata + 1
    8148     1724406 :          data_tmp = ISHFT(pack_tmp, 8)
    8149     1724406 :          ipack = ipack + 1
    8150     1724406 :          pack_tmp = packed_data(ipack)
    8151     1724406 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    8152     1724406 :          pack_tmp = ISHFT(pack_tmp, -8)
    8153     1724406 :          idata = idata + 1
    8154     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8155     1724406 :          full_data(idata) = data_tmp
    8156     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8157     1724406 :          idata = idata + 1
    8158     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8159     1724406 :          full_data(idata) = data_tmp
    8160     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8161     1724406 :          idata = idata + 1
    8162     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8163     1724406 :          full_data(idata) = data_tmp
    8164     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8165     1724406 :          idata = idata + 1
    8166     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8167     1724406 :          full_data(idata) = data_tmp
    8168     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8169     1724406 :          idata = idata + 1
    8170     1724406 :          data_tmp = ISHFT(pack_tmp, 4)
    8171     1724406 :          ipack = ipack + 1
    8172     1724406 :          pack_tmp = packed_data(ipack)
    8173     1724406 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    8174     1724406 :          pack_tmp = ISHFT(pack_tmp, -4)
    8175     1724406 :          idata = idata + 1
    8176     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8177     1724406 :          full_data(idata) = data_tmp
    8178     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8179     1724406 :          idata = idata + 1
    8180     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8181     1724406 :          full_data(idata) = data_tmp
    8182     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8183     1724406 :          idata = idata + 1
    8184     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8185     1724406 :          full_data(idata) = data_tmp
    8186     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8187     1724406 :          idata = idata + 1
    8188     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8189     1724406 :          full_data(idata) = data_tmp
    8190     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8191     1724406 :          idata = idata + 1
    8192     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8193     1724406 :          full_data(idata) = data_tmp
    8194     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8195     1724406 :          idata = idata + 1
    8196     1724406 :          data_tmp = ISHFT(pack_tmp, 12)
    8197     1724406 :          ipack = ipack + 1
    8198     1724406 :          pack_tmp = packed_data(ipack)
    8199     1724406 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    8200     1724406 :          pack_tmp = ISHFT(pack_tmp, -12)
    8201     1724406 :          idata = idata + 1
    8202     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8203     1724406 :          full_data(idata) = data_tmp
    8204     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8205     1724406 :          idata = idata + 1
    8206     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8207     1724406 :          full_data(idata) = data_tmp
    8208     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8209     1724406 :          idata = idata + 1
    8210     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8211     1724406 :          full_data(idata) = data_tmp
    8212     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8213     1724406 :          idata = idata + 1
    8214     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8215     1724406 :          full_data(idata) = data_tmp
    8216     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8217     1724406 :          idata = idata + 1
    8218     1724406 :          data_tmp = ISHFT(pack_tmp, 8)
    8219     1724406 :          ipack = ipack + 1
    8220     1724406 :          pack_tmp = packed_data(ipack)
    8221     1724406 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    8222     1724406 :          pack_tmp = ISHFT(pack_tmp, -8)
    8223     1724406 :          idata = idata + 1
    8224     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8225     1724406 :          full_data(idata) = data_tmp
    8226     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8227     1724406 :          idata = idata + 1
    8228     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8229     1724406 :          full_data(idata) = data_tmp
    8230     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8231     1724406 :          idata = idata + 1
    8232     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8233     1724406 :          full_data(idata) = data_tmp
    8234     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8235     1724406 :          idata = idata + 1
    8236     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8237     1724406 :          full_data(idata) = data_tmp
    8238     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8239     1724406 :          idata = idata + 1
    8240     1724406 :          data_tmp = ISHFT(pack_tmp, 4)
    8241     1724406 :          ipack = ipack + 1
    8242     1724406 :          pack_tmp = packed_data(ipack)
    8243     1724406 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    8244     1724406 :          pack_tmp = ISHFT(pack_tmp, -4)
    8245     1724406 :          idata = idata + 1
    8246     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8247     1724406 :          full_data(idata) = data_tmp
    8248     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8249     1724406 :          idata = idata + 1
    8250     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8251     1724406 :          full_data(idata) = data_tmp
    8252     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8253     1724406 :          idata = idata + 1
    8254     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8255     1724406 :          full_data(idata) = data_tmp
    8256     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8257     1724406 :          idata = idata + 1
    8258     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8259     1724406 :          full_data(idata) = data_tmp
    8260     1724406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8261     1724406 :          idata = idata + 1
    8262     1724406 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8263     1724406 :          full_data(idata) = data_tmp
    8264     1724761 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8265             :       END DO
    8266      110336 :       IF (Ndata_rep < Ndata) THEN
    8267        4820 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    8268             :       END IF
    8269      110336 :    END SUBROUTINE bits2ints_12
    8270             : 
    8271             : ! **************************************************************************************************
    8272             : !> \brief ...
    8273             : !> \param Ndata ...
    8274             : !> \param packed_data ...
    8275             : !> \param full_data ...
    8276             : ! **************************************************************************************************
    8277       27408 :    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       27408 :       idata = 0
    8288       27408 :       ipack = 0
    8289       27408 :       Ndata_rep = (Ndata/64)*64
    8290       27408 :       DO kdata = 1, Ndata_rep, 64
    8291      426255 :          pack_tmp = 0
    8292      426255 :          idata = idata + 1
    8293      426255 :          data_tmp = full_data(idata)
    8294      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8295      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8296      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8297      426255 :          idata = idata + 1
    8298      426255 :          data_tmp = full_data(idata)
    8299      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8300      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8301      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8302      426255 :          idata = idata + 1
    8303      426255 :          data_tmp = full_data(idata)
    8304      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8305      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8306      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8307      426255 :          idata = idata + 1
    8308      426255 :          data_tmp = full_data(idata)
    8309      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8310      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8311      426255 :          pack_tmp = ISHFT(pack_tmp, -12)
    8312      426255 :          idata = idata + 1
    8313      426255 :          data_tmp = full_data(idata)
    8314      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8315      426255 :          data_tmp = IAND(data_tmp, mask_left(12))
    8316      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8317      426255 :          ipack = ipack + 1
    8318      426255 :          packed_data(ipack) = pack_tmp
    8319      426255 :          data_tmp = full_data(idata)
    8320      426255 :          pack_tmp = ISHFT(data_tmp, 63)
    8321      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8322      426255 :          idata = idata + 1
    8323      426255 :          data_tmp = full_data(idata)
    8324      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8325      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8326      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8327      426255 :          idata = idata + 1
    8328      426255 :          data_tmp = full_data(idata)
    8329      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8330      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8331      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8332      426255 :          idata = idata + 1
    8333      426255 :          data_tmp = full_data(idata)
    8334      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8335      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8336      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8337      426255 :          idata = idata + 1
    8338      426255 :          data_tmp = full_data(idata)
    8339      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8340      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8341      426255 :          pack_tmp = ISHFT(pack_tmp, -11)
    8342      426255 :          idata = idata + 1
    8343      426255 :          data_tmp = full_data(idata)
    8344      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8345      426255 :          data_tmp = IAND(data_tmp, mask_left(11))
    8346      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8347      426255 :          ipack = ipack + 1
    8348      426255 :          packed_data(ipack) = pack_tmp
    8349      426255 :          data_tmp = full_data(idata)
    8350      426255 :          pack_tmp = ISHFT(data_tmp, 62)
    8351      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8352      426255 :          idata = idata + 1
    8353      426255 :          data_tmp = full_data(idata)
    8354      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8355      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8356      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8357      426255 :          idata = idata + 1
    8358      426255 :          data_tmp = full_data(idata)
    8359      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8360      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8361      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8362      426255 :          idata = idata + 1
    8363      426255 :          data_tmp = full_data(idata)
    8364      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8365      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8366      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8367      426255 :          idata = idata + 1
    8368      426255 :          data_tmp = full_data(idata)
    8369      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8370      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8371      426255 :          pack_tmp = ISHFT(pack_tmp, -10)
    8372      426255 :          idata = idata + 1
    8373      426255 :          data_tmp = full_data(idata)
    8374      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8375      426255 :          data_tmp = IAND(data_tmp, mask_left(10))
    8376      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8377      426255 :          ipack = ipack + 1
    8378      426255 :          packed_data(ipack) = pack_tmp
    8379      426255 :          data_tmp = full_data(idata)
    8380      426255 :          pack_tmp = ISHFT(data_tmp, 61)
    8381      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8382      426255 :          idata = idata + 1
    8383      426255 :          data_tmp = full_data(idata)
    8384      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8385      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8386      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8387      426255 :          idata = idata + 1
    8388      426255 :          data_tmp = full_data(idata)
    8389      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8390      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8391      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8392      426255 :          idata = idata + 1
    8393      426255 :          data_tmp = full_data(idata)
    8394      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8395      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8396      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8397      426255 :          idata = idata + 1
    8398      426255 :          data_tmp = full_data(idata)
    8399      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8400      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8401      426255 :          pack_tmp = ISHFT(pack_tmp, -9)
    8402      426255 :          idata = idata + 1
    8403      426255 :          data_tmp = full_data(idata)
    8404      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8405      426255 :          data_tmp = IAND(data_tmp, mask_left(9))
    8406      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8407      426255 :          ipack = ipack + 1
    8408      426255 :          packed_data(ipack) = pack_tmp
    8409      426255 :          data_tmp = full_data(idata)
    8410      426255 :          pack_tmp = ISHFT(data_tmp, 60)
    8411      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8412      426255 :          idata = idata + 1
    8413      426255 :          data_tmp = full_data(idata)
    8414      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8415      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8416      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8417      426255 :          idata = idata + 1
    8418      426255 :          data_tmp = full_data(idata)
    8419      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8420      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8421      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8422      426255 :          idata = idata + 1
    8423      426255 :          data_tmp = full_data(idata)
    8424      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8425      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8426      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8427      426255 :          idata = idata + 1
    8428      426255 :          data_tmp = full_data(idata)
    8429      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8430      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8431      426255 :          pack_tmp = ISHFT(pack_tmp, -8)
    8432      426255 :          idata = idata + 1
    8433      426255 :          data_tmp = full_data(idata)
    8434      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8435      426255 :          data_tmp = IAND(data_tmp, mask_left(8))
    8436      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8437      426255 :          ipack = ipack + 1
    8438      426255 :          packed_data(ipack) = pack_tmp
    8439      426255 :          data_tmp = full_data(idata)
    8440      426255 :          pack_tmp = ISHFT(data_tmp, 59)
    8441      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8442      426255 :          idata = idata + 1
    8443      426255 :          data_tmp = full_data(idata)
    8444      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8445      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8446      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8447      426255 :          idata = idata + 1
    8448      426255 :          data_tmp = full_data(idata)
    8449      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8450      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8451      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8452      426255 :          idata = idata + 1
    8453      426255 :          data_tmp = full_data(idata)
    8454      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8455      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8456      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8457      426255 :          idata = idata + 1
    8458      426255 :          data_tmp = full_data(idata)
    8459      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8460      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8461      426255 :          pack_tmp = ISHFT(pack_tmp, -7)
    8462      426255 :          idata = idata + 1
    8463      426255 :          data_tmp = full_data(idata)
    8464      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8465      426255 :          data_tmp = IAND(data_tmp, mask_left(7))
    8466      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8467      426255 :          ipack = ipack + 1
    8468      426255 :          packed_data(ipack) = pack_tmp
    8469      426255 :          data_tmp = full_data(idata)
    8470      426255 :          pack_tmp = ISHFT(data_tmp, 58)
    8471      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8472      426255 :          idata = idata + 1
    8473      426255 :          data_tmp = full_data(idata)
    8474      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8475      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8476      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8477      426255 :          idata = idata + 1
    8478      426255 :          data_tmp = full_data(idata)
    8479      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8480      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8481      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8482      426255 :          idata = idata + 1
    8483      426255 :          data_tmp = full_data(idata)
    8484      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8485      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8486      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8487      426255 :          idata = idata + 1
    8488      426255 :          data_tmp = full_data(idata)
    8489      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8490      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8491      426255 :          pack_tmp = ISHFT(pack_tmp, -6)
    8492      426255 :          idata = idata + 1
    8493      426255 :          data_tmp = full_data(idata)
    8494      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8495      426255 :          data_tmp = IAND(data_tmp, mask_left(6))
    8496      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8497      426255 :          ipack = ipack + 1
    8498      426255 :          packed_data(ipack) = pack_tmp
    8499      426255 :          data_tmp = full_data(idata)
    8500      426255 :          pack_tmp = ISHFT(data_tmp, 57)
    8501      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8502      426255 :          idata = idata + 1
    8503      426255 :          data_tmp = full_data(idata)
    8504      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8505      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8506      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8507      426255 :          idata = idata + 1
    8508      426255 :          data_tmp = full_data(idata)
    8509      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8510      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8511      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8512      426255 :          idata = idata + 1
    8513      426255 :          data_tmp = full_data(idata)
    8514      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8515      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8516      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8517      426255 :          idata = idata + 1
    8518      426255 :          data_tmp = full_data(idata)
    8519      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8520      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8521      426255 :          pack_tmp = ISHFT(pack_tmp, -5)
    8522      426255 :          idata = idata + 1
    8523      426255 :          data_tmp = full_data(idata)
    8524      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8525      426255 :          data_tmp = IAND(data_tmp, mask_left(5))
    8526      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8527      426255 :          ipack = ipack + 1
    8528      426255 :          packed_data(ipack) = pack_tmp
    8529      426255 :          data_tmp = full_data(idata)
    8530      426255 :          pack_tmp = ISHFT(data_tmp, 56)
    8531      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8532      426255 :          idata = idata + 1
    8533      426255 :          data_tmp = full_data(idata)
    8534      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8535      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8536      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8537      426255 :          idata = idata + 1
    8538      426255 :          data_tmp = full_data(idata)
    8539      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8540      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8541      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8542      426255 :          idata = idata + 1
    8543      426255 :          data_tmp = full_data(idata)
    8544      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8545      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8546      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8547      426255 :          idata = idata + 1
    8548      426255 :          data_tmp = full_data(idata)
    8549      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8550      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8551      426255 :          pack_tmp = ISHFT(pack_tmp, -4)
    8552      426255 :          idata = idata + 1
    8553      426255 :          data_tmp = full_data(idata)
    8554      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8555      426255 :          data_tmp = IAND(data_tmp, mask_left(4))
    8556      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8557      426255 :          ipack = ipack + 1
    8558      426255 :          packed_data(ipack) = pack_tmp
    8559      426255 :          data_tmp = full_data(idata)
    8560      426255 :          pack_tmp = ISHFT(data_tmp, 55)
    8561      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8562      426255 :          idata = idata + 1
    8563      426255 :          data_tmp = full_data(idata)
    8564      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8565      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8566      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8567      426255 :          idata = idata + 1
    8568      426255 :          data_tmp = full_data(idata)
    8569      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8570      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8571      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8572      426255 :          idata = idata + 1
    8573      426255 :          data_tmp = full_data(idata)
    8574      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8575      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8576      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8577      426255 :          idata = idata + 1
    8578      426255 :          data_tmp = full_data(idata)
    8579      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8580      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8581      426255 :          pack_tmp = ISHFT(pack_tmp, -3)
    8582      426255 :          idata = idata + 1
    8583      426255 :          data_tmp = full_data(idata)
    8584      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8585      426255 :          data_tmp = IAND(data_tmp, mask_left(3))
    8586      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8587      426255 :          ipack = ipack + 1
    8588      426255 :          packed_data(ipack) = pack_tmp
    8589      426255 :          data_tmp = full_data(idata)
    8590      426255 :          pack_tmp = ISHFT(data_tmp, 54)
    8591      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8592      426255 :          idata = idata + 1
    8593      426255 :          data_tmp = full_data(idata)
    8594      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8595      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8596      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8597      426255 :          idata = idata + 1
    8598      426255 :          data_tmp = full_data(idata)
    8599      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8600      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8601      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8602      426255 :          idata = idata + 1
    8603      426255 :          data_tmp = full_data(idata)
    8604      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8605      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8606      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8607      426255 :          idata = idata + 1
    8608      426255 :          data_tmp = full_data(idata)
    8609      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8610      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8611      426255 :          pack_tmp = ISHFT(pack_tmp, -2)
    8612      426255 :          idata = idata + 1
    8613      426255 :          data_tmp = full_data(idata)
    8614      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8615      426255 :          data_tmp = IAND(data_tmp, mask_left(2))
    8616      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8617      426255 :          ipack = ipack + 1
    8618      426255 :          packed_data(ipack) = pack_tmp
    8619      426255 :          data_tmp = full_data(idata)
    8620      426255 :          pack_tmp = ISHFT(data_tmp, 53)
    8621      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8622      426255 :          idata = idata + 1
    8623      426255 :          data_tmp = full_data(idata)
    8624      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8625      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8626      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8627      426255 :          idata = idata + 1
    8628      426255 :          data_tmp = full_data(idata)
    8629      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8630      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8631      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8632      426255 :          idata = idata + 1
    8633      426255 :          data_tmp = full_data(idata)
    8634      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8635      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8636      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8637      426255 :          idata = idata + 1
    8638      426255 :          data_tmp = full_data(idata)
    8639      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8640      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8641      426255 :          pack_tmp = ISHFT(pack_tmp, -1)
    8642      426255 :          idata = idata + 1
    8643      426255 :          data_tmp = full_data(idata)
    8644      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8645      426255 :          data_tmp = IAND(data_tmp, mask_left(1))
    8646      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8647      426255 :          ipack = ipack + 1
    8648      426255 :          packed_data(ipack) = pack_tmp
    8649      426255 :          data_tmp = full_data(idata)
    8650      426255 :          pack_tmp = ISHFT(data_tmp, 52)
    8651      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8652      426255 :          idata = idata + 1
    8653      426255 :          data_tmp = full_data(idata)
    8654      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8655      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8656      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8657      426255 :          idata = idata + 1
    8658      426255 :          data_tmp = full_data(idata)
    8659      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8660      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8661      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8662      426255 :          idata = idata + 1
    8663      426255 :          data_tmp = full_data(idata)
    8664      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8665      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8666      426255 :          pack_tmp = ISHFT(pack_tmp, -13)
    8667      426255 :          idata = idata + 1
    8668      426255 :          data_tmp = full_data(idata)
    8669      426255 :          data_tmp = ISHFT(data_tmp, 51)
    8670      426255 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8671             :          pack_tmp = ISHFT(pack_tmp, 0)
    8672      426255 :          pack_tmp = ISHFT(pack_tmp, 0)
    8673      426255 :          ipack = ipack + 1
    8674      426325 :          packed_data(ipack) = pack_tmp
    8675             :       END DO
    8676       27408 :       IF (Ndata_rep < Ndata) THEN
    8677        1346 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    8678             :       END IF
    8679       27408 :    END SUBROUTINE ints2bits_13
    8680             : 
    8681             : ! **************************************************************************************************
    8682             : !> \brief ...
    8683             : !> \param Ndata ...
    8684             : !> \param packed_data ...
    8685             : !> \param full_data ...
    8686             : ! **************************************************************************************************
    8687      122555 :    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      122555 :       ipack = 0
    8698      122555 :       idata = 0
    8699      122555 :       pack_tmp = 0
    8700      122555 :       Ndata_rep = (Ndata/64)*64
    8701      122555 :       DO kdata = 1, Ndata_rep, 64
    8702     1882169 :          idata = idata + 1
    8703     1882169 :          data_tmp = ISHFT(pack_tmp, 13)
    8704     1882169 :          ipack = ipack + 1
    8705     1882169 :          pack_tmp = packed_data(ipack)
    8706     1882169 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
    8707     1882169 :          pack_tmp = ISHFT(pack_tmp, -13)
    8708     1882169 :          idata = idata + 1
    8709     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8710     1882169 :          full_data(idata) = data_tmp
    8711     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8712     1882169 :          idata = idata + 1
    8713     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8714     1882169 :          full_data(idata) = data_tmp
    8715     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8716     1882169 :          idata = idata + 1
    8717     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8718     1882169 :          full_data(idata) = data_tmp
    8719     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8720     1882169 :          idata = idata + 1
    8721     1882169 :          data_tmp = ISHFT(pack_tmp, 1)
    8722     1882169 :          ipack = ipack + 1
    8723     1882169 :          pack_tmp = packed_data(ipack)
    8724     1882169 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    8725     1882169 :          pack_tmp = ISHFT(pack_tmp, -1)
    8726     1882169 :          idata = idata + 1
    8727     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8728     1882169 :          full_data(idata) = data_tmp
    8729     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8730     1882169 :          idata = idata + 1
    8731     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8732     1882169 :          full_data(idata) = data_tmp
    8733     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8734     1882169 :          idata = idata + 1
    8735     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8736     1882169 :          full_data(idata) = data_tmp
    8737     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8738     1882169 :          idata = idata + 1
    8739     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8740     1882169 :          full_data(idata) = data_tmp
    8741     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8742     1882169 :          idata = idata + 1
    8743     1882169 :          data_tmp = ISHFT(pack_tmp, 2)
    8744     1882169 :          ipack = ipack + 1
    8745     1882169 :          pack_tmp = packed_data(ipack)
    8746     1882169 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    8747     1882169 :          pack_tmp = ISHFT(pack_tmp, -2)
    8748     1882169 :          idata = idata + 1
    8749     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8750     1882169 :          full_data(idata) = data_tmp
    8751     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8752     1882169 :          idata = idata + 1
    8753     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8754     1882169 :          full_data(idata) = data_tmp
    8755     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8756     1882169 :          idata = idata + 1
    8757     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8758     1882169 :          full_data(idata) = data_tmp
    8759     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8760     1882169 :          idata = idata + 1
    8761     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8762     1882169 :          full_data(idata) = data_tmp
    8763     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8764     1882169 :          idata = idata + 1
    8765     1882169 :          data_tmp = ISHFT(pack_tmp, 3)
    8766     1882169 :          ipack = ipack + 1
    8767     1882169 :          pack_tmp = packed_data(ipack)
    8768     1882169 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    8769     1882169 :          pack_tmp = ISHFT(pack_tmp, -3)
    8770     1882169 :          idata = idata + 1
    8771     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8772     1882169 :          full_data(idata) = data_tmp
    8773     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8774     1882169 :          idata = idata + 1
    8775     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8776     1882169 :          full_data(idata) = data_tmp
    8777     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8778     1882169 :          idata = idata + 1
    8779     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8780     1882169 :          full_data(idata) = data_tmp
    8781     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8782     1882169 :          idata = idata + 1
    8783     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8784     1882169 :          full_data(idata) = data_tmp
    8785     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8786     1882169 :          idata = idata + 1
    8787     1882169 :          data_tmp = ISHFT(pack_tmp, 4)
    8788     1882169 :          ipack = ipack + 1
    8789     1882169 :          pack_tmp = packed_data(ipack)
    8790     1882169 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    8791     1882169 :          pack_tmp = ISHFT(pack_tmp, -4)
    8792     1882169 :          idata = idata + 1
    8793     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8794     1882169 :          full_data(idata) = data_tmp
    8795     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8796     1882169 :          idata = idata + 1
    8797     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8798     1882169 :          full_data(idata) = data_tmp
    8799     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8800     1882169 :          idata = idata + 1
    8801     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8802     1882169 :          full_data(idata) = data_tmp
    8803     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8804     1882169 :          idata = idata + 1
    8805     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8806     1882169 :          full_data(idata) = data_tmp
    8807     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8808     1882169 :          idata = idata + 1
    8809     1882169 :          data_tmp = ISHFT(pack_tmp, 5)
    8810     1882169 :          ipack = ipack + 1
    8811     1882169 :          pack_tmp = packed_data(ipack)
    8812     1882169 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
    8813     1882169 :          pack_tmp = ISHFT(pack_tmp, -5)
    8814     1882169 :          idata = idata + 1
    8815     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8816     1882169 :          full_data(idata) = data_tmp
    8817     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8818     1882169 :          idata = idata + 1
    8819     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8820     1882169 :          full_data(idata) = data_tmp
    8821     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8822     1882169 :          idata = idata + 1
    8823     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8824     1882169 :          full_data(idata) = data_tmp
    8825     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8826     1882169 :          idata = idata + 1
    8827     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8828     1882169 :          full_data(idata) = data_tmp
    8829     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8830     1882169 :          idata = idata + 1
    8831     1882169 :          data_tmp = ISHFT(pack_tmp, 6)
    8832     1882169 :          ipack = ipack + 1
    8833     1882169 :          pack_tmp = packed_data(ipack)
    8834     1882169 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    8835     1882169 :          pack_tmp = ISHFT(pack_tmp, -6)
    8836     1882169 :          idata = idata + 1
    8837     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8838     1882169 :          full_data(idata) = data_tmp
    8839     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8840     1882169 :          idata = idata + 1
    8841     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8842     1882169 :          full_data(idata) = data_tmp
    8843     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8844     1882169 :          idata = idata + 1
    8845     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8846     1882169 :          full_data(idata) = data_tmp
    8847     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8848     1882169 :          idata = idata + 1
    8849     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8850     1882169 :          full_data(idata) = data_tmp
    8851     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8852     1882169 :          idata = idata + 1
    8853     1882169 :          data_tmp = ISHFT(pack_tmp, 7)
    8854     1882169 :          ipack = ipack + 1
    8855     1882169 :          pack_tmp = packed_data(ipack)
    8856     1882169 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
    8857     1882169 :          pack_tmp = ISHFT(pack_tmp, -7)
    8858     1882169 :          idata = idata + 1
    8859     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8860     1882169 :          full_data(idata) = data_tmp
    8861     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8862     1882169 :          idata = idata + 1
    8863     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8864     1882169 :          full_data(idata) = data_tmp
    8865     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8866     1882169 :          idata = idata + 1
    8867     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8868     1882169 :          full_data(idata) = data_tmp
    8869     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8870     1882169 :          idata = idata + 1
    8871     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8872     1882169 :          full_data(idata) = data_tmp
    8873     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8874     1882169 :          idata = idata + 1
    8875     1882169 :          data_tmp = ISHFT(pack_tmp, 8)
    8876     1882169 :          ipack = ipack + 1
    8877     1882169 :          pack_tmp = packed_data(ipack)
    8878     1882169 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    8879     1882169 :          pack_tmp = ISHFT(pack_tmp, -8)
    8880     1882169 :          idata = idata + 1
    8881     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8882     1882169 :          full_data(idata) = data_tmp
    8883     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8884     1882169 :          idata = idata + 1
    8885     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8886     1882169 :          full_data(idata) = data_tmp
    8887     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8888     1882169 :          idata = idata + 1
    8889     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8890     1882169 :          full_data(idata) = data_tmp
    8891     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8892     1882169 :          idata = idata + 1
    8893     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8894     1882169 :          full_data(idata) = data_tmp
    8895     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8896     1882169 :          idata = idata + 1
    8897     1882169 :          data_tmp = ISHFT(pack_tmp, 9)
    8898     1882169 :          ipack = ipack + 1
    8899     1882169 :          pack_tmp = packed_data(ipack)
    8900     1882169 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
    8901     1882169 :          pack_tmp = ISHFT(pack_tmp, -9)
    8902     1882169 :          idata = idata + 1
    8903     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8904     1882169 :          full_data(idata) = data_tmp
    8905     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8906     1882169 :          idata = idata + 1
    8907     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8908     1882169 :          full_data(idata) = data_tmp
    8909     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8910     1882169 :          idata = idata + 1
    8911     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8912     1882169 :          full_data(idata) = data_tmp
    8913     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8914     1882169 :          idata = idata + 1
    8915     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8916     1882169 :          full_data(idata) = data_tmp
    8917     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8918     1882169 :          idata = idata + 1
    8919     1882169 :          data_tmp = ISHFT(pack_tmp, 10)
    8920     1882169 :          ipack = ipack + 1
    8921     1882169 :          pack_tmp = packed_data(ipack)
    8922     1882169 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    8923     1882169 :          pack_tmp = ISHFT(pack_tmp, -10)
    8924     1882169 :          idata = idata + 1
    8925     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8926     1882169 :          full_data(idata) = data_tmp
    8927     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8928     1882169 :          idata = idata + 1
    8929     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8930     1882169 :          full_data(idata) = data_tmp
    8931     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8932     1882169 :          idata = idata + 1
    8933     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8934     1882169 :          full_data(idata) = data_tmp
    8935     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8936     1882169 :          idata = idata + 1
    8937     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8938     1882169 :          full_data(idata) = data_tmp
    8939     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8940     1882169 :          idata = idata + 1
    8941     1882169 :          data_tmp = ISHFT(pack_tmp, 11)
    8942     1882169 :          ipack = ipack + 1
    8943     1882169 :          pack_tmp = packed_data(ipack)
    8944     1882169 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
    8945     1882169 :          pack_tmp = ISHFT(pack_tmp, -11)
    8946     1882169 :          idata = idata + 1
    8947     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8948     1882169 :          full_data(idata) = data_tmp
    8949     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8950     1882169 :          idata = idata + 1
    8951     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8952     1882169 :          full_data(idata) = data_tmp
    8953     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8954     1882169 :          idata = idata + 1
    8955     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8956     1882169 :          full_data(idata) = data_tmp
    8957     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8958     1882169 :          idata = idata + 1
    8959     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8960     1882169 :          full_data(idata) = data_tmp
    8961     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8962     1882169 :          idata = idata + 1
    8963     1882169 :          data_tmp = ISHFT(pack_tmp, 12)
    8964     1882169 :          ipack = ipack + 1
    8965     1882169 :          pack_tmp = packed_data(ipack)
    8966     1882169 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    8967     1882169 :          pack_tmp = ISHFT(pack_tmp, -12)
    8968     1882169 :          idata = idata + 1
    8969     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8970     1882169 :          full_data(idata) = data_tmp
    8971     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8972     1882169 :          idata = idata + 1
    8973     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8974     1882169 :          full_data(idata) = data_tmp
    8975     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8976     1882169 :          idata = idata + 1
    8977     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8978     1882169 :          full_data(idata) = data_tmp
    8979     1882169 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8980     1882169 :          idata = idata + 1
    8981     1882169 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8982     1882169 :          full_data(idata) = data_tmp
    8983     1882605 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8984             :       END DO
    8985      122555 :       IF (Ndata_rep < Ndata) THEN
    8986        8686 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    8987             :       END IF
    8988      122555 :    END SUBROUTINE bits2ints_13
    8989             : 
    8990             : ! **************************************************************************************************
    8991             : !> \brief ...
    8992             : !> \param Ndata ...
    8993             : !> \param packed_data ...
    8994             : !> \param full_data ...
    8995             : ! **************************************************************************************************
    8996       26450 :    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       26450 :       idata = 0
    9007       26450 :       ipack = 0
    9008       26450 :       Ndata_rep = (Ndata/64)*64
    9009       26450 :       DO kdata = 1, Ndata_rep, 64
    9010      413069 :          pack_tmp = 0
    9011      413069 :          idata = idata + 1
    9012      413069 :          data_tmp = full_data(idata)
    9013      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9014      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9015      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9016      413069 :          idata = idata + 1
    9017      413069 :          data_tmp = full_data(idata)
    9018      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9019      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9020      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9021      413069 :          idata = idata + 1
    9022      413069 :          data_tmp = full_data(idata)
    9023      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9024      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9025      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9026      413069 :          idata = idata + 1
    9027      413069 :          data_tmp = full_data(idata)
    9028      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9029      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9030      413069 :          pack_tmp = ISHFT(pack_tmp, -8)
    9031      413069 :          idata = idata + 1
    9032      413069 :          data_tmp = full_data(idata)
    9033      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9034      413069 :          data_tmp = IAND(data_tmp, mask_left(8))
    9035      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9036      413069 :          ipack = ipack + 1
    9037      413069 :          packed_data(ipack) = pack_tmp
    9038      413069 :          data_tmp = full_data(idata)
    9039      413069 :          pack_tmp = ISHFT(data_tmp, 58)
    9040      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9041      413069 :          idata = idata + 1
    9042      413069 :          data_tmp = full_data(idata)
    9043      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9044      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9045      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9046      413069 :          idata = idata + 1
    9047      413069 :          data_tmp = full_data(idata)
    9048      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9049      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9050      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9051      413069 :          idata = idata + 1
    9052      413069 :          data_tmp = full_data(idata)
    9053      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9054      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9055      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9056      413069 :          idata = idata + 1
    9057      413069 :          data_tmp = full_data(idata)
    9058      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9059      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9060      413069 :          pack_tmp = ISHFT(pack_tmp, -2)
    9061      413069 :          idata = idata + 1
    9062      413069 :          data_tmp = full_data(idata)
    9063      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9064      413069 :          data_tmp = IAND(data_tmp, mask_left(2))
    9065      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9066      413069 :          ipack = ipack + 1
    9067      413069 :          packed_data(ipack) = pack_tmp
    9068      413069 :          data_tmp = full_data(idata)
    9069      413069 :          pack_tmp = ISHFT(data_tmp, 52)
    9070      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9071      413069 :          idata = idata + 1
    9072      413069 :          data_tmp = full_data(idata)
    9073      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9074      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9075      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9076      413069 :          idata = idata + 1
    9077      413069 :          data_tmp = full_data(idata)
    9078      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9079      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9080      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9081      413069 :          idata = idata + 1
    9082      413069 :          data_tmp = full_data(idata)
    9083      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9084      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9085      413069 :          pack_tmp = ISHFT(pack_tmp, -10)
    9086      413069 :          idata = idata + 1
    9087      413069 :          data_tmp = full_data(idata)
    9088      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9089      413069 :          data_tmp = IAND(data_tmp, mask_left(10))
    9090      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9091      413069 :          ipack = ipack + 1
    9092      413069 :          packed_data(ipack) = pack_tmp
    9093      413069 :          data_tmp = full_data(idata)
    9094      413069 :          pack_tmp = ISHFT(data_tmp, 60)
    9095      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9096      413069 :          idata = idata + 1
    9097      413069 :          data_tmp = full_data(idata)
    9098      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9099      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9100      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9101      413069 :          idata = idata + 1
    9102      413069 :          data_tmp = full_data(idata)
    9103      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9104      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9105      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9106      413069 :          idata = idata + 1
    9107      413069 :          data_tmp = full_data(idata)
    9108      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9109      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9110      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9111      413069 :          idata = idata + 1
    9112      413069 :          data_tmp = full_data(idata)
    9113      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9114      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9115      413069 :          pack_tmp = ISHFT(pack_tmp, -4)
    9116      413069 :          idata = idata + 1
    9117      413069 :          data_tmp = full_data(idata)
    9118      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9119      413069 :          data_tmp = IAND(data_tmp, mask_left(4))
    9120      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9121      413069 :          ipack = ipack + 1
    9122      413069 :          packed_data(ipack) = pack_tmp
    9123      413069 :          data_tmp = full_data(idata)
    9124      413069 :          pack_tmp = ISHFT(data_tmp, 54)
    9125      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9126      413069 :          idata = idata + 1
    9127      413069 :          data_tmp = full_data(idata)
    9128      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9129      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9130      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9131      413069 :          idata = idata + 1
    9132      413069 :          data_tmp = full_data(idata)
    9133      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9134      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9135      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9136      413069 :          idata = idata + 1
    9137      413069 :          data_tmp = full_data(idata)
    9138      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9139      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9140      413069 :          pack_tmp = ISHFT(pack_tmp, -12)
    9141      413069 :          idata = idata + 1
    9142      413069 :          data_tmp = full_data(idata)
    9143      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9144      413069 :          data_tmp = IAND(data_tmp, mask_left(12))
    9145      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9146      413069 :          ipack = ipack + 1
    9147      413069 :          packed_data(ipack) = pack_tmp
    9148      413069 :          data_tmp = full_data(idata)
    9149      413069 :          pack_tmp = ISHFT(data_tmp, 62)
    9150      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9151      413069 :          idata = idata + 1
    9152      413069 :          data_tmp = full_data(idata)
    9153      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9154      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9155      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9156      413069 :          idata = idata + 1
    9157      413069 :          data_tmp = full_data(idata)
    9158      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9159      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9160      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9161      413069 :          idata = idata + 1
    9162      413069 :          data_tmp = full_data(idata)
    9163      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9164      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9165      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9166      413069 :          idata = idata + 1
    9167      413069 :          data_tmp = full_data(idata)
    9168      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9169      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9170      413069 :          pack_tmp = ISHFT(pack_tmp, -6)
    9171      413069 :          idata = idata + 1
    9172      413069 :          data_tmp = full_data(idata)
    9173      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9174      413069 :          data_tmp = IAND(data_tmp, mask_left(6))
    9175      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9176      413069 :          ipack = ipack + 1
    9177      413069 :          packed_data(ipack) = pack_tmp
    9178      413069 :          data_tmp = full_data(idata)
    9179      413069 :          pack_tmp = ISHFT(data_tmp, 56)
    9180      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9181      413069 :          idata = idata + 1
    9182      413069 :          data_tmp = full_data(idata)
    9183      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9184      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9185      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9186      413069 :          idata = idata + 1
    9187      413069 :          data_tmp = full_data(idata)
    9188      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9189      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9190      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9191      413069 :          idata = idata + 1
    9192      413069 :          data_tmp = full_data(idata)
    9193      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9194      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9195      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9196      413069 :          idata = idata + 1
    9197      413069 :          data_tmp = full_data(idata)
    9198      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9199      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9200      413069 :          pack_tmp = ISHFT(pack_tmp, 0)
    9201      413069 :          idata = idata + 1
    9202      413069 :          data_tmp = full_data(idata)
    9203             :          data_tmp = ISHFT(data_tmp, 50)
    9204      413069 :          data_tmp = IAND(data_tmp, mask_left(0))
    9205      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9206      413069 :          ipack = ipack + 1
    9207      413069 :          packed_data(ipack) = pack_tmp
    9208      413069 :          data_tmp = full_data(idata)
    9209      413069 :          pack_tmp = ISHFT(data_tmp, 50)
    9210      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9211      413069 :          idata = idata + 1
    9212      413069 :          data_tmp = full_data(idata)
    9213      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9214      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9215      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9216      413069 :          idata = idata + 1
    9217      413069 :          data_tmp = full_data(idata)
    9218      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9219      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9220      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9221      413069 :          idata = idata + 1
    9222      413069 :          data_tmp = full_data(idata)
    9223      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9224      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9225      413069 :          pack_tmp = ISHFT(pack_tmp, -8)
    9226      413069 :          idata = idata + 1
    9227      413069 :          data_tmp = full_data(idata)
    9228      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9229      413069 :          data_tmp = IAND(data_tmp, mask_left(8))
    9230      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9231      413069 :          ipack = ipack + 1
    9232      413069 :          packed_data(ipack) = pack_tmp
    9233      413069 :          data_tmp = full_data(idata)
    9234      413069 :          pack_tmp = ISHFT(data_tmp, 58)
    9235      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9236      413069 :          idata = idata + 1
    9237      413069 :          data_tmp = full_data(idata)
    9238      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9239      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9240      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9241      413069 :          idata = idata + 1
    9242      413069 :          data_tmp = full_data(idata)
    9243      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9244      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9245      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9246      413069 :          idata = idata + 1
    9247      413069 :          data_tmp = full_data(idata)
    9248      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9249      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9250      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9251      413069 :          idata = idata + 1
    9252      413069 :          data_tmp = full_data(idata)
    9253      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9254      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9255      413069 :          pack_tmp = ISHFT(pack_tmp, -2)
    9256      413069 :          idata = idata + 1
    9257      413069 :          data_tmp = full_data(idata)
    9258      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9259      413069 :          data_tmp = IAND(data_tmp, mask_left(2))
    9260      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9261      413069 :          ipack = ipack + 1
    9262      413069 :          packed_data(ipack) = pack_tmp
    9263      413069 :          data_tmp = full_data(idata)
    9264      413069 :          pack_tmp = ISHFT(data_tmp, 52)
    9265      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9266      413069 :          idata = idata + 1
    9267      413069 :          data_tmp = full_data(idata)
    9268      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9269      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9270      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9271      413069 :          idata = idata + 1
    9272      413069 :          data_tmp = full_data(idata)
    9273      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9274      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9275      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9276      413069 :          idata = idata + 1
    9277      413069 :          data_tmp = full_data(idata)
    9278      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9279      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9280      413069 :          pack_tmp = ISHFT(pack_tmp, -10)
    9281      413069 :          idata = idata + 1
    9282      413069 :          data_tmp = full_data(idata)
    9283      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9284      413069 :          data_tmp = IAND(data_tmp, mask_left(10))
    9285      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9286      413069 :          ipack = ipack + 1
    9287      413069 :          packed_data(ipack) = pack_tmp
    9288      413069 :          data_tmp = full_data(idata)
    9289      413069 :          pack_tmp = ISHFT(data_tmp, 60)
    9290      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9291      413069 :          idata = idata + 1
    9292      413069 :          data_tmp = full_data(idata)
    9293      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9294      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9295      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9296      413069 :          idata = idata + 1
    9297      413069 :          data_tmp = full_data(idata)
    9298      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9299      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9300      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9301      413069 :          idata = idata + 1
    9302      413069 :          data_tmp = full_data(idata)
    9303      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9304      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9305      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9306      413069 :          idata = idata + 1
    9307      413069 :          data_tmp = full_data(idata)
    9308      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9309      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9310      413069 :          pack_tmp = ISHFT(pack_tmp, -4)
    9311      413069 :          idata = idata + 1
    9312      413069 :          data_tmp = full_data(idata)
    9313      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9314      413069 :          data_tmp = IAND(data_tmp, mask_left(4))
    9315      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9316      413069 :          ipack = ipack + 1
    9317      413069 :          packed_data(ipack) = pack_tmp
    9318      413069 :          data_tmp = full_data(idata)
    9319      413069 :          pack_tmp = ISHFT(data_tmp, 54)
    9320      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9321      413069 :          idata = idata + 1
    9322      413069 :          data_tmp = full_data(idata)
    9323      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9324      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9325      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9326      413069 :          idata = idata + 1
    9327      413069 :          data_tmp = full_data(idata)
    9328      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9329      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9330      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9331      413069 :          idata = idata + 1
    9332      413069 :          data_tmp = full_data(idata)
    9333      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9334      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9335      413069 :          pack_tmp = ISHFT(pack_tmp, -12)
    9336      413069 :          idata = idata + 1
    9337      413069 :          data_tmp = full_data(idata)
    9338      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9339      413069 :          data_tmp = IAND(data_tmp, mask_left(12))
    9340      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9341      413069 :          ipack = ipack + 1
    9342      413069 :          packed_data(ipack) = pack_tmp
    9343      413069 :          data_tmp = full_data(idata)
    9344      413069 :          pack_tmp = ISHFT(data_tmp, 62)
    9345      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9346      413069 :          idata = idata + 1
    9347      413069 :          data_tmp = full_data(idata)
    9348      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9349      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9350      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9351      413069 :          idata = idata + 1
    9352      413069 :          data_tmp = full_data(idata)
    9353      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9354      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9355      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9356      413069 :          idata = idata + 1
    9357      413069 :          data_tmp = full_data(idata)
    9358      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9359      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9360      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9361      413069 :          idata = idata + 1
    9362      413069 :          data_tmp = full_data(idata)
    9363      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9364      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9365      413069 :          pack_tmp = ISHFT(pack_tmp, -6)
    9366      413069 :          idata = idata + 1
    9367      413069 :          data_tmp = full_data(idata)
    9368      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9369      413069 :          data_tmp = IAND(data_tmp, mask_left(6))
    9370      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9371      413069 :          ipack = ipack + 1
    9372      413069 :          packed_data(ipack) = pack_tmp
    9373      413069 :          data_tmp = full_data(idata)
    9374      413069 :          pack_tmp = ISHFT(data_tmp, 56)
    9375      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9376      413069 :          idata = idata + 1
    9377      413069 :          data_tmp = full_data(idata)
    9378      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9379      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9380      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9381      413069 :          idata = idata + 1
    9382      413069 :          data_tmp = full_data(idata)
    9383      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9384      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9385      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9386      413069 :          idata = idata + 1
    9387      413069 :          data_tmp = full_data(idata)
    9388      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9389      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9390      413069 :          pack_tmp = ISHFT(pack_tmp, -14)
    9391      413069 :          idata = idata + 1
    9392      413069 :          data_tmp = full_data(idata)
    9393      413069 :          data_tmp = ISHFT(data_tmp, 50)
    9394      413069 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9395             :          pack_tmp = ISHFT(pack_tmp, 0)
    9396      413069 :          pack_tmp = ISHFT(pack_tmp, 0)
    9397      413069 :          ipack = ipack + 1
    9398      413129 :          packed_data(ipack) = pack_tmp
    9399             :       END DO
    9400       26450 :       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       26450 :    END SUBROUTINE ints2bits_14
    9404             : 
    9405             : ! **************************************************************************************************
    9406             : !> \brief ...
    9407             : !> \param Ndata ...
    9408             : !> \param packed_data ...
    9409             : !> \param full_data ...
    9410             : ! **************************************************************************************************
    9411      113974 :    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      113974 :       ipack = 0
    9422      113974 :       idata = 0
    9423      113974 :       pack_tmp = 0
    9424      113974 :       Ndata_rep = (Ndata/64)*64
    9425      113974 :       DO kdata = 1, Ndata_rep, 64
    9426     1767265 :          idata = idata + 1
    9427     1767265 :          data_tmp = ISHFT(pack_tmp, 14)
    9428     1767265 :          ipack = ipack + 1
    9429     1767265 :          pack_tmp = packed_data(ipack)
    9430     1767265 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
    9431     1767265 :          pack_tmp = ISHFT(pack_tmp, -14)
    9432     1767265 :          idata = idata + 1
    9433     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9434     1767265 :          full_data(idata) = data_tmp
    9435     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9436     1767265 :          idata = idata + 1
    9437     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9438     1767265 :          full_data(idata) = data_tmp
    9439     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9440     1767265 :          idata = idata + 1
    9441     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9442     1767265 :          full_data(idata) = data_tmp
    9443     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9444     1767265 :          idata = idata + 1
    9445     1767265 :          data_tmp = ISHFT(pack_tmp, 6)
    9446     1767265 :          ipack = ipack + 1
    9447     1767265 :          pack_tmp = packed_data(ipack)
    9448     1767265 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    9449     1767265 :          pack_tmp = ISHFT(pack_tmp, -6)
    9450     1767265 :          idata = idata + 1
    9451     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9452     1767265 :          full_data(idata) = data_tmp
    9453     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9454     1767265 :          idata = idata + 1
    9455     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9456     1767265 :          full_data(idata) = data_tmp
    9457     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9458     1767265 :          idata = idata + 1
    9459     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9460     1767265 :          full_data(idata) = data_tmp
    9461     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9462     1767265 :          idata = idata + 1
    9463     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9464     1767265 :          full_data(idata) = data_tmp
    9465     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9466     1767265 :          idata = idata + 1
    9467     1767265 :          data_tmp = ISHFT(pack_tmp, 12)
    9468     1767265 :          ipack = ipack + 1
    9469     1767265 :          pack_tmp = packed_data(ipack)
    9470     1767265 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    9471     1767265 :          pack_tmp = ISHFT(pack_tmp, -12)
    9472     1767265 :          idata = idata + 1
    9473     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9474     1767265 :          full_data(idata) = data_tmp
    9475     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9476     1767265 :          idata = idata + 1
    9477     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9478     1767265 :          full_data(idata) = data_tmp
    9479     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9480     1767265 :          idata = idata + 1
    9481     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9482     1767265 :          full_data(idata) = data_tmp
    9483     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9484     1767265 :          idata = idata + 1
    9485     1767265 :          data_tmp = ISHFT(pack_tmp, 4)
    9486     1767265 :          ipack = ipack + 1
    9487     1767265 :          pack_tmp = packed_data(ipack)
    9488     1767265 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    9489     1767265 :          pack_tmp = ISHFT(pack_tmp, -4)
    9490     1767265 :          idata = idata + 1
    9491     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9492     1767265 :          full_data(idata) = data_tmp
    9493     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9494     1767265 :          idata = idata + 1
    9495     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9496     1767265 :          full_data(idata) = data_tmp
    9497     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9498     1767265 :          idata = idata + 1
    9499     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9500     1767265 :          full_data(idata) = data_tmp
    9501     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9502     1767265 :          idata = idata + 1
    9503     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9504     1767265 :          full_data(idata) = data_tmp
    9505     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9506     1767265 :          idata = idata + 1
    9507     1767265 :          data_tmp = ISHFT(pack_tmp, 10)
    9508     1767265 :          ipack = ipack + 1
    9509     1767265 :          pack_tmp = packed_data(ipack)
    9510     1767265 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    9511     1767265 :          pack_tmp = ISHFT(pack_tmp, -10)
    9512     1767265 :          idata = idata + 1
    9513     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9514     1767265 :          full_data(idata) = data_tmp
    9515     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9516     1767265 :          idata = idata + 1
    9517     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9518     1767265 :          full_data(idata) = data_tmp
    9519     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9520     1767265 :          idata = idata + 1
    9521     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9522     1767265 :          full_data(idata) = data_tmp
    9523     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9524     1767265 :          idata = idata + 1
    9525     1767265 :          data_tmp = ISHFT(pack_tmp, 2)
    9526     1767265 :          ipack = ipack + 1
    9527     1767265 :          pack_tmp = packed_data(ipack)
    9528     1767265 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    9529     1767265 :          pack_tmp = ISHFT(pack_tmp, -2)
    9530     1767265 :          idata = idata + 1
    9531     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9532     1767265 :          full_data(idata) = data_tmp
    9533     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9534     1767265 :          idata = idata + 1
    9535     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9536     1767265 :          full_data(idata) = data_tmp
    9537     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9538     1767265 :          idata = idata + 1
    9539     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9540     1767265 :          full_data(idata) = data_tmp
    9541     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9542     1767265 :          idata = idata + 1
    9543     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9544     1767265 :          full_data(idata) = data_tmp
    9545     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9546     1767265 :          idata = idata + 1
    9547     1767265 :          data_tmp = ISHFT(pack_tmp, 8)
    9548     1767265 :          ipack = ipack + 1
    9549     1767265 :          pack_tmp = packed_data(ipack)
    9550     1767265 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    9551     1767265 :          pack_tmp = ISHFT(pack_tmp, -8)
    9552     1767265 :          idata = idata + 1
    9553     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9554     1767265 :          full_data(idata) = data_tmp
    9555     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9556     1767265 :          idata = idata + 1
    9557     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9558     1767265 :          full_data(idata) = data_tmp
    9559     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9560     1767265 :          idata = idata + 1
    9561     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9562     1767265 :          full_data(idata) = data_tmp
    9563     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9564     1767265 :          idata = idata + 1
    9565     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9566     1767265 :          full_data(idata) = data_tmp
    9567     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9568     1767265 :          idata = idata + 1
    9569     1767265 :          data_tmp = ISHFT(pack_tmp, 14)
    9570     1767265 :          ipack = ipack + 1
    9571     1767265 :          pack_tmp = packed_data(ipack)
    9572     1767265 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
    9573     1767265 :          pack_tmp = ISHFT(pack_tmp, -14)
    9574     1767265 :          idata = idata + 1
    9575     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9576     1767265 :          full_data(idata) = data_tmp
    9577     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9578     1767265 :          idata = idata + 1
    9579     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9580     1767265 :          full_data(idata) = data_tmp
    9581     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9582     1767265 :          idata = idata + 1
    9583     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9584     1767265 :          full_data(idata) = data_tmp
    9585     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9586     1767265 :          idata = idata + 1
    9587     1767265 :          data_tmp = ISHFT(pack_tmp, 6)
    9588     1767265 :          ipack = ipack + 1
    9589     1767265 :          pack_tmp = packed_data(ipack)
    9590     1767265 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    9591     1767265 :          pack_tmp = ISHFT(pack_tmp, -6)
    9592     1767265 :          idata = idata + 1
    9593     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9594     1767265 :          full_data(idata) = data_tmp
    9595     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9596     1767265 :          idata = idata + 1
    9597     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9598     1767265 :          full_data(idata) = data_tmp
    9599     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9600     1767265 :          idata = idata + 1
    9601     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9602     1767265 :          full_data(idata) = data_tmp
    9603     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9604     1767265 :          idata = idata + 1
    9605     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9606     1767265 :          full_data(idata) = data_tmp
    9607     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9608     1767265 :          idata = idata + 1
    9609     1767265 :          data_tmp = ISHFT(pack_tmp, 12)
    9610     1767265 :          ipack = ipack + 1
    9611     1767265 :          pack_tmp = packed_data(ipack)
    9612     1767265 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    9613     1767265 :          pack_tmp = ISHFT(pack_tmp, -12)
    9614     1767265 :          idata = idata + 1
    9615     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9616     1767265 :          full_data(idata) = data_tmp
    9617     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9618     1767265 :          idata = idata + 1
    9619     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9620     1767265 :          full_data(idata) = data_tmp
    9621     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9622     1767265 :          idata = idata + 1
    9623     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9624     1767265 :          full_data(idata) = data_tmp
    9625     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9626     1767265 :          idata = idata + 1
    9627     1767265 :          data_tmp = ISHFT(pack_tmp, 4)
    9628     1767265 :          ipack = ipack + 1
    9629     1767265 :          pack_tmp = packed_data(ipack)
    9630     1767265 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    9631     1767265 :          pack_tmp = ISHFT(pack_tmp, -4)
    9632     1767265 :          idata = idata + 1
    9633     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9634     1767265 :          full_data(idata) = data_tmp
    9635     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9636     1767265 :          idata = idata + 1
    9637     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9638     1767265 :          full_data(idata) = data_tmp
    9639     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9640     1767265 :          idata = idata + 1
    9641     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9642     1767265 :          full_data(idata) = data_tmp
    9643     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9644     1767265 :          idata = idata + 1
    9645     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9646     1767265 :          full_data(idata) = data_tmp
    9647     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9648     1767265 :          idata = idata + 1
    9649     1767265 :          data_tmp = ISHFT(pack_tmp, 10)
    9650     1767265 :          ipack = ipack + 1
    9651     1767265 :          pack_tmp = packed_data(ipack)
    9652     1767265 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    9653     1767265 :          pack_tmp = ISHFT(pack_tmp, -10)
    9654     1767265 :          idata = idata + 1
    9655     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9656     1767265 :          full_data(idata) = data_tmp
    9657     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9658     1767265 :          idata = idata + 1
    9659     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9660     1767265 :          full_data(idata) = data_tmp
    9661     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9662     1767265 :          idata = idata + 1
    9663     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9664     1767265 :          full_data(idata) = data_tmp
    9665     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9666     1767265 :          idata = idata + 1
    9667     1767265 :          data_tmp = ISHFT(pack_tmp, 2)
    9668     1767265 :          ipack = ipack + 1
    9669     1767265 :          pack_tmp = packed_data(ipack)
    9670     1767265 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    9671     1767265 :          pack_tmp = ISHFT(pack_tmp, -2)
    9672     1767265 :          idata = idata + 1
    9673     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9674     1767265 :          full_data(idata) = data_tmp
    9675     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9676     1767265 :          idata = idata + 1
    9677     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9678     1767265 :          full_data(idata) = data_tmp
    9679     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9680     1767265 :          idata = idata + 1
    9681     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9682     1767265 :          full_data(idata) = data_tmp
    9683     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9684     1767265 :          idata = idata + 1
    9685     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9686     1767265 :          full_data(idata) = data_tmp
    9687     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9688     1767265 :          idata = idata + 1
    9689     1767265 :          data_tmp = ISHFT(pack_tmp, 8)
    9690     1767265 :          ipack = ipack + 1
    9691     1767265 :          pack_tmp = packed_data(ipack)
    9692     1767265 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    9693     1767265 :          pack_tmp = ISHFT(pack_tmp, -8)
    9694     1767265 :          idata = idata + 1
    9695     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9696     1767265 :          full_data(idata) = data_tmp
    9697     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9698     1767265 :          idata = idata + 1
    9699     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9700     1767265 :          full_data(idata) = data_tmp
    9701     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9702     1767265 :          idata = idata + 1
    9703     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9704     1767265 :          full_data(idata) = data_tmp
    9705     1767265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9706     1767265 :          idata = idata + 1
    9707     1767265 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9708     1767265 :          full_data(idata) = data_tmp
    9709     1767582 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9710             :       END DO
    9711      113974 :       IF (Ndata_rep < Ndata) THEN
    9712        6270 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    9713             :       END IF
    9714      113974 :    END SUBROUTINE bits2ints_14
    9715             : 
    9716             : ! **************************************************************************************************
    9717             : !> \brief ...
    9718             : !> \param Ndata ...
    9719             : !> \param packed_data ...
    9720             : !> \param full_data ...
    9721             : ! **************************************************************************************************
    9722       26773 :    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       26773 :       idata = 0
    9733       26773 :       ipack = 0
    9734       26773 :       Ndata_rep = (Ndata/64)*64
    9735       26773 :       DO kdata = 1, Ndata_rep, 64
    9736      416655 :          pack_tmp = 0
    9737      416655 :          idata = idata + 1
    9738      416655 :          data_tmp = full_data(idata)
    9739      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9740      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9741      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9742      416655 :          idata = idata + 1
    9743      416655 :          data_tmp = full_data(idata)
    9744      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9745      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9746      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9747      416655 :          idata = idata + 1
    9748      416655 :          data_tmp = full_data(idata)
    9749      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9750      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9751      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9752      416655 :          idata = idata + 1
    9753      416655 :          data_tmp = full_data(idata)
    9754      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9755      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9756      416655 :          pack_tmp = ISHFT(pack_tmp, -4)
    9757      416655 :          idata = idata + 1
    9758      416655 :          data_tmp = full_data(idata)
    9759      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9760      416655 :          data_tmp = IAND(data_tmp, mask_left(4))
    9761      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9762      416655 :          ipack = ipack + 1
    9763      416655 :          packed_data(ipack) = pack_tmp
    9764      416655 :          data_tmp = full_data(idata)
    9765      416655 :          pack_tmp = ISHFT(data_tmp, 53)
    9766      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9767      416655 :          idata = idata + 1
    9768      416655 :          data_tmp = full_data(idata)
    9769      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9770      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9771      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9772      416655 :          idata = idata + 1
    9773      416655 :          data_tmp = full_data(idata)
    9774      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9775      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9776      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9777      416655 :          idata = idata + 1
    9778      416655 :          data_tmp = full_data(idata)
    9779      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9780      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9781      416655 :          pack_tmp = ISHFT(pack_tmp, -8)
    9782      416655 :          idata = idata + 1
    9783      416655 :          data_tmp = full_data(idata)
    9784      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9785      416655 :          data_tmp = IAND(data_tmp, mask_left(8))
    9786      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9787      416655 :          ipack = ipack + 1
    9788      416655 :          packed_data(ipack) = pack_tmp
    9789      416655 :          data_tmp = full_data(idata)
    9790      416655 :          pack_tmp = ISHFT(data_tmp, 57)
    9791      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9792      416655 :          idata = idata + 1
    9793      416655 :          data_tmp = full_data(idata)
    9794      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9795      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9796      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9797      416655 :          idata = idata + 1
    9798      416655 :          data_tmp = full_data(idata)
    9799      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9800      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9801      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9802      416655 :          idata = idata + 1
    9803      416655 :          data_tmp = full_data(idata)
    9804      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9805      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9806      416655 :          pack_tmp = ISHFT(pack_tmp, -12)
    9807      416655 :          idata = idata + 1
    9808      416655 :          data_tmp = full_data(idata)
    9809      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9810      416655 :          data_tmp = IAND(data_tmp, mask_left(12))
    9811      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9812      416655 :          ipack = ipack + 1
    9813      416655 :          packed_data(ipack) = pack_tmp
    9814      416655 :          data_tmp = full_data(idata)
    9815      416655 :          pack_tmp = ISHFT(data_tmp, 61)
    9816      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9817      416655 :          idata = idata + 1
    9818      416655 :          data_tmp = full_data(idata)
    9819      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9820      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9821      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9822      416655 :          idata = idata + 1
    9823      416655 :          data_tmp = full_data(idata)
    9824      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9825      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9826      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9827      416655 :          idata = idata + 1
    9828      416655 :          data_tmp = full_data(idata)
    9829      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9830      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9831      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9832      416655 :          idata = idata + 1
    9833      416655 :          data_tmp = full_data(idata)
    9834      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9835      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9836      416655 :          pack_tmp = ISHFT(pack_tmp, -1)
    9837      416655 :          idata = idata + 1
    9838      416655 :          data_tmp = full_data(idata)
    9839      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9840      416655 :          data_tmp = IAND(data_tmp, mask_left(1))
    9841      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9842      416655 :          ipack = ipack + 1
    9843      416655 :          packed_data(ipack) = pack_tmp
    9844      416655 :          data_tmp = full_data(idata)
    9845      416655 :          pack_tmp = ISHFT(data_tmp, 50)
    9846      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9847      416655 :          idata = idata + 1
    9848      416655 :          data_tmp = full_data(idata)
    9849      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9850      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9851      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9852      416655 :          idata = idata + 1
    9853      416655 :          data_tmp = full_data(idata)
    9854      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9855      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9856      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9857      416655 :          idata = idata + 1
    9858      416655 :          data_tmp = full_data(idata)
    9859      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9860      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9861      416655 :          pack_tmp = ISHFT(pack_tmp, -5)
    9862      416655 :          idata = idata + 1
    9863      416655 :          data_tmp = full_data(idata)
    9864      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9865      416655 :          data_tmp = IAND(data_tmp, mask_left(5))
    9866      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9867      416655 :          ipack = ipack + 1
    9868      416655 :          packed_data(ipack) = pack_tmp
    9869      416655 :          data_tmp = full_data(idata)
    9870      416655 :          pack_tmp = ISHFT(data_tmp, 54)
    9871      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9872      416655 :          idata = idata + 1
    9873      416655 :          data_tmp = full_data(idata)
    9874      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9875      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9876      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9877      416655 :          idata = idata + 1
    9878      416655 :          data_tmp = full_data(idata)
    9879      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9880      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9881      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9882      416655 :          idata = idata + 1
    9883      416655 :          data_tmp = full_data(idata)
    9884      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9885      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9886      416655 :          pack_tmp = ISHFT(pack_tmp, -9)
    9887      416655 :          idata = idata + 1
    9888      416655 :          data_tmp = full_data(idata)
    9889      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9890      416655 :          data_tmp = IAND(data_tmp, mask_left(9))
    9891      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9892      416655 :          ipack = ipack + 1
    9893      416655 :          packed_data(ipack) = pack_tmp
    9894      416655 :          data_tmp = full_data(idata)
    9895      416655 :          pack_tmp = ISHFT(data_tmp, 58)
    9896      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9897      416655 :          idata = idata + 1
    9898      416655 :          data_tmp = full_data(idata)
    9899      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9900      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9901      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9902      416655 :          idata = idata + 1
    9903      416655 :          data_tmp = full_data(idata)
    9904      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9905      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9906      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9907      416655 :          idata = idata + 1
    9908      416655 :          data_tmp = full_data(idata)
    9909      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9910      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9911      416655 :          pack_tmp = ISHFT(pack_tmp, -13)
    9912      416655 :          idata = idata + 1
    9913      416655 :          data_tmp = full_data(idata)
    9914      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9915      416655 :          data_tmp = IAND(data_tmp, mask_left(13))
    9916      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9917      416655 :          ipack = ipack + 1
    9918      416655 :          packed_data(ipack) = pack_tmp
    9919      416655 :          data_tmp = full_data(idata)
    9920      416655 :          pack_tmp = ISHFT(data_tmp, 62)
    9921      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9922      416655 :          idata = idata + 1
    9923      416655 :          data_tmp = full_data(idata)
    9924      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9925      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9926      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9927      416655 :          idata = idata + 1
    9928      416655 :          data_tmp = full_data(idata)
    9929      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9930      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9931      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9932      416655 :          idata = idata + 1
    9933      416655 :          data_tmp = full_data(idata)
    9934      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9935      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9936      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9937      416655 :          idata = idata + 1
    9938      416655 :          data_tmp = full_data(idata)
    9939      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9940      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9941      416655 :          pack_tmp = ISHFT(pack_tmp, -2)
    9942      416655 :          idata = idata + 1
    9943      416655 :          data_tmp = full_data(idata)
    9944      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9945      416655 :          data_tmp = IAND(data_tmp, mask_left(2))
    9946      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9947      416655 :          ipack = ipack + 1
    9948      416655 :          packed_data(ipack) = pack_tmp
    9949      416655 :          data_tmp = full_data(idata)
    9950      416655 :          pack_tmp = ISHFT(data_tmp, 51)
    9951      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9952      416655 :          idata = idata + 1
    9953      416655 :          data_tmp = full_data(idata)
    9954      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9955      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9956      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9957      416655 :          idata = idata + 1
    9958      416655 :          data_tmp = full_data(idata)
    9959      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9960      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9961      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9962      416655 :          idata = idata + 1
    9963      416655 :          data_tmp = full_data(idata)
    9964      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9965      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9966      416655 :          pack_tmp = ISHFT(pack_tmp, -6)
    9967      416655 :          idata = idata + 1
    9968      416655 :          data_tmp = full_data(idata)
    9969      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9970      416655 :          data_tmp = IAND(data_tmp, mask_left(6))
    9971      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9972      416655 :          ipack = ipack + 1
    9973      416655 :          packed_data(ipack) = pack_tmp
    9974      416655 :          data_tmp = full_data(idata)
    9975      416655 :          pack_tmp = ISHFT(data_tmp, 55)
    9976      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9977      416655 :          idata = idata + 1
    9978      416655 :          data_tmp = full_data(idata)
    9979      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9980      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9981      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9982      416655 :          idata = idata + 1
    9983      416655 :          data_tmp = full_data(idata)
    9984      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9985      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9986      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
    9987      416655 :          idata = idata + 1
    9988      416655 :          data_tmp = full_data(idata)
    9989      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9990      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9991      416655 :          pack_tmp = ISHFT(pack_tmp, -10)
    9992      416655 :          idata = idata + 1
    9993      416655 :          data_tmp = full_data(idata)
    9994      416655 :          data_tmp = ISHFT(data_tmp, 49)
    9995      416655 :          data_tmp = IAND(data_tmp, mask_left(10))
    9996      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9997      416655 :          ipack = ipack + 1
    9998      416655 :          packed_data(ipack) = pack_tmp
    9999      416655 :          data_tmp = full_data(idata)
   10000      416655 :          pack_tmp = ISHFT(data_tmp, 59)
   10001      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
   10002      416655 :          idata = idata + 1
   10003      416655 :          data_tmp = full_data(idata)
   10004      416655 :          data_tmp = ISHFT(data_tmp, 49)
   10005      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10006      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
   10007      416655 :          idata = idata + 1
   10008      416655 :          data_tmp = full_data(idata)
   10009      416655 :          data_tmp = ISHFT(data_tmp, 49)
   10010      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10011      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
   10012      416655 :          idata = idata + 1
   10013      416655 :          data_tmp = full_data(idata)
   10014      416655 :          data_tmp = ISHFT(data_tmp, 49)
   10015      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10016      416655 :          pack_tmp = ISHFT(pack_tmp, -14)
   10017      416655 :          idata = idata + 1
   10018      416655 :          data_tmp = full_data(idata)
   10019      416655 :          data_tmp = ISHFT(data_tmp, 49)
   10020      416655 :          data_tmp = IAND(data_tmp, mask_left(14))
   10021      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10022      416655 :          ipack = ipack + 1
   10023      416655 :          packed_data(ipack) = pack_tmp
   10024      416655 :          data_tmp = full_data(idata)
   10025      416655 :          pack_tmp = ISHFT(data_tmp, 63)
   10026      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
   10027      416655 :          idata = idata + 1
   10028      416655 :          data_tmp = full_data(idata)
   10029      416655 :          data_tmp = ISHFT(data_tmp, 49)
   10030      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10031      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
   10032      416655 :          idata = idata + 1
   10033      416655 :          data_tmp = full_data(idata)
   10034      416655 :          data_tmp = ISHFT(data_tmp, 49)
   10035      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10036      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
   10037      416655 :          idata = idata + 1
   10038      416655 :          data_tmp = full_data(idata)
   10039      416655 :          data_tmp = ISHFT(data_tmp, 49)
   10040      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10041      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
   10042      416655 :          idata = idata + 1
   10043      416655 :          data_tmp = full_data(idata)
   10044      416655 :          data_tmp = ISHFT(data_tmp, 49)
   10045      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10046      416655 :          pack_tmp = ISHFT(pack_tmp, -3)
   10047      416655 :          idata = idata + 1
   10048      416655 :          data_tmp = full_data(idata)
   10049      416655 :          data_tmp = ISHFT(data_tmp, 49)
   10050      416655 :          data_tmp = IAND(data_tmp, mask_left(3))
   10051      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10052      416655 :          ipack = ipack + 1
   10053      416655 :          packed_data(ipack) = pack_tmp
   10054      416655 :          data_tmp = full_data(idata)
   10055      416655 :          pack_tmp = ISHFT(data_tmp, 52)
   10056      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
   10057      416655 :          idata = idata + 1
   10058      416655 :          data_tmp = full_data(idata)
   10059      416655 :          data_tmp = ISHFT(data_tmp, 49)
   10060      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10061      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
   10062      416655 :          idata = idata + 1
   10063      416655 :          data_tmp = full_data(idata)
   10064      416655 :          data_tmp = ISHFT(data_tmp, 49)
   10065      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10066      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
   10067      416655 :          idata = idata + 1
   10068      416655 :          data_tmp = full_data(idata)
   10069      416655 :          data_tmp = ISHFT(data_tmp, 49)
   10070      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10071      416655 :          pack_tmp = ISHFT(pack_tmp, -7)
   10072      416655 :          idata = idata + 1
   10073      416655 :          data_tmp = full_data(idata)
   10074      416655 :          data_tmp = ISHFT(data_tmp, 49)
   10075      416655 :          data_tmp = IAND(data_tmp, mask_left(7))
   10076      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10077      416655 :          ipack = ipack + 1
   10078      416655 :          packed_data(ipack) = pack_tmp
   10079      416655 :          data_tmp = full_data(idata)
   10080      416655 :          pack_tmp = ISHFT(data_tmp, 56)
   10081      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
   10082      416655 :          idata = idata + 1
   10083      416655 :          data_tmp = full_data(idata)
   10084      416655 :          data_tmp = ISHFT(data_tmp, 49)
   10085      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10086      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
   10087      416655 :          idata = idata + 1
   10088      416655 :          data_tmp = full_data(idata)
   10089      416655 :          data_tmp = ISHFT(data_tmp, 49)
   10090      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10091      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
   10092      416655 :          idata = idata + 1
   10093      416655 :          data_tmp = full_data(idata)
   10094      416655 :          data_tmp = ISHFT(data_tmp, 49)
   10095      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10096      416655 :          pack_tmp = ISHFT(pack_tmp, -11)
   10097      416655 :          idata = idata + 1
   10098      416655 :          data_tmp = full_data(idata)
   10099      416655 :          data_tmp = ISHFT(data_tmp, 49)
   10100      416655 :          data_tmp = IAND(data_tmp, mask_left(11))
   10101      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10102      416655 :          ipack = ipack + 1
   10103      416655 :          packed_data(ipack) = pack_tmp
   10104      416655 :          data_tmp = full_data(idata)
   10105      416655 :          pack_tmp = ISHFT(data_tmp, 60)
   10106      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
   10107      416655 :          idata = idata + 1
   10108      416655 :          data_tmp = full_data(idata)
   10109      416655 :          data_tmp = ISHFT(data_tmp, 49)
   10110      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10111      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
   10112      416655 :          idata = idata + 1
   10113      416655 :          data_tmp = full_data(idata)
   10114      416655 :          data_tmp = ISHFT(data_tmp, 49)
   10115      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10116      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
   10117      416655 :          idata = idata + 1
   10118      416655 :          data_tmp = full_data(idata)
   10119      416655 :          data_tmp = ISHFT(data_tmp, 49)
   10120      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10121      416655 :          pack_tmp = ISHFT(pack_tmp, -15)
   10122      416655 :          idata = idata + 1
   10123      416655 :          data_tmp = full_data(idata)
   10124      416655 :          data_tmp = ISHFT(data_tmp, 49)
   10125      416655 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10126             :          pack_tmp = ISHFT(pack_tmp, 0)
   10127      416655 :          pack_tmp = ISHFT(pack_tmp, 0)
   10128      416655 :          ipack = ipack + 1
   10129      416740 :          packed_data(ipack) = pack_tmp
   10130             :       END DO
   10131       26773 :       IF (Ndata_rep < Ndata) THEN
   10132        1378 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   10133             :       END IF
   10134       26773 :    END SUBROUTINE ints2bits_15
   10135             : 
   10136             : ! **************************************************************************************************
   10137             : !> \brief ...
   10138             : !> \param Ndata ...
   10139             : !> \param packed_data ...
   10140             : !> \param full_data ...
   10141             : ! **************************************************************************************************
   10142      115864 :    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      115864 :       ipack = 0
   10153      115864 :       idata = 0
   10154      115864 :       pack_tmp = 0
   10155      115864 :       Ndata_rep = (Ndata/64)*64
   10156      115864 :       DO kdata = 1, Ndata_rep, 64
   10157     1787252 :          idata = idata + 1
   10158     1787252 :          data_tmp = ISHFT(pack_tmp, 15)
   10159     1787252 :          ipack = ipack + 1
   10160     1787252 :          pack_tmp = packed_data(ipack)
   10161     1787252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   10162     1787252 :          pack_tmp = ISHFT(pack_tmp, -15)
   10163     1787252 :          idata = idata + 1
   10164     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10165     1787252 :          full_data(idata) = data_tmp
   10166     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10167     1787252 :          idata = idata + 1
   10168     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10169     1787252 :          full_data(idata) = data_tmp
   10170     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10171     1787252 :          idata = idata + 1
   10172     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10173     1787252 :          full_data(idata) = data_tmp
   10174     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10175     1787252 :          idata = idata + 1
   10176     1787252 :          data_tmp = ISHFT(pack_tmp, 11)
   10177     1787252 :          ipack = ipack + 1
   10178     1787252 :          pack_tmp = packed_data(ipack)
   10179     1787252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   10180     1787252 :          pack_tmp = ISHFT(pack_tmp, -11)
   10181     1787252 :          idata = idata + 1
   10182     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10183     1787252 :          full_data(idata) = data_tmp
   10184     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10185     1787252 :          idata = idata + 1
   10186     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10187     1787252 :          full_data(idata) = data_tmp
   10188     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10189     1787252 :          idata = idata + 1
   10190     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10191     1787252 :          full_data(idata) = data_tmp
   10192     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10193     1787252 :          idata = idata + 1
   10194     1787252 :          data_tmp = ISHFT(pack_tmp, 7)
   10195     1787252 :          ipack = ipack + 1
   10196     1787252 :          pack_tmp = packed_data(ipack)
   10197     1787252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   10198     1787252 :          pack_tmp = ISHFT(pack_tmp, -7)
   10199     1787252 :          idata = idata + 1
   10200     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10201     1787252 :          full_data(idata) = data_tmp
   10202     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10203     1787252 :          idata = idata + 1
   10204     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10205     1787252 :          full_data(idata) = data_tmp
   10206     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10207     1787252 :          idata = idata + 1
   10208     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10209     1787252 :          full_data(idata) = data_tmp
   10210     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10211     1787252 :          idata = idata + 1
   10212     1787252 :          data_tmp = ISHFT(pack_tmp, 3)
   10213     1787252 :          ipack = ipack + 1
   10214     1787252 :          pack_tmp = packed_data(ipack)
   10215     1787252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   10216     1787252 :          pack_tmp = ISHFT(pack_tmp, -3)
   10217     1787252 :          idata = idata + 1
   10218     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10219     1787252 :          full_data(idata) = data_tmp
   10220     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10221     1787252 :          idata = idata + 1
   10222     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10223     1787252 :          full_data(idata) = data_tmp
   10224     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10225     1787252 :          idata = idata + 1
   10226     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10227     1787252 :          full_data(idata) = data_tmp
   10228     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10229     1787252 :          idata = idata + 1
   10230     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10231     1787252 :          full_data(idata) = data_tmp
   10232     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10233     1787252 :          idata = idata + 1
   10234     1787252 :          data_tmp = ISHFT(pack_tmp, 14)
   10235     1787252 :          ipack = ipack + 1
   10236     1787252 :          pack_tmp = packed_data(ipack)
   10237     1787252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   10238     1787252 :          pack_tmp = ISHFT(pack_tmp, -14)
   10239     1787252 :          idata = idata + 1
   10240     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10241     1787252 :          full_data(idata) = data_tmp
   10242     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10243     1787252 :          idata = idata + 1
   10244     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10245     1787252 :          full_data(idata) = data_tmp
   10246     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10247     1787252 :          idata = idata + 1
   10248     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10249     1787252 :          full_data(idata) = data_tmp
   10250     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10251     1787252 :          idata = idata + 1
   10252     1787252 :          data_tmp = ISHFT(pack_tmp, 10)
   10253     1787252 :          ipack = ipack + 1
   10254     1787252 :          pack_tmp = packed_data(ipack)
   10255     1787252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   10256     1787252 :          pack_tmp = ISHFT(pack_tmp, -10)
   10257     1787252 :          idata = idata + 1
   10258     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10259     1787252 :          full_data(idata) = data_tmp
   10260     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10261     1787252 :          idata = idata + 1
   10262     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10263     1787252 :          full_data(idata) = data_tmp
   10264     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10265     1787252 :          idata = idata + 1
   10266     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10267     1787252 :          full_data(idata) = data_tmp
   10268     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10269     1787252 :          idata = idata + 1
   10270     1787252 :          data_tmp = ISHFT(pack_tmp, 6)
   10271     1787252 :          ipack = ipack + 1
   10272     1787252 :          pack_tmp = packed_data(ipack)
   10273     1787252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   10274     1787252 :          pack_tmp = ISHFT(pack_tmp, -6)
   10275     1787252 :          idata = idata + 1
   10276     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10277     1787252 :          full_data(idata) = data_tmp
   10278     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10279     1787252 :          idata = idata + 1
   10280     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10281     1787252 :          full_data(idata) = data_tmp
   10282     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10283     1787252 :          idata = idata + 1
   10284     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10285     1787252 :          full_data(idata) = data_tmp
   10286     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10287     1787252 :          idata = idata + 1
   10288     1787252 :          data_tmp = ISHFT(pack_tmp, 2)
   10289     1787252 :          ipack = ipack + 1
   10290     1787252 :          pack_tmp = packed_data(ipack)
   10291     1787252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   10292     1787252 :          pack_tmp = ISHFT(pack_tmp, -2)
   10293     1787252 :          idata = idata + 1
   10294     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10295     1787252 :          full_data(idata) = data_tmp
   10296     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10297     1787252 :          idata = idata + 1
   10298     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10299     1787252 :          full_data(idata) = data_tmp
   10300     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10301     1787252 :          idata = idata + 1
   10302     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10303     1787252 :          full_data(idata) = data_tmp
   10304     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10305     1787252 :          idata = idata + 1
   10306     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10307     1787252 :          full_data(idata) = data_tmp
   10308     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10309     1787252 :          idata = idata + 1
   10310     1787252 :          data_tmp = ISHFT(pack_tmp, 13)
   10311     1787252 :          ipack = ipack + 1
   10312     1787252 :          pack_tmp = packed_data(ipack)
   10313     1787252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   10314     1787252 :          pack_tmp = ISHFT(pack_tmp, -13)
   10315     1787252 :          idata = idata + 1
   10316     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10317     1787252 :          full_data(idata) = data_tmp
   10318     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10319     1787252 :          idata = idata + 1
   10320     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10321     1787252 :          full_data(idata) = data_tmp
   10322     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10323     1787252 :          idata = idata + 1
   10324     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10325     1787252 :          full_data(idata) = data_tmp
   10326     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10327     1787252 :          idata = idata + 1
   10328     1787252 :          data_tmp = ISHFT(pack_tmp, 9)
   10329     1787252 :          ipack = ipack + 1
   10330     1787252 :          pack_tmp = packed_data(ipack)
   10331     1787252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   10332     1787252 :          pack_tmp = ISHFT(pack_tmp, -9)
   10333     1787252 :          idata = idata + 1
   10334     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10335     1787252 :          full_data(idata) = data_tmp
   10336     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10337     1787252 :          idata = idata + 1
   10338     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10339     1787252 :          full_data(idata) = data_tmp
   10340     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10341     1787252 :          idata = idata + 1
   10342     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10343     1787252 :          full_data(idata) = data_tmp
   10344     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10345     1787252 :          idata = idata + 1
   10346     1787252 :          data_tmp = ISHFT(pack_tmp, 5)
   10347     1787252 :          ipack = ipack + 1
   10348     1787252 :          pack_tmp = packed_data(ipack)
   10349     1787252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   10350     1787252 :          pack_tmp = ISHFT(pack_tmp, -5)
   10351     1787252 :          idata = idata + 1
   10352     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10353     1787252 :          full_data(idata) = data_tmp
   10354     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10355     1787252 :          idata = idata + 1
   10356     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10357     1787252 :          full_data(idata) = data_tmp
   10358     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10359     1787252 :          idata = idata + 1
   10360     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10361     1787252 :          full_data(idata) = data_tmp
   10362     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10363     1787252 :          idata = idata + 1
   10364     1787252 :          data_tmp = ISHFT(pack_tmp, 1)
   10365     1787252 :          ipack = ipack + 1
   10366     1787252 :          pack_tmp = packed_data(ipack)
   10367     1787252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   10368     1787252 :          pack_tmp = ISHFT(pack_tmp, -1)
   10369     1787252 :          idata = idata + 1
   10370     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10371     1787252 :          full_data(idata) = data_tmp
   10372     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10373     1787252 :          idata = idata + 1
   10374     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10375     1787252 :          full_data(idata) = data_tmp
   10376     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10377     1787252 :          idata = idata + 1
   10378     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10379     1787252 :          full_data(idata) = data_tmp
   10380     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10381     1787252 :          idata = idata + 1
   10382     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10383     1787252 :          full_data(idata) = data_tmp
   10384     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10385     1787252 :          idata = idata + 1
   10386     1787252 :          data_tmp = ISHFT(pack_tmp, 12)
   10387     1787252 :          ipack = ipack + 1
   10388     1787252 :          pack_tmp = packed_data(ipack)
   10389     1787252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   10390     1787252 :          pack_tmp = ISHFT(pack_tmp, -12)
   10391     1787252 :          idata = idata + 1
   10392     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10393     1787252 :          full_data(idata) = data_tmp
   10394     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10395     1787252 :          idata = idata + 1
   10396     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10397     1787252 :          full_data(idata) = data_tmp
   10398     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10399     1787252 :          idata = idata + 1
   10400     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10401     1787252 :          full_data(idata) = data_tmp
   10402     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10403     1787252 :          idata = idata + 1
   10404     1787252 :          data_tmp = ISHFT(pack_tmp, 8)
   10405     1787252 :          ipack = ipack + 1
   10406     1787252 :          pack_tmp = packed_data(ipack)
   10407     1787252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   10408     1787252 :          pack_tmp = ISHFT(pack_tmp, -8)
   10409     1787252 :          idata = idata + 1
   10410     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10411     1787252 :          full_data(idata) = data_tmp
   10412     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10413     1787252 :          idata = idata + 1
   10414     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10415     1787252 :          full_data(idata) = data_tmp
   10416     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10417     1787252 :          idata = idata + 1
   10418     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10419     1787252 :          full_data(idata) = data_tmp
   10420     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10421     1787252 :          idata = idata + 1
   10422     1787252 :          data_tmp = ISHFT(pack_tmp, 4)
   10423     1787252 :          ipack = ipack + 1
   10424     1787252 :          pack_tmp = packed_data(ipack)
   10425     1787252 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   10426     1787252 :          pack_tmp = ISHFT(pack_tmp, -4)
   10427     1787252 :          idata = idata + 1
   10428     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10429     1787252 :          full_data(idata) = data_tmp
   10430     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10431     1787252 :          idata = idata + 1
   10432     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10433     1787252 :          full_data(idata) = data_tmp
   10434     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10435     1787252 :          idata = idata + 1
   10436     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10437     1787252 :          full_data(idata) = data_tmp
   10438     1787252 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10439     1787252 :          idata = idata + 1
   10440     1787252 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10441     1787252 :          full_data(idata) = data_tmp
   10442     1787738 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10443             :       END DO
   10444      115864 :       IF (Ndata_rep < Ndata) THEN
   10445        7832 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   10446             :       END IF
   10447      115864 :    END SUBROUTINE bits2ints_15
   10448             : 
   10449             : ! **************************************************************************************************
   10450             : !> \brief ...
   10451             : !> \param Ndata ...
   10452             : !> \param packed_data ...
   10453             : !> \param full_data ...
   10454             : ! **************************************************************************************************
   10455       27634 :    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       27634 :       idata = 0
   10466       27634 :       ipack = 0
   10467       27634 :       Ndata_rep = (Ndata/64)*64
   10468       27634 :       DO kdata = 1, Ndata_rep, 64
   10469      428160 :          pack_tmp = 0
   10470      428160 :          idata = idata + 1
   10471      428160 :          data_tmp = full_data(idata)
   10472      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10473      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10474      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10475      428160 :          idata = idata + 1
   10476      428160 :          data_tmp = full_data(idata)
   10477      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10478      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10479      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10480      428160 :          idata = idata + 1
   10481      428160 :          data_tmp = full_data(idata)
   10482      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10483      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10484      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10485      428160 :          idata = idata + 1
   10486      428160 :          data_tmp = full_data(idata)
   10487      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10488      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10489      428160 :          pack_tmp = ISHFT(pack_tmp, 0)
   10490      428160 :          idata = idata + 1
   10491      428160 :          data_tmp = full_data(idata)
   10492             :          data_tmp = ISHFT(data_tmp, 48)
   10493      428160 :          data_tmp = IAND(data_tmp, mask_left(0))
   10494      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10495      428160 :          ipack = ipack + 1
   10496      428160 :          packed_data(ipack) = pack_tmp
   10497      428160 :          data_tmp = full_data(idata)
   10498      428160 :          pack_tmp = ISHFT(data_tmp, 48)
   10499      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10500      428160 :          idata = idata + 1
   10501      428160 :          data_tmp = full_data(idata)
   10502      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10503      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10504      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10505      428160 :          idata = idata + 1
   10506      428160 :          data_tmp = full_data(idata)
   10507      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10508      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10509      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10510      428160 :          idata = idata + 1
   10511      428160 :          data_tmp = full_data(idata)
   10512      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10513      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10514      428160 :          pack_tmp = ISHFT(pack_tmp, 0)
   10515      428160 :          idata = idata + 1
   10516      428160 :          data_tmp = full_data(idata)
   10517             :          data_tmp = ISHFT(data_tmp, 48)
   10518      428160 :          data_tmp = IAND(data_tmp, mask_left(0))
   10519      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10520      428160 :          ipack = ipack + 1
   10521      428160 :          packed_data(ipack) = pack_tmp
   10522      428160 :          data_tmp = full_data(idata)
   10523      428160 :          pack_tmp = ISHFT(data_tmp, 48)
   10524      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10525      428160 :          idata = idata + 1
   10526      428160 :          data_tmp = full_data(idata)
   10527      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10528      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10529      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10530      428160 :          idata = idata + 1
   10531      428160 :          data_tmp = full_data(idata)
   10532      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10533      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10534      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10535      428160 :          idata = idata + 1
   10536      428160 :          data_tmp = full_data(idata)
   10537      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10538      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10539      428160 :          pack_tmp = ISHFT(pack_tmp, 0)
   10540      428160 :          idata = idata + 1
   10541      428160 :          data_tmp = full_data(idata)
   10542             :          data_tmp = ISHFT(data_tmp, 48)
   10543      428160 :          data_tmp = IAND(data_tmp, mask_left(0))
   10544      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10545      428160 :          ipack = ipack + 1
   10546      428160 :          packed_data(ipack) = pack_tmp
   10547      428160 :          data_tmp = full_data(idata)
   10548      428160 :          pack_tmp = ISHFT(data_tmp, 48)
   10549      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10550      428160 :          idata = idata + 1
   10551      428160 :          data_tmp = full_data(idata)
   10552      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10553      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10554      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10555      428160 :          idata = idata + 1
   10556      428160 :          data_tmp = full_data(idata)
   10557      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10558      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10559      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10560      428160 :          idata = idata + 1
   10561      428160 :          data_tmp = full_data(idata)
   10562      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10563      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10564      428160 :          pack_tmp = ISHFT(pack_tmp, 0)
   10565      428160 :          idata = idata + 1
   10566      428160 :          data_tmp = full_data(idata)
   10567             :          data_tmp = ISHFT(data_tmp, 48)
   10568      428160 :          data_tmp = IAND(data_tmp, mask_left(0))
   10569      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10570      428160 :          ipack = ipack + 1
   10571      428160 :          packed_data(ipack) = pack_tmp
   10572      428160 :          data_tmp = full_data(idata)
   10573      428160 :          pack_tmp = ISHFT(data_tmp, 48)
   10574      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10575      428160 :          idata = idata + 1
   10576      428160 :          data_tmp = full_data(idata)
   10577      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10578      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10579      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10580      428160 :          idata = idata + 1
   10581      428160 :          data_tmp = full_data(idata)
   10582      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10583      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10584      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10585      428160 :          idata = idata + 1
   10586      428160 :          data_tmp = full_data(idata)
   10587      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10588      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10589      428160 :          pack_tmp = ISHFT(pack_tmp, 0)
   10590      428160 :          idata = idata + 1
   10591      428160 :          data_tmp = full_data(idata)
   10592             :          data_tmp = ISHFT(data_tmp, 48)
   10593      428160 :          data_tmp = IAND(data_tmp, mask_left(0))
   10594      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10595      428160 :          ipack = ipack + 1
   10596      428160 :          packed_data(ipack) = pack_tmp
   10597      428160 :          data_tmp = full_data(idata)
   10598      428160 :          pack_tmp = ISHFT(data_tmp, 48)
   10599      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10600      428160 :          idata = idata + 1
   10601      428160 :          data_tmp = full_data(idata)
   10602      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10603      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10604      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10605      428160 :          idata = idata + 1
   10606      428160 :          data_tmp = full_data(idata)
   10607      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10608      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10609      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10610      428160 :          idata = idata + 1
   10611      428160 :          data_tmp = full_data(idata)
   10612      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10613      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10614      428160 :          pack_tmp = ISHFT(pack_tmp, 0)
   10615      428160 :          idata = idata + 1
   10616      428160 :          data_tmp = full_data(idata)
   10617             :          data_tmp = ISHFT(data_tmp, 48)
   10618      428160 :          data_tmp = IAND(data_tmp, mask_left(0))
   10619      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10620      428160 :          ipack = ipack + 1
   10621      428160 :          packed_data(ipack) = pack_tmp
   10622      428160 :          data_tmp = full_data(idata)
   10623      428160 :          pack_tmp = ISHFT(data_tmp, 48)
   10624      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10625      428160 :          idata = idata + 1
   10626      428160 :          data_tmp = full_data(idata)
   10627      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10628      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10629      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10630      428160 :          idata = idata + 1
   10631      428160 :          data_tmp = full_data(idata)
   10632      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10633      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10634      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10635      428160 :          idata = idata + 1
   10636      428160 :          data_tmp = full_data(idata)
   10637      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10638      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10639      428160 :          pack_tmp = ISHFT(pack_tmp, 0)
   10640      428160 :          idata = idata + 1
   10641      428160 :          data_tmp = full_data(idata)
   10642             :          data_tmp = ISHFT(data_tmp, 48)
   10643      428160 :          data_tmp = IAND(data_tmp, mask_left(0))
   10644      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10645      428160 :          ipack = ipack + 1
   10646      428160 :          packed_data(ipack) = pack_tmp
   10647      428160 :          data_tmp = full_data(idata)
   10648      428160 :          pack_tmp = ISHFT(data_tmp, 48)
   10649      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10650      428160 :          idata = idata + 1
   10651      428160 :          data_tmp = full_data(idata)
   10652      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10653      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10654      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10655      428160 :          idata = idata + 1
   10656      428160 :          data_tmp = full_data(idata)
   10657      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10658      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10659      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10660      428160 :          idata = idata + 1
   10661      428160 :          data_tmp = full_data(idata)
   10662      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10663      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10664      428160 :          pack_tmp = ISHFT(pack_tmp, 0)
   10665      428160 :          idata = idata + 1
   10666      428160 :          data_tmp = full_data(idata)
   10667             :          data_tmp = ISHFT(data_tmp, 48)
   10668      428160 :          data_tmp = IAND(data_tmp, mask_left(0))
   10669      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10670      428160 :          ipack = ipack + 1
   10671      428160 :          packed_data(ipack) = pack_tmp
   10672      428160 :          data_tmp = full_data(idata)
   10673      428160 :          pack_tmp = ISHFT(data_tmp, 48)
   10674      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10675      428160 :          idata = idata + 1
   10676      428160 :          data_tmp = full_data(idata)
   10677      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10678      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10679      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10680      428160 :          idata = idata + 1
   10681      428160 :          data_tmp = full_data(idata)
   10682      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10683      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10684      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10685      428160 :          idata = idata + 1
   10686      428160 :          data_tmp = full_data(idata)
   10687      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10688      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10689      428160 :          pack_tmp = ISHFT(pack_tmp, 0)
   10690      428160 :          idata = idata + 1
   10691      428160 :          data_tmp = full_data(idata)
   10692             :          data_tmp = ISHFT(data_tmp, 48)
   10693      428160 :          data_tmp = IAND(data_tmp, mask_left(0))
   10694      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10695      428160 :          ipack = ipack + 1
   10696      428160 :          packed_data(ipack) = pack_tmp
   10697      428160 :          data_tmp = full_data(idata)
   10698      428160 :          pack_tmp = ISHFT(data_tmp, 48)
   10699      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10700      428160 :          idata = idata + 1
   10701      428160 :          data_tmp = full_data(idata)
   10702      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10703      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10704      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10705      428160 :          idata = idata + 1
   10706      428160 :          data_tmp = full_data(idata)
   10707      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10708      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10709      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10710      428160 :          idata = idata + 1
   10711      428160 :          data_tmp = full_data(idata)
   10712      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10713      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10714      428160 :          pack_tmp = ISHFT(pack_tmp, 0)
   10715      428160 :          idata = idata + 1
   10716      428160 :          data_tmp = full_data(idata)
   10717             :          data_tmp = ISHFT(data_tmp, 48)
   10718      428160 :          data_tmp = IAND(data_tmp, mask_left(0))
   10719      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10720      428160 :          ipack = ipack + 1
   10721      428160 :          packed_data(ipack) = pack_tmp
   10722      428160 :          data_tmp = full_data(idata)
   10723      428160 :          pack_tmp = ISHFT(data_tmp, 48)
   10724      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10725      428160 :          idata = idata + 1
   10726      428160 :          data_tmp = full_data(idata)
   10727      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10728      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10729      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10730      428160 :          idata = idata + 1
   10731      428160 :          data_tmp = full_data(idata)
   10732      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10733      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10734      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10735      428160 :          idata = idata + 1
   10736      428160 :          data_tmp = full_data(idata)
   10737      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10738      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10739      428160 :          pack_tmp = ISHFT(pack_tmp, 0)
   10740      428160 :          idata = idata + 1
   10741      428160 :          data_tmp = full_data(idata)
   10742             :          data_tmp = ISHFT(data_tmp, 48)
   10743      428160 :          data_tmp = IAND(data_tmp, mask_left(0))
   10744      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10745      428160 :          ipack = ipack + 1
   10746      428160 :          packed_data(ipack) = pack_tmp
   10747      428160 :          data_tmp = full_data(idata)
   10748      428160 :          pack_tmp = ISHFT(data_tmp, 48)
   10749      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10750      428160 :          idata = idata + 1
   10751      428160 :          data_tmp = full_data(idata)
   10752      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10753      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10754      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10755      428160 :          idata = idata + 1
   10756      428160 :          data_tmp = full_data(idata)
   10757      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10758      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10759      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10760      428160 :          idata = idata + 1
   10761      428160 :          data_tmp = full_data(idata)
   10762      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10763      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10764      428160 :          pack_tmp = ISHFT(pack_tmp, 0)
   10765      428160 :          idata = idata + 1
   10766      428160 :          data_tmp = full_data(idata)
   10767             :          data_tmp = ISHFT(data_tmp, 48)
   10768      428160 :          data_tmp = IAND(data_tmp, mask_left(0))
   10769      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10770      428160 :          ipack = ipack + 1
   10771      428160 :          packed_data(ipack) = pack_tmp
   10772      428160 :          data_tmp = full_data(idata)
   10773      428160 :          pack_tmp = ISHFT(data_tmp, 48)
   10774      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10775      428160 :          idata = idata + 1
   10776      428160 :          data_tmp = full_data(idata)
   10777      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10778      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10779      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10780      428160 :          idata = idata + 1
   10781      428160 :          data_tmp = full_data(idata)
   10782      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10783      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10784      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10785      428160 :          idata = idata + 1
   10786      428160 :          data_tmp = full_data(idata)
   10787      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10788      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10789      428160 :          pack_tmp = ISHFT(pack_tmp, 0)
   10790      428160 :          idata = idata + 1
   10791      428160 :          data_tmp = full_data(idata)
   10792             :          data_tmp = ISHFT(data_tmp, 48)
   10793      428160 :          data_tmp = IAND(data_tmp, mask_left(0))
   10794      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10795      428160 :          ipack = ipack + 1
   10796      428160 :          packed_data(ipack) = pack_tmp
   10797      428160 :          data_tmp = full_data(idata)
   10798      428160 :          pack_tmp = ISHFT(data_tmp, 48)
   10799      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10800      428160 :          idata = idata + 1
   10801      428160 :          data_tmp = full_data(idata)
   10802      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10803      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10804      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10805      428160 :          idata = idata + 1
   10806      428160 :          data_tmp = full_data(idata)
   10807      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10808      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10809      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10810      428160 :          idata = idata + 1
   10811      428160 :          data_tmp = full_data(idata)
   10812      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10813      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10814      428160 :          pack_tmp = ISHFT(pack_tmp, 0)
   10815      428160 :          idata = idata + 1
   10816      428160 :          data_tmp = full_data(idata)
   10817             :          data_tmp = ISHFT(data_tmp, 48)
   10818      428160 :          data_tmp = IAND(data_tmp, mask_left(0))
   10819      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10820      428160 :          ipack = ipack + 1
   10821      428160 :          packed_data(ipack) = pack_tmp
   10822      428160 :          data_tmp = full_data(idata)
   10823      428160 :          pack_tmp = ISHFT(data_tmp, 48)
   10824      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10825      428160 :          idata = idata + 1
   10826      428160 :          data_tmp = full_data(idata)
   10827      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10828      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10829      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10830      428160 :          idata = idata + 1
   10831      428160 :          data_tmp = full_data(idata)
   10832      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10833      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10834      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10835      428160 :          idata = idata + 1
   10836      428160 :          data_tmp = full_data(idata)
   10837      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10838      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10839      428160 :          pack_tmp = ISHFT(pack_tmp, 0)
   10840      428160 :          idata = idata + 1
   10841      428160 :          data_tmp = full_data(idata)
   10842             :          data_tmp = ISHFT(data_tmp, 48)
   10843      428160 :          data_tmp = IAND(data_tmp, mask_left(0))
   10844      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10845      428160 :          ipack = ipack + 1
   10846      428160 :          packed_data(ipack) = pack_tmp
   10847      428160 :          data_tmp = full_data(idata)
   10848      428160 :          pack_tmp = ISHFT(data_tmp, 48)
   10849      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10850      428160 :          idata = idata + 1
   10851      428160 :          data_tmp = full_data(idata)
   10852      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10853      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10854      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10855      428160 :          idata = idata + 1
   10856      428160 :          data_tmp = full_data(idata)
   10857      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10858      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10859      428160 :          pack_tmp = ISHFT(pack_tmp, -16)
   10860      428160 :          idata = idata + 1
   10861      428160 :          data_tmp = full_data(idata)
   10862      428160 :          data_tmp = ISHFT(data_tmp, 48)
   10863      428160 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10864             :          pack_tmp = ISHFT(pack_tmp, 0)
   10865      428160 :          pack_tmp = ISHFT(pack_tmp, 0)
   10866      428160 :          ipack = ipack + 1
   10867      429034 :          packed_data(ipack) = pack_tmp
   10868             :       END DO
   10869       27634 :       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       27634 :    END SUBROUTINE ints2bits_16
   10873             : 
   10874             : ! **************************************************************************************************
   10875             : !> \brief ...
   10876             : !> \param Ndata ...
   10877             : !> \param packed_data ...
   10878             : !> \param full_data ...
   10879             : ! **************************************************************************************************
   10880      128500 :    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      128500 :       ipack = 0
   10891      128500 :       idata = 0
   10892      128500 :       pack_tmp = 0
   10893      128500 :       Ndata_rep = (Ndata/64)*64
   10894      128500 :       DO kdata = 1, Ndata_rep, 64
   10895     1953040 :          idata = idata + 1
   10896     1953040 :          data_tmp = ISHFT(pack_tmp, 16)
   10897     1953040 :          ipack = ipack + 1
   10898     1953040 :          pack_tmp = packed_data(ipack)
   10899     1953040 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10900     1953040 :          pack_tmp = ISHFT(pack_tmp, -16)
   10901     1953040 :          idata = idata + 1
   10902     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10903     1953040 :          full_data(idata) = data_tmp
   10904     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10905     1953040 :          idata = idata + 1
   10906     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10907     1953040 :          full_data(idata) = data_tmp
   10908     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10909     1953040 :          idata = idata + 1
   10910     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10911     1953040 :          full_data(idata) = data_tmp
   10912     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10913     1953040 :          idata = idata + 1
   10914     1953040 :          data_tmp = ISHFT(pack_tmp, 16)
   10915     1953040 :          ipack = ipack + 1
   10916     1953040 :          pack_tmp = packed_data(ipack)
   10917     1953040 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10918     1953040 :          pack_tmp = ISHFT(pack_tmp, -16)
   10919     1953040 :          idata = idata + 1
   10920     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10921     1953040 :          full_data(idata) = data_tmp
   10922     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10923     1953040 :          idata = idata + 1
   10924     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10925     1953040 :          full_data(idata) = data_tmp
   10926     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10927     1953040 :          idata = idata + 1
   10928     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10929     1953040 :          full_data(idata) = data_tmp
   10930     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10931     1953040 :          idata = idata + 1
   10932     1953040 :          data_tmp = ISHFT(pack_tmp, 16)
   10933     1953040 :          ipack = ipack + 1
   10934     1953040 :          pack_tmp = packed_data(ipack)
   10935     1953040 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10936     1953040 :          pack_tmp = ISHFT(pack_tmp, -16)
   10937     1953040 :          idata = idata + 1
   10938     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10939     1953040 :          full_data(idata) = data_tmp
   10940     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10941     1953040 :          idata = idata + 1
   10942     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10943     1953040 :          full_data(idata) = data_tmp
   10944     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10945     1953040 :          idata = idata + 1
   10946     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10947     1953040 :          full_data(idata) = data_tmp
   10948     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10949     1953040 :          idata = idata + 1
   10950     1953040 :          data_tmp = ISHFT(pack_tmp, 16)
   10951     1953040 :          ipack = ipack + 1
   10952     1953040 :          pack_tmp = packed_data(ipack)
   10953     1953040 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10954     1953040 :          pack_tmp = ISHFT(pack_tmp, -16)
   10955     1953040 :          idata = idata + 1
   10956     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10957     1953040 :          full_data(idata) = data_tmp
   10958     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10959     1953040 :          idata = idata + 1
   10960     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10961     1953040 :          full_data(idata) = data_tmp
   10962     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10963     1953040 :          idata = idata + 1
   10964     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10965     1953040 :          full_data(idata) = data_tmp
   10966     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10967     1953040 :          idata = idata + 1
   10968     1953040 :          data_tmp = ISHFT(pack_tmp, 16)
   10969     1953040 :          ipack = ipack + 1
   10970     1953040 :          pack_tmp = packed_data(ipack)
   10971     1953040 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10972     1953040 :          pack_tmp = ISHFT(pack_tmp, -16)
   10973     1953040 :          idata = idata + 1
   10974     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10975     1953040 :          full_data(idata) = data_tmp
   10976     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10977     1953040 :          idata = idata + 1
   10978     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10979     1953040 :          full_data(idata) = data_tmp
   10980     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10981     1953040 :          idata = idata + 1
   10982     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10983     1953040 :          full_data(idata) = data_tmp
   10984     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10985     1953040 :          idata = idata + 1
   10986     1953040 :          data_tmp = ISHFT(pack_tmp, 16)
   10987     1953040 :          ipack = ipack + 1
   10988     1953040 :          pack_tmp = packed_data(ipack)
   10989     1953040 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10990     1953040 :          pack_tmp = ISHFT(pack_tmp, -16)
   10991     1953040 :          idata = idata + 1
   10992     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10993     1953040 :          full_data(idata) = data_tmp
   10994     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10995     1953040 :          idata = idata + 1
   10996     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10997     1953040 :          full_data(idata) = data_tmp
   10998     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10999     1953040 :          idata = idata + 1
   11000     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11001     1953040 :          full_data(idata) = data_tmp
   11002     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11003     1953040 :          idata = idata + 1
   11004     1953040 :          data_tmp = ISHFT(pack_tmp, 16)
   11005     1953040 :          ipack = ipack + 1
   11006     1953040 :          pack_tmp = packed_data(ipack)
   11007     1953040 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11008     1953040 :          pack_tmp = ISHFT(pack_tmp, -16)
   11009     1953040 :          idata = idata + 1
   11010     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11011     1953040 :          full_data(idata) = data_tmp
   11012     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11013     1953040 :          idata = idata + 1
   11014     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11015     1953040 :          full_data(idata) = data_tmp
   11016     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11017     1953040 :          idata = idata + 1
   11018     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11019     1953040 :          full_data(idata) = data_tmp
   11020     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11021     1953040 :          idata = idata + 1
   11022     1953040 :          data_tmp = ISHFT(pack_tmp, 16)
   11023     1953040 :          ipack = ipack + 1
   11024     1953040 :          pack_tmp = packed_data(ipack)
   11025     1953040 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11026     1953040 :          pack_tmp = ISHFT(pack_tmp, -16)
   11027     1953040 :          idata = idata + 1
   11028     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11029     1953040 :          full_data(idata) = data_tmp
   11030     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11031     1953040 :          idata = idata + 1
   11032     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11033     1953040 :          full_data(idata) = data_tmp
   11034     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11035     1953040 :          idata = idata + 1
   11036     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11037     1953040 :          full_data(idata) = data_tmp
   11038     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11039     1953040 :          idata = idata + 1
   11040     1953040 :          data_tmp = ISHFT(pack_tmp, 16)
   11041     1953040 :          ipack = ipack + 1
   11042     1953040 :          pack_tmp = packed_data(ipack)
   11043     1953040 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11044     1953040 :          pack_tmp = ISHFT(pack_tmp, -16)
   11045     1953040 :          idata = idata + 1
   11046     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11047     1953040 :          full_data(idata) = data_tmp
   11048     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11049     1953040 :          idata = idata + 1
   11050     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11051     1953040 :          full_data(idata) = data_tmp
   11052     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11053     1953040 :          idata = idata + 1
   11054     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11055     1953040 :          full_data(idata) = data_tmp
   11056     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11057     1953040 :          idata = idata + 1
   11058     1953040 :          data_tmp = ISHFT(pack_tmp, 16)
   11059     1953040 :          ipack = ipack + 1
   11060     1953040 :          pack_tmp = packed_data(ipack)
   11061     1953040 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11062     1953040 :          pack_tmp = ISHFT(pack_tmp, -16)
   11063     1953040 :          idata = idata + 1
   11064     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11065     1953040 :          full_data(idata) = data_tmp
   11066     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11067     1953040 :          idata = idata + 1
   11068     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11069     1953040 :          full_data(idata) = data_tmp
   11070     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11071     1953040 :          idata = idata + 1
   11072     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11073     1953040 :          full_data(idata) = data_tmp
   11074     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11075     1953040 :          idata = idata + 1
   11076     1953040 :          data_tmp = ISHFT(pack_tmp, 16)
   11077     1953040 :          ipack = ipack + 1
   11078     1953040 :          pack_tmp = packed_data(ipack)
   11079     1953040 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11080     1953040 :          pack_tmp = ISHFT(pack_tmp, -16)
   11081     1953040 :          idata = idata + 1
   11082     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11083     1953040 :          full_data(idata) = data_tmp
   11084     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11085     1953040 :          idata = idata + 1
   11086     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11087     1953040 :          full_data(idata) = data_tmp
   11088     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11089     1953040 :          idata = idata + 1
   11090     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11091     1953040 :          full_data(idata) = data_tmp
   11092     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11093     1953040 :          idata = idata + 1
   11094     1953040 :          data_tmp = ISHFT(pack_tmp, 16)
   11095     1953040 :          ipack = ipack + 1
   11096     1953040 :          pack_tmp = packed_data(ipack)
   11097     1953040 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11098     1953040 :          pack_tmp = ISHFT(pack_tmp, -16)
   11099     1953040 :          idata = idata + 1
   11100     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11101     1953040 :          full_data(idata) = data_tmp
   11102     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11103     1953040 :          idata = idata + 1
   11104     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11105     1953040 :          full_data(idata) = data_tmp
   11106     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11107     1953040 :          idata = idata + 1
   11108     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11109     1953040 :          full_data(idata) = data_tmp
   11110     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11111     1953040 :          idata = idata + 1
   11112     1953040 :          data_tmp = ISHFT(pack_tmp, 16)
   11113     1953040 :          ipack = ipack + 1
   11114     1953040 :          pack_tmp = packed_data(ipack)
   11115     1953040 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11116     1953040 :          pack_tmp = ISHFT(pack_tmp, -16)
   11117     1953040 :          idata = idata + 1
   11118     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11119     1953040 :          full_data(idata) = data_tmp
   11120     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11121     1953040 :          idata = idata + 1
   11122     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11123     1953040 :          full_data(idata) = data_tmp
   11124     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11125     1953040 :          idata = idata + 1
   11126     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11127     1953040 :          full_data(idata) = data_tmp
   11128     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11129     1953040 :          idata = idata + 1
   11130     1953040 :          data_tmp = ISHFT(pack_tmp, 16)
   11131     1953040 :          ipack = ipack + 1
   11132     1953040 :          pack_tmp = packed_data(ipack)
   11133     1953040 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11134     1953040 :          pack_tmp = ISHFT(pack_tmp, -16)
   11135     1953040 :          idata = idata + 1
   11136     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11137     1953040 :          full_data(idata) = data_tmp
   11138     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11139     1953040 :          idata = idata + 1
   11140     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11141     1953040 :          full_data(idata) = data_tmp
   11142     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11143     1953040 :          idata = idata + 1
   11144     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11145     1953040 :          full_data(idata) = data_tmp
   11146     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11147     1953040 :          idata = idata + 1
   11148     1953040 :          data_tmp = ISHFT(pack_tmp, 16)
   11149     1953040 :          ipack = ipack + 1
   11150     1953040 :          pack_tmp = packed_data(ipack)
   11151     1953040 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11152     1953040 :          pack_tmp = ISHFT(pack_tmp, -16)
   11153     1953040 :          idata = idata + 1
   11154     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11155     1953040 :          full_data(idata) = data_tmp
   11156     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11157     1953040 :          idata = idata + 1
   11158     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11159     1953040 :          full_data(idata) = data_tmp
   11160     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11161     1953040 :          idata = idata + 1
   11162     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11163     1953040 :          full_data(idata) = data_tmp
   11164     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11165     1953040 :          idata = idata + 1
   11166     1953040 :          data_tmp = ISHFT(pack_tmp, 16)
   11167     1953040 :          ipack = ipack + 1
   11168     1953040 :          pack_tmp = packed_data(ipack)
   11169     1953040 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11170     1953040 :          pack_tmp = ISHFT(pack_tmp, -16)
   11171     1953040 :          idata = idata + 1
   11172     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11173     1953040 :          full_data(idata) = data_tmp
   11174     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11175     1953040 :          idata = idata + 1
   11176     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11177     1953040 :          full_data(idata) = data_tmp
   11178     1953040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11179     1953040 :          idata = idata + 1
   11180     1953040 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11181     1953040 :          full_data(idata) = data_tmp
   11182     1959475 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11183             :       END DO
   11184      128500 :       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      128500 :    END SUBROUTINE bits2ints_16
   11188             : 
   11189             : ! **************************************************************************************************
   11190             : !> \brief ...
   11191             : !> \param Ndata ...
   11192             : !> \param packed_data ...
   11193             : !> \param full_data ...
   11194             : ! **************************************************************************************************
   11195       31124 :    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       31124 :       idata = 0
   11206       31124 :       ipack = 0
   11207       31124 :       Ndata_rep = (Ndata/64)*64
   11208       31124 :       DO kdata = 1, Ndata_rep, 64
   11209      470363 :          pack_tmp = 0
   11210      470363 :          idata = idata + 1
   11211      470363 :          data_tmp = full_data(idata)
   11212      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11213      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11214      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11215      470363 :          idata = idata + 1
   11216      470363 :          data_tmp = full_data(idata)
   11217      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11218      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11219      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11220      470363 :          idata = idata + 1
   11221      470363 :          data_tmp = full_data(idata)
   11222      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11223      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11224      470363 :          pack_tmp = ISHFT(pack_tmp, -13)
   11225      470363 :          idata = idata + 1
   11226      470363 :          data_tmp = full_data(idata)
   11227      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11228      470363 :          data_tmp = IAND(data_tmp, mask_left(13))
   11229      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11230      470363 :          ipack = ipack + 1
   11231      470363 :          packed_data(ipack) = pack_tmp
   11232      470363 :          data_tmp = full_data(idata)
   11233      470363 :          pack_tmp = ISHFT(data_tmp, 60)
   11234      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11235      470363 :          idata = idata + 1
   11236      470363 :          data_tmp = full_data(idata)
   11237      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11238      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11239      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11240      470363 :          idata = idata + 1
   11241      470363 :          data_tmp = full_data(idata)
   11242      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11243      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11244      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11245      470363 :          idata = idata + 1
   11246      470363 :          data_tmp = full_data(idata)
   11247      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11248      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11249      470363 :          pack_tmp = ISHFT(pack_tmp, -9)
   11250      470363 :          idata = idata + 1
   11251      470363 :          data_tmp = full_data(idata)
   11252      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11253      470363 :          data_tmp = IAND(data_tmp, mask_left(9))
   11254      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11255      470363 :          ipack = ipack + 1
   11256      470363 :          packed_data(ipack) = pack_tmp
   11257      470363 :          data_tmp = full_data(idata)
   11258      470363 :          pack_tmp = ISHFT(data_tmp, 56)
   11259      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11260      470363 :          idata = idata + 1
   11261      470363 :          data_tmp = full_data(idata)
   11262      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11263      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11264      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11265      470363 :          idata = idata + 1
   11266      470363 :          data_tmp = full_data(idata)
   11267      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11268      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11269      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11270      470363 :          idata = idata + 1
   11271      470363 :          data_tmp = full_data(idata)
   11272      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11273      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11274      470363 :          pack_tmp = ISHFT(pack_tmp, -5)
   11275      470363 :          idata = idata + 1
   11276      470363 :          data_tmp = full_data(idata)
   11277      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11278      470363 :          data_tmp = IAND(data_tmp, mask_left(5))
   11279      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11280      470363 :          ipack = ipack + 1
   11281      470363 :          packed_data(ipack) = pack_tmp
   11282      470363 :          data_tmp = full_data(idata)
   11283      470363 :          pack_tmp = ISHFT(data_tmp, 52)
   11284      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11285      470363 :          idata = idata + 1
   11286      470363 :          data_tmp = full_data(idata)
   11287      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11288      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11289      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11290      470363 :          idata = idata + 1
   11291      470363 :          data_tmp = full_data(idata)
   11292      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11293      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11294      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11295      470363 :          idata = idata + 1
   11296      470363 :          data_tmp = full_data(idata)
   11297      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11298      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11299      470363 :          pack_tmp = ISHFT(pack_tmp, -1)
   11300      470363 :          idata = idata + 1
   11301      470363 :          data_tmp = full_data(idata)
   11302      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11303      470363 :          data_tmp = IAND(data_tmp, mask_left(1))
   11304      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11305      470363 :          ipack = ipack + 1
   11306      470363 :          packed_data(ipack) = pack_tmp
   11307      470363 :          data_tmp = full_data(idata)
   11308      470363 :          pack_tmp = ISHFT(data_tmp, 48)
   11309      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11310      470363 :          idata = idata + 1
   11311      470363 :          data_tmp = full_data(idata)
   11312      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11313      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11314      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11315      470363 :          idata = idata + 1
   11316      470363 :          data_tmp = full_data(idata)
   11317      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11318      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11319      470363 :          pack_tmp = ISHFT(pack_tmp, -14)
   11320      470363 :          idata = idata + 1
   11321      470363 :          data_tmp = full_data(idata)
   11322      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11323      470363 :          data_tmp = IAND(data_tmp, mask_left(14))
   11324      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11325      470363 :          ipack = ipack + 1
   11326      470363 :          packed_data(ipack) = pack_tmp
   11327      470363 :          data_tmp = full_data(idata)
   11328      470363 :          pack_tmp = ISHFT(data_tmp, 61)
   11329      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11330      470363 :          idata = idata + 1
   11331      470363 :          data_tmp = full_data(idata)
   11332      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11333      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11334      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11335      470363 :          idata = idata + 1
   11336      470363 :          data_tmp = full_data(idata)
   11337      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11338      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11339      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11340      470363 :          idata = idata + 1
   11341      470363 :          data_tmp = full_data(idata)
   11342      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11343      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11344      470363 :          pack_tmp = ISHFT(pack_tmp, -10)
   11345      470363 :          idata = idata + 1
   11346      470363 :          data_tmp = full_data(idata)
   11347      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11348      470363 :          data_tmp = IAND(data_tmp, mask_left(10))
   11349      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11350      470363 :          ipack = ipack + 1
   11351      470363 :          packed_data(ipack) = pack_tmp
   11352      470363 :          data_tmp = full_data(idata)
   11353      470363 :          pack_tmp = ISHFT(data_tmp, 57)
   11354      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11355      470363 :          idata = idata + 1
   11356      470363 :          data_tmp = full_data(idata)
   11357      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11358      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11359      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11360      470363 :          idata = idata + 1
   11361      470363 :          data_tmp = full_data(idata)
   11362      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11363      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11364      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11365      470363 :          idata = idata + 1
   11366      470363 :          data_tmp = full_data(idata)
   11367      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11368      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11369      470363 :          pack_tmp = ISHFT(pack_tmp, -6)
   11370      470363 :          idata = idata + 1
   11371      470363 :          data_tmp = full_data(idata)
   11372      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11373      470363 :          data_tmp = IAND(data_tmp, mask_left(6))
   11374      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11375      470363 :          ipack = ipack + 1
   11376      470363 :          packed_data(ipack) = pack_tmp
   11377      470363 :          data_tmp = full_data(idata)
   11378      470363 :          pack_tmp = ISHFT(data_tmp, 53)
   11379      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11380      470363 :          idata = idata + 1
   11381      470363 :          data_tmp = full_data(idata)
   11382      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11383      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11384      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11385      470363 :          idata = idata + 1
   11386      470363 :          data_tmp = full_data(idata)
   11387      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11388      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11389      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11390      470363 :          idata = idata + 1
   11391      470363 :          data_tmp = full_data(idata)
   11392      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11393      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11394      470363 :          pack_tmp = ISHFT(pack_tmp, -2)
   11395      470363 :          idata = idata + 1
   11396      470363 :          data_tmp = full_data(idata)
   11397      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11398      470363 :          data_tmp = IAND(data_tmp, mask_left(2))
   11399      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11400      470363 :          ipack = ipack + 1
   11401      470363 :          packed_data(ipack) = pack_tmp
   11402      470363 :          data_tmp = full_data(idata)
   11403      470363 :          pack_tmp = ISHFT(data_tmp, 49)
   11404      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11405      470363 :          idata = idata + 1
   11406      470363 :          data_tmp = full_data(idata)
   11407      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11408      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11409      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11410      470363 :          idata = idata + 1
   11411      470363 :          data_tmp = full_data(idata)
   11412      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11413      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11414      470363 :          pack_tmp = ISHFT(pack_tmp, -15)
   11415      470363 :          idata = idata + 1
   11416      470363 :          data_tmp = full_data(idata)
   11417      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11418      470363 :          data_tmp = IAND(data_tmp, mask_left(15))
   11419      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11420      470363 :          ipack = ipack + 1
   11421      470363 :          packed_data(ipack) = pack_tmp
   11422      470363 :          data_tmp = full_data(idata)
   11423      470363 :          pack_tmp = ISHFT(data_tmp, 62)
   11424      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11425      470363 :          idata = idata + 1
   11426      470363 :          data_tmp = full_data(idata)
   11427      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11428      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11429      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11430      470363 :          idata = idata + 1
   11431      470363 :          data_tmp = full_data(idata)
   11432      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11433      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11434      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11435      470363 :          idata = idata + 1
   11436      470363 :          data_tmp = full_data(idata)
   11437      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11438      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11439      470363 :          pack_tmp = ISHFT(pack_tmp, -11)
   11440      470363 :          idata = idata + 1
   11441      470363 :          data_tmp = full_data(idata)
   11442      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11443      470363 :          data_tmp = IAND(data_tmp, mask_left(11))
   11444      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11445      470363 :          ipack = ipack + 1
   11446      470363 :          packed_data(ipack) = pack_tmp
   11447      470363 :          data_tmp = full_data(idata)
   11448      470363 :          pack_tmp = ISHFT(data_tmp, 58)
   11449      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11450      470363 :          idata = idata + 1
   11451      470363 :          data_tmp = full_data(idata)
   11452      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11453      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11454      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11455      470363 :          idata = idata + 1
   11456      470363 :          data_tmp = full_data(idata)
   11457      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11458      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11459      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11460      470363 :          idata = idata + 1
   11461      470363 :          data_tmp = full_data(idata)
   11462      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11463      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11464      470363 :          pack_tmp = ISHFT(pack_tmp, -7)
   11465      470363 :          idata = idata + 1
   11466      470363 :          data_tmp = full_data(idata)
   11467      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11468      470363 :          data_tmp = IAND(data_tmp, mask_left(7))
   11469      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11470      470363 :          ipack = ipack + 1
   11471      470363 :          packed_data(ipack) = pack_tmp
   11472      470363 :          data_tmp = full_data(idata)
   11473      470363 :          pack_tmp = ISHFT(data_tmp, 54)
   11474      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11475      470363 :          idata = idata + 1
   11476      470363 :          data_tmp = full_data(idata)
   11477      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11478      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11479      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11480      470363 :          idata = idata + 1
   11481      470363 :          data_tmp = full_data(idata)
   11482      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11483      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11484      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11485      470363 :          idata = idata + 1
   11486      470363 :          data_tmp = full_data(idata)
   11487      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11488      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11489      470363 :          pack_tmp = ISHFT(pack_tmp, -3)
   11490      470363 :          idata = idata + 1
   11491      470363 :          data_tmp = full_data(idata)
   11492      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11493      470363 :          data_tmp = IAND(data_tmp, mask_left(3))
   11494      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11495      470363 :          ipack = ipack + 1
   11496      470363 :          packed_data(ipack) = pack_tmp
   11497      470363 :          data_tmp = full_data(idata)
   11498      470363 :          pack_tmp = ISHFT(data_tmp, 50)
   11499      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11500      470363 :          idata = idata + 1
   11501      470363 :          data_tmp = full_data(idata)
   11502      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11503      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11504      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11505      470363 :          idata = idata + 1
   11506      470363 :          data_tmp = full_data(idata)
   11507      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11508      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11509      470363 :          pack_tmp = ISHFT(pack_tmp, -16)
   11510      470363 :          idata = idata + 1
   11511      470363 :          data_tmp = full_data(idata)
   11512      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11513      470363 :          data_tmp = IAND(data_tmp, mask_left(16))
   11514      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11515      470363 :          ipack = ipack + 1
   11516      470363 :          packed_data(ipack) = pack_tmp
   11517      470363 :          data_tmp = full_data(idata)
   11518      470363 :          pack_tmp = ISHFT(data_tmp, 63)
   11519      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11520      470363 :          idata = idata + 1
   11521      470363 :          data_tmp = full_data(idata)
   11522      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11523      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11524      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11525      470363 :          idata = idata + 1
   11526      470363 :          data_tmp = full_data(idata)
   11527      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11528      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11529      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11530      470363 :          idata = idata + 1
   11531      470363 :          data_tmp = full_data(idata)
   11532      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11533      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11534      470363 :          pack_tmp = ISHFT(pack_tmp, -12)
   11535      470363 :          idata = idata + 1
   11536      470363 :          data_tmp = full_data(idata)
   11537      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11538      470363 :          data_tmp = IAND(data_tmp, mask_left(12))
   11539      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11540      470363 :          ipack = ipack + 1
   11541      470363 :          packed_data(ipack) = pack_tmp
   11542      470363 :          data_tmp = full_data(idata)
   11543      470363 :          pack_tmp = ISHFT(data_tmp, 59)
   11544      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11545      470363 :          idata = idata + 1
   11546      470363 :          data_tmp = full_data(idata)
   11547      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11548      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11549      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11550      470363 :          idata = idata + 1
   11551      470363 :          data_tmp = full_data(idata)
   11552      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11553      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11554      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11555      470363 :          idata = idata + 1
   11556      470363 :          data_tmp = full_data(idata)
   11557      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11558      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11559      470363 :          pack_tmp = ISHFT(pack_tmp, -8)
   11560      470363 :          idata = idata + 1
   11561      470363 :          data_tmp = full_data(idata)
   11562      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11563      470363 :          data_tmp = IAND(data_tmp, mask_left(8))
   11564      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11565      470363 :          ipack = ipack + 1
   11566      470363 :          packed_data(ipack) = pack_tmp
   11567      470363 :          data_tmp = full_data(idata)
   11568      470363 :          pack_tmp = ISHFT(data_tmp, 55)
   11569      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11570      470363 :          idata = idata + 1
   11571      470363 :          data_tmp = full_data(idata)
   11572      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11573      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11574      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11575      470363 :          idata = idata + 1
   11576      470363 :          data_tmp = full_data(idata)
   11577      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11578      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11579      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11580      470363 :          idata = idata + 1
   11581      470363 :          data_tmp = full_data(idata)
   11582      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11583      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11584      470363 :          pack_tmp = ISHFT(pack_tmp, -4)
   11585      470363 :          idata = idata + 1
   11586      470363 :          data_tmp = full_data(idata)
   11587      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11588      470363 :          data_tmp = IAND(data_tmp, mask_left(4))
   11589      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11590      470363 :          ipack = ipack + 1
   11591      470363 :          packed_data(ipack) = pack_tmp
   11592      470363 :          data_tmp = full_data(idata)
   11593      470363 :          pack_tmp = ISHFT(data_tmp, 51)
   11594      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11595      470363 :          idata = idata + 1
   11596      470363 :          data_tmp = full_data(idata)
   11597      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11598      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11599      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11600      470363 :          idata = idata + 1
   11601      470363 :          data_tmp = full_data(idata)
   11602      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11603      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11604      470363 :          pack_tmp = ISHFT(pack_tmp, -17)
   11605      470363 :          idata = idata + 1
   11606      470363 :          data_tmp = full_data(idata)
   11607      470363 :          data_tmp = ISHFT(data_tmp, 47)
   11608      470363 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11609             :          pack_tmp = ISHFT(pack_tmp, 0)
   11610      470363 :          pack_tmp = ISHFT(pack_tmp, 0)
   11611      470363 :          ipack = ipack + 1
   11612      470505 :          packed_data(ipack) = pack_tmp
   11613             :       END DO
   11614       31124 :       IF (Ndata_rep < Ndata) THEN
   11615        3146 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   11616             :       END IF
   11617       31124 :    END SUBROUTINE ints2bits_17
   11618             : 
   11619             : ! **************************************************************************************************
   11620             : !> \brief ...
   11621             : !> \param Ndata ...
   11622             : !> \param packed_data ...
   11623             : !> \param full_data ...
   11624             : ! **************************************************************************************************
   11625      153806 :    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      153806 :       ipack = 0
   11636      153806 :       idata = 0
   11637      153806 :       pack_tmp = 0
   11638      153806 :       Ndata_rep = (Ndata/64)*64
   11639      153806 :       DO kdata = 1, Ndata_rep, 64
   11640     2262127 :          idata = idata + 1
   11641     2262127 :          data_tmp = ISHFT(pack_tmp, 17)
   11642     2262127 :          ipack = ipack + 1
   11643     2262127 :          pack_tmp = packed_data(ipack)
   11644     2262127 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   11645     2262127 :          pack_tmp = ISHFT(pack_tmp, -17)
   11646     2262127 :          idata = idata + 1
   11647     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11648     2262127 :          full_data(idata) = data_tmp
   11649     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11650     2262127 :          idata = idata + 1
   11651     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11652     2262127 :          full_data(idata) = data_tmp
   11653     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11654     2262127 :          idata = idata + 1
   11655     2262127 :          data_tmp = ISHFT(pack_tmp, 4)
   11656     2262127 :          ipack = ipack + 1
   11657     2262127 :          pack_tmp = packed_data(ipack)
   11658     2262127 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   11659     2262127 :          pack_tmp = ISHFT(pack_tmp, -4)
   11660     2262127 :          idata = idata + 1
   11661     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11662     2262127 :          full_data(idata) = data_tmp
   11663     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11664     2262127 :          idata = idata + 1
   11665     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11666     2262127 :          full_data(idata) = data_tmp
   11667     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11668     2262127 :          idata = idata + 1
   11669     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11670     2262127 :          full_data(idata) = data_tmp
   11671     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11672     2262127 :          idata = idata + 1
   11673     2262127 :          data_tmp = ISHFT(pack_tmp, 8)
   11674     2262127 :          ipack = ipack + 1
   11675     2262127 :          pack_tmp = packed_data(ipack)
   11676     2262127 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   11677     2262127 :          pack_tmp = ISHFT(pack_tmp, -8)
   11678     2262127 :          idata = idata + 1
   11679     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11680     2262127 :          full_data(idata) = data_tmp
   11681     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11682     2262127 :          idata = idata + 1
   11683     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11684     2262127 :          full_data(idata) = data_tmp
   11685     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11686     2262127 :          idata = idata + 1
   11687     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11688     2262127 :          full_data(idata) = data_tmp
   11689     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11690     2262127 :          idata = idata + 1
   11691     2262127 :          data_tmp = ISHFT(pack_tmp, 12)
   11692     2262127 :          ipack = ipack + 1
   11693     2262127 :          pack_tmp = packed_data(ipack)
   11694     2262127 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   11695     2262127 :          pack_tmp = ISHFT(pack_tmp, -12)
   11696     2262127 :          idata = idata + 1
   11697     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11698     2262127 :          full_data(idata) = data_tmp
   11699     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11700     2262127 :          idata = idata + 1
   11701     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11702     2262127 :          full_data(idata) = data_tmp
   11703     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11704     2262127 :          idata = idata + 1
   11705     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11706     2262127 :          full_data(idata) = data_tmp
   11707     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11708     2262127 :          idata = idata + 1
   11709     2262127 :          data_tmp = ISHFT(pack_tmp, 16)
   11710     2262127 :          ipack = ipack + 1
   11711     2262127 :          pack_tmp = packed_data(ipack)
   11712     2262127 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11713     2262127 :          pack_tmp = ISHFT(pack_tmp, -16)
   11714     2262127 :          idata = idata + 1
   11715     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11716     2262127 :          full_data(idata) = data_tmp
   11717     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11718     2262127 :          idata = idata + 1
   11719     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11720     2262127 :          full_data(idata) = data_tmp
   11721     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11722     2262127 :          idata = idata + 1
   11723     2262127 :          data_tmp = ISHFT(pack_tmp, 3)
   11724     2262127 :          ipack = ipack + 1
   11725     2262127 :          pack_tmp = packed_data(ipack)
   11726     2262127 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   11727     2262127 :          pack_tmp = ISHFT(pack_tmp, -3)
   11728     2262127 :          idata = idata + 1
   11729     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11730     2262127 :          full_data(idata) = data_tmp
   11731     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11732     2262127 :          idata = idata + 1
   11733     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11734     2262127 :          full_data(idata) = data_tmp
   11735     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11736     2262127 :          idata = idata + 1
   11737     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11738     2262127 :          full_data(idata) = data_tmp
   11739     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11740     2262127 :          idata = idata + 1
   11741     2262127 :          data_tmp = ISHFT(pack_tmp, 7)
   11742     2262127 :          ipack = ipack + 1
   11743     2262127 :          pack_tmp = packed_data(ipack)
   11744     2262127 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   11745     2262127 :          pack_tmp = ISHFT(pack_tmp, -7)
   11746     2262127 :          idata = idata + 1
   11747     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11748     2262127 :          full_data(idata) = data_tmp
   11749     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11750     2262127 :          idata = idata + 1
   11751     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11752     2262127 :          full_data(idata) = data_tmp
   11753     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11754     2262127 :          idata = idata + 1
   11755     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11756     2262127 :          full_data(idata) = data_tmp
   11757     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11758     2262127 :          idata = idata + 1
   11759     2262127 :          data_tmp = ISHFT(pack_tmp, 11)
   11760     2262127 :          ipack = ipack + 1
   11761     2262127 :          pack_tmp = packed_data(ipack)
   11762     2262127 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   11763     2262127 :          pack_tmp = ISHFT(pack_tmp, -11)
   11764     2262127 :          idata = idata + 1
   11765     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11766     2262127 :          full_data(idata) = data_tmp
   11767     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11768     2262127 :          idata = idata + 1
   11769     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11770     2262127 :          full_data(idata) = data_tmp
   11771     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11772     2262127 :          idata = idata + 1
   11773     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11774     2262127 :          full_data(idata) = data_tmp
   11775     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11776     2262127 :          idata = idata + 1
   11777     2262127 :          data_tmp = ISHFT(pack_tmp, 15)
   11778     2262127 :          ipack = ipack + 1
   11779     2262127 :          pack_tmp = packed_data(ipack)
   11780     2262127 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   11781     2262127 :          pack_tmp = ISHFT(pack_tmp, -15)
   11782     2262127 :          idata = idata + 1
   11783     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11784     2262127 :          full_data(idata) = data_tmp
   11785     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11786     2262127 :          idata = idata + 1
   11787     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11788     2262127 :          full_data(idata) = data_tmp
   11789     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11790     2262127 :          idata = idata + 1
   11791     2262127 :          data_tmp = ISHFT(pack_tmp, 2)
   11792     2262127 :          ipack = ipack + 1
   11793     2262127 :          pack_tmp = packed_data(ipack)
   11794     2262127 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   11795     2262127 :          pack_tmp = ISHFT(pack_tmp, -2)
   11796     2262127 :          idata = idata + 1
   11797     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11798     2262127 :          full_data(idata) = data_tmp
   11799     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11800     2262127 :          idata = idata + 1
   11801     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11802     2262127 :          full_data(idata) = data_tmp
   11803     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11804     2262127 :          idata = idata + 1
   11805     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11806     2262127 :          full_data(idata) = data_tmp
   11807     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11808     2262127 :          idata = idata + 1
   11809     2262127 :          data_tmp = ISHFT(pack_tmp, 6)
   11810     2262127 :          ipack = ipack + 1
   11811     2262127 :          pack_tmp = packed_data(ipack)
   11812     2262127 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   11813     2262127 :          pack_tmp = ISHFT(pack_tmp, -6)
   11814     2262127 :          idata = idata + 1
   11815     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11816     2262127 :          full_data(idata) = data_tmp
   11817     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11818     2262127 :          idata = idata + 1
   11819     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11820     2262127 :          full_data(idata) = data_tmp
   11821     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11822     2262127 :          idata = idata + 1
   11823     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11824     2262127 :          full_data(idata) = data_tmp
   11825     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11826     2262127 :          idata = idata + 1
   11827     2262127 :          data_tmp = ISHFT(pack_tmp, 10)
   11828     2262127 :          ipack = ipack + 1
   11829     2262127 :          pack_tmp = packed_data(ipack)
   11830     2262127 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   11831     2262127 :          pack_tmp = ISHFT(pack_tmp, -10)
   11832     2262127 :          idata = idata + 1
   11833     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11834     2262127 :          full_data(idata) = data_tmp
   11835     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11836     2262127 :          idata = idata + 1
   11837     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11838     2262127 :          full_data(idata) = data_tmp
   11839     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11840     2262127 :          idata = idata + 1
   11841     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11842     2262127 :          full_data(idata) = data_tmp
   11843     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11844     2262127 :          idata = idata + 1
   11845     2262127 :          data_tmp = ISHFT(pack_tmp, 14)
   11846     2262127 :          ipack = ipack + 1
   11847     2262127 :          pack_tmp = packed_data(ipack)
   11848     2262127 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   11849     2262127 :          pack_tmp = ISHFT(pack_tmp, -14)
   11850     2262127 :          idata = idata + 1
   11851     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11852     2262127 :          full_data(idata) = data_tmp
   11853     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11854     2262127 :          idata = idata + 1
   11855     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11856     2262127 :          full_data(idata) = data_tmp
   11857     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11858     2262127 :          idata = idata + 1
   11859     2262127 :          data_tmp = ISHFT(pack_tmp, 1)
   11860     2262127 :          ipack = ipack + 1
   11861     2262127 :          pack_tmp = packed_data(ipack)
   11862     2262127 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   11863     2262127 :          pack_tmp = ISHFT(pack_tmp, -1)
   11864     2262127 :          idata = idata + 1
   11865     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11866     2262127 :          full_data(idata) = data_tmp
   11867     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11868     2262127 :          idata = idata + 1
   11869     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11870     2262127 :          full_data(idata) = data_tmp
   11871     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11872     2262127 :          idata = idata + 1
   11873     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11874     2262127 :          full_data(idata) = data_tmp
   11875     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11876     2262127 :          idata = idata + 1
   11877     2262127 :          data_tmp = ISHFT(pack_tmp, 5)
   11878     2262127 :          ipack = ipack + 1
   11879     2262127 :          pack_tmp = packed_data(ipack)
   11880     2262127 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   11881     2262127 :          pack_tmp = ISHFT(pack_tmp, -5)
   11882     2262127 :          idata = idata + 1
   11883     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11884     2262127 :          full_data(idata) = data_tmp
   11885     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11886     2262127 :          idata = idata + 1
   11887     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11888     2262127 :          full_data(idata) = data_tmp
   11889     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11890     2262127 :          idata = idata + 1
   11891     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11892     2262127 :          full_data(idata) = data_tmp
   11893     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11894     2262127 :          idata = idata + 1
   11895     2262127 :          data_tmp = ISHFT(pack_tmp, 9)
   11896     2262127 :          ipack = ipack + 1
   11897     2262127 :          pack_tmp = packed_data(ipack)
   11898     2262127 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   11899     2262127 :          pack_tmp = ISHFT(pack_tmp, -9)
   11900     2262127 :          idata = idata + 1
   11901     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11902     2262127 :          full_data(idata) = data_tmp
   11903     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11904     2262127 :          idata = idata + 1
   11905     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11906     2262127 :          full_data(idata) = data_tmp
   11907     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11908     2262127 :          idata = idata + 1
   11909     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11910     2262127 :          full_data(idata) = data_tmp
   11911     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11912     2262127 :          idata = idata + 1
   11913     2262127 :          data_tmp = ISHFT(pack_tmp, 13)
   11914     2262127 :          ipack = ipack + 1
   11915     2262127 :          pack_tmp = packed_data(ipack)
   11916     2262127 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   11917     2262127 :          pack_tmp = ISHFT(pack_tmp, -13)
   11918     2262127 :          idata = idata + 1
   11919     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11920     2262127 :          full_data(idata) = data_tmp
   11921     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11922     2262127 :          idata = idata + 1
   11923     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11924     2262127 :          full_data(idata) = data_tmp
   11925     2262127 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11926     2262127 :          idata = idata + 1
   11927     2262127 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11928     2262127 :          full_data(idata) = data_tmp
   11929     2262973 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11930             :       END DO
   11931      153806 :       IF (Ndata_rep < Ndata) THEN
   11932       22786 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   11933             :       END IF
   11934      153806 :    END SUBROUTINE bits2ints_17
   11935             : 
   11936             : ! **************************************************************************************************
   11937             : !> \brief ...
   11938             : !> \param Ndata ...
   11939             : !> \param packed_data ...
   11940             : !> \param full_data ...
   11941             : ! **************************************************************************************************
   11942       32020 :    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       32020 :       idata = 0
   11953       32020 :       ipack = 0
   11954       32020 :       Ndata_rep = (Ndata/64)*64
   11955       32020 :       DO kdata = 1, Ndata_rep, 64
   11956      479221 :          pack_tmp = 0
   11957      479221 :          idata = idata + 1
   11958      479221 :          data_tmp = full_data(idata)
   11959      479221 :          data_tmp = ISHFT(data_tmp, 46)
   11960      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11961      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   11962      479221 :          idata = idata + 1
   11963      479221 :          data_tmp = full_data(idata)
   11964      479221 :          data_tmp = ISHFT(data_tmp, 46)
   11965      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11966      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   11967      479221 :          idata = idata + 1
   11968      479221 :          data_tmp = full_data(idata)
   11969      479221 :          data_tmp = ISHFT(data_tmp, 46)
   11970      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11971      479221 :          pack_tmp = ISHFT(pack_tmp, -10)
   11972      479221 :          idata = idata + 1
   11973      479221 :          data_tmp = full_data(idata)
   11974      479221 :          data_tmp = ISHFT(data_tmp, 46)
   11975      479221 :          data_tmp = IAND(data_tmp, mask_left(10))
   11976      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11977      479221 :          ipack = ipack + 1
   11978      479221 :          packed_data(ipack) = pack_tmp
   11979      479221 :          data_tmp = full_data(idata)
   11980      479221 :          pack_tmp = ISHFT(data_tmp, 56)
   11981      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   11982      479221 :          idata = idata + 1
   11983      479221 :          data_tmp = full_data(idata)
   11984      479221 :          data_tmp = ISHFT(data_tmp, 46)
   11985      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11986      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   11987      479221 :          idata = idata + 1
   11988      479221 :          data_tmp = full_data(idata)
   11989      479221 :          data_tmp = ISHFT(data_tmp, 46)
   11990      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11991      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   11992      479221 :          idata = idata + 1
   11993      479221 :          data_tmp = full_data(idata)
   11994      479221 :          data_tmp = ISHFT(data_tmp, 46)
   11995      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11996      479221 :          pack_tmp = ISHFT(pack_tmp, -2)
   11997      479221 :          idata = idata + 1
   11998      479221 :          data_tmp = full_data(idata)
   11999      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12000      479221 :          data_tmp = IAND(data_tmp, mask_left(2))
   12001      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12002      479221 :          ipack = ipack + 1
   12003      479221 :          packed_data(ipack) = pack_tmp
   12004      479221 :          data_tmp = full_data(idata)
   12005      479221 :          pack_tmp = ISHFT(data_tmp, 48)
   12006      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12007      479221 :          idata = idata + 1
   12008      479221 :          data_tmp = full_data(idata)
   12009      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12010      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12011      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12012      479221 :          idata = idata + 1
   12013      479221 :          data_tmp = full_data(idata)
   12014      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12015      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12016      479221 :          pack_tmp = ISHFT(pack_tmp, -12)
   12017      479221 :          idata = idata + 1
   12018      479221 :          data_tmp = full_data(idata)
   12019      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12020      479221 :          data_tmp = IAND(data_tmp, mask_left(12))
   12021      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12022      479221 :          ipack = ipack + 1
   12023      479221 :          packed_data(ipack) = pack_tmp
   12024      479221 :          data_tmp = full_data(idata)
   12025      479221 :          pack_tmp = ISHFT(data_tmp, 58)
   12026      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12027      479221 :          idata = idata + 1
   12028      479221 :          data_tmp = full_data(idata)
   12029      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12030      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12031      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12032      479221 :          idata = idata + 1
   12033      479221 :          data_tmp = full_data(idata)
   12034      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12035      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12036      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12037      479221 :          idata = idata + 1
   12038      479221 :          data_tmp = full_data(idata)
   12039      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12040      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12041      479221 :          pack_tmp = ISHFT(pack_tmp, -4)
   12042      479221 :          idata = idata + 1
   12043      479221 :          data_tmp = full_data(idata)
   12044      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12045      479221 :          data_tmp = IAND(data_tmp, mask_left(4))
   12046      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12047      479221 :          ipack = ipack + 1
   12048      479221 :          packed_data(ipack) = pack_tmp
   12049      479221 :          data_tmp = full_data(idata)
   12050      479221 :          pack_tmp = ISHFT(data_tmp, 50)
   12051      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12052      479221 :          idata = idata + 1
   12053      479221 :          data_tmp = full_data(idata)
   12054      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12055      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12056      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12057      479221 :          idata = idata + 1
   12058      479221 :          data_tmp = full_data(idata)
   12059      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12060      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12061      479221 :          pack_tmp = ISHFT(pack_tmp, -14)
   12062      479221 :          idata = idata + 1
   12063      479221 :          data_tmp = full_data(idata)
   12064      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12065      479221 :          data_tmp = IAND(data_tmp, mask_left(14))
   12066      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12067      479221 :          ipack = ipack + 1
   12068      479221 :          packed_data(ipack) = pack_tmp
   12069      479221 :          data_tmp = full_data(idata)
   12070      479221 :          pack_tmp = ISHFT(data_tmp, 60)
   12071      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12072      479221 :          idata = idata + 1
   12073      479221 :          data_tmp = full_data(idata)
   12074      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12075      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12076      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12077      479221 :          idata = idata + 1
   12078      479221 :          data_tmp = full_data(idata)
   12079      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12080      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12081      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12082      479221 :          idata = idata + 1
   12083      479221 :          data_tmp = full_data(idata)
   12084      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12085      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12086      479221 :          pack_tmp = ISHFT(pack_tmp, -6)
   12087      479221 :          idata = idata + 1
   12088      479221 :          data_tmp = full_data(idata)
   12089      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12090      479221 :          data_tmp = IAND(data_tmp, mask_left(6))
   12091      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12092      479221 :          ipack = ipack + 1
   12093      479221 :          packed_data(ipack) = pack_tmp
   12094      479221 :          data_tmp = full_data(idata)
   12095      479221 :          pack_tmp = ISHFT(data_tmp, 52)
   12096      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12097      479221 :          idata = idata + 1
   12098      479221 :          data_tmp = full_data(idata)
   12099      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12100      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12101      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12102      479221 :          idata = idata + 1
   12103      479221 :          data_tmp = full_data(idata)
   12104      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12105      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12106      479221 :          pack_tmp = ISHFT(pack_tmp, -16)
   12107      479221 :          idata = idata + 1
   12108      479221 :          data_tmp = full_data(idata)
   12109      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12110      479221 :          data_tmp = IAND(data_tmp, mask_left(16))
   12111      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12112      479221 :          ipack = ipack + 1
   12113      479221 :          packed_data(ipack) = pack_tmp
   12114      479221 :          data_tmp = full_data(idata)
   12115      479221 :          pack_tmp = ISHFT(data_tmp, 62)
   12116      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12117      479221 :          idata = idata + 1
   12118      479221 :          data_tmp = full_data(idata)
   12119      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12120      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12121      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12122      479221 :          idata = idata + 1
   12123      479221 :          data_tmp = full_data(idata)
   12124      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12125      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12126      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12127      479221 :          idata = idata + 1
   12128      479221 :          data_tmp = full_data(idata)
   12129      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12130      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12131      479221 :          pack_tmp = ISHFT(pack_tmp, -8)
   12132      479221 :          idata = idata + 1
   12133      479221 :          data_tmp = full_data(idata)
   12134      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12135      479221 :          data_tmp = IAND(data_tmp, mask_left(8))
   12136      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12137      479221 :          ipack = ipack + 1
   12138      479221 :          packed_data(ipack) = pack_tmp
   12139      479221 :          data_tmp = full_data(idata)
   12140      479221 :          pack_tmp = ISHFT(data_tmp, 54)
   12141      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12142      479221 :          idata = idata + 1
   12143      479221 :          data_tmp = full_data(idata)
   12144      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12145      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12146      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12147      479221 :          idata = idata + 1
   12148      479221 :          data_tmp = full_data(idata)
   12149      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12150      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12151      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12152      479221 :          idata = idata + 1
   12153      479221 :          data_tmp = full_data(idata)
   12154      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12155      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12156      479221 :          pack_tmp = ISHFT(pack_tmp, 0)
   12157      479221 :          idata = idata + 1
   12158      479221 :          data_tmp = full_data(idata)
   12159             :          data_tmp = ISHFT(data_tmp, 46)
   12160      479221 :          data_tmp = IAND(data_tmp, mask_left(0))
   12161      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12162      479221 :          ipack = ipack + 1
   12163      479221 :          packed_data(ipack) = pack_tmp
   12164      479221 :          data_tmp = full_data(idata)
   12165      479221 :          pack_tmp = ISHFT(data_tmp, 46)
   12166      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12167      479221 :          idata = idata + 1
   12168      479221 :          data_tmp = full_data(idata)
   12169      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12170      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12171      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12172      479221 :          idata = idata + 1
   12173      479221 :          data_tmp = full_data(idata)
   12174      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12175      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12176      479221 :          pack_tmp = ISHFT(pack_tmp, -10)
   12177      479221 :          idata = idata + 1
   12178      479221 :          data_tmp = full_data(idata)
   12179      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12180      479221 :          data_tmp = IAND(data_tmp, mask_left(10))
   12181      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12182      479221 :          ipack = ipack + 1
   12183      479221 :          packed_data(ipack) = pack_tmp
   12184      479221 :          data_tmp = full_data(idata)
   12185      479221 :          pack_tmp = ISHFT(data_tmp, 56)
   12186      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12187      479221 :          idata = idata + 1
   12188      479221 :          data_tmp = full_data(idata)
   12189      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12190      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12191      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12192      479221 :          idata = idata + 1
   12193      479221 :          data_tmp = full_data(idata)
   12194      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12195      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12196      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12197      479221 :          idata = idata + 1
   12198      479221 :          data_tmp = full_data(idata)
   12199      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12200      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12201      479221 :          pack_tmp = ISHFT(pack_tmp, -2)
   12202      479221 :          idata = idata + 1
   12203      479221 :          data_tmp = full_data(idata)
   12204      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12205      479221 :          data_tmp = IAND(data_tmp, mask_left(2))
   12206      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12207      479221 :          ipack = ipack + 1
   12208      479221 :          packed_data(ipack) = pack_tmp
   12209      479221 :          data_tmp = full_data(idata)
   12210      479221 :          pack_tmp = ISHFT(data_tmp, 48)
   12211      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12212      479221 :          idata = idata + 1
   12213      479221 :          data_tmp = full_data(idata)
   12214      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12215      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12216      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12217      479221 :          idata = idata + 1
   12218      479221 :          data_tmp = full_data(idata)
   12219      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12220      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12221      479221 :          pack_tmp = ISHFT(pack_tmp, -12)
   12222      479221 :          idata = idata + 1
   12223      479221 :          data_tmp = full_data(idata)
   12224      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12225      479221 :          data_tmp = IAND(data_tmp, mask_left(12))
   12226      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12227      479221 :          ipack = ipack + 1
   12228      479221 :          packed_data(ipack) = pack_tmp
   12229      479221 :          data_tmp = full_data(idata)
   12230      479221 :          pack_tmp = ISHFT(data_tmp, 58)
   12231      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12232      479221 :          idata = idata + 1
   12233      479221 :          data_tmp = full_data(idata)
   12234      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12235      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12236      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12237      479221 :          idata = idata + 1
   12238      479221 :          data_tmp = full_data(idata)
   12239      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12240      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12241      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12242      479221 :          idata = idata + 1
   12243      479221 :          data_tmp = full_data(idata)
   12244      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12245      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12246      479221 :          pack_tmp = ISHFT(pack_tmp, -4)
   12247      479221 :          idata = idata + 1
   12248      479221 :          data_tmp = full_data(idata)
   12249      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12250      479221 :          data_tmp = IAND(data_tmp, mask_left(4))
   12251      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12252      479221 :          ipack = ipack + 1
   12253      479221 :          packed_data(ipack) = pack_tmp
   12254      479221 :          data_tmp = full_data(idata)
   12255      479221 :          pack_tmp = ISHFT(data_tmp, 50)
   12256      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12257      479221 :          idata = idata + 1
   12258      479221 :          data_tmp = full_data(idata)
   12259      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12260      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12261      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12262      479221 :          idata = idata + 1
   12263      479221 :          data_tmp = full_data(idata)
   12264      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12265      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12266      479221 :          pack_tmp = ISHFT(pack_tmp, -14)
   12267      479221 :          idata = idata + 1
   12268      479221 :          data_tmp = full_data(idata)
   12269      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12270      479221 :          data_tmp = IAND(data_tmp, mask_left(14))
   12271      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12272      479221 :          ipack = ipack + 1
   12273      479221 :          packed_data(ipack) = pack_tmp
   12274      479221 :          data_tmp = full_data(idata)
   12275      479221 :          pack_tmp = ISHFT(data_tmp, 60)
   12276      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12277      479221 :          idata = idata + 1
   12278      479221 :          data_tmp = full_data(idata)
   12279      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12280      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12281      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12282      479221 :          idata = idata + 1
   12283      479221 :          data_tmp = full_data(idata)
   12284      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12285      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12286      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12287      479221 :          idata = idata + 1
   12288      479221 :          data_tmp = full_data(idata)
   12289      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12290      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12291      479221 :          pack_tmp = ISHFT(pack_tmp, -6)
   12292      479221 :          idata = idata + 1
   12293      479221 :          data_tmp = full_data(idata)
   12294      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12295      479221 :          data_tmp = IAND(data_tmp, mask_left(6))
   12296      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12297      479221 :          ipack = ipack + 1
   12298      479221 :          packed_data(ipack) = pack_tmp
   12299      479221 :          data_tmp = full_data(idata)
   12300      479221 :          pack_tmp = ISHFT(data_tmp, 52)
   12301      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12302      479221 :          idata = idata + 1
   12303      479221 :          data_tmp = full_data(idata)
   12304      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12305      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12306      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12307      479221 :          idata = idata + 1
   12308      479221 :          data_tmp = full_data(idata)
   12309      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12310      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12311      479221 :          pack_tmp = ISHFT(pack_tmp, -16)
   12312      479221 :          idata = idata + 1
   12313      479221 :          data_tmp = full_data(idata)
   12314      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12315      479221 :          data_tmp = IAND(data_tmp, mask_left(16))
   12316      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12317      479221 :          ipack = ipack + 1
   12318      479221 :          packed_data(ipack) = pack_tmp
   12319      479221 :          data_tmp = full_data(idata)
   12320      479221 :          pack_tmp = ISHFT(data_tmp, 62)
   12321      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12322      479221 :          idata = idata + 1
   12323      479221 :          data_tmp = full_data(idata)
   12324      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12325      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12326      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12327      479221 :          idata = idata + 1
   12328      479221 :          data_tmp = full_data(idata)
   12329      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12330      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12331      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12332      479221 :          idata = idata + 1
   12333      479221 :          data_tmp = full_data(idata)
   12334      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12335      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12336      479221 :          pack_tmp = ISHFT(pack_tmp, -8)
   12337      479221 :          idata = idata + 1
   12338      479221 :          data_tmp = full_data(idata)
   12339      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12340      479221 :          data_tmp = IAND(data_tmp, mask_left(8))
   12341      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12342      479221 :          ipack = ipack + 1
   12343      479221 :          packed_data(ipack) = pack_tmp
   12344      479221 :          data_tmp = full_data(idata)
   12345      479221 :          pack_tmp = ISHFT(data_tmp, 54)
   12346      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12347      479221 :          idata = idata + 1
   12348      479221 :          data_tmp = full_data(idata)
   12349      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12350      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12351      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12352      479221 :          idata = idata + 1
   12353      479221 :          data_tmp = full_data(idata)
   12354      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12355      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12356      479221 :          pack_tmp = ISHFT(pack_tmp, -18)
   12357      479221 :          idata = idata + 1
   12358      479221 :          data_tmp = full_data(idata)
   12359      479221 :          data_tmp = ISHFT(data_tmp, 46)
   12360      479221 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12361             :          pack_tmp = ISHFT(pack_tmp, 0)
   12362      479221 :          pack_tmp = ISHFT(pack_tmp, 0)
   12363      479221 :          ipack = ipack + 1
   12364      479319 :          packed_data(ipack) = pack_tmp
   12365             :       END DO
   12366       32020 :       IF (Ndata_rep < Ndata) THEN
   12367        3894 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   12368             :       END IF
   12369       32020 :    END SUBROUTINE ints2bits_18
   12370             : 
   12371             : ! **************************************************************************************************
   12372             : !> \brief ...
   12373             : !> \param Ndata ...
   12374             : !> \param packed_data ...
   12375             : !> \param full_data ...
   12376             : ! **************************************************************************************************
   12377      161965 :    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      161965 :       ipack = 0
   12388      161965 :       idata = 0
   12389      161965 :       pack_tmp = 0
   12390      161965 :       Ndata_rep = (Ndata/64)*64
   12391      161965 :       DO kdata = 1, Ndata_rep, 64
   12392     2344294 :          idata = idata + 1
   12393     2344294 :          data_tmp = ISHFT(pack_tmp, 18)
   12394     2344294 :          ipack = ipack + 1
   12395     2344294 :          pack_tmp = packed_data(ipack)
   12396     2344294 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   12397     2344294 :          pack_tmp = ISHFT(pack_tmp, -18)
   12398     2344294 :          idata = idata + 1
   12399     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12400     2344294 :          full_data(idata) = data_tmp
   12401     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12402     2344294 :          idata = idata + 1
   12403     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12404     2344294 :          full_data(idata) = data_tmp
   12405     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12406     2344294 :          idata = idata + 1
   12407     2344294 :          data_tmp = ISHFT(pack_tmp, 8)
   12408     2344294 :          ipack = ipack + 1
   12409     2344294 :          pack_tmp = packed_data(ipack)
   12410     2344294 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   12411     2344294 :          pack_tmp = ISHFT(pack_tmp, -8)
   12412     2344294 :          idata = idata + 1
   12413     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12414     2344294 :          full_data(idata) = data_tmp
   12415     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12416     2344294 :          idata = idata + 1
   12417     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12418     2344294 :          full_data(idata) = data_tmp
   12419     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12420     2344294 :          idata = idata + 1
   12421     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12422     2344294 :          full_data(idata) = data_tmp
   12423     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12424     2344294 :          idata = idata + 1
   12425     2344294 :          data_tmp = ISHFT(pack_tmp, 16)
   12426     2344294 :          ipack = ipack + 1
   12427     2344294 :          pack_tmp = packed_data(ipack)
   12428     2344294 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   12429     2344294 :          pack_tmp = ISHFT(pack_tmp, -16)
   12430     2344294 :          idata = idata + 1
   12431     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12432     2344294 :          full_data(idata) = data_tmp
   12433     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12434     2344294 :          idata = idata + 1
   12435     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12436     2344294 :          full_data(idata) = data_tmp
   12437     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12438     2344294 :          idata = idata + 1
   12439     2344294 :          data_tmp = ISHFT(pack_tmp, 6)
   12440     2344294 :          ipack = ipack + 1
   12441     2344294 :          pack_tmp = packed_data(ipack)
   12442     2344294 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   12443     2344294 :          pack_tmp = ISHFT(pack_tmp, -6)
   12444     2344294 :          idata = idata + 1
   12445     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12446     2344294 :          full_data(idata) = data_tmp
   12447     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12448     2344294 :          idata = idata + 1
   12449     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12450     2344294 :          full_data(idata) = data_tmp
   12451     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12452     2344294 :          idata = idata + 1
   12453     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12454     2344294 :          full_data(idata) = data_tmp
   12455     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12456     2344294 :          idata = idata + 1
   12457     2344294 :          data_tmp = ISHFT(pack_tmp, 14)
   12458     2344294 :          ipack = ipack + 1
   12459     2344294 :          pack_tmp = packed_data(ipack)
   12460     2344294 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   12461     2344294 :          pack_tmp = ISHFT(pack_tmp, -14)
   12462     2344294 :          idata = idata + 1
   12463     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12464     2344294 :          full_data(idata) = data_tmp
   12465     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12466     2344294 :          idata = idata + 1
   12467     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12468     2344294 :          full_data(idata) = data_tmp
   12469     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12470     2344294 :          idata = idata + 1
   12471     2344294 :          data_tmp = ISHFT(pack_tmp, 4)
   12472     2344294 :          ipack = ipack + 1
   12473     2344294 :          pack_tmp = packed_data(ipack)
   12474     2344294 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   12475     2344294 :          pack_tmp = ISHFT(pack_tmp, -4)
   12476     2344294 :          idata = idata + 1
   12477     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12478     2344294 :          full_data(idata) = data_tmp
   12479     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12480     2344294 :          idata = idata + 1
   12481     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12482     2344294 :          full_data(idata) = data_tmp
   12483     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12484     2344294 :          idata = idata + 1
   12485     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12486     2344294 :          full_data(idata) = data_tmp
   12487     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12488     2344294 :          idata = idata + 1
   12489     2344294 :          data_tmp = ISHFT(pack_tmp, 12)
   12490     2344294 :          ipack = ipack + 1
   12491     2344294 :          pack_tmp = packed_data(ipack)
   12492     2344294 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   12493     2344294 :          pack_tmp = ISHFT(pack_tmp, -12)
   12494     2344294 :          idata = idata + 1
   12495     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12496     2344294 :          full_data(idata) = data_tmp
   12497     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12498     2344294 :          idata = idata + 1
   12499     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12500     2344294 :          full_data(idata) = data_tmp
   12501     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12502     2344294 :          idata = idata + 1
   12503     2344294 :          data_tmp = ISHFT(pack_tmp, 2)
   12504     2344294 :          ipack = ipack + 1
   12505     2344294 :          pack_tmp = packed_data(ipack)
   12506     2344294 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   12507     2344294 :          pack_tmp = ISHFT(pack_tmp, -2)
   12508     2344294 :          idata = idata + 1
   12509     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12510     2344294 :          full_data(idata) = data_tmp
   12511     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12512     2344294 :          idata = idata + 1
   12513     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12514     2344294 :          full_data(idata) = data_tmp
   12515     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12516     2344294 :          idata = idata + 1
   12517     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12518     2344294 :          full_data(idata) = data_tmp
   12519     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12520     2344294 :          idata = idata + 1
   12521     2344294 :          data_tmp = ISHFT(pack_tmp, 10)
   12522     2344294 :          ipack = ipack + 1
   12523     2344294 :          pack_tmp = packed_data(ipack)
   12524     2344294 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   12525     2344294 :          pack_tmp = ISHFT(pack_tmp, -10)
   12526     2344294 :          idata = idata + 1
   12527     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12528     2344294 :          full_data(idata) = data_tmp
   12529     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12530     2344294 :          idata = idata + 1
   12531     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12532     2344294 :          full_data(idata) = data_tmp
   12533     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12534     2344294 :          idata = idata + 1
   12535     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12536     2344294 :          full_data(idata) = data_tmp
   12537     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12538     2344294 :          idata = idata + 1
   12539     2344294 :          data_tmp = ISHFT(pack_tmp, 18)
   12540     2344294 :          ipack = ipack + 1
   12541     2344294 :          pack_tmp = packed_data(ipack)
   12542     2344294 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   12543     2344294 :          pack_tmp = ISHFT(pack_tmp, -18)
   12544     2344294 :          idata = idata + 1
   12545     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12546     2344294 :          full_data(idata) = data_tmp
   12547     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12548     2344294 :          idata = idata + 1
   12549     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12550     2344294 :          full_data(idata) = data_tmp
   12551     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12552     2344294 :          idata = idata + 1
   12553     2344294 :          data_tmp = ISHFT(pack_tmp, 8)
   12554     2344294 :          ipack = ipack + 1
   12555     2344294 :          pack_tmp = packed_data(ipack)
   12556     2344294 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   12557     2344294 :          pack_tmp = ISHFT(pack_tmp, -8)
   12558     2344294 :          idata = idata + 1
   12559     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12560     2344294 :          full_data(idata) = data_tmp
   12561     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12562     2344294 :          idata = idata + 1
   12563     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12564     2344294 :          full_data(idata) = data_tmp
   12565     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12566     2344294 :          idata = idata + 1
   12567     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12568     2344294 :          full_data(idata) = data_tmp
   12569     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12570     2344294 :          idata = idata + 1
   12571     2344294 :          data_tmp = ISHFT(pack_tmp, 16)
   12572     2344294 :          ipack = ipack + 1
   12573     2344294 :          pack_tmp = packed_data(ipack)
   12574     2344294 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   12575     2344294 :          pack_tmp = ISHFT(pack_tmp, -16)
   12576     2344294 :          idata = idata + 1
   12577     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12578     2344294 :          full_data(idata) = data_tmp
   12579     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12580     2344294 :          idata = idata + 1
   12581     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12582     2344294 :          full_data(idata) = data_tmp
   12583     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12584     2344294 :          idata = idata + 1
   12585     2344294 :          data_tmp = ISHFT(pack_tmp, 6)
   12586     2344294 :          ipack = ipack + 1
   12587     2344294 :          pack_tmp = packed_data(ipack)
   12588     2344294 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   12589     2344294 :          pack_tmp = ISHFT(pack_tmp, -6)
   12590     2344294 :          idata = idata + 1
   12591     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12592     2344294 :          full_data(idata) = data_tmp
   12593     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12594     2344294 :          idata = idata + 1
   12595     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12596     2344294 :          full_data(idata) = data_tmp
   12597     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12598     2344294 :          idata = idata + 1
   12599     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12600     2344294 :          full_data(idata) = data_tmp
   12601     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12602     2344294 :          idata = idata + 1
   12603     2344294 :          data_tmp = ISHFT(pack_tmp, 14)
   12604     2344294 :          ipack = ipack + 1
   12605     2344294 :          pack_tmp = packed_data(ipack)
   12606     2344294 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   12607     2344294 :          pack_tmp = ISHFT(pack_tmp, -14)
   12608     2344294 :          idata = idata + 1
   12609     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12610     2344294 :          full_data(idata) = data_tmp
   12611     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12612     2344294 :          idata = idata + 1
   12613     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12614     2344294 :          full_data(idata) = data_tmp
   12615     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12616     2344294 :          idata = idata + 1
   12617     2344294 :          data_tmp = ISHFT(pack_tmp, 4)
   12618     2344294 :          ipack = ipack + 1
   12619     2344294 :          pack_tmp = packed_data(ipack)
   12620     2344294 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   12621     2344294 :          pack_tmp = ISHFT(pack_tmp, -4)
   12622     2344294 :          idata = idata + 1
   12623     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12624     2344294 :          full_data(idata) = data_tmp
   12625     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12626     2344294 :          idata = idata + 1
   12627     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12628     2344294 :          full_data(idata) = data_tmp
   12629     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12630     2344294 :          idata = idata + 1
   12631     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12632     2344294 :          full_data(idata) = data_tmp
   12633     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12634     2344294 :          idata = idata + 1
   12635     2344294 :          data_tmp = ISHFT(pack_tmp, 12)
   12636     2344294 :          ipack = ipack + 1
   12637     2344294 :          pack_tmp = packed_data(ipack)
   12638     2344294 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   12639     2344294 :          pack_tmp = ISHFT(pack_tmp, -12)
   12640     2344294 :          idata = idata + 1
   12641     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12642     2344294 :          full_data(idata) = data_tmp
   12643     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12644     2344294 :          idata = idata + 1
   12645     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12646     2344294 :          full_data(idata) = data_tmp
   12647     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12648     2344294 :          idata = idata + 1
   12649     2344294 :          data_tmp = ISHFT(pack_tmp, 2)
   12650     2344294 :          ipack = ipack + 1
   12651     2344294 :          pack_tmp = packed_data(ipack)
   12652     2344294 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   12653     2344294 :          pack_tmp = ISHFT(pack_tmp, -2)
   12654     2344294 :          idata = idata + 1
   12655     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12656     2344294 :          full_data(idata) = data_tmp
   12657     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12658     2344294 :          idata = idata + 1
   12659     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12660     2344294 :          full_data(idata) = data_tmp
   12661     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12662     2344294 :          idata = idata + 1
   12663     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12664     2344294 :          full_data(idata) = data_tmp
   12665     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12666     2344294 :          idata = idata + 1
   12667     2344294 :          data_tmp = ISHFT(pack_tmp, 10)
   12668     2344294 :          ipack = ipack + 1
   12669     2344294 :          pack_tmp = packed_data(ipack)
   12670     2344294 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   12671     2344294 :          pack_tmp = ISHFT(pack_tmp, -10)
   12672     2344294 :          idata = idata + 1
   12673     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12674     2344294 :          full_data(idata) = data_tmp
   12675     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12676     2344294 :          idata = idata + 1
   12677     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12678     2344294 :          full_data(idata) = data_tmp
   12679     2344294 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12680     2344294 :          idata = idata + 1
   12681     2344294 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12682     2344294 :          full_data(idata) = data_tmp
   12683     2344877 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12684             :       END DO
   12685      161965 :       IF (Ndata_rep < Ndata) THEN
   12686       29076 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   12687             :       END IF
   12688      161965 :    END SUBROUTINE bits2ints_18
   12689             : 
   12690             : ! **************************************************************************************************
   12691             : !> \brief ...
   12692             : !> \param Ndata ...
   12693             : !> \param packed_data ...
   12694             : !> \param full_data ...
   12695             : ! **************************************************************************************************
   12696       29798 :    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       29798 :       idata = 0
   12707       29798 :       ipack = 0
   12708       29798 :       Ndata_rep = (Ndata/64)*64
   12709       29798 :       DO kdata = 1, Ndata_rep, 64
   12710      452341 :          pack_tmp = 0
   12711      452341 :          idata = idata + 1
   12712      452341 :          data_tmp = full_data(idata)
   12713      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12714      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12715      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12716      452341 :          idata = idata + 1
   12717      452341 :          data_tmp = full_data(idata)
   12718      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12719      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12720      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12721      452341 :          idata = idata + 1
   12722      452341 :          data_tmp = full_data(idata)
   12723      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12724      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12725      452341 :          pack_tmp = ISHFT(pack_tmp, -7)
   12726      452341 :          idata = idata + 1
   12727      452341 :          data_tmp = full_data(idata)
   12728      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12729      452341 :          data_tmp = IAND(data_tmp, mask_left(7))
   12730      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12731      452341 :          ipack = ipack + 1
   12732      452341 :          packed_data(ipack) = pack_tmp
   12733      452341 :          data_tmp = full_data(idata)
   12734      452341 :          pack_tmp = ISHFT(data_tmp, 52)
   12735      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12736      452341 :          idata = idata + 1
   12737      452341 :          data_tmp = full_data(idata)
   12738      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12739      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12740      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12741      452341 :          idata = idata + 1
   12742      452341 :          data_tmp = full_data(idata)
   12743      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12744      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12745      452341 :          pack_tmp = ISHFT(pack_tmp, -14)
   12746      452341 :          idata = idata + 1
   12747      452341 :          data_tmp = full_data(idata)
   12748      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12749      452341 :          data_tmp = IAND(data_tmp, mask_left(14))
   12750      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12751      452341 :          ipack = ipack + 1
   12752      452341 :          packed_data(ipack) = pack_tmp
   12753      452341 :          data_tmp = full_data(idata)
   12754      452341 :          pack_tmp = ISHFT(data_tmp, 59)
   12755      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12756      452341 :          idata = idata + 1
   12757      452341 :          data_tmp = full_data(idata)
   12758      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12759      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12760      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12761      452341 :          idata = idata + 1
   12762      452341 :          data_tmp = full_data(idata)
   12763      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12764      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12765      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12766      452341 :          idata = idata + 1
   12767      452341 :          data_tmp = full_data(idata)
   12768      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12769      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12770      452341 :          pack_tmp = ISHFT(pack_tmp, -2)
   12771      452341 :          idata = idata + 1
   12772      452341 :          data_tmp = full_data(idata)
   12773      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12774      452341 :          data_tmp = IAND(data_tmp, mask_left(2))
   12775      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12776      452341 :          ipack = ipack + 1
   12777      452341 :          packed_data(ipack) = pack_tmp
   12778      452341 :          data_tmp = full_data(idata)
   12779      452341 :          pack_tmp = ISHFT(data_tmp, 47)
   12780      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12781      452341 :          idata = idata + 1
   12782      452341 :          data_tmp = full_data(idata)
   12783      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12784      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12785      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12786      452341 :          idata = idata + 1
   12787      452341 :          data_tmp = full_data(idata)
   12788      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12789      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12790      452341 :          pack_tmp = ISHFT(pack_tmp, -9)
   12791      452341 :          idata = idata + 1
   12792      452341 :          data_tmp = full_data(idata)
   12793      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12794      452341 :          data_tmp = IAND(data_tmp, mask_left(9))
   12795      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12796      452341 :          ipack = ipack + 1
   12797      452341 :          packed_data(ipack) = pack_tmp
   12798      452341 :          data_tmp = full_data(idata)
   12799      452341 :          pack_tmp = ISHFT(data_tmp, 54)
   12800      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12801      452341 :          idata = idata + 1
   12802      452341 :          data_tmp = full_data(idata)
   12803      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12804      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12805      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12806      452341 :          idata = idata + 1
   12807      452341 :          data_tmp = full_data(idata)
   12808      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12809      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12810      452341 :          pack_tmp = ISHFT(pack_tmp, -16)
   12811      452341 :          idata = idata + 1
   12812      452341 :          data_tmp = full_data(idata)
   12813      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12814      452341 :          data_tmp = IAND(data_tmp, mask_left(16))
   12815      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12816      452341 :          ipack = ipack + 1
   12817      452341 :          packed_data(ipack) = pack_tmp
   12818      452341 :          data_tmp = full_data(idata)
   12819      452341 :          pack_tmp = ISHFT(data_tmp, 61)
   12820      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12821      452341 :          idata = idata + 1
   12822      452341 :          data_tmp = full_data(idata)
   12823      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12824      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12825      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12826      452341 :          idata = idata + 1
   12827      452341 :          data_tmp = full_data(idata)
   12828      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12829      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12830      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12831      452341 :          idata = idata + 1
   12832      452341 :          data_tmp = full_data(idata)
   12833      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12834      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12835      452341 :          pack_tmp = ISHFT(pack_tmp, -4)
   12836      452341 :          idata = idata + 1
   12837      452341 :          data_tmp = full_data(idata)
   12838      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12839      452341 :          data_tmp = IAND(data_tmp, mask_left(4))
   12840      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12841      452341 :          ipack = ipack + 1
   12842      452341 :          packed_data(ipack) = pack_tmp
   12843      452341 :          data_tmp = full_data(idata)
   12844      452341 :          pack_tmp = ISHFT(data_tmp, 49)
   12845      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12846      452341 :          idata = idata + 1
   12847      452341 :          data_tmp = full_data(idata)
   12848      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12849      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12850      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12851      452341 :          idata = idata + 1
   12852      452341 :          data_tmp = full_data(idata)
   12853      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12854      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12855      452341 :          pack_tmp = ISHFT(pack_tmp, -11)
   12856      452341 :          idata = idata + 1
   12857      452341 :          data_tmp = full_data(idata)
   12858      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12859      452341 :          data_tmp = IAND(data_tmp, mask_left(11))
   12860      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12861      452341 :          ipack = ipack + 1
   12862      452341 :          packed_data(ipack) = pack_tmp
   12863      452341 :          data_tmp = full_data(idata)
   12864      452341 :          pack_tmp = ISHFT(data_tmp, 56)
   12865      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12866      452341 :          idata = idata + 1
   12867      452341 :          data_tmp = full_data(idata)
   12868      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12869      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12870      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12871      452341 :          idata = idata + 1
   12872      452341 :          data_tmp = full_data(idata)
   12873      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12874      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12875      452341 :          pack_tmp = ISHFT(pack_tmp, -18)
   12876      452341 :          idata = idata + 1
   12877      452341 :          data_tmp = full_data(idata)
   12878      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12879      452341 :          data_tmp = IAND(data_tmp, mask_left(18))
   12880      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12881      452341 :          ipack = ipack + 1
   12882      452341 :          packed_data(ipack) = pack_tmp
   12883      452341 :          data_tmp = full_data(idata)
   12884      452341 :          pack_tmp = ISHFT(data_tmp, 63)
   12885      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12886      452341 :          idata = idata + 1
   12887      452341 :          data_tmp = full_data(idata)
   12888      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12889      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12890      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12891      452341 :          idata = idata + 1
   12892      452341 :          data_tmp = full_data(idata)
   12893      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12894      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12895      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12896      452341 :          idata = idata + 1
   12897      452341 :          data_tmp = full_data(idata)
   12898      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12899      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12900      452341 :          pack_tmp = ISHFT(pack_tmp, -6)
   12901      452341 :          idata = idata + 1
   12902      452341 :          data_tmp = full_data(idata)
   12903      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12904      452341 :          data_tmp = IAND(data_tmp, mask_left(6))
   12905      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12906      452341 :          ipack = ipack + 1
   12907      452341 :          packed_data(ipack) = pack_tmp
   12908      452341 :          data_tmp = full_data(idata)
   12909      452341 :          pack_tmp = ISHFT(data_tmp, 51)
   12910      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12911      452341 :          idata = idata + 1
   12912      452341 :          data_tmp = full_data(idata)
   12913      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12914      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12915      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12916      452341 :          idata = idata + 1
   12917      452341 :          data_tmp = full_data(idata)
   12918      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12919      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12920      452341 :          pack_tmp = ISHFT(pack_tmp, -13)
   12921      452341 :          idata = idata + 1
   12922      452341 :          data_tmp = full_data(idata)
   12923      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12924      452341 :          data_tmp = IAND(data_tmp, mask_left(13))
   12925      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12926      452341 :          ipack = ipack + 1
   12927      452341 :          packed_data(ipack) = pack_tmp
   12928      452341 :          data_tmp = full_data(idata)
   12929      452341 :          pack_tmp = ISHFT(data_tmp, 58)
   12930      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12931      452341 :          idata = idata + 1
   12932      452341 :          data_tmp = full_data(idata)
   12933      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12934      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12935      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12936      452341 :          idata = idata + 1
   12937      452341 :          data_tmp = full_data(idata)
   12938      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12939      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12940      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12941      452341 :          idata = idata + 1
   12942      452341 :          data_tmp = full_data(idata)
   12943      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12944      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12945      452341 :          pack_tmp = ISHFT(pack_tmp, -1)
   12946      452341 :          idata = idata + 1
   12947      452341 :          data_tmp = full_data(idata)
   12948      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12949      452341 :          data_tmp = IAND(data_tmp, mask_left(1))
   12950      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12951      452341 :          ipack = ipack + 1
   12952      452341 :          packed_data(ipack) = pack_tmp
   12953      452341 :          data_tmp = full_data(idata)
   12954      452341 :          pack_tmp = ISHFT(data_tmp, 46)
   12955      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12956      452341 :          idata = idata + 1
   12957      452341 :          data_tmp = full_data(idata)
   12958      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12959      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12960      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12961      452341 :          idata = idata + 1
   12962      452341 :          data_tmp = full_data(idata)
   12963      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12964      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12965      452341 :          pack_tmp = ISHFT(pack_tmp, -8)
   12966      452341 :          idata = idata + 1
   12967      452341 :          data_tmp = full_data(idata)
   12968      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12969      452341 :          data_tmp = IAND(data_tmp, mask_left(8))
   12970      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12971      452341 :          ipack = ipack + 1
   12972      452341 :          packed_data(ipack) = pack_tmp
   12973      452341 :          data_tmp = full_data(idata)
   12974      452341 :          pack_tmp = ISHFT(data_tmp, 53)
   12975      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12976      452341 :          idata = idata + 1
   12977      452341 :          data_tmp = full_data(idata)
   12978      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12979      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12980      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12981      452341 :          idata = idata + 1
   12982      452341 :          data_tmp = full_data(idata)
   12983      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12984      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12985      452341 :          pack_tmp = ISHFT(pack_tmp, -15)
   12986      452341 :          idata = idata + 1
   12987      452341 :          data_tmp = full_data(idata)
   12988      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12989      452341 :          data_tmp = IAND(data_tmp, mask_left(15))
   12990      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12991      452341 :          ipack = ipack + 1
   12992      452341 :          packed_data(ipack) = pack_tmp
   12993      452341 :          data_tmp = full_data(idata)
   12994      452341 :          pack_tmp = ISHFT(data_tmp, 60)
   12995      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   12996      452341 :          idata = idata + 1
   12997      452341 :          data_tmp = full_data(idata)
   12998      452341 :          data_tmp = ISHFT(data_tmp, 45)
   12999      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13000      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   13001      452341 :          idata = idata + 1
   13002      452341 :          data_tmp = full_data(idata)
   13003      452341 :          data_tmp = ISHFT(data_tmp, 45)
   13004      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13005      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   13006      452341 :          idata = idata + 1
   13007      452341 :          data_tmp = full_data(idata)
   13008      452341 :          data_tmp = ISHFT(data_tmp, 45)
   13009      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13010      452341 :          pack_tmp = ISHFT(pack_tmp, -3)
   13011      452341 :          idata = idata + 1
   13012      452341 :          data_tmp = full_data(idata)
   13013      452341 :          data_tmp = ISHFT(data_tmp, 45)
   13014      452341 :          data_tmp = IAND(data_tmp, mask_left(3))
   13015      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13016      452341 :          ipack = ipack + 1
   13017      452341 :          packed_data(ipack) = pack_tmp
   13018      452341 :          data_tmp = full_data(idata)
   13019      452341 :          pack_tmp = ISHFT(data_tmp, 48)
   13020      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   13021      452341 :          idata = idata + 1
   13022      452341 :          data_tmp = full_data(idata)
   13023      452341 :          data_tmp = ISHFT(data_tmp, 45)
   13024      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13025      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   13026      452341 :          idata = idata + 1
   13027      452341 :          data_tmp = full_data(idata)
   13028      452341 :          data_tmp = ISHFT(data_tmp, 45)
   13029      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13030      452341 :          pack_tmp = ISHFT(pack_tmp, -10)
   13031      452341 :          idata = idata + 1
   13032      452341 :          data_tmp = full_data(idata)
   13033      452341 :          data_tmp = ISHFT(data_tmp, 45)
   13034      452341 :          data_tmp = IAND(data_tmp, mask_left(10))
   13035      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13036      452341 :          ipack = ipack + 1
   13037      452341 :          packed_data(ipack) = pack_tmp
   13038      452341 :          data_tmp = full_data(idata)
   13039      452341 :          pack_tmp = ISHFT(data_tmp, 55)
   13040      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   13041      452341 :          idata = idata + 1
   13042      452341 :          data_tmp = full_data(idata)
   13043      452341 :          data_tmp = ISHFT(data_tmp, 45)
   13044      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13045      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   13046      452341 :          idata = idata + 1
   13047      452341 :          data_tmp = full_data(idata)
   13048      452341 :          data_tmp = ISHFT(data_tmp, 45)
   13049      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13050      452341 :          pack_tmp = ISHFT(pack_tmp, -17)
   13051      452341 :          idata = idata + 1
   13052      452341 :          data_tmp = full_data(idata)
   13053      452341 :          data_tmp = ISHFT(data_tmp, 45)
   13054      452341 :          data_tmp = IAND(data_tmp, mask_left(17))
   13055      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13056      452341 :          ipack = ipack + 1
   13057      452341 :          packed_data(ipack) = pack_tmp
   13058      452341 :          data_tmp = full_data(idata)
   13059      452341 :          pack_tmp = ISHFT(data_tmp, 62)
   13060      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   13061      452341 :          idata = idata + 1
   13062      452341 :          data_tmp = full_data(idata)
   13063      452341 :          data_tmp = ISHFT(data_tmp, 45)
   13064      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13065      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   13066      452341 :          idata = idata + 1
   13067      452341 :          data_tmp = full_data(idata)
   13068      452341 :          data_tmp = ISHFT(data_tmp, 45)
   13069      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13070      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   13071      452341 :          idata = idata + 1
   13072      452341 :          data_tmp = full_data(idata)
   13073      452341 :          data_tmp = ISHFT(data_tmp, 45)
   13074      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13075      452341 :          pack_tmp = ISHFT(pack_tmp, -5)
   13076      452341 :          idata = idata + 1
   13077      452341 :          data_tmp = full_data(idata)
   13078      452341 :          data_tmp = ISHFT(data_tmp, 45)
   13079      452341 :          data_tmp = IAND(data_tmp, mask_left(5))
   13080      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13081      452341 :          ipack = ipack + 1
   13082      452341 :          packed_data(ipack) = pack_tmp
   13083      452341 :          data_tmp = full_data(idata)
   13084      452341 :          pack_tmp = ISHFT(data_tmp, 50)
   13085      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   13086      452341 :          idata = idata + 1
   13087      452341 :          data_tmp = full_data(idata)
   13088      452341 :          data_tmp = ISHFT(data_tmp, 45)
   13089      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13090      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   13091      452341 :          idata = idata + 1
   13092      452341 :          data_tmp = full_data(idata)
   13093      452341 :          data_tmp = ISHFT(data_tmp, 45)
   13094      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13095      452341 :          pack_tmp = ISHFT(pack_tmp, -12)
   13096      452341 :          idata = idata + 1
   13097      452341 :          data_tmp = full_data(idata)
   13098      452341 :          data_tmp = ISHFT(data_tmp, 45)
   13099      452341 :          data_tmp = IAND(data_tmp, mask_left(12))
   13100      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13101      452341 :          ipack = ipack + 1
   13102      452341 :          packed_data(ipack) = pack_tmp
   13103      452341 :          data_tmp = full_data(idata)
   13104      452341 :          pack_tmp = ISHFT(data_tmp, 57)
   13105      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   13106      452341 :          idata = idata + 1
   13107      452341 :          data_tmp = full_data(idata)
   13108      452341 :          data_tmp = ISHFT(data_tmp, 45)
   13109      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13110      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   13111      452341 :          idata = idata + 1
   13112      452341 :          data_tmp = full_data(idata)
   13113      452341 :          data_tmp = ISHFT(data_tmp, 45)
   13114      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13115      452341 :          pack_tmp = ISHFT(pack_tmp, -19)
   13116      452341 :          idata = idata + 1
   13117      452341 :          data_tmp = full_data(idata)
   13118      452341 :          data_tmp = ISHFT(data_tmp, 45)
   13119      452341 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13120             :          pack_tmp = ISHFT(pack_tmp, 0)
   13121      452341 :          pack_tmp = ISHFT(pack_tmp, 0)
   13122      452341 :          ipack = ipack + 1
   13123      452435 :          packed_data(ipack) = pack_tmp
   13124             :       END DO
   13125       29798 :       IF (Ndata_rep < Ndata) THEN
   13126        2774 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   13127             :       END IF
   13128       29798 :    END SUBROUTINE ints2bits_19
   13129             : 
   13130             : ! **************************************************************************************************
   13131             : !> \brief ...
   13132             : !> \param Ndata ...
   13133             : !> \param packed_data ...
   13134             : !> \param full_data ...
   13135             : ! **************************************************************************************************
   13136      147083 :    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      147083 :       ipack = 0
   13147      147083 :       idata = 0
   13148      147083 :       pack_tmp = 0
   13149      147083 :       Ndata_rep = (Ndata/64)*64
   13150      147083 :       DO kdata = 1, Ndata_rep, 64
   13151     2169817 :          idata = idata + 1
   13152     2169817 :          data_tmp = ISHFT(pack_tmp, 19)
   13153     2169817 :          ipack = ipack + 1
   13154     2169817 :          pack_tmp = packed_data(ipack)
   13155     2169817 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   13156     2169817 :          pack_tmp = ISHFT(pack_tmp, -19)
   13157     2169817 :          idata = idata + 1
   13158     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13159     2169817 :          full_data(idata) = data_tmp
   13160     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13161     2169817 :          idata = idata + 1
   13162     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13163     2169817 :          full_data(idata) = data_tmp
   13164     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13165     2169817 :          idata = idata + 1
   13166     2169817 :          data_tmp = ISHFT(pack_tmp, 12)
   13167     2169817 :          ipack = ipack + 1
   13168     2169817 :          pack_tmp = packed_data(ipack)
   13169     2169817 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   13170     2169817 :          pack_tmp = ISHFT(pack_tmp, -12)
   13171     2169817 :          idata = idata + 1
   13172     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13173     2169817 :          full_data(idata) = data_tmp
   13174     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13175     2169817 :          idata = idata + 1
   13176     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13177     2169817 :          full_data(idata) = data_tmp
   13178     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13179     2169817 :          idata = idata + 1
   13180     2169817 :          data_tmp = ISHFT(pack_tmp, 5)
   13181     2169817 :          ipack = ipack + 1
   13182     2169817 :          pack_tmp = packed_data(ipack)
   13183     2169817 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   13184     2169817 :          pack_tmp = ISHFT(pack_tmp, -5)
   13185     2169817 :          idata = idata + 1
   13186     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13187     2169817 :          full_data(idata) = data_tmp
   13188     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13189     2169817 :          idata = idata + 1
   13190     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13191     2169817 :          full_data(idata) = data_tmp
   13192     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13193     2169817 :          idata = idata + 1
   13194     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13195     2169817 :          full_data(idata) = data_tmp
   13196     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13197     2169817 :          idata = idata + 1
   13198     2169817 :          data_tmp = ISHFT(pack_tmp, 17)
   13199     2169817 :          ipack = ipack + 1
   13200     2169817 :          pack_tmp = packed_data(ipack)
   13201     2169817 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   13202     2169817 :          pack_tmp = ISHFT(pack_tmp, -17)
   13203     2169817 :          idata = idata + 1
   13204     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13205     2169817 :          full_data(idata) = data_tmp
   13206     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13207     2169817 :          idata = idata + 1
   13208     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13209     2169817 :          full_data(idata) = data_tmp
   13210     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13211     2169817 :          idata = idata + 1
   13212     2169817 :          data_tmp = ISHFT(pack_tmp, 10)
   13213     2169817 :          ipack = ipack + 1
   13214     2169817 :          pack_tmp = packed_data(ipack)
   13215     2169817 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   13216     2169817 :          pack_tmp = ISHFT(pack_tmp, -10)
   13217     2169817 :          idata = idata + 1
   13218     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13219     2169817 :          full_data(idata) = data_tmp
   13220     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13221     2169817 :          idata = idata + 1
   13222     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13223     2169817 :          full_data(idata) = data_tmp
   13224     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13225     2169817 :          idata = idata + 1
   13226     2169817 :          data_tmp = ISHFT(pack_tmp, 3)
   13227     2169817 :          ipack = ipack + 1
   13228     2169817 :          pack_tmp = packed_data(ipack)
   13229     2169817 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   13230     2169817 :          pack_tmp = ISHFT(pack_tmp, -3)
   13231     2169817 :          idata = idata + 1
   13232     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13233     2169817 :          full_data(idata) = data_tmp
   13234     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13235     2169817 :          idata = idata + 1
   13236     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13237     2169817 :          full_data(idata) = data_tmp
   13238     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13239     2169817 :          idata = idata + 1
   13240     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13241     2169817 :          full_data(idata) = data_tmp
   13242     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13243     2169817 :          idata = idata + 1
   13244     2169817 :          data_tmp = ISHFT(pack_tmp, 15)
   13245     2169817 :          ipack = ipack + 1
   13246     2169817 :          pack_tmp = packed_data(ipack)
   13247     2169817 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   13248     2169817 :          pack_tmp = ISHFT(pack_tmp, -15)
   13249     2169817 :          idata = idata + 1
   13250     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13251     2169817 :          full_data(idata) = data_tmp
   13252     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13253     2169817 :          idata = idata + 1
   13254     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13255     2169817 :          full_data(idata) = data_tmp
   13256     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13257     2169817 :          idata = idata + 1
   13258     2169817 :          data_tmp = ISHFT(pack_tmp, 8)
   13259     2169817 :          ipack = ipack + 1
   13260     2169817 :          pack_tmp = packed_data(ipack)
   13261     2169817 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   13262     2169817 :          pack_tmp = ISHFT(pack_tmp, -8)
   13263     2169817 :          idata = idata + 1
   13264     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13265     2169817 :          full_data(idata) = data_tmp
   13266     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13267     2169817 :          idata = idata + 1
   13268     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13269     2169817 :          full_data(idata) = data_tmp
   13270     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13271     2169817 :          idata = idata + 1
   13272     2169817 :          data_tmp = ISHFT(pack_tmp, 1)
   13273     2169817 :          ipack = ipack + 1
   13274     2169817 :          pack_tmp = packed_data(ipack)
   13275     2169817 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   13276     2169817 :          pack_tmp = ISHFT(pack_tmp, -1)
   13277     2169817 :          idata = idata + 1
   13278     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13279     2169817 :          full_data(idata) = data_tmp
   13280     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13281     2169817 :          idata = idata + 1
   13282     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13283     2169817 :          full_data(idata) = data_tmp
   13284     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13285     2169817 :          idata = idata + 1
   13286     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13287     2169817 :          full_data(idata) = data_tmp
   13288     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13289     2169817 :          idata = idata + 1
   13290     2169817 :          data_tmp = ISHFT(pack_tmp, 13)
   13291     2169817 :          ipack = ipack + 1
   13292     2169817 :          pack_tmp = packed_data(ipack)
   13293     2169817 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   13294     2169817 :          pack_tmp = ISHFT(pack_tmp, -13)
   13295     2169817 :          idata = idata + 1
   13296     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13297     2169817 :          full_data(idata) = data_tmp
   13298     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13299     2169817 :          idata = idata + 1
   13300     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13301     2169817 :          full_data(idata) = data_tmp
   13302     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13303     2169817 :          idata = idata + 1
   13304     2169817 :          data_tmp = ISHFT(pack_tmp, 6)
   13305     2169817 :          ipack = ipack + 1
   13306     2169817 :          pack_tmp = packed_data(ipack)
   13307     2169817 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   13308     2169817 :          pack_tmp = ISHFT(pack_tmp, -6)
   13309     2169817 :          idata = idata + 1
   13310     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13311     2169817 :          full_data(idata) = data_tmp
   13312     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13313     2169817 :          idata = idata + 1
   13314     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13315     2169817 :          full_data(idata) = data_tmp
   13316     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13317     2169817 :          idata = idata + 1
   13318     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13319     2169817 :          full_data(idata) = data_tmp
   13320     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13321     2169817 :          idata = idata + 1
   13322     2169817 :          data_tmp = ISHFT(pack_tmp, 18)
   13323     2169817 :          ipack = ipack + 1
   13324     2169817 :          pack_tmp = packed_data(ipack)
   13325     2169817 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   13326     2169817 :          pack_tmp = ISHFT(pack_tmp, -18)
   13327     2169817 :          idata = idata + 1
   13328     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13329     2169817 :          full_data(idata) = data_tmp
   13330     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13331     2169817 :          idata = idata + 1
   13332     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13333     2169817 :          full_data(idata) = data_tmp
   13334     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13335     2169817 :          idata = idata + 1
   13336     2169817 :          data_tmp = ISHFT(pack_tmp, 11)
   13337     2169817 :          ipack = ipack + 1
   13338     2169817 :          pack_tmp = packed_data(ipack)
   13339     2169817 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   13340     2169817 :          pack_tmp = ISHFT(pack_tmp, -11)
   13341     2169817 :          idata = idata + 1
   13342     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13343     2169817 :          full_data(idata) = data_tmp
   13344     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13345     2169817 :          idata = idata + 1
   13346     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13347     2169817 :          full_data(idata) = data_tmp
   13348     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13349     2169817 :          idata = idata + 1
   13350     2169817 :          data_tmp = ISHFT(pack_tmp, 4)
   13351     2169817 :          ipack = ipack + 1
   13352     2169817 :          pack_tmp = packed_data(ipack)
   13353     2169817 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   13354     2169817 :          pack_tmp = ISHFT(pack_tmp, -4)
   13355     2169817 :          idata = idata + 1
   13356     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13357     2169817 :          full_data(idata) = data_tmp
   13358     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13359     2169817 :          idata = idata + 1
   13360     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13361     2169817 :          full_data(idata) = data_tmp
   13362     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13363     2169817 :          idata = idata + 1
   13364     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13365     2169817 :          full_data(idata) = data_tmp
   13366     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13367     2169817 :          idata = idata + 1
   13368     2169817 :          data_tmp = ISHFT(pack_tmp, 16)
   13369     2169817 :          ipack = ipack + 1
   13370     2169817 :          pack_tmp = packed_data(ipack)
   13371     2169817 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   13372     2169817 :          pack_tmp = ISHFT(pack_tmp, -16)
   13373     2169817 :          idata = idata + 1
   13374     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13375     2169817 :          full_data(idata) = data_tmp
   13376     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13377     2169817 :          idata = idata + 1
   13378     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13379     2169817 :          full_data(idata) = data_tmp
   13380     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13381     2169817 :          idata = idata + 1
   13382     2169817 :          data_tmp = ISHFT(pack_tmp, 9)
   13383     2169817 :          ipack = ipack + 1
   13384     2169817 :          pack_tmp = packed_data(ipack)
   13385     2169817 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   13386     2169817 :          pack_tmp = ISHFT(pack_tmp, -9)
   13387     2169817 :          idata = idata + 1
   13388     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13389     2169817 :          full_data(idata) = data_tmp
   13390     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13391     2169817 :          idata = idata + 1
   13392     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13393     2169817 :          full_data(idata) = data_tmp
   13394     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13395     2169817 :          idata = idata + 1
   13396     2169817 :          data_tmp = ISHFT(pack_tmp, 2)
   13397     2169817 :          ipack = ipack + 1
   13398     2169817 :          pack_tmp = packed_data(ipack)
   13399     2169817 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   13400     2169817 :          pack_tmp = ISHFT(pack_tmp, -2)
   13401     2169817 :          idata = idata + 1
   13402     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13403     2169817 :          full_data(idata) = data_tmp
   13404     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13405     2169817 :          idata = idata + 1
   13406     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13407     2169817 :          full_data(idata) = data_tmp
   13408     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13409     2169817 :          idata = idata + 1
   13410     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13411     2169817 :          full_data(idata) = data_tmp
   13412     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13413     2169817 :          idata = idata + 1
   13414     2169817 :          data_tmp = ISHFT(pack_tmp, 14)
   13415     2169817 :          ipack = ipack + 1
   13416     2169817 :          pack_tmp = packed_data(ipack)
   13417     2169817 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   13418     2169817 :          pack_tmp = ISHFT(pack_tmp, -14)
   13419     2169817 :          idata = idata + 1
   13420     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13421     2169817 :          full_data(idata) = data_tmp
   13422     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13423     2169817 :          idata = idata + 1
   13424     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13425     2169817 :          full_data(idata) = data_tmp
   13426     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13427     2169817 :          idata = idata + 1
   13428     2169817 :          data_tmp = ISHFT(pack_tmp, 7)
   13429     2169817 :          ipack = ipack + 1
   13430     2169817 :          pack_tmp = packed_data(ipack)
   13431     2169817 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   13432     2169817 :          pack_tmp = ISHFT(pack_tmp, -7)
   13433     2169817 :          idata = idata + 1
   13434     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13435     2169817 :          full_data(idata) = data_tmp
   13436     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13437     2169817 :          idata = idata + 1
   13438     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13439     2169817 :          full_data(idata) = data_tmp
   13440     2169817 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13441     2169817 :          idata = idata + 1
   13442     2169817 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13443     2169817 :          full_data(idata) = data_tmp
   13444     2170466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13445             :       END DO
   13446      147083 :       IF (Ndata_rep < Ndata) THEN
   13447       20910 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   13448             :       END IF
   13449      147083 :    END SUBROUTINE bits2ints_19
   13450             : 
   13451             : ! **************************************************************************************************
   13452             : !> \brief ...
   13453             : !> \param Ndata ...
   13454             : !> \param packed_data ...
   13455             : !> \param full_data ...
   13456             : ! **************************************************************************************************
   13457       40705 :    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       40705 :       idata = 0
   13468       40705 :       ipack = 0
   13469       40705 :       Ndata_rep = (Ndata/64)*64
   13470       40705 :       DO kdata = 1, Ndata_rep, 64
   13471      581286 :          pack_tmp = 0
   13472      581286 :          idata = idata + 1
   13473      581286 :          data_tmp = full_data(idata)
   13474      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13475      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13476      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13477      581286 :          idata = idata + 1
   13478      581286 :          data_tmp = full_data(idata)
   13479      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13480      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13481      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13482      581286 :          idata = idata + 1
   13483      581286 :          data_tmp = full_data(idata)
   13484      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13485      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13486      581286 :          pack_tmp = ISHFT(pack_tmp, -4)
   13487      581286 :          idata = idata + 1
   13488      581286 :          data_tmp = full_data(idata)
   13489      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13490      581286 :          data_tmp = IAND(data_tmp, mask_left(4))
   13491      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13492      581286 :          ipack = ipack + 1
   13493      581286 :          packed_data(ipack) = pack_tmp
   13494      581286 :          data_tmp = full_data(idata)
   13495      581286 :          pack_tmp = ISHFT(data_tmp, 48)
   13496      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13497      581286 :          idata = idata + 1
   13498      581286 :          data_tmp = full_data(idata)
   13499      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13500      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13501      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13502      581286 :          idata = idata + 1
   13503      581286 :          data_tmp = full_data(idata)
   13504      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13505      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13506      581286 :          pack_tmp = ISHFT(pack_tmp, -8)
   13507      581286 :          idata = idata + 1
   13508      581286 :          data_tmp = full_data(idata)
   13509      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13510      581286 :          data_tmp = IAND(data_tmp, mask_left(8))
   13511      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13512      581286 :          ipack = ipack + 1
   13513      581286 :          packed_data(ipack) = pack_tmp
   13514      581286 :          data_tmp = full_data(idata)
   13515      581286 :          pack_tmp = ISHFT(data_tmp, 52)
   13516      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13517      581286 :          idata = idata + 1
   13518      581286 :          data_tmp = full_data(idata)
   13519      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13520      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13521      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13522      581286 :          idata = idata + 1
   13523      581286 :          data_tmp = full_data(idata)
   13524      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13525      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13526      581286 :          pack_tmp = ISHFT(pack_tmp, -12)
   13527      581286 :          idata = idata + 1
   13528      581286 :          data_tmp = full_data(idata)
   13529      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13530      581286 :          data_tmp = IAND(data_tmp, mask_left(12))
   13531      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13532      581286 :          ipack = ipack + 1
   13533      581286 :          packed_data(ipack) = pack_tmp
   13534      581286 :          data_tmp = full_data(idata)
   13535      581286 :          pack_tmp = ISHFT(data_tmp, 56)
   13536      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13537      581286 :          idata = idata + 1
   13538      581286 :          data_tmp = full_data(idata)
   13539      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13540      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13541      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13542      581286 :          idata = idata + 1
   13543      581286 :          data_tmp = full_data(idata)
   13544      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13545      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13546      581286 :          pack_tmp = ISHFT(pack_tmp, -16)
   13547      581286 :          idata = idata + 1
   13548      581286 :          data_tmp = full_data(idata)
   13549      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13550      581286 :          data_tmp = IAND(data_tmp, mask_left(16))
   13551      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13552      581286 :          ipack = ipack + 1
   13553      581286 :          packed_data(ipack) = pack_tmp
   13554      581286 :          data_tmp = full_data(idata)
   13555      581286 :          pack_tmp = ISHFT(data_tmp, 60)
   13556      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13557      581286 :          idata = idata + 1
   13558      581286 :          data_tmp = full_data(idata)
   13559      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13560      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13561      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13562      581286 :          idata = idata + 1
   13563      581286 :          data_tmp = full_data(idata)
   13564      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13565      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13566      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13567      581286 :          idata = idata + 1
   13568      581286 :          data_tmp = full_data(idata)
   13569      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13570      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13571      581286 :          pack_tmp = ISHFT(pack_tmp, 0)
   13572      581286 :          idata = idata + 1
   13573      581286 :          data_tmp = full_data(idata)
   13574             :          data_tmp = ISHFT(data_tmp, 44)
   13575      581286 :          data_tmp = IAND(data_tmp, mask_left(0))
   13576      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13577      581286 :          ipack = ipack + 1
   13578      581286 :          packed_data(ipack) = pack_tmp
   13579      581286 :          data_tmp = full_data(idata)
   13580      581286 :          pack_tmp = ISHFT(data_tmp, 44)
   13581      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13582      581286 :          idata = idata + 1
   13583      581286 :          data_tmp = full_data(idata)
   13584      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13585      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13586      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13587      581286 :          idata = idata + 1
   13588      581286 :          data_tmp = full_data(idata)
   13589      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13590      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13591      581286 :          pack_tmp = ISHFT(pack_tmp, -4)
   13592      581286 :          idata = idata + 1
   13593      581286 :          data_tmp = full_data(idata)
   13594      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13595      581286 :          data_tmp = IAND(data_tmp, mask_left(4))
   13596      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13597      581286 :          ipack = ipack + 1
   13598      581286 :          packed_data(ipack) = pack_tmp
   13599      581286 :          data_tmp = full_data(idata)
   13600      581286 :          pack_tmp = ISHFT(data_tmp, 48)
   13601      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13602      581286 :          idata = idata + 1
   13603      581286 :          data_tmp = full_data(idata)
   13604      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13605      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13606      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13607      581286 :          idata = idata + 1
   13608      581286 :          data_tmp = full_data(idata)
   13609      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13610      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13611      581286 :          pack_tmp = ISHFT(pack_tmp, -8)
   13612      581286 :          idata = idata + 1
   13613      581286 :          data_tmp = full_data(idata)
   13614      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13615      581286 :          data_tmp = IAND(data_tmp, mask_left(8))
   13616      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13617      581286 :          ipack = ipack + 1
   13618      581286 :          packed_data(ipack) = pack_tmp
   13619      581286 :          data_tmp = full_data(idata)
   13620      581286 :          pack_tmp = ISHFT(data_tmp, 52)
   13621      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13622      581286 :          idata = idata + 1
   13623      581286 :          data_tmp = full_data(idata)
   13624      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13625      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13626      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13627      581286 :          idata = idata + 1
   13628      581286 :          data_tmp = full_data(idata)
   13629      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13630      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13631      581286 :          pack_tmp = ISHFT(pack_tmp, -12)
   13632      581286 :          idata = idata + 1
   13633      581286 :          data_tmp = full_data(idata)
   13634      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13635      581286 :          data_tmp = IAND(data_tmp, mask_left(12))
   13636      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13637      581286 :          ipack = ipack + 1
   13638      581286 :          packed_data(ipack) = pack_tmp
   13639      581286 :          data_tmp = full_data(idata)
   13640      581286 :          pack_tmp = ISHFT(data_tmp, 56)
   13641      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13642      581286 :          idata = idata + 1
   13643      581286 :          data_tmp = full_data(idata)
   13644      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13645      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13646      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13647      581286 :          idata = idata + 1
   13648      581286 :          data_tmp = full_data(idata)
   13649      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13650      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13651      581286 :          pack_tmp = ISHFT(pack_tmp, -16)
   13652      581286 :          idata = idata + 1
   13653      581286 :          data_tmp = full_data(idata)
   13654      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13655      581286 :          data_tmp = IAND(data_tmp, mask_left(16))
   13656      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13657      581286 :          ipack = ipack + 1
   13658      581286 :          packed_data(ipack) = pack_tmp
   13659      581286 :          data_tmp = full_data(idata)
   13660      581286 :          pack_tmp = ISHFT(data_tmp, 60)
   13661      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13662      581286 :          idata = idata + 1
   13663      581286 :          data_tmp = full_data(idata)
   13664      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13665      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13666      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13667      581286 :          idata = idata + 1
   13668      581286 :          data_tmp = full_data(idata)
   13669      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13670      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13671      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13672      581286 :          idata = idata + 1
   13673      581286 :          data_tmp = full_data(idata)
   13674      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13675      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13676      581286 :          pack_tmp = ISHFT(pack_tmp, 0)
   13677      581286 :          idata = idata + 1
   13678      581286 :          data_tmp = full_data(idata)
   13679             :          data_tmp = ISHFT(data_tmp, 44)
   13680      581286 :          data_tmp = IAND(data_tmp, mask_left(0))
   13681      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13682      581286 :          ipack = ipack + 1
   13683      581286 :          packed_data(ipack) = pack_tmp
   13684      581286 :          data_tmp = full_data(idata)
   13685      581286 :          pack_tmp = ISHFT(data_tmp, 44)
   13686      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13687      581286 :          idata = idata + 1
   13688      581286 :          data_tmp = full_data(idata)
   13689      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13690      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13691      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13692      581286 :          idata = idata + 1
   13693      581286 :          data_tmp = full_data(idata)
   13694      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13695      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13696      581286 :          pack_tmp = ISHFT(pack_tmp, -4)
   13697      581286 :          idata = idata + 1
   13698      581286 :          data_tmp = full_data(idata)
   13699      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13700      581286 :          data_tmp = IAND(data_tmp, mask_left(4))
   13701      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13702      581286 :          ipack = ipack + 1
   13703      581286 :          packed_data(ipack) = pack_tmp
   13704      581286 :          data_tmp = full_data(idata)
   13705      581286 :          pack_tmp = ISHFT(data_tmp, 48)
   13706      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13707      581286 :          idata = idata + 1
   13708      581286 :          data_tmp = full_data(idata)
   13709      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13710      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13711      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13712      581286 :          idata = idata + 1
   13713      581286 :          data_tmp = full_data(idata)
   13714      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13715      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13716      581286 :          pack_tmp = ISHFT(pack_tmp, -8)
   13717      581286 :          idata = idata + 1
   13718      581286 :          data_tmp = full_data(idata)
   13719      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13720      581286 :          data_tmp = IAND(data_tmp, mask_left(8))
   13721      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13722      581286 :          ipack = ipack + 1
   13723      581286 :          packed_data(ipack) = pack_tmp
   13724      581286 :          data_tmp = full_data(idata)
   13725      581286 :          pack_tmp = ISHFT(data_tmp, 52)
   13726      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13727      581286 :          idata = idata + 1
   13728      581286 :          data_tmp = full_data(idata)
   13729      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13730      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13731      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13732      581286 :          idata = idata + 1
   13733      581286 :          data_tmp = full_data(idata)
   13734      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13735      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13736      581286 :          pack_tmp = ISHFT(pack_tmp, -12)
   13737      581286 :          idata = idata + 1
   13738      581286 :          data_tmp = full_data(idata)
   13739      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13740      581286 :          data_tmp = IAND(data_tmp, mask_left(12))
   13741      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13742      581286 :          ipack = ipack + 1
   13743      581286 :          packed_data(ipack) = pack_tmp
   13744      581286 :          data_tmp = full_data(idata)
   13745      581286 :          pack_tmp = ISHFT(data_tmp, 56)
   13746      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13747      581286 :          idata = idata + 1
   13748      581286 :          data_tmp = full_data(idata)
   13749      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13750      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13751      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13752      581286 :          idata = idata + 1
   13753      581286 :          data_tmp = full_data(idata)
   13754      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13755      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13756      581286 :          pack_tmp = ISHFT(pack_tmp, -16)
   13757      581286 :          idata = idata + 1
   13758      581286 :          data_tmp = full_data(idata)
   13759      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13760      581286 :          data_tmp = IAND(data_tmp, mask_left(16))
   13761      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13762      581286 :          ipack = ipack + 1
   13763      581286 :          packed_data(ipack) = pack_tmp
   13764      581286 :          data_tmp = full_data(idata)
   13765      581286 :          pack_tmp = ISHFT(data_tmp, 60)
   13766      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13767      581286 :          idata = idata + 1
   13768      581286 :          data_tmp = full_data(idata)
   13769      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13770      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13771      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13772      581286 :          idata = idata + 1
   13773      581286 :          data_tmp = full_data(idata)
   13774      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13775      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13776      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13777      581286 :          idata = idata + 1
   13778      581286 :          data_tmp = full_data(idata)
   13779      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13780      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13781      581286 :          pack_tmp = ISHFT(pack_tmp, 0)
   13782      581286 :          idata = idata + 1
   13783      581286 :          data_tmp = full_data(idata)
   13784             :          data_tmp = ISHFT(data_tmp, 44)
   13785      581286 :          data_tmp = IAND(data_tmp, mask_left(0))
   13786      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13787      581286 :          ipack = ipack + 1
   13788      581286 :          packed_data(ipack) = pack_tmp
   13789      581286 :          data_tmp = full_data(idata)
   13790      581286 :          pack_tmp = ISHFT(data_tmp, 44)
   13791      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13792      581286 :          idata = idata + 1
   13793      581286 :          data_tmp = full_data(idata)
   13794      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13795      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13796      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13797      581286 :          idata = idata + 1
   13798      581286 :          data_tmp = full_data(idata)
   13799      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13800      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13801      581286 :          pack_tmp = ISHFT(pack_tmp, -4)
   13802      581286 :          idata = idata + 1
   13803      581286 :          data_tmp = full_data(idata)
   13804      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13805      581286 :          data_tmp = IAND(data_tmp, mask_left(4))
   13806      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13807      581286 :          ipack = ipack + 1
   13808      581286 :          packed_data(ipack) = pack_tmp
   13809      581286 :          data_tmp = full_data(idata)
   13810      581286 :          pack_tmp = ISHFT(data_tmp, 48)
   13811      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13812      581286 :          idata = idata + 1
   13813      581286 :          data_tmp = full_data(idata)
   13814      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13815      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13816      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13817      581286 :          idata = idata + 1
   13818      581286 :          data_tmp = full_data(idata)
   13819      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13820      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13821      581286 :          pack_tmp = ISHFT(pack_tmp, -8)
   13822      581286 :          idata = idata + 1
   13823      581286 :          data_tmp = full_data(idata)
   13824      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13825      581286 :          data_tmp = IAND(data_tmp, mask_left(8))
   13826      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13827      581286 :          ipack = ipack + 1
   13828      581286 :          packed_data(ipack) = pack_tmp
   13829      581286 :          data_tmp = full_data(idata)
   13830      581286 :          pack_tmp = ISHFT(data_tmp, 52)
   13831      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13832      581286 :          idata = idata + 1
   13833      581286 :          data_tmp = full_data(idata)
   13834      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13835      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13836      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13837      581286 :          idata = idata + 1
   13838      581286 :          data_tmp = full_data(idata)
   13839      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13840      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13841      581286 :          pack_tmp = ISHFT(pack_tmp, -12)
   13842      581286 :          idata = idata + 1
   13843      581286 :          data_tmp = full_data(idata)
   13844      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13845      581286 :          data_tmp = IAND(data_tmp, mask_left(12))
   13846      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13847      581286 :          ipack = ipack + 1
   13848      581286 :          packed_data(ipack) = pack_tmp
   13849      581286 :          data_tmp = full_data(idata)
   13850      581286 :          pack_tmp = ISHFT(data_tmp, 56)
   13851      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13852      581286 :          idata = idata + 1
   13853      581286 :          data_tmp = full_data(idata)
   13854      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13855      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13856      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13857      581286 :          idata = idata + 1
   13858      581286 :          data_tmp = full_data(idata)
   13859      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13860      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13861      581286 :          pack_tmp = ISHFT(pack_tmp, -16)
   13862      581286 :          idata = idata + 1
   13863      581286 :          data_tmp = full_data(idata)
   13864      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13865      581286 :          data_tmp = IAND(data_tmp, mask_left(16))
   13866      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13867      581286 :          ipack = ipack + 1
   13868      581286 :          packed_data(ipack) = pack_tmp
   13869      581286 :          data_tmp = full_data(idata)
   13870      581286 :          pack_tmp = ISHFT(data_tmp, 60)
   13871      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13872      581286 :          idata = idata + 1
   13873      581286 :          data_tmp = full_data(idata)
   13874      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13875      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13876      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13877      581286 :          idata = idata + 1
   13878      581286 :          data_tmp = full_data(idata)
   13879      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13880      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13881      581286 :          pack_tmp = ISHFT(pack_tmp, -20)
   13882      581286 :          idata = idata + 1
   13883      581286 :          data_tmp = full_data(idata)
   13884      581286 :          data_tmp = ISHFT(data_tmp, 44)
   13885      581286 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13886             :          pack_tmp = ISHFT(pack_tmp, 0)
   13887      581286 :          pack_tmp = ISHFT(pack_tmp, 0)
   13888      581286 :          ipack = ipack + 1
   13889      581674 :          packed_data(ipack) = pack_tmp
   13890             :       END DO
   13891       40705 :       IF (Ndata_rep < Ndata) THEN
   13892        7284 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   13893             :       END IF
   13894       40705 :    END SUBROUTINE ints2bits_20
   13895             : 
   13896             : ! **************************************************************************************************
   13897             : !> \brief ...
   13898             : !> \param Ndata ...
   13899             : !> \param packed_data ...
   13900             : !> \param full_data ...
   13901             : ! **************************************************************************************************
   13902      278809 :    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      278809 :       ipack = 0
   13913      278809 :       idata = 0
   13914      278809 :       pack_tmp = 0
   13915      278809 :       Ndata_rep = (Ndata/64)*64
   13916      278809 :       DO kdata = 1, Ndata_rep, 64
   13917     3739272 :          idata = idata + 1
   13918     3739272 :          data_tmp = ISHFT(pack_tmp, 20)
   13919     3739272 :          ipack = ipack + 1
   13920     3739272 :          pack_tmp = packed_data(ipack)
   13921     3739272 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   13922     3739272 :          pack_tmp = ISHFT(pack_tmp, -20)
   13923     3739272 :          idata = idata + 1
   13924     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13925     3739272 :          full_data(idata) = data_tmp
   13926     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13927     3739272 :          idata = idata + 1
   13928     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13929     3739272 :          full_data(idata) = data_tmp
   13930     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13931     3739272 :          idata = idata + 1
   13932     3739272 :          data_tmp = ISHFT(pack_tmp, 16)
   13933     3739272 :          ipack = ipack + 1
   13934     3739272 :          pack_tmp = packed_data(ipack)
   13935     3739272 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   13936     3739272 :          pack_tmp = ISHFT(pack_tmp, -16)
   13937     3739272 :          idata = idata + 1
   13938     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13939     3739272 :          full_data(idata) = data_tmp
   13940     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13941     3739272 :          idata = idata + 1
   13942     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13943     3739272 :          full_data(idata) = data_tmp
   13944     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13945     3739272 :          idata = idata + 1
   13946     3739272 :          data_tmp = ISHFT(pack_tmp, 12)
   13947     3739272 :          ipack = ipack + 1
   13948     3739272 :          pack_tmp = packed_data(ipack)
   13949     3739272 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   13950     3739272 :          pack_tmp = ISHFT(pack_tmp, -12)
   13951     3739272 :          idata = idata + 1
   13952     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13953     3739272 :          full_data(idata) = data_tmp
   13954     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13955     3739272 :          idata = idata + 1
   13956     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13957     3739272 :          full_data(idata) = data_tmp
   13958     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13959     3739272 :          idata = idata + 1
   13960     3739272 :          data_tmp = ISHFT(pack_tmp, 8)
   13961     3739272 :          ipack = ipack + 1
   13962     3739272 :          pack_tmp = packed_data(ipack)
   13963     3739272 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   13964     3739272 :          pack_tmp = ISHFT(pack_tmp, -8)
   13965     3739272 :          idata = idata + 1
   13966     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13967     3739272 :          full_data(idata) = data_tmp
   13968     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13969     3739272 :          idata = idata + 1
   13970     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13971     3739272 :          full_data(idata) = data_tmp
   13972     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13973     3739272 :          idata = idata + 1
   13974     3739272 :          data_tmp = ISHFT(pack_tmp, 4)
   13975     3739272 :          ipack = ipack + 1
   13976     3739272 :          pack_tmp = packed_data(ipack)
   13977     3739272 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   13978     3739272 :          pack_tmp = ISHFT(pack_tmp, -4)
   13979     3739272 :          idata = idata + 1
   13980     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13981     3739272 :          full_data(idata) = data_tmp
   13982     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13983     3739272 :          idata = idata + 1
   13984     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13985     3739272 :          full_data(idata) = data_tmp
   13986     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13987     3739272 :          idata = idata + 1
   13988     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13989     3739272 :          full_data(idata) = data_tmp
   13990     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13991     3739272 :          idata = idata + 1
   13992     3739272 :          data_tmp = ISHFT(pack_tmp, 20)
   13993     3739272 :          ipack = ipack + 1
   13994     3739272 :          pack_tmp = packed_data(ipack)
   13995     3739272 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   13996     3739272 :          pack_tmp = ISHFT(pack_tmp, -20)
   13997     3739272 :          idata = idata + 1
   13998     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13999     3739272 :          full_data(idata) = data_tmp
   14000     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14001     3739272 :          idata = idata + 1
   14002     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14003     3739272 :          full_data(idata) = data_tmp
   14004     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14005     3739272 :          idata = idata + 1
   14006     3739272 :          data_tmp = ISHFT(pack_tmp, 16)
   14007     3739272 :          ipack = ipack + 1
   14008     3739272 :          pack_tmp = packed_data(ipack)
   14009     3739272 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   14010     3739272 :          pack_tmp = ISHFT(pack_tmp, -16)
   14011     3739272 :          idata = idata + 1
   14012     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14013     3739272 :          full_data(idata) = data_tmp
   14014     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14015     3739272 :          idata = idata + 1
   14016     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14017     3739272 :          full_data(idata) = data_tmp
   14018     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14019     3739272 :          idata = idata + 1
   14020     3739272 :          data_tmp = ISHFT(pack_tmp, 12)
   14021     3739272 :          ipack = ipack + 1
   14022     3739272 :          pack_tmp = packed_data(ipack)
   14023     3739272 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   14024     3739272 :          pack_tmp = ISHFT(pack_tmp, -12)
   14025     3739272 :          idata = idata + 1
   14026     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14027     3739272 :          full_data(idata) = data_tmp
   14028     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14029     3739272 :          idata = idata + 1
   14030     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14031     3739272 :          full_data(idata) = data_tmp
   14032     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14033     3739272 :          idata = idata + 1
   14034     3739272 :          data_tmp = ISHFT(pack_tmp, 8)
   14035     3739272 :          ipack = ipack + 1
   14036     3739272 :          pack_tmp = packed_data(ipack)
   14037     3739272 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   14038     3739272 :          pack_tmp = ISHFT(pack_tmp, -8)
   14039     3739272 :          idata = idata + 1
   14040     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14041     3739272 :          full_data(idata) = data_tmp
   14042     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14043     3739272 :          idata = idata + 1
   14044     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14045     3739272 :          full_data(idata) = data_tmp
   14046     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14047     3739272 :          idata = idata + 1
   14048     3739272 :          data_tmp = ISHFT(pack_tmp, 4)
   14049     3739272 :          ipack = ipack + 1
   14050     3739272 :          pack_tmp = packed_data(ipack)
   14051     3739272 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   14052     3739272 :          pack_tmp = ISHFT(pack_tmp, -4)
   14053     3739272 :          idata = idata + 1
   14054     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14055     3739272 :          full_data(idata) = data_tmp
   14056     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14057     3739272 :          idata = idata + 1
   14058     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14059     3739272 :          full_data(idata) = data_tmp
   14060     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14061     3739272 :          idata = idata + 1
   14062     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14063     3739272 :          full_data(idata) = data_tmp
   14064     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14065     3739272 :          idata = idata + 1
   14066     3739272 :          data_tmp = ISHFT(pack_tmp, 20)
   14067     3739272 :          ipack = ipack + 1
   14068     3739272 :          pack_tmp = packed_data(ipack)
   14069     3739272 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   14070     3739272 :          pack_tmp = ISHFT(pack_tmp, -20)
   14071     3739272 :          idata = idata + 1
   14072     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14073     3739272 :          full_data(idata) = data_tmp
   14074     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14075     3739272 :          idata = idata + 1
   14076     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14077     3739272 :          full_data(idata) = data_tmp
   14078     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14079     3739272 :          idata = idata + 1
   14080     3739272 :          data_tmp = ISHFT(pack_tmp, 16)
   14081     3739272 :          ipack = ipack + 1
   14082     3739272 :          pack_tmp = packed_data(ipack)
   14083     3739272 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   14084     3739272 :          pack_tmp = ISHFT(pack_tmp, -16)
   14085     3739272 :          idata = idata + 1
   14086     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14087     3739272 :          full_data(idata) = data_tmp
   14088     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14089     3739272 :          idata = idata + 1
   14090     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14091     3739272 :          full_data(idata) = data_tmp
   14092     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14093     3739272 :          idata = idata + 1
   14094     3739272 :          data_tmp = ISHFT(pack_tmp, 12)
   14095     3739272 :          ipack = ipack + 1
   14096     3739272 :          pack_tmp = packed_data(ipack)
   14097     3739272 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   14098     3739272 :          pack_tmp = ISHFT(pack_tmp, -12)
   14099     3739272 :          idata = idata + 1
   14100     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14101     3739272 :          full_data(idata) = data_tmp
   14102     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14103     3739272 :          idata = idata + 1
   14104     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14105     3739272 :          full_data(idata) = data_tmp
   14106     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14107     3739272 :          idata = idata + 1
   14108     3739272 :          data_tmp = ISHFT(pack_tmp, 8)
   14109     3739272 :          ipack = ipack + 1
   14110     3739272 :          pack_tmp = packed_data(ipack)
   14111     3739272 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   14112     3739272 :          pack_tmp = ISHFT(pack_tmp, -8)
   14113     3739272 :          idata = idata + 1
   14114     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14115     3739272 :          full_data(idata) = data_tmp
   14116     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14117     3739272 :          idata = idata + 1
   14118     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14119     3739272 :          full_data(idata) = data_tmp
   14120     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14121     3739272 :          idata = idata + 1
   14122     3739272 :          data_tmp = ISHFT(pack_tmp, 4)
   14123     3739272 :          ipack = ipack + 1
   14124     3739272 :          pack_tmp = packed_data(ipack)
   14125     3739272 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   14126     3739272 :          pack_tmp = ISHFT(pack_tmp, -4)
   14127     3739272 :          idata = idata + 1
   14128     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14129     3739272 :          full_data(idata) = data_tmp
   14130     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14131     3739272 :          idata = idata + 1
   14132     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14133     3739272 :          full_data(idata) = data_tmp
   14134     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14135     3739272 :          idata = idata + 1
   14136     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14137     3739272 :          full_data(idata) = data_tmp
   14138     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14139     3739272 :          idata = idata + 1
   14140     3739272 :          data_tmp = ISHFT(pack_tmp, 20)
   14141     3739272 :          ipack = ipack + 1
   14142     3739272 :          pack_tmp = packed_data(ipack)
   14143     3739272 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   14144     3739272 :          pack_tmp = ISHFT(pack_tmp, -20)
   14145     3739272 :          idata = idata + 1
   14146     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14147     3739272 :          full_data(idata) = data_tmp
   14148     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14149     3739272 :          idata = idata + 1
   14150     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14151     3739272 :          full_data(idata) = data_tmp
   14152     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14153     3739272 :          idata = idata + 1
   14154     3739272 :          data_tmp = ISHFT(pack_tmp, 16)
   14155     3739272 :          ipack = ipack + 1
   14156     3739272 :          pack_tmp = packed_data(ipack)
   14157     3739272 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   14158     3739272 :          pack_tmp = ISHFT(pack_tmp, -16)
   14159     3739272 :          idata = idata + 1
   14160     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14161     3739272 :          full_data(idata) = data_tmp
   14162     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14163     3739272 :          idata = idata + 1
   14164     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14165     3739272 :          full_data(idata) = data_tmp
   14166     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14167     3739272 :          idata = idata + 1
   14168     3739272 :          data_tmp = ISHFT(pack_tmp, 12)
   14169     3739272 :          ipack = ipack + 1
   14170     3739272 :          pack_tmp = packed_data(ipack)
   14171     3739272 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   14172     3739272 :          pack_tmp = ISHFT(pack_tmp, -12)
   14173     3739272 :          idata = idata + 1
   14174     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14175     3739272 :          full_data(idata) = data_tmp
   14176     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14177     3739272 :          idata = idata + 1
   14178     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14179     3739272 :          full_data(idata) = data_tmp
   14180     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14181     3739272 :          idata = idata + 1
   14182     3739272 :          data_tmp = ISHFT(pack_tmp, 8)
   14183     3739272 :          ipack = ipack + 1
   14184     3739272 :          pack_tmp = packed_data(ipack)
   14185     3739272 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   14186     3739272 :          pack_tmp = ISHFT(pack_tmp, -8)
   14187     3739272 :          idata = idata + 1
   14188     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14189     3739272 :          full_data(idata) = data_tmp
   14190     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14191     3739272 :          idata = idata + 1
   14192     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14193     3739272 :          full_data(idata) = data_tmp
   14194     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14195     3739272 :          idata = idata + 1
   14196     3739272 :          data_tmp = ISHFT(pack_tmp, 4)
   14197     3739272 :          ipack = ipack + 1
   14198     3739272 :          pack_tmp = packed_data(ipack)
   14199     3739272 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   14200     3739272 :          pack_tmp = ISHFT(pack_tmp, -4)
   14201     3739272 :          idata = idata + 1
   14202     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14203     3739272 :          full_data(idata) = data_tmp
   14204     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14205     3739272 :          idata = idata + 1
   14206     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14207     3739272 :          full_data(idata) = data_tmp
   14208     3739272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14209     3739272 :          idata = idata + 1
   14210     3739272 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14211     3739272 :          full_data(idata) = data_tmp
   14212     3743054 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14213             :       END DO
   14214      278809 :       IF (Ndata_rep < Ndata) THEN
   14215       76496 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   14216             :       END IF
   14217      278809 :    END SUBROUTINE bits2ints_20
   14218             : 
   14219             : ! **************************************************************************************************
   14220             : !> \brief ...
   14221             : !> \param Ndata ...
   14222             : !> \param packed_data ...
   14223             : !> \param full_data ...
   14224             : ! **************************************************************************************************
   14225       28740 :    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       28740 :       idata = 0
   14236       28740 :       ipack = 0
   14237       28740 :       Ndata_rep = (Ndata/64)*64
   14238       28740 :       DO kdata = 1, Ndata_rep, 64
   14239      437281 :          pack_tmp = 0
   14240      437281 :          idata = idata + 1
   14241      437281 :          data_tmp = full_data(idata)
   14242      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14243      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14244      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14245      437281 :          idata = idata + 1
   14246      437281 :          data_tmp = full_data(idata)
   14247      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14248      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14249      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14250      437281 :          idata = idata + 1
   14251      437281 :          data_tmp = full_data(idata)
   14252      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14253      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14254      437281 :          pack_tmp = ISHFT(pack_tmp, -1)
   14255      437281 :          idata = idata + 1
   14256      437281 :          data_tmp = full_data(idata)
   14257      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14258      437281 :          data_tmp = IAND(data_tmp, mask_left(1))
   14259      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14260      437281 :          ipack = ipack + 1
   14261      437281 :          packed_data(ipack) = pack_tmp
   14262      437281 :          data_tmp = full_data(idata)
   14263      437281 :          pack_tmp = ISHFT(data_tmp, 44)
   14264      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14265      437281 :          idata = idata + 1
   14266      437281 :          data_tmp = full_data(idata)
   14267      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14268      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14269      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14270      437281 :          idata = idata + 1
   14271      437281 :          data_tmp = full_data(idata)
   14272      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14273      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14274      437281 :          pack_tmp = ISHFT(pack_tmp, -2)
   14275      437281 :          idata = idata + 1
   14276      437281 :          data_tmp = full_data(idata)
   14277      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14278      437281 :          data_tmp = IAND(data_tmp, mask_left(2))
   14279      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14280      437281 :          ipack = ipack + 1
   14281      437281 :          packed_data(ipack) = pack_tmp
   14282      437281 :          data_tmp = full_data(idata)
   14283      437281 :          pack_tmp = ISHFT(data_tmp, 45)
   14284      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14285      437281 :          idata = idata + 1
   14286      437281 :          data_tmp = full_data(idata)
   14287      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14288      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14289      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14290      437281 :          idata = idata + 1
   14291      437281 :          data_tmp = full_data(idata)
   14292      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14293      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14294      437281 :          pack_tmp = ISHFT(pack_tmp, -3)
   14295      437281 :          idata = idata + 1
   14296      437281 :          data_tmp = full_data(idata)
   14297      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14298      437281 :          data_tmp = IAND(data_tmp, mask_left(3))
   14299      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14300      437281 :          ipack = ipack + 1
   14301      437281 :          packed_data(ipack) = pack_tmp
   14302      437281 :          data_tmp = full_data(idata)
   14303      437281 :          pack_tmp = ISHFT(data_tmp, 46)
   14304      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14305      437281 :          idata = idata + 1
   14306      437281 :          data_tmp = full_data(idata)
   14307      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14308      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14309      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14310      437281 :          idata = idata + 1
   14311      437281 :          data_tmp = full_data(idata)
   14312      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14313      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14314      437281 :          pack_tmp = ISHFT(pack_tmp, -4)
   14315      437281 :          idata = idata + 1
   14316      437281 :          data_tmp = full_data(idata)
   14317      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14318      437281 :          data_tmp = IAND(data_tmp, mask_left(4))
   14319      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14320      437281 :          ipack = ipack + 1
   14321      437281 :          packed_data(ipack) = pack_tmp
   14322      437281 :          data_tmp = full_data(idata)
   14323      437281 :          pack_tmp = ISHFT(data_tmp, 47)
   14324      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14325      437281 :          idata = idata + 1
   14326      437281 :          data_tmp = full_data(idata)
   14327      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14328      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14329      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14330      437281 :          idata = idata + 1
   14331      437281 :          data_tmp = full_data(idata)
   14332      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14333      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14334      437281 :          pack_tmp = ISHFT(pack_tmp, -5)
   14335      437281 :          idata = idata + 1
   14336      437281 :          data_tmp = full_data(idata)
   14337      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14338      437281 :          data_tmp = IAND(data_tmp, mask_left(5))
   14339      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14340      437281 :          ipack = ipack + 1
   14341      437281 :          packed_data(ipack) = pack_tmp
   14342      437281 :          data_tmp = full_data(idata)
   14343      437281 :          pack_tmp = ISHFT(data_tmp, 48)
   14344      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14345      437281 :          idata = idata + 1
   14346      437281 :          data_tmp = full_data(idata)
   14347      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14348      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14349      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14350      437281 :          idata = idata + 1
   14351      437281 :          data_tmp = full_data(idata)
   14352      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14353      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14354      437281 :          pack_tmp = ISHFT(pack_tmp, -6)
   14355      437281 :          idata = idata + 1
   14356      437281 :          data_tmp = full_data(idata)
   14357      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14358      437281 :          data_tmp = IAND(data_tmp, mask_left(6))
   14359      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14360      437281 :          ipack = ipack + 1
   14361      437281 :          packed_data(ipack) = pack_tmp
   14362      437281 :          data_tmp = full_data(idata)
   14363      437281 :          pack_tmp = ISHFT(data_tmp, 49)
   14364      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14365      437281 :          idata = idata + 1
   14366      437281 :          data_tmp = full_data(idata)
   14367      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14368      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14369      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14370      437281 :          idata = idata + 1
   14371      437281 :          data_tmp = full_data(idata)
   14372      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14373      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14374      437281 :          pack_tmp = ISHFT(pack_tmp, -7)
   14375      437281 :          idata = idata + 1
   14376      437281 :          data_tmp = full_data(idata)
   14377      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14378      437281 :          data_tmp = IAND(data_tmp, mask_left(7))
   14379      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14380      437281 :          ipack = ipack + 1
   14381      437281 :          packed_data(ipack) = pack_tmp
   14382      437281 :          data_tmp = full_data(idata)
   14383      437281 :          pack_tmp = ISHFT(data_tmp, 50)
   14384      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14385      437281 :          idata = idata + 1
   14386      437281 :          data_tmp = full_data(idata)
   14387      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14388      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14389      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14390      437281 :          idata = idata + 1
   14391      437281 :          data_tmp = full_data(idata)
   14392      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14393      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14394      437281 :          pack_tmp = ISHFT(pack_tmp, -8)
   14395      437281 :          idata = idata + 1
   14396      437281 :          data_tmp = full_data(idata)
   14397      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14398      437281 :          data_tmp = IAND(data_tmp, mask_left(8))
   14399      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14400      437281 :          ipack = ipack + 1
   14401      437281 :          packed_data(ipack) = pack_tmp
   14402      437281 :          data_tmp = full_data(idata)
   14403      437281 :          pack_tmp = ISHFT(data_tmp, 51)
   14404      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14405      437281 :          idata = idata + 1
   14406      437281 :          data_tmp = full_data(idata)
   14407      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14408      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14409      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14410      437281 :          idata = idata + 1
   14411      437281 :          data_tmp = full_data(idata)
   14412      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14413      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14414      437281 :          pack_tmp = ISHFT(pack_tmp, -9)
   14415      437281 :          idata = idata + 1
   14416      437281 :          data_tmp = full_data(idata)
   14417      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14418      437281 :          data_tmp = IAND(data_tmp, mask_left(9))
   14419      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14420      437281 :          ipack = ipack + 1
   14421      437281 :          packed_data(ipack) = pack_tmp
   14422      437281 :          data_tmp = full_data(idata)
   14423      437281 :          pack_tmp = ISHFT(data_tmp, 52)
   14424      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14425      437281 :          idata = idata + 1
   14426      437281 :          data_tmp = full_data(idata)
   14427      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14428      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14429      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14430      437281 :          idata = idata + 1
   14431      437281 :          data_tmp = full_data(idata)
   14432      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14433      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14434      437281 :          pack_tmp = ISHFT(pack_tmp, -10)
   14435      437281 :          idata = idata + 1
   14436      437281 :          data_tmp = full_data(idata)
   14437      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14438      437281 :          data_tmp = IAND(data_tmp, mask_left(10))
   14439      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14440      437281 :          ipack = ipack + 1
   14441      437281 :          packed_data(ipack) = pack_tmp
   14442      437281 :          data_tmp = full_data(idata)
   14443      437281 :          pack_tmp = ISHFT(data_tmp, 53)
   14444      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14445      437281 :          idata = idata + 1
   14446      437281 :          data_tmp = full_data(idata)
   14447      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14448      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14449      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14450      437281 :          idata = idata + 1
   14451      437281 :          data_tmp = full_data(idata)
   14452      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14453      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14454      437281 :          pack_tmp = ISHFT(pack_tmp, -11)
   14455      437281 :          idata = idata + 1
   14456      437281 :          data_tmp = full_data(idata)
   14457      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14458      437281 :          data_tmp = IAND(data_tmp, mask_left(11))
   14459      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14460      437281 :          ipack = ipack + 1
   14461      437281 :          packed_data(ipack) = pack_tmp
   14462      437281 :          data_tmp = full_data(idata)
   14463      437281 :          pack_tmp = ISHFT(data_tmp, 54)
   14464      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14465      437281 :          idata = idata + 1
   14466      437281 :          data_tmp = full_data(idata)
   14467      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14468      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14469      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14470      437281 :          idata = idata + 1
   14471      437281 :          data_tmp = full_data(idata)
   14472      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14473      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14474      437281 :          pack_tmp = ISHFT(pack_tmp, -12)
   14475      437281 :          idata = idata + 1
   14476      437281 :          data_tmp = full_data(idata)
   14477      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14478      437281 :          data_tmp = IAND(data_tmp, mask_left(12))
   14479      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14480      437281 :          ipack = ipack + 1
   14481      437281 :          packed_data(ipack) = pack_tmp
   14482      437281 :          data_tmp = full_data(idata)
   14483      437281 :          pack_tmp = ISHFT(data_tmp, 55)
   14484      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14485      437281 :          idata = idata + 1
   14486      437281 :          data_tmp = full_data(idata)
   14487      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14488      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14489      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14490      437281 :          idata = idata + 1
   14491      437281 :          data_tmp = full_data(idata)
   14492      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14493      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14494      437281 :          pack_tmp = ISHFT(pack_tmp, -13)
   14495      437281 :          idata = idata + 1
   14496      437281 :          data_tmp = full_data(idata)
   14497      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14498      437281 :          data_tmp = IAND(data_tmp, mask_left(13))
   14499      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14500      437281 :          ipack = ipack + 1
   14501      437281 :          packed_data(ipack) = pack_tmp
   14502      437281 :          data_tmp = full_data(idata)
   14503      437281 :          pack_tmp = ISHFT(data_tmp, 56)
   14504      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14505      437281 :          idata = idata + 1
   14506      437281 :          data_tmp = full_data(idata)
   14507      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14508      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14509      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14510      437281 :          idata = idata + 1
   14511      437281 :          data_tmp = full_data(idata)
   14512      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14513      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14514      437281 :          pack_tmp = ISHFT(pack_tmp, -14)
   14515      437281 :          idata = idata + 1
   14516      437281 :          data_tmp = full_data(idata)
   14517      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14518      437281 :          data_tmp = IAND(data_tmp, mask_left(14))
   14519      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14520      437281 :          ipack = ipack + 1
   14521      437281 :          packed_data(ipack) = pack_tmp
   14522      437281 :          data_tmp = full_data(idata)
   14523      437281 :          pack_tmp = ISHFT(data_tmp, 57)
   14524      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14525      437281 :          idata = idata + 1
   14526      437281 :          data_tmp = full_data(idata)
   14527      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14528      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14529      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14530      437281 :          idata = idata + 1
   14531      437281 :          data_tmp = full_data(idata)
   14532      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14533      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14534      437281 :          pack_tmp = ISHFT(pack_tmp, -15)
   14535      437281 :          idata = idata + 1
   14536      437281 :          data_tmp = full_data(idata)
   14537      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14538      437281 :          data_tmp = IAND(data_tmp, mask_left(15))
   14539      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14540      437281 :          ipack = ipack + 1
   14541      437281 :          packed_data(ipack) = pack_tmp
   14542      437281 :          data_tmp = full_data(idata)
   14543      437281 :          pack_tmp = ISHFT(data_tmp, 58)
   14544      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14545      437281 :          idata = idata + 1
   14546      437281 :          data_tmp = full_data(idata)
   14547      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14548      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14549      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14550      437281 :          idata = idata + 1
   14551      437281 :          data_tmp = full_data(idata)
   14552      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14553      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14554      437281 :          pack_tmp = ISHFT(pack_tmp, -16)
   14555      437281 :          idata = idata + 1
   14556      437281 :          data_tmp = full_data(idata)
   14557      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14558      437281 :          data_tmp = IAND(data_tmp, mask_left(16))
   14559      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14560      437281 :          ipack = ipack + 1
   14561      437281 :          packed_data(ipack) = pack_tmp
   14562      437281 :          data_tmp = full_data(idata)
   14563      437281 :          pack_tmp = ISHFT(data_tmp, 59)
   14564      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14565      437281 :          idata = idata + 1
   14566      437281 :          data_tmp = full_data(idata)
   14567      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14568      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14569      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14570      437281 :          idata = idata + 1
   14571      437281 :          data_tmp = full_data(idata)
   14572      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14573      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14574      437281 :          pack_tmp = ISHFT(pack_tmp, -17)
   14575      437281 :          idata = idata + 1
   14576      437281 :          data_tmp = full_data(idata)
   14577      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14578      437281 :          data_tmp = IAND(data_tmp, mask_left(17))
   14579      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14580      437281 :          ipack = ipack + 1
   14581      437281 :          packed_data(ipack) = pack_tmp
   14582      437281 :          data_tmp = full_data(idata)
   14583      437281 :          pack_tmp = ISHFT(data_tmp, 60)
   14584      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14585      437281 :          idata = idata + 1
   14586      437281 :          data_tmp = full_data(idata)
   14587      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14588      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14589      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14590      437281 :          idata = idata + 1
   14591      437281 :          data_tmp = full_data(idata)
   14592      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14593      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14594      437281 :          pack_tmp = ISHFT(pack_tmp, -18)
   14595      437281 :          idata = idata + 1
   14596      437281 :          data_tmp = full_data(idata)
   14597      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14598      437281 :          data_tmp = IAND(data_tmp, mask_left(18))
   14599      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14600      437281 :          ipack = ipack + 1
   14601      437281 :          packed_data(ipack) = pack_tmp
   14602      437281 :          data_tmp = full_data(idata)
   14603      437281 :          pack_tmp = ISHFT(data_tmp, 61)
   14604      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14605      437281 :          idata = idata + 1
   14606      437281 :          data_tmp = full_data(idata)
   14607      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14608      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14609      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14610      437281 :          idata = idata + 1
   14611      437281 :          data_tmp = full_data(idata)
   14612      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14613      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14614      437281 :          pack_tmp = ISHFT(pack_tmp, -19)
   14615      437281 :          idata = idata + 1
   14616      437281 :          data_tmp = full_data(idata)
   14617      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14618      437281 :          data_tmp = IAND(data_tmp, mask_left(19))
   14619      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14620      437281 :          ipack = ipack + 1
   14621      437281 :          packed_data(ipack) = pack_tmp
   14622      437281 :          data_tmp = full_data(idata)
   14623      437281 :          pack_tmp = ISHFT(data_tmp, 62)
   14624      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14625      437281 :          idata = idata + 1
   14626      437281 :          data_tmp = full_data(idata)
   14627      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14628      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14629      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14630      437281 :          idata = idata + 1
   14631      437281 :          data_tmp = full_data(idata)
   14632      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14633      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14634      437281 :          pack_tmp = ISHFT(pack_tmp, -20)
   14635      437281 :          idata = idata + 1
   14636      437281 :          data_tmp = full_data(idata)
   14637      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14638      437281 :          data_tmp = IAND(data_tmp, mask_left(20))
   14639      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14640      437281 :          ipack = ipack + 1
   14641      437281 :          packed_data(ipack) = pack_tmp
   14642      437281 :          data_tmp = full_data(idata)
   14643      437281 :          pack_tmp = ISHFT(data_tmp, 63)
   14644      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14645      437281 :          idata = idata + 1
   14646      437281 :          data_tmp = full_data(idata)
   14647      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14648      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14649      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14650      437281 :          idata = idata + 1
   14651      437281 :          data_tmp = full_data(idata)
   14652      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14653      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14654      437281 :          pack_tmp = ISHFT(pack_tmp, -21)
   14655      437281 :          idata = idata + 1
   14656      437281 :          data_tmp = full_data(idata)
   14657      437281 :          data_tmp = ISHFT(data_tmp, 43)
   14658      437281 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14659             :          pack_tmp = ISHFT(pack_tmp, 0)
   14660      437281 :          pack_tmp = ISHFT(pack_tmp, 0)
   14661      437281 :          ipack = ipack + 1
   14662      437636 :          packed_data(ipack) = pack_tmp
   14663             :       END DO
   14664       28740 :       IF (Ndata_rep < Ndata) THEN
   14665        2654 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   14666             :       END IF
   14667       28740 :    END SUBROUTINE ints2bits_21
   14668             : 
   14669             : ! **************************************************************************************************
   14670             : !> \brief ...
   14671             : !> \param Ndata ...
   14672             : !> \param packed_data ...
   14673             : !> \param full_data ...
   14674             : ! **************************************************************************************************
   14675      145490 :    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      145490 :       ipack = 0
   14686      145490 :       idata = 0
   14687      145490 :       pack_tmp = 0
   14688      145490 :       Ndata_rep = (Ndata/64)*64
   14689      145490 :       DO kdata = 1, Ndata_rep, 64
   14690     2137202 :          idata = idata + 1
   14691     2137202 :          data_tmp = ISHFT(pack_tmp, 21)
   14692     2137202 :          ipack = ipack + 1
   14693     2137202 :          pack_tmp = packed_data(ipack)
   14694     2137202 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   14695     2137202 :          pack_tmp = ISHFT(pack_tmp, -21)
   14696     2137202 :          idata = idata + 1
   14697     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14698     2137202 :          full_data(idata) = data_tmp
   14699     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14700     2137202 :          idata = idata + 1
   14701     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14702     2137202 :          full_data(idata) = data_tmp
   14703     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14704     2137202 :          idata = idata + 1
   14705     2137202 :          data_tmp = ISHFT(pack_tmp, 20)
   14706     2137202 :          ipack = ipack + 1
   14707     2137202 :          pack_tmp = packed_data(ipack)
   14708     2137202 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   14709     2137202 :          pack_tmp = ISHFT(pack_tmp, -20)
   14710     2137202 :          idata = idata + 1
   14711     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14712     2137202 :          full_data(idata) = data_tmp
   14713     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14714     2137202 :          idata = idata + 1
   14715     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14716     2137202 :          full_data(idata) = data_tmp
   14717     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14718     2137202 :          idata = idata + 1
   14719     2137202 :          data_tmp = ISHFT(pack_tmp, 19)
   14720     2137202 :          ipack = ipack + 1
   14721     2137202 :          pack_tmp = packed_data(ipack)
   14722     2137202 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   14723     2137202 :          pack_tmp = ISHFT(pack_tmp, -19)
   14724     2137202 :          idata = idata + 1
   14725     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14726     2137202 :          full_data(idata) = data_tmp
   14727     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14728     2137202 :          idata = idata + 1
   14729     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14730     2137202 :          full_data(idata) = data_tmp
   14731     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14732     2137202 :          idata = idata + 1
   14733     2137202 :          data_tmp = ISHFT(pack_tmp, 18)
   14734     2137202 :          ipack = ipack + 1
   14735     2137202 :          pack_tmp = packed_data(ipack)
   14736     2137202 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   14737     2137202 :          pack_tmp = ISHFT(pack_tmp, -18)
   14738     2137202 :          idata = idata + 1
   14739     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14740     2137202 :          full_data(idata) = data_tmp
   14741     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14742     2137202 :          idata = idata + 1
   14743     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14744     2137202 :          full_data(idata) = data_tmp
   14745     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14746     2137202 :          idata = idata + 1
   14747     2137202 :          data_tmp = ISHFT(pack_tmp, 17)
   14748     2137202 :          ipack = ipack + 1
   14749     2137202 :          pack_tmp = packed_data(ipack)
   14750     2137202 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   14751     2137202 :          pack_tmp = ISHFT(pack_tmp, -17)
   14752     2137202 :          idata = idata + 1
   14753     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14754     2137202 :          full_data(idata) = data_tmp
   14755     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14756     2137202 :          idata = idata + 1
   14757     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14758     2137202 :          full_data(idata) = data_tmp
   14759     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14760     2137202 :          idata = idata + 1
   14761     2137202 :          data_tmp = ISHFT(pack_tmp, 16)
   14762     2137202 :          ipack = ipack + 1
   14763     2137202 :          pack_tmp = packed_data(ipack)
   14764     2137202 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   14765     2137202 :          pack_tmp = ISHFT(pack_tmp, -16)
   14766     2137202 :          idata = idata + 1
   14767     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14768     2137202 :          full_data(idata) = data_tmp
   14769     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14770     2137202 :          idata = idata + 1
   14771     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14772     2137202 :          full_data(idata) = data_tmp
   14773     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14774     2137202 :          idata = idata + 1
   14775     2137202 :          data_tmp = ISHFT(pack_tmp, 15)
   14776     2137202 :          ipack = ipack + 1
   14777     2137202 :          pack_tmp = packed_data(ipack)
   14778     2137202 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   14779     2137202 :          pack_tmp = ISHFT(pack_tmp, -15)
   14780     2137202 :          idata = idata + 1
   14781     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14782     2137202 :          full_data(idata) = data_tmp
   14783     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14784     2137202 :          idata = idata + 1
   14785     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14786     2137202 :          full_data(idata) = data_tmp
   14787     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14788     2137202 :          idata = idata + 1
   14789     2137202 :          data_tmp = ISHFT(pack_tmp, 14)
   14790     2137202 :          ipack = ipack + 1
   14791     2137202 :          pack_tmp = packed_data(ipack)
   14792     2137202 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   14793     2137202 :          pack_tmp = ISHFT(pack_tmp, -14)
   14794     2137202 :          idata = idata + 1
   14795     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14796     2137202 :          full_data(idata) = data_tmp
   14797     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14798     2137202 :          idata = idata + 1
   14799     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14800     2137202 :          full_data(idata) = data_tmp
   14801     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14802     2137202 :          idata = idata + 1
   14803     2137202 :          data_tmp = ISHFT(pack_tmp, 13)
   14804     2137202 :          ipack = ipack + 1
   14805     2137202 :          pack_tmp = packed_data(ipack)
   14806     2137202 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   14807     2137202 :          pack_tmp = ISHFT(pack_tmp, -13)
   14808     2137202 :          idata = idata + 1
   14809     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14810     2137202 :          full_data(idata) = data_tmp
   14811     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14812     2137202 :          idata = idata + 1
   14813     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14814     2137202 :          full_data(idata) = data_tmp
   14815     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14816     2137202 :          idata = idata + 1
   14817     2137202 :          data_tmp = ISHFT(pack_tmp, 12)
   14818     2137202 :          ipack = ipack + 1
   14819     2137202 :          pack_tmp = packed_data(ipack)
   14820     2137202 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   14821     2137202 :          pack_tmp = ISHFT(pack_tmp, -12)
   14822     2137202 :          idata = idata + 1
   14823     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14824     2137202 :          full_data(idata) = data_tmp
   14825     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14826     2137202 :          idata = idata + 1
   14827     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14828     2137202 :          full_data(idata) = data_tmp
   14829     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14830     2137202 :          idata = idata + 1
   14831     2137202 :          data_tmp = ISHFT(pack_tmp, 11)
   14832     2137202 :          ipack = ipack + 1
   14833     2137202 :          pack_tmp = packed_data(ipack)
   14834     2137202 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   14835     2137202 :          pack_tmp = ISHFT(pack_tmp, -11)
   14836     2137202 :          idata = idata + 1
   14837     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14838     2137202 :          full_data(idata) = data_tmp
   14839     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14840     2137202 :          idata = idata + 1
   14841     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14842     2137202 :          full_data(idata) = data_tmp
   14843     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14844     2137202 :          idata = idata + 1
   14845     2137202 :          data_tmp = ISHFT(pack_tmp, 10)
   14846     2137202 :          ipack = ipack + 1
   14847     2137202 :          pack_tmp = packed_data(ipack)
   14848     2137202 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   14849     2137202 :          pack_tmp = ISHFT(pack_tmp, -10)
   14850     2137202 :          idata = idata + 1
   14851     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14852     2137202 :          full_data(idata) = data_tmp
   14853     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14854     2137202 :          idata = idata + 1
   14855     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14856     2137202 :          full_data(idata) = data_tmp
   14857     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14858     2137202 :          idata = idata + 1
   14859     2137202 :          data_tmp = ISHFT(pack_tmp, 9)
   14860     2137202 :          ipack = ipack + 1
   14861     2137202 :          pack_tmp = packed_data(ipack)
   14862     2137202 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   14863     2137202 :          pack_tmp = ISHFT(pack_tmp, -9)
   14864     2137202 :          idata = idata + 1
   14865     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14866     2137202 :          full_data(idata) = data_tmp
   14867     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14868     2137202 :          idata = idata + 1
   14869     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14870     2137202 :          full_data(idata) = data_tmp
   14871     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14872     2137202 :          idata = idata + 1
   14873     2137202 :          data_tmp = ISHFT(pack_tmp, 8)
   14874     2137202 :          ipack = ipack + 1
   14875     2137202 :          pack_tmp = packed_data(ipack)
   14876     2137202 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   14877     2137202 :          pack_tmp = ISHFT(pack_tmp, -8)
   14878     2137202 :          idata = idata + 1
   14879     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14880     2137202 :          full_data(idata) = data_tmp
   14881     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14882     2137202 :          idata = idata + 1
   14883     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14884     2137202 :          full_data(idata) = data_tmp
   14885     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14886     2137202 :          idata = idata + 1
   14887     2137202 :          data_tmp = ISHFT(pack_tmp, 7)
   14888     2137202 :          ipack = ipack + 1
   14889     2137202 :          pack_tmp = packed_data(ipack)
   14890     2137202 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   14891     2137202 :          pack_tmp = ISHFT(pack_tmp, -7)
   14892     2137202 :          idata = idata + 1
   14893     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14894     2137202 :          full_data(idata) = data_tmp
   14895     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14896     2137202 :          idata = idata + 1
   14897     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14898     2137202 :          full_data(idata) = data_tmp
   14899     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14900     2137202 :          idata = idata + 1
   14901     2137202 :          data_tmp = ISHFT(pack_tmp, 6)
   14902     2137202 :          ipack = ipack + 1
   14903     2137202 :          pack_tmp = packed_data(ipack)
   14904     2137202 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   14905     2137202 :          pack_tmp = ISHFT(pack_tmp, -6)
   14906     2137202 :          idata = idata + 1
   14907     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14908     2137202 :          full_data(idata) = data_tmp
   14909     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14910     2137202 :          idata = idata + 1
   14911     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14912     2137202 :          full_data(idata) = data_tmp
   14913     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14914     2137202 :          idata = idata + 1
   14915     2137202 :          data_tmp = ISHFT(pack_tmp, 5)
   14916     2137202 :          ipack = ipack + 1
   14917     2137202 :          pack_tmp = packed_data(ipack)
   14918     2137202 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   14919     2137202 :          pack_tmp = ISHFT(pack_tmp, -5)
   14920     2137202 :          idata = idata + 1
   14921     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14922     2137202 :          full_data(idata) = data_tmp
   14923     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14924     2137202 :          idata = idata + 1
   14925     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14926     2137202 :          full_data(idata) = data_tmp
   14927     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14928     2137202 :          idata = idata + 1
   14929     2137202 :          data_tmp = ISHFT(pack_tmp, 4)
   14930     2137202 :          ipack = ipack + 1
   14931     2137202 :          pack_tmp = packed_data(ipack)
   14932     2137202 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   14933     2137202 :          pack_tmp = ISHFT(pack_tmp, -4)
   14934     2137202 :          idata = idata + 1
   14935     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14936     2137202 :          full_data(idata) = data_tmp
   14937     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14938     2137202 :          idata = idata + 1
   14939     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14940     2137202 :          full_data(idata) = data_tmp
   14941     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14942     2137202 :          idata = idata + 1
   14943     2137202 :          data_tmp = ISHFT(pack_tmp, 3)
   14944     2137202 :          ipack = ipack + 1
   14945     2137202 :          pack_tmp = packed_data(ipack)
   14946     2137202 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   14947     2137202 :          pack_tmp = ISHFT(pack_tmp, -3)
   14948     2137202 :          idata = idata + 1
   14949     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14950     2137202 :          full_data(idata) = data_tmp
   14951     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14952     2137202 :          idata = idata + 1
   14953     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14954     2137202 :          full_data(idata) = data_tmp
   14955     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14956     2137202 :          idata = idata + 1
   14957     2137202 :          data_tmp = ISHFT(pack_tmp, 2)
   14958     2137202 :          ipack = ipack + 1
   14959     2137202 :          pack_tmp = packed_data(ipack)
   14960     2137202 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   14961     2137202 :          pack_tmp = ISHFT(pack_tmp, -2)
   14962     2137202 :          idata = idata + 1
   14963     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14964     2137202 :          full_data(idata) = data_tmp
   14965     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14966     2137202 :          idata = idata + 1
   14967     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14968     2137202 :          full_data(idata) = data_tmp
   14969     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14970     2137202 :          idata = idata + 1
   14971     2137202 :          data_tmp = ISHFT(pack_tmp, 1)
   14972     2137202 :          ipack = ipack + 1
   14973     2137202 :          pack_tmp = packed_data(ipack)
   14974     2137202 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   14975     2137202 :          pack_tmp = ISHFT(pack_tmp, -1)
   14976     2137202 :          idata = idata + 1
   14977     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14978     2137202 :          full_data(idata) = data_tmp
   14979     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14980     2137202 :          idata = idata + 1
   14981     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14982     2137202 :          full_data(idata) = data_tmp
   14983     2137202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14984     2137202 :          idata = idata + 1
   14985     2137202 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14986     2137202 :          full_data(idata) = data_tmp
   14987     2140541 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14988             :       END DO
   14989      145490 :       IF (Ndata_rep < Ndata) THEN
   14990       22428 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   14991             :       END IF
   14992      145490 :    END SUBROUTINE bits2ints_21
   14993             : 
   14994             : ! **************************************************************************************************
   14995             : !> \brief ...
   14996             : !> \param Ndata ...
   14997             : !> \param packed_data ...
   14998             : !> \param full_data ...
   14999             : ! **************************************************************************************************
   15000       28595 :    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       28595 :       idata = 0
   15011       28595 :       ipack = 0
   15012       28595 :       Ndata_rep = (Ndata/64)*64
   15013       28595 :       DO kdata = 1, Ndata_rep, 64
   15014      433618 :          pack_tmp = 0
   15015      433618 :          idata = idata + 1
   15016      433618 :          data_tmp = full_data(idata)
   15017      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15018      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15019      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15020      433618 :          idata = idata + 1
   15021      433618 :          data_tmp = full_data(idata)
   15022      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15023      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15024      433618 :          pack_tmp = ISHFT(pack_tmp, -20)
   15025      433618 :          idata = idata + 1
   15026      433618 :          data_tmp = full_data(idata)
   15027      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15028      433618 :          data_tmp = IAND(data_tmp, mask_left(20))
   15029      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15030      433618 :          ipack = ipack + 1
   15031      433618 :          packed_data(ipack) = pack_tmp
   15032      433618 :          data_tmp = full_data(idata)
   15033      433618 :          pack_tmp = ISHFT(data_tmp, 62)
   15034      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15035      433618 :          idata = idata + 1
   15036      433618 :          data_tmp = full_data(idata)
   15037      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15038      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15039      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15040      433618 :          idata = idata + 1
   15041      433618 :          data_tmp = full_data(idata)
   15042      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15043      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15044      433618 :          pack_tmp = ISHFT(pack_tmp, -18)
   15045      433618 :          idata = idata + 1
   15046      433618 :          data_tmp = full_data(idata)
   15047      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15048      433618 :          data_tmp = IAND(data_tmp, mask_left(18))
   15049      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15050      433618 :          ipack = ipack + 1
   15051      433618 :          packed_data(ipack) = pack_tmp
   15052      433618 :          data_tmp = full_data(idata)
   15053      433618 :          pack_tmp = ISHFT(data_tmp, 60)
   15054      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15055      433618 :          idata = idata + 1
   15056      433618 :          data_tmp = full_data(idata)
   15057      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15058      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15059      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15060      433618 :          idata = idata + 1
   15061      433618 :          data_tmp = full_data(idata)
   15062      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15063      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15064      433618 :          pack_tmp = ISHFT(pack_tmp, -16)
   15065      433618 :          idata = idata + 1
   15066      433618 :          data_tmp = full_data(idata)
   15067      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15068      433618 :          data_tmp = IAND(data_tmp, mask_left(16))
   15069      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15070      433618 :          ipack = ipack + 1
   15071      433618 :          packed_data(ipack) = pack_tmp
   15072      433618 :          data_tmp = full_data(idata)
   15073      433618 :          pack_tmp = ISHFT(data_tmp, 58)
   15074      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15075      433618 :          idata = idata + 1
   15076      433618 :          data_tmp = full_data(idata)
   15077      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15078      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15079      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15080      433618 :          idata = idata + 1
   15081      433618 :          data_tmp = full_data(idata)
   15082      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15083      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15084      433618 :          pack_tmp = ISHFT(pack_tmp, -14)
   15085      433618 :          idata = idata + 1
   15086      433618 :          data_tmp = full_data(idata)
   15087      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15088      433618 :          data_tmp = IAND(data_tmp, mask_left(14))
   15089      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15090      433618 :          ipack = ipack + 1
   15091      433618 :          packed_data(ipack) = pack_tmp
   15092      433618 :          data_tmp = full_data(idata)
   15093      433618 :          pack_tmp = ISHFT(data_tmp, 56)
   15094      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15095      433618 :          idata = idata + 1
   15096      433618 :          data_tmp = full_data(idata)
   15097      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15098      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15099      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15100      433618 :          idata = idata + 1
   15101      433618 :          data_tmp = full_data(idata)
   15102      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15103      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15104      433618 :          pack_tmp = ISHFT(pack_tmp, -12)
   15105      433618 :          idata = idata + 1
   15106      433618 :          data_tmp = full_data(idata)
   15107      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15108      433618 :          data_tmp = IAND(data_tmp, mask_left(12))
   15109      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15110      433618 :          ipack = ipack + 1
   15111      433618 :          packed_data(ipack) = pack_tmp
   15112      433618 :          data_tmp = full_data(idata)
   15113      433618 :          pack_tmp = ISHFT(data_tmp, 54)
   15114      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15115      433618 :          idata = idata + 1
   15116      433618 :          data_tmp = full_data(idata)
   15117      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15118      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15119      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15120      433618 :          idata = idata + 1
   15121      433618 :          data_tmp = full_data(idata)
   15122      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15123      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15124      433618 :          pack_tmp = ISHFT(pack_tmp, -10)
   15125      433618 :          idata = idata + 1
   15126      433618 :          data_tmp = full_data(idata)
   15127      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15128      433618 :          data_tmp = IAND(data_tmp, mask_left(10))
   15129      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15130      433618 :          ipack = ipack + 1
   15131      433618 :          packed_data(ipack) = pack_tmp
   15132      433618 :          data_tmp = full_data(idata)
   15133      433618 :          pack_tmp = ISHFT(data_tmp, 52)
   15134      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15135      433618 :          idata = idata + 1
   15136      433618 :          data_tmp = full_data(idata)
   15137      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15138      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15139      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15140      433618 :          idata = idata + 1
   15141      433618 :          data_tmp = full_data(idata)
   15142      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15143      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15144      433618 :          pack_tmp = ISHFT(pack_tmp, -8)
   15145      433618 :          idata = idata + 1
   15146      433618 :          data_tmp = full_data(idata)
   15147      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15148      433618 :          data_tmp = IAND(data_tmp, mask_left(8))
   15149      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15150      433618 :          ipack = ipack + 1
   15151      433618 :          packed_data(ipack) = pack_tmp
   15152      433618 :          data_tmp = full_data(idata)
   15153      433618 :          pack_tmp = ISHFT(data_tmp, 50)
   15154      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15155      433618 :          idata = idata + 1
   15156      433618 :          data_tmp = full_data(idata)
   15157      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15158      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15159      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15160      433618 :          idata = idata + 1
   15161      433618 :          data_tmp = full_data(idata)
   15162      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15163      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15164      433618 :          pack_tmp = ISHFT(pack_tmp, -6)
   15165      433618 :          idata = idata + 1
   15166      433618 :          data_tmp = full_data(idata)
   15167      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15168      433618 :          data_tmp = IAND(data_tmp, mask_left(6))
   15169      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15170      433618 :          ipack = ipack + 1
   15171      433618 :          packed_data(ipack) = pack_tmp
   15172      433618 :          data_tmp = full_data(idata)
   15173      433618 :          pack_tmp = ISHFT(data_tmp, 48)
   15174      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15175      433618 :          idata = idata + 1
   15176      433618 :          data_tmp = full_data(idata)
   15177      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15178      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15179      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15180      433618 :          idata = idata + 1
   15181      433618 :          data_tmp = full_data(idata)
   15182      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15183      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15184      433618 :          pack_tmp = ISHFT(pack_tmp, -4)
   15185      433618 :          idata = idata + 1
   15186      433618 :          data_tmp = full_data(idata)
   15187      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15188      433618 :          data_tmp = IAND(data_tmp, mask_left(4))
   15189      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15190      433618 :          ipack = ipack + 1
   15191      433618 :          packed_data(ipack) = pack_tmp
   15192      433618 :          data_tmp = full_data(idata)
   15193      433618 :          pack_tmp = ISHFT(data_tmp, 46)
   15194      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15195      433618 :          idata = idata + 1
   15196      433618 :          data_tmp = full_data(idata)
   15197      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15198      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15199      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15200      433618 :          idata = idata + 1
   15201      433618 :          data_tmp = full_data(idata)
   15202      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15203      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15204      433618 :          pack_tmp = ISHFT(pack_tmp, -2)
   15205      433618 :          idata = idata + 1
   15206      433618 :          data_tmp = full_data(idata)
   15207      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15208      433618 :          data_tmp = IAND(data_tmp, mask_left(2))
   15209      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15210      433618 :          ipack = ipack + 1
   15211      433618 :          packed_data(ipack) = pack_tmp
   15212      433618 :          data_tmp = full_data(idata)
   15213      433618 :          pack_tmp = ISHFT(data_tmp, 44)
   15214      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15215      433618 :          idata = idata + 1
   15216      433618 :          data_tmp = full_data(idata)
   15217      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15218      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15219      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15220      433618 :          idata = idata + 1
   15221      433618 :          data_tmp = full_data(idata)
   15222      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15223      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15224      433618 :          pack_tmp = ISHFT(pack_tmp, 0)
   15225      433618 :          idata = idata + 1
   15226      433618 :          data_tmp = full_data(idata)
   15227             :          data_tmp = ISHFT(data_tmp, 42)
   15228      433618 :          data_tmp = IAND(data_tmp, mask_left(0))
   15229      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15230      433618 :          ipack = ipack + 1
   15231      433618 :          packed_data(ipack) = pack_tmp
   15232      433618 :          data_tmp = full_data(idata)
   15233      433618 :          pack_tmp = ISHFT(data_tmp, 42)
   15234      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15235      433618 :          idata = idata + 1
   15236      433618 :          data_tmp = full_data(idata)
   15237      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15238      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15239      433618 :          pack_tmp = ISHFT(pack_tmp, -20)
   15240      433618 :          idata = idata + 1
   15241      433618 :          data_tmp = full_data(idata)
   15242      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15243      433618 :          data_tmp = IAND(data_tmp, mask_left(20))
   15244      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15245      433618 :          ipack = ipack + 1
   15246      433618 :          packed_data(ipack) = pack_tmp
   15247      433618 :          data_tmp = full_data(idata)
   15248      433618 :          pack_tmp = ISHFT(data_tmp, 62)
   15249      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15250      433618 :          idata = idata + 1
   15251      433618 :          data_tmp = full_data(idata)
   15252      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15253      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15254      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15255      433618 :          idata = idata + 1
   15256      433618 :          data_tmp = full_data(idata)
   15257      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15258      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15259      433618 :          pack_tmp = ISHFT(pack_tmp, -18)
   15260      433618 :          idata = idata + 1
   15261      433618 :          data_tmp = full_data(idata)
   15262      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15263      433618 :          data_tmp = IAND(data_tmp, mask_left(18))
   15264      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15265      433618 :          ipack = ipack + 1
   15266      433618 :          packed_data(ipack) = pack_tmp
   15267      433618 :          data_tmp = full_data(idata)
   15268      433618 :          pack_tmp = ISHFT(data_tmp, 60)
   15269      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15270      433618 :          idata = idata + 1
   15271      433618 :          data_tmp = full_data(idata)
   15272      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15273      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15274      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15275      433618 :          idata = idata + 1
   15276      433618 :          data_tmp = full_data(idata)
   15277      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15278      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15279      433618 :          pack_tmp = ISHFT(pack_tmp, -16)
   15280      433618 :          idata = idata + 1
   15281      433618 :          data_tmp = full_data(idata)
   15282      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15283      433618 :          data_tmp = IAND(data_tmp, mask_left(16))
   15284      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15285      433618 :          ipack = ipack + 1
   15286      433618 :          packed_data(ipack) = pack_tmp
   15287      433618 :          data_tmp = full_data(idata)
   15288      433618 :          pack_tmp = ISHFT(data_tmp, 58)
   15289      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15290      433618 :          idata = idata + 1
   15291      433618 :          data_tmp = full_data(idata)
   15292      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15293      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15294      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15295      433618 :          idata = idata + 1
   15296      433618 :          data_tmp = full_data(idata)
   15297      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15298      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15299      433618 :          pack_tmp = ISHFT(pack_tmp, -14)
   15300      433618 :          idata = idata + 1
   15301      433618 :          data_tmp = full_data(idata)
   15302      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15303      433618 :          data_tmp = IAND(data_tmp, mask_left(14))
   15304      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15305      433618 :          ipack = ipack + 1
   15306      433618 :          packed_data(ipack) = pack_tmp
   15307      433618 :          data_tmp = full_data(idata)
   15308      433618 :          pack_tmp = ISHFT(data_tmp, 56)
   15309      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15310      433618 :          idata = idata + 1
   15311      433618 :          data_tmp = full_data(idata)
   15312      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15313      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15314      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15315      433618 :          idata = idata + 1
   15316      433618 :          data_tmp = full_data(idata)
   15317      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15318      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15319      433618 :          pack_tmp = ISHFT(pack_tmp, -12)
   15320      433618 :          idata = idata + 1
   15321      433618 :          data_tmp = full_data(idata)
   15322      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15323      433618 :          data_tmp = IAND(data_tmp, mask_left(12))
   15324      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15325      433618 :          ipack = ipack + 1
   15326      433618 :          packed_data(ipack) = pack_tmp
   15327      433618 :          data_tmp = full_data(idata)
   15328      433618 :          pack_tmp = ISHFT(data_tmp, 54)
   15329      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15330      433618 :          idata = idata + 1
   15331      433618 :          data_tmp = full_data(idata)
   15332      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15333      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15334      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15335      433618 :          idata = idata + 1
   15336      433618 :          data_tmp = full_data(idata)
   15337      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15338      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15339      433618 :          pack_tmp = ISHFT(pack_tmp, -10)
   15340      433618 :          idata = idata + 1
   15341      433618 :          data_tmp = full_data(idata)
   15342      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15343      433618 :          data_tmp = IAND(data_tmp, mask_left(10))
   15344      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15345      433618 :          ipack = ipack + 1
   15346      433618 :          packed_data(ipack) = pack_tmp
   15347      433618 :          data_tmp = full_data(idata)
   15348      433618 :          pack_tmp = ISHFT(data_tmp, 52)
   15349      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15350      433618 :          idata = idata + 1
   15351      433618 :          data_tmp = full_data(idata)
   15352      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15353      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15354      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15355      433618 :          idata = idata + 1
   15356      433618 :          data_tmp = full_data(idata)
   15357      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15358      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15359      433618 :          pack_tmp = ISHFT(pack_tmp, -8)
   15360      433618 :          idata = idata + 1
   15361      433618 :          data_tmp = full_data(idata)
   15362      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15363      433618 :          data_tmp = IAND(data_tmp, mask_left(8))
   15364      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15365      433618 :          ipack = ipack + 1
   15366      433618 :          packed_data(ipack) = pack_tmp
   15367      433618 :          data_tmp = full_data(idata)
   15368      433618 :          pack_tmp = ISHFT(data_tmp, 50)
   15369      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15370      433618 :          idata = idata + 1
   15371      433618 :          data_tmp = full_data(idata)
   15372      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15373      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15374      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15375      433618 :          idata = idata + 1
   15376      433618 :          data_tmp = full_data(idata)
   15377      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15378      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15379      433618 :          pack_tmp = ISHFT(pack_tmp, -6)
   15380      433618 :          idata = idata + 1
   15381      433618 :          data_tmp = full_data(idata)
   15382      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15383      433618 :          data_tmp = IAND(data_tmp, mask_left(6))
   15384      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15385      433618 :          ipack = ipack + 1
   15386      433618 :          packed_data(ipack) = pack_tmp
   15387      433618 :          data_tmp = full_data(idata)
   15388      433618 :          pack_tmp = ISHFT(data_tmp, 48)
   15389      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15390      433618 :          idata = idata + 1
   15391      433618 :          data_tmp = full_data(idata)
   15392      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15393      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15394      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15395      433618 :          idata = idata + 1
   15396      433618 :          data_tmp = full_data(idata)
   15397      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15398      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15399      433618 :          pack_tmp = ISHFT(pack_tmp, -4)
   15400      433618 :          idata = idata + 1
   15401      433618 :          data_tmp = full_data(idata)
   15402      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15403      433618 :          data_tmp = IAND(data_tmp, mask_left(4))
   15404      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15405      433618 :          ipack = ipack + 1
   15406      433618 :          packed_data(ipack) = pack_tmp
   15407      433618 :          data_tmp = full_data(idata)
   15408      433618 :          pack_tmp = ISHFT(data_tmp, 46)
   15409      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15410      433618 :          idata = idata + 1
   15411      433618 :          data_tmp = full_data(idata)
   15412      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15413      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15414      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15415      433618 :          idata = idata + 1
   15416      433618 :          data_tmp = full_data(idata)
   15417      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15418      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15419      433618 :          pack_tmp = ISHFT(pack_tmp, -2)
   15420      433618 :          idata = idata + 1
   15421      433618 :          data_tmp = full_data(idata)
   15422      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15423      433618 :          data_tmp = IAND(data_tmp, mask_left(2))
   15424      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15425      433618 :          ipack = ipack + 1
   15426      433618 :          packed_data(ipack) = pack_tmp
   15427      433618 :          data_tmp = full_data(idata)
   15428      433618 :          pack_tmp = ISHFT(data_tmp, 44)
   15429      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15430      433618 :          idata = idata + 1
   15431      433618 :          data_tmp = full_data(idata)
   15432      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15433      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15434      433618 :          pack_tmp = ISHFT(pack_tmp, -22)
   15435      433618 :          idata = idata + 1
   15436      433618 :          data_tmp = full_data(idata)
   15437      433618 :          data_tmp = ISHFT(data_tmp, 42)
   15438      433618 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15439             :          pack_tmp = ISHFT(pack_tmp, 0)
   15440      433618 :          pack_tmp = ISHFT(pack_tmp, 0)
   15441      433618 :          ipack = ipack + 1
   15442      433725 :          packed_data(ipack) = pack_tmp
   15443             :       END DO
   15444       28595 :       IF (Ndata_rep < Ndata) THEN
   15445        2812 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   15446             :       END IF
   15447       28595 :    END SUBROUTINE ints2bits_22
   15448             : 
   15449             : ! **************************************************************************************************
   15450             : !> \brief ...
   15451             : !> \param Ndata ...
   15452             : !> \param packed_data ...
   15453             : !> \param full_data ...
   15454             : ! **************************************************************************************************
   15455      146675 :    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      146675 :       ipack = 0
   15466      146675 :       idata = 0
   15467      146675 :       pack_tmp = 0
   15468      146675 :       Ndata_rep = (Ndata/64)*64
   15469      146675 :       DO kdata = 1, Ndata_rep, 64
   15470     2127891 :          idata = idata + 1
   15471     2127891 :          data_tmp = ISHFT(pack_tmp, 22)
   15472     2127891 :          ipack = ipack + 1
   15473     2127891 :          pack_tmp = packed_data(ipack)
   15474     2127891 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   15475     2127891 :          pack_tmp = ISHFT(pack_tmp, -22)
   15476     2127891 :          idata = idata + 1
   15477     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15478     2127891 :          full_data(idata) = data_tmp
   15479     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15480     2127891 :          idata = idata + 1
   15481     2127891 :          data_tmp = ISHFT(pack_tmp, 2)
   15482     2127891 :          ipack = ipack + 1
   15483     2127891 :          pack_tmp = packed_data(ipack)
   15484     2127891 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   15485     2127891 :          pack_tmp = ISHFT(pack_tmp, -2)
   15486     2127891 :          idata = idata + 1
   15487     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15488     2127891 :          full_data(idata) = data_tmp
   15489     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15490     2127891 :          idata = idata + 1
   15491     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15492     2127891 :          full_data(idata) = data_tmp
   15493     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15494     2127891 :          idata = idata + 1
   15495     2127891 :          data_tmp = ISHFT(pack_tmp, 4)
   15496     2127891 :          ipack = ipack + 1
   15497     2127891 :          pack_tmp = packed_data(ipack)
   15498     2127891 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   15499     2127891 :          pack_tmp = ISHFT(pack_tmp, -4)
   15500     2127891 :          idata = idata + 1
   15501     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15502     2127891 :          full_data(idata) = data_tmp
   15503     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15504     2127891 :          idata = idata + 1
   15505     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15506     2127891 :          full_data(idata) = data_tmp
   15507     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15508     2127891 :          idata = idata + 1
   15509     2127891 :          data_tmp = ISHFT(pack_tmp, 6)
   15510     2127891 :          ipack = ipack + 1
   15511     2127891 :          pack_tmp = packed_data(ipack)
   15512     2127891 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   15513     2127891 :          pack_tmp = ISHFT(pack_tmp, -6)
   15514     2127891 :          idata = idata + 1
   15515     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15516     2127891 :          full_data(idata) = data_tmp
   15517     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15518     2127891 :          idata = idata + 1
   15519     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15520     2127891 :          full_data(idata) = data_tmp
   15521     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15522     2127891 :          idata = idata + 1
   15523     2127891 :          data_tmp = ISHFT(pack_tmp, 8)
   15524     2127891 :          ipack = ipack + 1
   15525     2127891 :          pack_tmp = packed_data(ipack)
   15526     2127891 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   15527     2127891 :          pack_tmp = ISHFT(pack_tmp, -8)
   15528     2127891 :          idata = idata + 1
   15529     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15530     2127891 :          full_data(idata) = data_tmp
   15531     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15532     2127891 :          idata = idata + 1
   15533     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15534     2127891 :          full_data(idata) = data_tmp
   15535     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15536     2127891 :          idata = idata + 1
   15537     2127891 :          data_tmp = ISHFT(pack_tmp, 10)
   15538     2127891 :          ipack = ipack + 1
   15539     2127891 :          pack_tmp = packed_data(ipack)
   15540     2127891 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   15541     2127891 :          pack_tmp = ISHFT(pack_tmp, -10)
   15542     2127891 :          idata = idata + 1
   15543     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15544     2127891 :          full_data(idata) = data_tmp
   15545     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15546     2127891 :          idata = idata + 1
   15547     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15548     2127891 :          full_data(idata) = data_tmp
   15549     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15550     2127891 :          idata = idata + 1
   15551     2127891 :          data_tmp = ISHFT(pack_tmp, 12)
   15552     2127891 :          ipack = ipack + 1
   15553     2127891 :          pack_tmp = packed_data(ipack)
   15554     2127891 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   15555     2127891 :          pack_tmp = ISHFT(pack_tmp, -12)
   15556     2127891 :          idata = idata + 1
   15557     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15558     2127891 :          full_data(idata) = data_tmp
   15559     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15560     2127891 :          idata = idata + 1
   15561     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15562     2127891 :          full_data(idata) = data_tmp
   15563     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15564     2127891 :          idata = idata + 1
   15565     2127891 :          data_tmp = ISHFT(pack_tmp, 14)
   15566     2127891 :          ipack = ipack + 1
   15567     2127891 :          pack_tmp = packed_data(ipack)
   15568     2127891 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   15569     2127891 :          pack_tmp = ISHFT(pack_tmp, -14)
   15570     2127891 :          idata = idata + 1
   15571     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15572     2127891 :          full_data(idata) = data_tmp
   15573     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15574     2127891 :          idata = idata + 1
   15575     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15576     2127891 :          full_data(idata) = data_tmp
   15577     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15578     2127891 :          idata = idata + 1
   15579     2127891 :          data_tmp = ISHFT(pack_tmp, 16)
   15580     2127891 :          ipack = ipack + 1
   15581     2127891 :          pack_tmp = packed_data(ipack)
   15582     2127891 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   15583     2127891 :          pack_tmp = ISHFT(pack_tmp, -16)
   15584     2127891 :          idata = idata + 1
   15585     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15586     2127891 :          full_data(idata) = data_tmp
   15587     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15588     2127891 :          idata = idata + 1
   15589     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15590     2127891 :          full_data(idata) = data_tmp
   15591     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15592     2127891 :          idata = idata + 1
   15593     2127891 :          data_tmp = ISHFT(pack_tmp, 18)
   15594     2127891 :          ipack = ipack + 1
   15595     2127891 :          pack_tmp = packed_data(ipack)
   15596     2127891 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   15597     2127891 :          pack_tmp = ISHFT(pack_tmp, -18)
   15598     2127891 :          idata = idata + 1
   15599     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15600     2127891 :          full_data(idata) = data_tmp
   15601     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15602     2127891 :          idata = idata + 1
   15603     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15604     2127891 :          full_data(idata) = data_tmp
   15605     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15606     2127891 :          idata = idata + 1
   15607     2127891 :          data_tmp = ISHFT(pack_tmp, 20)
   15608     2127891 :          ipack = ipack + 1
   15609     2127891 :          pack_tmp = packed_data(ipack)
   15610     2127891 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   15611     2127891 :          pack_tmp = ISHFT(pack_tmp, -20)
   15612     2127891 :          idata = idata + 1
   15613     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15614     2127891 :          full_data(idata) = data_tmp
   15615     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15616     2127891 :          idata = idata + 1
   15617     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15618     2127891 :          full_data(idata) = data_tmp
   15619     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15620     2127891 :          idata = idata + 1
   15621     2127891 :          data_tmp = ISHFT(pack_tmp, 22)
   15622     2127891 :          ipack = ipack + 1
   15623     2127891 :          pack_tmp = packed_data(ipack)
   15624     2127891 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   15625     2127891 :          pack_tmp = ISHFT(pack_tmp, -22)
   15626     2127891 :          idata = idata + 1
   15627     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15628     2127891 :          full_data(idata) = data_tmp
   15629     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15630     2127891 :          idata = idata + 1
   15631     2127891 :          data_tmp = ISHFT(pack_tmp, 2)
   15632     2127891 :          ipack = ipack + 1
   15633     2127891 :          pack_tmp = packed_data(ipack)
   15634     2127891 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   15635     2127891 :          pack_tmp = ISHFT(pack_tmp, -2)
   15636     2127891 :          idata = idata + 1
   15637     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15638     2127891 :          full_data(idata) = data_tmp
   15639     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15640     2127891 :          idata = idata + 1
   15641     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15642     2127891 :          full_data(idata) = data_tmp
   15643     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15644     2127891 :          idata = idata + 1
   15645     2127891 :          data_tmp = ISHFT(pack_tmp, 4)
   15646     2127891 :          ipack = ipack + 1
   15647     2127891 :          pack_tmp = packed_data(ipack)
   15648     2127891 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   15649     2127891 :          pack_tmp = ISHFT(pack_tmp, -4)
   15650     2127891 :          idata = idata + 1
   15651     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15652     2127891 :          full_data(idata) = data_tmp
   15653     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15654     2127891 :          idata = idata + 1
   15655     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15656     2127891 :          full_data(idata) = data_tmp
   15657     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15658     2127891 :          idata = idata + 1
   15659     2127891 :          data_tmp = ISHFT(pack_tmp, 6)
   15660     2127891 :          ipack = ipack + 1
   15661     2127891 :          pack_tmp = packed_data(ipack)
   15662     2127891 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   15663     2127891 :          pack_tmp = ISHFT(pack_tmp, -6)
   15664     2127891 :          idata = idata + 1
   15665     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15666     2127891 :          full_data(idata) = data_tmp
   15667     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15668     2127891 :          idata = idata + 1
   15669     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15670     2127891 :          full_data(idata) = data_tmp
   15671     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15672     2127891 :          idata = idata + 1
   15673     2127891 :          data_tmp = ISHFT(pack_tmp, 8)
   15674     2127891 :          ipack = ipack + 1
   15675     2127891 :          pack_tmp = packed_data(ipack)
   15676     2127891 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   15677     2127891 :          pack_tmp = ISHFT(pack_tmp, -8)
   15678     2127891 :          idata = idata + 1
   15679     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15680     2127891 :          full_data(idata) = data_tmp
   15681     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15682     2127891 :          idata = idata + 1
   15683     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15684     2127891 :          full_data(idata) = data_tmp
   15685     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15686     2127891 :          idata = idata + 1
   15687     2127891 :          data_tmp = ISHFT(pack_tmp, 10)
   15688     2127891 :          ipack = ipack + 1
   15689     2127891 :          pack_tmp = packed_data(ipack)
   15690     2127891 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   15691     2127891 :          pack_tmp = ISHFT(pack_tmp, -10)
   15692     2127891 :          idata = idata + 1
   15693     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15694     2127891 :          full_data(idata) = data_tmp
   15695     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15696     2127891 :          idata = idata + 1
   15697     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15698     2127891 :          full_data(idata) = data_tmp
   15699     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15700     2127891 :          idata = idata + 1
   15701     2127891 :          data_tmp = ISHFT(pack_tmp, 12)
   15702     2127891 :          ipack = ipack + 1
   15703     2127891 :          pack_tmp = packed_data(ipack)
   15704     2127891 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   15705     2127891 :          pack_tmp = ISHFT(pack_tmp, -12)
   15706     2127891 :          idata = idata + 1
   15707     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15708     2127891 :          full_data(idata) = data_tmp
   15709     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15710     2127891 :          idata = idata + 1
   15711     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15712     2127891 :          full_data(idata) = data_tmp
   15713     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15714     2127891 :          idata = idata + 1
   15715     2127891 :          data_tmp = ISHFT(pack_tmp, 14)
   15716     2127891 :          ipack = ipack + 1
   15717     2127891 :          pack_tmp = packed_data(ipack)
   15718     2127891 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   15719     2127891 :          pack_tmp = ISHFT(pack_tmp, -14)
   15720     2127891 :          idata = idata + 1
   15721     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15722     2127891 :          full_data(idata) = data_tmp
   15723     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15724     2127891 :          idata = idata + 1
   15725     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15726     2127891 :          full_data(idata) = data_tmp
   15727     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15728     2127891 :          idata = idata + 1
   15729     2127891 :          data_tmp = ISHFT(pack_tmp, 16)
   15730     2127891 :          ipack = ipack + 1
   15731     2127891 :          pack_tmp = packed_data(ipack)
   15732     2127891 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   15733     2127891 :          pack_tmp = ISHFT(pack_tmp, -16)
   15734     2127891 :          idata = idata + 1
   15735     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15736     2127891 :          full_data(idata) = data_tmp
   15737     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15738     2127891 :          idata = idata + 1
   15739     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15740     2127891 :          full_data(idata) = data_tmp
   15741     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15742     2127891 :          idata = idata + 1
   15743     2127891 :          data_tmp = ISHFT(pack_tmp, 18)
   15744     2127891 :          ipack = ipack + 1
   15745     2127891 :          pack_tmp = packed_data(ipack)
   15746     2127891 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   15747     2127891 :          pack_tmp = ISHFT(pack_tmp, -18)
   15748     2127891 :          idata = idata + 1
   15749     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15750     2127891 :          full_data(idata) = data_tmp
   15751     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15752     2127891 :          idata = idata + 1
   15753     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15754     2127891 :          full_data(idata) = data_tmp
   15755     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15756     2127891 :          idata = idata + 1
   15757     2127891 :          data_tmp = ISHFT(pack_tmp, 20)
   15758     2127891 :          ipack = ipack + 1
   15759     2127891 :          pack_tmp = packed_data(ipack)
   15760     2127891 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   15761     2127891 :          pack_tmp = ISHFT(pack_tmp, -20)
   15762     2127891 :          idata = idata + 1
   15763     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15764     2127891 :          full_data(idata) = data_tmp
   15765     2127891 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15766     2127891 :          idata = idata + 1
   15767     2127891 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15768     2127891 :          full_data(idata) = data_tmp
   15769     2128564 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15770             :       END DO
   15771      146675 :       IF (Ndata_rep < Ndata) THEN
   15772       25754 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   15773             :       END IF
   15774      146675 :    END SUBROUTINE bits2ints_22
   15775             : 
   15776             : ! **************************************************************************************************
   15777             : !> \brief ...
   15778             : !> \param Ndata ...
   15779             : !> \param packed_data ...
   15780             : !> \param full_data ...
   15781             : ! **************************************************************************************************
   15782       54364 :    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       54364 :       idata = 0
   15793       54364 :       ipack = 0
   15794       54364 :       Ndata_rep = (Ndata/64)*64
   15795       54364 :       DO kdata = 1, Ndata_rep, 64
   15796      734605 :          pack_tmp = 0
   15797      734605 :          idata = idata + 1
   15798      734605 :          data_tmp = full_data(idata)
   15799      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15800      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15801      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   15802      734605 :          idata = idata + 1
   15803      734605 :          data_tmp = full_data(idata)
   15804      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15805      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15806      734605 :          pack_tmp = ISHFT(pack_tmp, -18)
   15807      734605 :          idata = idata + 1
   15808      734605 :          data_tmp = full_data(idata)
   15809      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15810      734605 :          data_tmp = IAND(data_tmp, mask_left(18))
   15811      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15812      734605 :          ipack = ipack + 1
   15813      734605 :          packed_data(ipack) = pack_tmp
   15814      734605 :          data_tmp = full_data(idata)
   15815      734605 :          pack_tmp = ISHFT(data_tmp, 59)
   15816      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   15817      734605 :          idata = idata + 1
   15818      734605 :          data_tmp = full_data(idata)
   15819      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15820      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15821      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   15822      734605 :          idata = idata + 1
   15823      734605 :          data_tmp = full_data(idata)
   15824      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15825      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15826      734605 :          pack_tmp = ISHFT(pack_tmp, -13)
   15827      734605 :          idata = idata + 1
   15828      734605 :          data_tmp = full_data(idata)
   15829      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15830      734605 :          data_tmp = IAND(data_tmp, mask_left(13))
   15831      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15832      734605 :          ipack = ipack + 1
   15833      734605 :          packed_data(ipack) = pack_tmp
   15834      734605 :          data_tmp = full_data(idata)
   15835      734605 :          pack_tmp = ISHFT(data_tmp, 54)
   15836      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   15837      734605 :          idata = idata + 1
   15838      734605 :          data_tmp = full_data(idata)
   15839      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15840      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15841      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   15842      734605 :          idata = idata + 1
   15843      734605 :          data_tmp = full_data(idata)
   15844      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15845      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15846      734605 :          pack_tmp = ISHFT(pack_tmp, -8)
   15847      734605 :          idata = idata + 1
   15848      734605 :          data_tmp = full_data(idata)
   15849      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15850      734605 :          data_tmp = IAND(data_tmp, mask_left(8))
   15851      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15852      734605 :          ipack = ipack + 1
   15853      734605 :          packed_data(ipack) = pack_tmp
   15854      734605 :          data_tmp = full_data(idata)
   15855      734605 :          pack_tmp = ISHFT(data_tmp, 49)
   15856      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   15857      734605 :          idata = idata + 1
   15858      734605 :          data_tmp = full_data(idata)
   15859      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15860      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15861      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   15862      734605 :          idata = idata + 1
   15863      734605 :          data_tmp = full_data(idata)
   15864      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15865      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15866      734605 :          pack_tmp = ISHFT(pack_tmp, -3)
   15867      734605 :          idata = idata + 1
   15868      734605 :          data_tmp = full_data(idata)
   15869      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15870      734605 :          data_tmp = IAND(data_tmp, mask_left(3))
   15871      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15872      734605 :          ipack = ipack + 1
   15873      734605 :          packed_data(ipack) = pack_tmp
   15874      734605 :          data_tmp = full_data(idata)
   15875      734605 :          pack_tmp = ISHFT(data_tmp, 44)
   15876      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   15877      734605 :          idata = idata + 1
   15878      734605 :          data_tmp = full_data(idata)
   15879      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15880      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15881      734605 :          pack_tmp = ISHFT(pack_tmp, -21)
   15882      734605 :          idata = idata + 1
   15883      734605 :          data_tmp = full_data(idata)
   15884      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15885      734605 :          data_tmp = IAND(data_tmp, mask_left(21))
   15886      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15887      734605 :          ipack = ipack + 1
   15888      734605 :          packed_data(ipack) = pack_tmp
   15889      734605 :          data_tmp = full_data(idata)
   15890      734605 :          pack_tmp = ISHFT(data_tmp, 62)
   15891      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   15892      734605 :          idata = idata + 1
   15893      734605 :          data_tmp = full_data(idata)
   15894      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15895      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15896      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   15897      734605 :          idata = idata + 1
   15898      734605 :          data_tmp = full_data(idata)
   15899      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15900      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15901      734605 :          pack_tmp = ISHFT(pack_tmp, -16)
   15902      734605 :          idata = idata + 1
   15903      734605 :          data_tmp = full_data(idata)
   15904      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15905      734605 :          data_tmp = IAND(data_tmp, mask_left(16))
   15906      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15907      734605 :          ipack = ipack + 1
   15908      734605 :          packed_data(ipack) = pack_tmp
   15909      734605 :          data_tmp = full_data(idata)
   15910      734605 :          pack_tmp = ISHFT(data_tmp, 57)
   15911      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   15912      734605 :          idata = idata + 1
   15913      734605 :          data_tmp = full_data(idata)
   15914      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15915      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15916      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   15917      734605 :          idata = idata + 1
   15918      734605 :          data_tmp = full_data(idata)
   15919      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15920      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15921      734605 :          pack_tmp = ISHFT(pack_tmp, -11)
   15922      734605 :          idata = idata + 1
   15923      734605 :          data_tmp = full_data(idata)
   15924      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15925      734605 :          data_tmp = IAND(data_tmp, mask_left(11))
   15926      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15927      734605 :          ipack = ipack + 1
   15928      734605 :          packed_data(ipack) = pack_tmp
   15929      734605 :          data_tmp = full_data(idata)
   15930      734605 :          pack_tmp = ISHFT(data_tmp, 52)
   15931      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   15932      734605 :          idata = idata + 1
   15933      734605 :          data_tmp = full_data(idata)
   15934      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15935      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15936      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   15937      734605 :          idata = idata + 1
   15938      734605 :          data_tmp = full_data(idata)
   15939      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15940      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15941      734605 :          pack_tmp = ISHFT(pack_tmp, -6)
   15942      734605 :          idata = idata + 1
   15943      734605 :          data_tmp = full_data(idata)
   15944      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15945      734605 :          data_tmp = IAND(data_tmp, mask_left(6))
   15946      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15947      734605 :          ipack = ipack + 1
   15948      734605 :          packed_data(ipack) = pack_tmp
   15949      734605 :          data_tmp = full_data(idata)
   15950      734605 :          pack_tmp = ISHFT(data_tmp, 47)
   15951      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   15952      734605 :          idata = idata + 1
   15953      734605 :          data_tmp = full_data(idata)
   15954      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15955      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15956      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   15957      734605 :          idata = idata + 1
   15958      734605 :          data_tmp = full_data(idata)
   15959      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15960      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15961      734605 :          pack_tmp = ISHFT(pack_tmp, -1)
   15962      734605 :          idata = idata + 1
   15963      734605 :          data_tmp = full_data(idata)
   15964      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15965      734605 :          data_tmp = IAND(data_tmp, mask_left(1))
   15966      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15967      734605 :          ipack = ipack + 1
   15968      734605 :          packed_data(ipack) = pack_tmp
   15969      734605 :          data_tmp = full_data(idata)
   15970      734605 :          pack_tmp = ISHFT(data_tmp, 42)
   15971      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   15972      734605 :          idata = idata + 1
   15973      734605 :          data_tmp = full_data(idata)
   15974      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15975      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15976      734605 :          pack_tmp = ISHFT(pack_tmp, -19)
   15977      734605 :          idata = idata + 1
   15978      734605 :          data_tmp = full_data(idata)
   15979      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15980      734605 :          data_tmp = IAND(data_tmp, mask_left(19))
   15981      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15982      734605 :          ipack = ipack + 1
   15983      734605 :          packed_data(ipack) = pack_tmp
   15984      734605 :          data_tmp = full_data(idata)
   15985      734605 :          pack_tmp = ISHFT(data_tmp, 60)
   15986      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   15987      734605 :          idata = idata + 1
   15988      734605 :          data_tmp = full_data(idata)
   15989      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15990      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15991      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   15992      734605 :          idata = idata + 1
   15993      734605 :          data_tmp = full_data(idata)
   15994      734605 :          data_tmp = ISHFT(data_tmp, 41)
   15995      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15996      734605 :          pack_tmp = ISHFT(pack_tmp, -14)
   15997      734605 :          idata = idata + 1
   15998      734605 :          data_tmp = full_data(idata)
   15999      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16000      734605 :          data_tmp = IAND(data_tmp, mask_left(14))
   16001      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16002      734605 :          ipack = ipack + 1
   16003      734605 :          packed_data(ipack) = pack_tmp
   16004      734605 :          data_tmp = full_data(idata)
   16005      734605 :          pack_tmp = ISHFT(data_tmp, 55)
   16006      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   16007      734605 :          idata = idata + 1
   16008      734605 :          data_tmp = full_data(idata)
   16009      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16010      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16011      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   16012      734605 :          idata = idata + 1
   16013      734605 :          data_tmp = full_data(idata)
   16014      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16015      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16016      734605 :          pack_tmp = ISHFT(pack_tmp, -9)
   16017      734605 :          idata = idata + 1
   16018      734605 :          data_tmp = full_data(idata)
   16019      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16020      734605 :          data_tmp = IAND(data_tmp, mask_left(9))
   16021      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16022      734605 :          ipack = ipack + 1
   16023      734605 :          packed_data(ipack) = pack_tmp
   16024      734605 :          data_tmp = full_data(idata)
   16025      734605 :          pack_tmp = ISHFT(data_tmp, 50)
   16026      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   16027      734605 :          idata = idata + 1
   16028      734605 :          data_tmp = full_data(idata)
   16029      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16030      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16031      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   16032      734605 :          idata = idata + 1
   16033      734605 :          data_tmp = full_data(idata)
   16034      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16035      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16036      734605 :          pack_tmp = ISHFT(pack_tmp, -4)
   16037      734605 :          idata = idata + 1
   16038      734605 :          data_tmp = full_data(idata)
   16039      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16040      734605 :          data_tmp = IAND(data_tmp, mask_left(4))
   16041      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16042      734605 :          ipack = ipack + 1
   16043      734605 :          packed_data(ipack) = pack_tmp
   16044      734605 :          data_tmp = full_data(idata)
   16045      734605 :          pack_tmp = ISHFT(data_tmp, 45)
   16046      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   16047      734605 :          idata = idata + 1
   16048      734605 :          data_tmp = full_data(idata)
   16049      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16050      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16051      734605 :          pack_tmp = ISHFT(pack_tmp, -22)
   16052      734605 :          idata = idata + 1
   16053      734605 :          data_tmp = full_data(idata)
   16054      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16055      734605 :          data_tmp = IAND(data_tmp, mask_left(22))
   16056      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16057      734605 :          ipack = ipack + 1
   16058      734605 :          packed_data(ipack) = pack_tmp
   16059      734605 :          data_tmp = full_data(idata)
   16060      734605 :          pack_tmp = ISHFT(data_tmp, 63)
   16061      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   16062      734605 :          idata = idata + 1
   16063      734605 :          data_tmp = full_data(idata)
   16064      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16065      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16066      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   16067      734605 :          idata = idata + 1
   16068      734605 :          data_tmp = full_data(idata)
   16069      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16070      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16071      734605 :          pack_tmp = ISHFT(pack_tmp, -17)
   16072      734605 :          idata = idata + 1
   16073      734605 :          data_tmp = full_data(idata)
   16074      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16075      734605 :          data_tmp = IAND(data_tmp, mask_left(17))
   16076      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16077      734605 :          ipack = ipack + 1
   16078      734605 :          packed_data(ipack) = pack_tmp
   16079      734605 :          data_tmp = full_data(idata)
   16080      734605 :          pack_tmp = ISHFT(data_tmp, 58)
   16081      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   16082      734605 :          idata = idata + 1
   16083      734605 :          data_tmp = full_data(idata)
   16084      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16085      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16086      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   16087      734605 :          idata = idata + 1
   16088      734605 :          data_tmp = full_data(idata)
   16089      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16090      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16091      734605 :          pack_tmp = ISHFT(pack_tmp, -12)
   16092      734605 :          idata = idata + 1
   16093      734605 :          data_tmp = full_data(idata)
   16094      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16095      734605 :          data_tmp = IAND(data_tmp, mask_left(12))
   16096      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16097      734605 :          ipack = ipack + 1
   16098      734605 :          packed_data(ipack) = pack_tmp
   16099      734605 :          data_tmp = full_data(idata)
   16100      734605 :          pack_tmp = ISHFT(data_tmp, 53)
   16101      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   16102      734605 :          idata = idata + 1
   16103      734605 :          data_tmp = full_data(idata)
   16104      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16105      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16106      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   16107      734605 :          idata = idata + 1
   16108      734605 :          data_tmp = full_data(idata)
   16109      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16110      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16111      734605 :          pack_tmp = ISHFT(pack_tmp, -7)
   16112      734605 :          idata = idata + 1
   16113      734605 :          data_tmp = full_data(idata)
   16114      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16115      734605 :          data_tmp = IAND(data_tmp, mask_left(7))
   16116      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16117      734605 :          ipack = ipack + 1
   16118      734605 :          packed_data(ipack) = pack_tmp
   16119      734605 :          data_tmp = full_data(idata)
   16120      734605 :          pack_tmp = ISHFT(data_tmp, 48)
   16121      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   16122      734605 :          idata = idata + 1
   16123      734605 :          data_tmp = full_data(idata)
   16124      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16125      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16126      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   16127      734605 :          idata = idata + 1
   16128      734605 :          data_tmp = full_data(idata)
   16129      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16130      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16131      734605 :          pack_tmp = ISHFT(pack_tmp, -2)
   16132      734605 :          idata = idata + 1
   16133      734605 :          data_tmp = full_data(idata)
   16134      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16135      734605 :          data_tmp = IAND(data_tmp, mask_left(2))
   16136      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16137      734605 :          ipack = ipack + 1
   16138      734605 :          packed_data(ipack) = pack_tmp
   16139      734605 :          data_tmp = full_data(idata)
   16140      734605 :          pack_tmp = ISHFT(data_tmp, 43)
   16141      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   16142      734605 :          idata = idata + 1
   16143      734605 :          data_tmp = full_data(idata)
   16144      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16145      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16146      734605 :          pack_tmp = ISHFT(pack_tmp, -20)
   16147      734605 :          idata = idata + 1
   16148      734605 :          data_tmp = full_data(idata)
   16149      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16150      734605 :          data_tmp = IAND(data_tmp, mask_left(20))
   16151      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16152      734605 :          ipack = ipack + 1
   16153      734605 :          packed_data(ipack) = pack_tmp
   16154      734605 :          data_tmp = full_data(idata)
   16155      734605 :          pack_tmp = ISHFT(data_tmp, 61)
   16156      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   16157      734605 :          idata = idata + 1
   16158      734605 :          data_tmp = full_data(idata)
   16159      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16160      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16161      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   16162      734605 :          idata = idata + 1
   16163      734605 :          data_tmp = full_data(idata)
   16164      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16165      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16166      734605 :          pack_tmp = ISHFT(pack_tmp, -15)
   16167      734605 :          idata = idata + 1
   16168      734605 :          data_tmp = full_data(idata)
   16169      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16170      734605 :          data_tmp = IAND(data_tmp, mask_left(15))
   16171      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16172      734605 :          ipack = ipack + 1
   16173      734605 :          packed_data(ipack) = pack_tmp
   16174      734605 :          data_tmp = full_data(idata)
   16175      734605 :          pack_tmp = ISHFT(data_tmp, 56)
   16176      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   16177      734605 :          idata = idata + 1
   16178      734605 :          data_tmp = full_data(idata)
   16179      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16180      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16181      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   16182      734605 :          idata = idata + 1
   16183      734605 :          data_tmp = full_data(idata)
   16184      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16185      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16186      734605 :          pack_tmp = ISHFT(pack_tmp, -10)
   16187      734605 :          idata = idata + 1
   16188      734605 :          data_tmp = full_data(idata)
   16189      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16190      734605 :          data_tmp = IAND(data_tmp, mask_left(10))
   16191      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16192      734605 :          ipack = ipack + 1
   16193      734605 :          packed_data(ipack) = pack_tmp
   16194      734605 :          data_tmp = full_data(idata)
   16195      734605 :          pack_tmp = ISHFT(data_tmp, 51)
   16196      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   16197      734605 :          idata = idata + 1
   16198      734605 :          data_tmp = full_data(idata)
   16199      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16200      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16201      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   16202      734605 :          idata = idata + 1
   16203      734605 :          data_tmp = full_data(idata)
   16204      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16205      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16206      734605 :          pack_tmp = ISHFT(pack_tmp, -5)
   16207      734605 :          idata = idata + 1
   16208      734605 :          data_tmp = full_data(idata)
   16209      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16210      734605 :          data_tmp = IAND(data_tmp, mask_left(5))
   16211      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16212      734605 :          ipack = ipack + 1
   16213      734605 :          packed_data(ipack) = pack_tmp
   16214      734605 :          data_tmp = full_data(idata)
   16215      734605 :          pack_tmp = ISHFT(data_tmp, 46)
   16216      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   16217      734605 :          idata = idata + 1
   16218      734605 :          data_tmp = full_data(idata)
   16219      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16220      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16221      734605 :          pack_tmp = ISHFT(pack_tmp, -23)
   16222      734605 :          idata = idata + 1
   16223      734605 :          data_tmp = full_data(idata)
   16224      734605 :          data_tmp = ISHFT(data_tmp, 41)
   16225      734605 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16226             :          pack_tmp = ISHFT(pack_tmp, 0)
   16227      734605 :          pack_tmp = ISHFT(pack_tmp, 0)
   16228      734605 :          ipack = ipack + 1
   16229      735010 :          packed_data(ipack) = pack_tmp
   16230             :       END DO
   16231       54364 :       IF (Ndata_rep < Ndata) THEN
   16232        8774 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   16233             :       END IF
   16234       54364 :    END SUBROUTINE ints2bits_23
   16235             : 
   16236             : ! **************************************************************************************************
   16237             : !> \brief ...
   16238             : !> \param Ndata ...
   16239             : !> \param packed_data ...
   16240             : !> \param full_data ...
   16241             : ! **************************************************************************************************
   16242      188073 :    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      188073 :       ipack = 0
   16253      188073 :       idata = 0
   16254      188073 :       pack_tmp = 0
   16255      188073 :       Ndata_rep = (Ndata/64)*64
   16256      188073 :       DO kdata = 1, Ndata_rep, 64
   16257     2608006 :          idata = idata + 1
   16258     2608006 :          data_tmp = ISHFT(pack_tmp, 23)
   16259     2608006 :          ipack = ipack + 1
   16260     2608006 :          pack_tmp = packed_data(ipack)
   16261     2608006 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   16262     2608006 :          pack_tmp = ISHFT(pack_tmp, -23)
   16263     2608006 :          idata = idata + 1
   16264     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16265     2608006 :          full_data(idata) = data_tmp
   16266     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16267     2608006 :          idata = idata + 1
   16268     2608006 :          data_tmp = ISHFT(pack_tmp, 5)
   16269     2608006 :          ipack = ipack + 1
   16270     2608006 :          pack_tmp = packed_data(ipack)
   16271     2608006 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   16272     2608006 :          pack_tmp = ISHFT(pack_tmp, -5)
   16273     2608006 :          idata = idata + 1
   16274     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16275     2608006 :          full_data(idata) = data_tmp
   16276     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16277     2608006 :          idata = idata + 1
   16278     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16279     2608006 :          full_data(idata) = data_tmp
   16280     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16281     2608006 :          idata = idata + 1
   16282     2608006 :          data_tmp = ISHFT(pack_tmp, 10)
   16283     2608006 :          ipack = ipack + 1
   16284     2608006 :          pack_tmp = packed_data(ipack)
   16285     2608006 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   16286     2608006 :          pack_tmp = ISHFT(pack_tmp, -10)
   16287     2608006 :          idata = idata + 1
   16288     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16289     2608006 :          full_data(idata) = data_tmp
   16290     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16291     2608006 :          idata = idata + 1
   16292     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16293     2608006 :          full_data(idata) = data_tmp
   16294     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16295     2608006 :          idata = idata + 1
   16296     2608006 :          data_tmp = ISHFT(pack_tmp, 15)
   16297     2608006 :          ipack = ipack + 1
   16298     2608006 :          pack_tmp = packed_data(ipack)
   16299     2608006 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   16300     2608006 :          pack_tmp = ISHFT(pack_tmp, -15)
   16301     2608006 :          idata = idata + 1
   16302     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16303     2608006 :          full_data(idata) = data_tmp
   16304     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16305     2608006 :          idata = idata + 1
   16306     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16307     2608006 :          full_data(idata) = data_tmp
   16308     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16309     2608006 :          idata = idata + 1
   16310     2608006 :          data_tmp = ISHFT(pack_tmp, 20)
   16311     2608006 :          ipack = ipack + 1
   16312     2608006 :          pack_tmp = packed_data(ipack)
   16313     2608006 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   16314     2608006 :          pack_tmp = ISHFT(pack_tmp, -20)
   16315     2608006 :          idata = idata + 1
   16316     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16317     2608006 :          full_data(idata) = data_tmp
   16318     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16319     2608006 :          idata = idata + 1
   16320     2608006 :          data_tmp = ISHFT(pack_tmp, 2)
   16321     2608006 :          ipack = ipack + 1
   16322     2608006 :          pack_tmp = packed_data(ipack)
   16323     2608006 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   16324     2608006 :          pack_tmp = ISHFT(pack_tmp, -2)
   16325     2608006 :          idata = idata + 1
   16326     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16327     2608006 :          full_data(idata) = data_tmp
   16328     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16329     2608006 :          idata = idata + 1
   16330     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16331     2608006 :          full_data(idata) = data_tmp
   16332     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16333     2608006 :          idata = idata + 1
   16334     2608006 :          data_tmp = ISHFT(pack_tmp, 7)
   16335     2608006 :          ipack = ipack + 1
   16336     2608006 :          pack_tmp = packed_data(ipack)
   16337     2608006 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   16338     2608006 :          pack_tmp = ISHFT(pack_tmp, -7)
   16339     2608006 :          idata = idata + 1
   16340     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16341     2608006 :          full_data(idata) = data_tmp
   16342     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16343     2608006 :          idata = idata + 1
   16344     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16345     2608006 :          full_data(idata) = data_tmp
   16346     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16347     2608006 :          idata = idata + 1
   16348     2608006 :          data_tmp = ISHFT(pack_tmp, 12)
   16349     2608006 :          ipack = ipack + 1
   16350     2608006 :          pack_tmp = packed_data(ipack)
   16351     2608006 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   16352     2608006 :          pack_tmp = ISHFT(pack_tmp, -12)
   16353     2608006 :          idata = idata + 1
   16354     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16355     2608006 :          full_data(idata) = data_tmp
   16356     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16357     2608006 :          idata = idata + 1
   16358     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16359     2608006 :          full_data(idata) = data_tmp
   16360     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16361     2608006 :          idata = idata + 1
   16362     2608006 :          data_tmp = ISHFT(pack_tmp, 17)
   16363     2608006 :          ipack = ipack + 1
   16364     2608006 :          pack_tmp = packed_data(ipack)
   16365     2608006 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   16366     2608006 :          pack_tmp = ISHFT(pack_tmp, -17)
   16367     2608006 :          idata = idata + 1
   16368     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16369     2608006 :          full_data(idata) = data_tmp
   16370     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16371     2608006 :          idata = idata + 1
   16372     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16373     2608006 :          full_data(idata) = data_tmp
   16374     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16375     2608006 :          idata = idata + 1
   16376     2608006 :          data_tmp = ISHFT(pack_tmp, 22)
   16377     2608006 :          ipack = ipack + 1
   16378     2608006 :          pack_tmp = packed_data(ipack)
   16379     2608006 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   16380     2608006 :          pack_tmp = ISHFT(pack_tmp, -22)
   16381     2608006 :          idata = idata + 1
   16382     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16383     2608006 :          full_data(idata) = data_tmp
   16384     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16385     2608006 :          idata = idata + 1
   16386     2608006 :          data_tmp = ISHFT(pack_tmp, 4)
   16387     2608006 :          ipack = ipack + 1
   16388     2608006 :          pack_tmp = packed_data(ipack)
   16389     2608006 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   16390     2608006 :          pack_tmp = ISHFT(pack_tmp, -4)
   16391     2608006 :          idata = idata + 1
   16392     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16393     2608006 :          full_data(idata) = data_tmp
   16394     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16395     2608006 :          idata = idata + 1
   16396     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16397     2608006 :          full_data(idata) = data_tmp
   16398     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16399     2608006 :          idata = idata + 1
   16400     2608006 :          data_tmp = ISHFT(pack_tmp, 9)
   16401     2608006 :          ipack = ipack + 1
   16402     2608006 :          pack_tmp = packed_data(ipack)
   16403     2608006 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   16404     2608006 :          pack_tmp = ISHFT(pack_tmp, -9)
   16405     2608006 :          idata = idata + 1
   16406     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16407     2608006 :          full_data(idata) = data_tmp
   16408     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16409     2608006 :          idata = idata + 1
   16410     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16411     2608006 :          full_data(idata) = data_tmp
   16412     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16413     2608006 :          idata = idata + 1
   16414     2608006 :          data_tmp = ISHFT(pack_tmp, 14)
   16415     2608006 :          ipack = ipack + 1
   16416     2608006 :          pack_tmp = packed_data(ipack)
   16417     2608006 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   16418     2608006 :          pack_tmp = ISHFT(pack_tmp, -14)
   16419     2608006 :          idata = idata + 1
   16420     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16421     2608006 :          full_data(idata) = data_tmp
   16422     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16423     2608006 :          idata = idata + 1
   16424     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16425     2608006 :          full_data(idata) = data_tmp
   16426     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16427     2608006 :          idata = idata + 1
   16428     2608006 :          data_tmp = ISHFT(pack_tmp, 19)
   16429     2608006 :          ipack = ipack + 1
   16430     2608006 :          pack_tmp = packed_data(ipack)
   16431     2608006 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   16432     2608006 :          pack_tmp = ISHFT(pack_tmp, -19)
   16433     2608006 :          idata = idata + 1
   16434     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16435     2608006 :          full_data(idata) = data_tmp
   16436     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16437     2608006 :          idata = idata + 1
   16438     2608006 :          data_tmp = ISHFT(pack_tmp, 1)
   16439     2608006 :          ipack = ipack + 1
   16440     2608006 :          pack_tmp = packed_data(ipack)
   16441     2608006 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   16442     2608006 :          pack_tmp = ISHFT(pack_tmp, -1)
   16443     2608006 :          idata = idata + 1
   16444     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16445     2608006 :          full_data(idata) = data_tmp
   16446     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16447     2608006 :          idata = idata + 1
   16448     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16449     2608006 :          full_data(idata) = data_tmp
   16450     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16451     2608006 :          idata = idata + 1
   16452     2608006 :          data_tmp = ISHFT(pack_tmp, 6)
   16453     2608006 :          ipack = ipack + 1
   16454     2608006 :          pack_tmp = packed_data(ipack)
   16455     2608006 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   16456     2608006 :          pack_tmp = ISHFT(pack_tmp, -6)
   16457     2608006 :          idata = idata + 1
   16458     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16459     2608006 :          full_data(idata) = data_tmp
   16460     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16461     2608006 :          idata = idata + 1
   16462     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16463     2608006 :          full_data(idata) = data_tmp
   16464     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16465     2608006 :          idata = idata + 1
   16466     2608006 :          data_tmp = ISHFT(pack_tmp, 11)
   16467     2608006 :          ipack = ipack + 1
   16468     2608006 :          pack_tmp = packed_data(ipack)
   16469     2608006 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   16470     2608006 :          pack_tmp = ISHFT(pack_tmp, -11)
   16471     2608006 :          idata = idata + 1
   16472     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16473     2608006 :          full_data(idata) = data_tmp
   16474     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16475     2608006 :          idata = idata + 1
   16476     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16477     2608006 :          full_data(idata) = data_tmp
   16478     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16479     2608006 :          idata = idata + 1
   16480     2608006 :          data_tmp = ISHFT(pack_tmp, 16)
   16481     2608006 :          ipack = ipack + 1
   16482     2608006 :          pack_tmp = packed_data(ipack)
   16483     2608006 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   16484     2608006 :          pack_tmp = ISHFT(pack_tmp, -16)
   16485     2608006 :          idata = idata + 1
   16486     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16487     2608006 :          full_data(idata) = data_tmp
   16488     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16489     2608006 :          idata = idata + 1
   16490     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16491     2608006 :          full_data(idata) = data_tmp
   16492     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16493     2608006 :          idata = idata + 1
   16494     2608006 :          data_tmp = ISHFT(pack_tmp, 21)
   16495     2608006 :          ipack = ipack + 1
   16496     2608006 :          pack_tmp = packed_data(ipack)
   16497     2608006 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   16498     2608006 :          pack_tmp = ISHFT(pack_tmp, -21)
   16499     2608006 :          idata = idata + 1
   16500     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16501     2608006 :          full_data(idata) = data_tmp
   16502     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16503     2608006 :          idata = idata + 1
   16504     2608006 :          data_tmp = ISHFT(pack_tmp, 3)
   16505     2608006 :          ipack = ipack + 1
   16506     2608006 :          pack_tmp = packed_data(ipack)
   16507     2608006 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   16508     2608006 :          pack_tmp = ISHFT(pack_tmp, -3)
   16509     2608006 :          idata = idata + 1
   16510     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16511     2608006 :          full_data(idata) = data_tmp
   16512     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16513     2608006 :          idata = idata + 1
   16514     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16515     2608006 :          full_data(idata) = data_tmp
   16516     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16517     2608006 :          idata = idata + 1
   16518     2608006 :          data_tmp = ISHFT(pack_tmp, 8)
   16519     2608006 :          ipack = ipack + 1
   16520     2608006 :          pack_tmp = packed_data(ipack)
   16521     2608006 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   16522     2608006 :          pack_tmp = ISHFT(pack_tmp, -8)
   16523     2608006 :          idata = idata + 1
   16524     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16525     2608006 :          full_data(idata) = data_tmp
   16526     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16527     2608006 :          idata = idata + 1
   16528     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16529     2608006 :          full_data(idata) = data_tmp
   16530     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16531     2608006 :          idata = idata + 1
   16532     2608006 :          data_tmp = ISHFT(pack_tmp, 13)
   16533     2608006 :          ipack = ipack + 1
   16534     2608006 :          pack_tmp = packed_data(ipack)
   16535     2608006 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   16536     2608006 :          pack_tmp = ISHFT(pack_tmp, -13)
   16537     2608006 :          idata = idata + 1
   16538     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16539     2608006 :          full_data(idata) = data_tmp
   16540     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16541     2608006 :          idata = idata + 1
   16542     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16543     2608006 :          full_data(idata) = data_tmp
   16544     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16545     2608006 :          idata = idata + 1
   16546     2608006 :          data_tmp = ISHFT(pack_tmp, 18)
   16547     2608006 :          ipack = ipack + 1
   16548     2608006 :          pack_tmp = packed_data(ipack)
   16549     2608006 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   16550     2608006 :          pack_tmp = ISHFT(pack_tmp, -18)
   16551     2608006 :          idata = idata + 1
   16552     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16553     2608006 :          full_data(idata) = data_tmp
   16554     2608006 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16555     2608006 :          idata = idata + 1
   16556     2608006 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16557     2608006 :          full_data(idata) = data_tmp
   16558     2609093 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16559             :       END DO
   16560      188073 :       IF (Ndata_rep < Ndata) THEN
   16561       27316 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   16562             :       END IF
   16563      188073 :    END SUBROUTINE bits2ints_23
   16564             : 
   16565             : ! **************************************************************************************************
   16566             : !> \brief ...
   16567             : !> \param Ndata ...
   16568             : !> \param packed_data ...
   16569             : !> \param full_data ...
   16570             : ! **************************************************************************************************
   16571       33433 :    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       33433 :       idata = 0
   16582       33433 :       ipack = 0
   16583       33433 :       Ndata_rep = (Ndata/64)*64
   16584       33433 :       DO kdata = 1, Ndata_rep, 64
   16585      487753 :          pack_tmp = 0
   16586      487753 :          idata = idata + 1
   16587      487753 :          data_tmp = full_data(idata)
   16588      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16589      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16590      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16591      487753 :          idata = idata + 1
   16592      487753 :          data_tmp = full_data(idata)
   16593      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16594      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16595      487753 :          pack_tmp = ISHFT(pack_tmp, -16)
   16596      487753 :          idata = idata + 1
   16597      487753 :          data_tmp = full_data(idata)
   16598      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16599      487753 :          data_tmp = IAND(data_tmp, mask_left(16))
   16600      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16601      487753 :          ipack = ipack + 1
   16602      487753 :          packed_data(ipack) = pack_tmp
   16603      487753 :          data_tmp = full_data(idata)
   16604      487753 :          pack_tmp = ISHFT(data_tmp, 56)
   16605      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16606      487753 :          idata = idata + 1
   16607      487753 :          data_tmp = full_data(idata)
   16608      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16609      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16610      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16611      487753 :          idata = idata + 1
   16612      487753 :          data_tmp = full_data(idata)
   16613      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16614      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16615      487753 :          pack_tmp = ISHFT(pack_tmp, -8)
   16616      487753 :          idata = idata + 1
   16617      487753 :          data_tmp = full_data(idata)
   16618      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16619      487753 :          data_tmp = IAND(data_tmp, mask_left(8))
   16620      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16621      487753 :          ipack = ipack + 1
   16622      487753 :          packed_data(ipack) = pack_tmp
   16623      487753 :          data_tmp = full_data(idata)
   16624      487753 :          pack_tmp = ISHFT(data_tmp, 48)
   16625      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16626      487753 :          idata = idata + 1
   16627      487753 :          data_tmp = full_data(idata)
   16628      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16629      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16630      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16631      487753 :          idata = idata + 1
   16632      487753 :          data_tmp = full_data(idata)
   16633      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16634      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16635      487753 :          pack_tmp = ISHFT(pack_tmp, 0)
   16636      487753 :          idata = idata + 1
   16637      487753 :          data_tmp = full_data(idata)
   16638             :          data_tmp = ISHFT(data_tmp, 40)
   16639      487753 :          data_tmp = IAND(data_tmp, mask_left(0))
   16640      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16641      487753 :          ipack = ipack + 1
   16642      487753 :          packed_data(ipack) = pack_tmp
   16643      487753 :          data_tmp = full_data(idata)
   16644      487753 :          pack_tmp = ISHFT(data_tmp, 40)
   16645      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16646      487753 :          idata = idata + 1
   16647      487753 :          data_tmp = full_data(idata)
   16648      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16649      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16650      487753 :          pack_tmp = ISHFT(pack_tmp, -16)
   16651      487753 :          idata = idata + 1
   16652      487753 :          data_tmp = full_data(idata)
   16653      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16654      487753 :          data_tmp = IAND(data_tmp, mask_left(16))
   16655      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16656      487753 :          ipack = ipack + 1
   16657      487753 :          packed_data(ipack) = pack_tmp
   16658      487753 :          data_tmp = full_data(idata)
   16659      487753 :          pack_tmp = ISHFT(data_tmp, 56)
   16660      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16661      487753 :          idata = idata + 1
   16662      487753 :          data_tmp = full_data(idata)
   16663      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16664      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16665      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16666      487753 :          idata = idata + 1
   16667      487753 :          data_tmp = full_data(idata)
   16668      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16669      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16670      487753 :          pack_tmp = ISHFT(pack_tmp, -8)
   16671      487753 :          idata = idata + 1
   16672      487753 :          data_tmp = full_data(idata)
   16673      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16674      487753 :          data_tmp = IAND(data_tmp, mask_left(8))
   16675      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16676      487753 :          ipack = ipack + 1
   16677      487753 :          packed_data(ipack) = pack_tmp
   16678      487753 :          data_tmp = full_data(idata)
   16679      487753 :          pack_tmp = ISHFT(data_tmp, 48)
   16680      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16681      487753 :          idata = idata + 1
   16682      487753 :          data_tmp = full_data(idata)
   16683      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16684      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16685      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16686      487753 :          idata = idata + 1
   16687      487753 :          data_tmp = full_data(idata)
   16688      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16689      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16690      487753 :          pack_tmp = ISHFT(pack_tmp, 0)
   16691      487753 :          idata = idata + 1
   16692      487753 :          data_tmp = full_data(idata)
   16693             :          data_tmp = ISHFT(data_tmp, 40)
   16694      487753 :          data_tmp = IAND(data_tmp, mask_left(0))
   16695      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16696      487753 :          ipack = ipack + 1
   16697      487753 :          packed_data(ipack) = pack_tmp
   16698      487753 :          data_tmp = full_data(idata)
   16699      487753 :          pack_tmp = ISHFT(data_tmp, 40)
   16700      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16701      487753 :          idata = idata + 1
   16702      487753 :          data_tmp = full_data(idata)
   16703      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16704      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16705      487753 :          pack_tmp = ISHFT(pack_tmp, -16)
   16706      487753 :          idata = idata + 1
   16707      487753 :          data_tmp = full_data(idata)
   16708      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16709      487753 :          data_tmp = IAND(data_tmp, mask_left(16))
   16710      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16711      487753 :          ipack = ipack + 1
   16712      487753 :          packed_data(ipack) = pack_tmp
   16713      487753 :          data_tmp = full_data(idata)
   16714      487753 :          pack_tmp = ISHFT(data_tmp, 56)
   16715      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16716      487753 :          idata = idata + 1
   16717      487753 :          data_tmp = full_data(idata)
   16718      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16719      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16720      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16721      487753 :          idata = idata + 1
   16722      487753 :          data_tmp = full_data(idata)
   16723      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16724      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16725      487753 :          pack_tmp = ISHFT(pack_tmp, -8)
   16726      487753 :          idata = idata + 1
   16727      487753 :          data_tmp = full_data(idata)
   16728      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16729      487753 :          data_tmp = IAND(data_tmp, mask_left(8))
   16730      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16731      487753 :          ipack = ipack + 1
   16732      487753 :          packed_data(ipack) = pack_tmp
   16733      487753 :          data_tmp = full_data(idata)
   16734      487753 :          pack_tmp = ISHFT(data_tmp, 48)
   16735      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16736      487753 :          idata = idata + 1
   16737      487753 :          data_tmp = full_data(idata)
   16738      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16739      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16740      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16741      487753 :          idata = idata + 1
   16742      487753 :          data_tmp = full_data(idata)
   16743      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16744      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16745      487753 :          pack_tmp = ISHFT(pack_tmp, 0)
   16746      487753 :          idata = idata + 1
   16747      487753 :          data_tmp = full_data(idata)
   16748             :          data_tmp = ISHFT(data_tmp, 40)
   16749      487753 :          data_tmp = IAND(data_tmp, mask_left(0))
   16750      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16751      487753 :          ipack = ipack + 1
   16752      487753 :          packed_data(ipack) = pack_tmp
   16753      487753 :          data_tmp = full_data(idata)
   16754      487753 :          pack_tmp = ISHFT(data_tmp, 40)
   16755      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16756      487753 :          idata = idata + 1
   16757      487753 :          data_tmp = full_data(idata)
   16758      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16759      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16760      487753 :          pack_tmp = ISHFT(pack_tmp, -16)
   16761      487753 :          idata = idata + 1
   16762      487753 :          data_tmp = full_data(idata)
   16763      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16764      487753 :          data_tmp = IAND(data_tmp, mask_left(16))
   16765      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16766      487753 :          ipack = ipack + 1
   16767      487753 :          packed_data(ipack) = pack_tmp
   16768      487753 :          data_tmp = full_data(idata)
   16769      487753 :          pack_tmp = ISHFT(data_tmp, 56)
   16770      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16771      487753 :          idata = idata + 1
   16772      487753 :          data_tmp = full_data(idata)
   16773      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16774      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16775      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16776      487753 :          idata = idata + 1
   16777      487753 :          data_tmp = full_data(idata)
   16778      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16779      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16780      487753 :          pack_tmp = ISHFT(pack_tmp, -8)
   16781      487753 :          idata = idata + 1
   16782      487753 :          data_tmp = full_data(idata)
   16783      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16784      487753 :          data_tmp = IAND(data_tmp, mask_left(8))
   16785      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16786      487753 :          ipack = ipack + 1
   16787      487753 :          packed_data(ipack) = pack_tmp
   16788      487753 :          data_tmp = full_data(idata)
   16789      487753 :          pack_tmp = ISHFT(data_tmp, 48)
   16790      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16791      487753 :          idata = idata + 1
   16792      487753 :          data_tmp = full_data(idata)
   16793      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16794      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16795      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16796      487753 :          idata = idata + 1
   16797      487753 :          data_tmp = full_data(idata)
   16798      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16799      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16800      487753 :          pack_tmp = ISHFT(pack_tmp, 0)
   16801      487753 :          idata = idata + 1
   16802      487753 :          data_tmp = full_data(idata)
   16803             :          data_tmp = ISHFT(data_tmp, 40)
   16804      487753 :          data_tmp = IAND(data_tmp, mask_left(0))
   16805      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16806      487753 :          ipack = ipack + 1
   16807      487753 :          packed_data(ipack) = pack_tmp
   16808      487753 :          data_tmp = full_data(idata)
   16809      487753 :          pack_tmp = ISHFT(data_tmp, 40)
   16810      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16811      487753 :          idata = idata + 1
   16812      487753 :          data_tmp = full_data(idata)
   16813      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16814      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16815      487753 :          pack_tmp = ISHFT(pack_tmp, -16)
   16816      487753 :          idata = idata + 1
   16817      487753 :          data_tmp = full_data(idata)
   16818      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16819      487753 :          data_tmp = IAND(data_tmp, mask_left(16))
   16820      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16821      487753 :          ipack = ipack + 1
   16822      487753 :          packed_data(ipack) = pack_tmp
   16823      487753 :          data_tmp = full_data(idata)
   16824      487753 :          pack_tmp = ISHFT(data_tmp, 56)
   16825      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16826      487753 :          idata = idata + 1
   16827      487753 :          data_tmp = full_data(idata)
   16828      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16829      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16830      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16831      487753 :          idata = idata + 1
   16832      487753 :          data_tmp = full_data(idata)
   16833      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16834      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16835      487753 :          pack_tmp = ISHFT(pack_tmp, -8)
   16836      487753 :          idata = idata + 1
   16837      487753 :          data_tmp = full_data(idata)
   16838      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16839      487753 :          data_tmp = IAND(data_tmp, mask_left(8))
   16840      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16841      487753 :          ipack = ipack + 1
   16842      487753 :          packed_data(ipack) = pack_tmp
   16843      487753 :          data_tmp = full_data(idata)
   16844      487753 :          pack_tmp = ISHFT(data_tmp, 48)
   16845      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16846      487753 :          idata = idata + 1
   16847      487753 :          data_tmp = full_data(idata)
   16848      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16849      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16850      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16851      487753 :          idata = idata + 1
   16852      487753 :          data_tmp = full_data(idata)
   16853      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16854      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16855      487753 :          pack_tmp = ISHFT(pack_tmp, 0)
   16856      487753 :          idata = idata + 1
   16857      487753 :          data_tmp = full_data(idata)
   16858             :          data_tmp = ISHFT(data_tmp, 40)
   16859      487753 :          data_tmp = IAND(data_tmp, mask_left(0))
   16860      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16861      487753 :          ipack = ipack + 1
   16862      487753 :          packed_data(ipack) = pack_tmp
   16863      487753 :          data_tmp = full_data(idata)
   16864      487753 :          pack_tmp = ISHFT(data_tmp, 40)
   16865      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16866      487753 :          idata = idata + 1
   16867      487753 :          data_tmp = full_data(idata)
   16868      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16869      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16870      487753 :          pack_tmp = ISHFT(pack_tmp, -16)
   16871      487753 :          idata = idata + 1
   16872      487753 :          data_tmp = full_data(idata)
   16873      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16874      487753 :          data_tmp = IAND(data_tmp, mask_left(16))
   16875      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16876      487753 :          ipack = ipack + 1
   16877      487753 :          packed_data(ipack) = pack_tmp
   16878      487753 :          data_tmp = full_data(idata)
   16879      487753 :          pack_tmp = ISHFT(data_tmp, 56)
   16880      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16881      487753 :          idata = idata + 1
   16882      487753 :          data_tmp = full_data(idata)
   16883      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16884      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16885      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16886      487753 :          idata = idata + 1
   16887      487753 :          data_tmp = full_data(idata)
   16888      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16889      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16890      487753 :          pack_tmp = ISHFT(pack_tmp, -8)
   16891      487753 :          idata = idata + 1
   16892      487753 :          data_tmp = full_data(idata)
   16893      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16894      487753 :          data_tmp = IAND(data_tmp, mask_left(8))
   16895      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16896      487753 :          ipack = ipack + 1
   16897      487753 :          packed_data(ipack) = pack_tmp
   16898      487753 :          data_tmp = full_data(idata)
   16899      487753 :          pack_tmp = ISHFT(data_tmp, 48)
   16900      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16901      487753 :          idata = idata + 1
   16902      487753 :          data_tmp = full_data(idata)
   16903      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16904      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16905      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16906      487753 :          idata = idata + 1
   16907      487753 :          data_tmp = full_data(idata)
   16908      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16909      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16910      487753 :          pack_tmp = ISHFT(pack_tmp, 0)
   16911      487753 :          idata = idata + 1
   16912      487753 :          data_tmp = full_data(idata)
   16913             :          data_tmp = ISHFT(data_tmp, 40)
   16914      487753 :          data_tmp = IAND(data_tmp, mask_left(0))
   16915      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16916      487753 :          ipack = ipack + 1
   16917      487753 :          packed_data(ipack) = pack_tmp
   16918      487753 :          data_tmp = full_data(idata)
   16919      487753 :          pack_tmp = ISHFT(data_tmp, 40)
   16920      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16921      487753 :          idata = idata + 1
   16922      487753 :          data_tmp = full_data(idata)
   16923      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16924      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16925      487753 :          pack_tmp = ISHFT(pack_tmp, -16)
   16926      487753 :          idata = idata + 1
   16927      487753 :          data_tmp = full_data(idata)
   16928      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16929      487753 :          data_tmp = IAND(data_tmp, mask_left(16))
   16930      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16931      487753 :          ipack = ipack + 1
   16932      487753 :          packed_data(ipack) = pack_tmp
   16933      487753 :          data_tmp = full_data(idata)
   16934      487753 :          pack_tmp = ISHFT(data_tmp, 56)
   16935      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16936      487753 :          idata = idata + 1
   16937      487753 :          data_tmp = full_data(idata)
   16938      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16939      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16940      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16941      487753 :          idata = idata + 1
   16942      487753 :          data_tmp = full_data(idata)
   16943      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16944      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16945      487753 :          pack_tmp = ISHFT(pack_tmp, -8)
   16946      487753 :          idata = idata + 1
   16947      487753 :          data_tmp = full_data(idata)
   16948      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16949      487753 :          data_tmp = IAND(data_tmp, mask_left(8))
   16950      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16951      487753 :          ipack = ipack + 1
   16952      487753 :          packed_data(ipack) = pack_tmp
   16953      487753 :          data_tmp = full_data(idata)
   16954      487753 :          pack_tmp = ISHFT(data_tmp, 48)
   16955      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16956      487753 :          idata = idata + 1
   16957      487753 :          data_tmp = full_data(idata)
   16958      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16959      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16960      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16961      487753 :          idata = idata + 1
   16962      487753 :          data_tmp = full_data(idata)
   16963      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16964      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16965      487753 :          pack_tmp = ISHFT(pack_tmp, 0)
   16966      487753 :          idata = idata + 1
   16967      487753 :          data_tmp = full_data(idata)
   16968             :          data_tmp = ISHFT(data_tmp, 40)
   16969      487753 :          data_tmp = IAND(data_tmp, mask_left(0))
   16970      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16971      487753 :          ipack = ipack + 1
   16972      487753 :          packed_data(ipack) = pack_tmp
   16973      487753 :          data_tmp = full_data(idata)
   16974      487753 :          pack_tmp = ISHFT(data_tmp, 40)
   16975      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16976      487753 :          idata = idata + 1
   16977      487753 :          data_tmp = full_data(idata)
   16978      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16979      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16980      487753 :          pack_tmp = ISHFT(pack_tmp, -16)
   16981      487753 :          idata = idata + 1
   16982      487753 :          data_tmp = full_data(idata)
   16983      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16984      487753 :          data_tmp = IAND(data_tmp, mask_left(16))
   16985      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16986      487753 :          ipack = ipack + 1
   16987      487753 :          packed_data(ipack) = pack_tmp
   16988      487753 :          data_tmp = full_data(idata)
   16989      487753 :          pack_tmp = ISHFT(data_tmp, 56)
   16990      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16991      487753 :          idata = idata + 1
   16992      487753 :          data_tmp = full_data(idata)
   16993      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16994      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16995      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   16996      487753 :          idata = idata + 1
   16997      487753 :          data_tmp = full_data(idata)
   16998      487753 :          data_tmp = ISHFT(data_tmp, 40)
   16999      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17000      487753 :          pack_tmp = ISHFT(pack_tmp, -8)
   17001      487753 :          idata = idata + 1
   17002      487753 :          data_tmp = full_data(idata)
   17003      487753 :          data_tmp = ISHFT(data_tmp, 40)
   17004      487753 :          data_tmp = IAND(data_tmp, mask_left(8))
   17005      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17006      487753 :          ipack = ipack + 1
   17007      487753 :          packed_data(ipack) = pack_tmp
   17008      487753 :          data_tmp = full_data(idata)
   17009      487753 :          pack_tmp = ISHFT(data_tmp, 48)
   17010      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   17011      487753 :          idata = idata + 1
   17012      487753 :          data_tmp = full_data(idata)
   17013      487753 :          data_tmp = ISHFT(data_tmp, 40)
   17014      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17015      487753 :          pack_tmp = ISHFT(pack_tmp, -24)
   17016      487753 :          idata = idata + 1
   17017      487753 :          data_tmp = full_data(idata)
   17018      487753 :          data_tmp = ISHFT(data_tmp, 40)
   17019      487753 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17020             :          pack_tmp = ISHFT(pack_tmp, 0)
   17021      487753 :          pack_tmp = ISHFT(pack_tmp, 0)
   17022      487753 :          ipack = ipack + 1
   17023      488331 :          packed_data(ipack) = pack_tmp
   17024             :       END DO
   17025       33433 :       IF (Ndata_rep < Ndata) THEN
   17026        5550 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   17027             :       END IF
   17028       33433 :    END SUBROUTINE ints2bits_24
   17029             : 
   17030             : ! **************************************************************************************************
   17031             : !> \brief ...
   17032             : !> \param Ndata ...
   17033             : !> \param packed_data ...
   17034             : !> \param full_data ...
   17035             : ! **************************************************************************************************
   17036      156087 :    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      156087 :       ipack = 0
   17047      156087 :       idata = 0
   17048      156087 :       pack_tmp = 0
   17049      156087 :       Ndata_rep = (Ndata/64)*64
   17050      156087 :       DO kdata = 1, Ndata_rep, 64
   17051     2209361 :          idata = idata + 1
   17052     2209361 :          data_tmp = ISHFT(pack_tmp, 24)
   17053     2209361 :          ipack = ipack + 1
   17054     2209361 :          pack_tmp = packed_data(ipack)
   17055     2209361 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17056     2209361 :          pack_tmp = ISHFT(pack_tmp, -24)
   17057     2209361 :          idata = idata + 1
   17058     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17059     2209361 :          full_data(idata) = data_tmp
   17060     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17061     2209361 :          idata = idata + 1
   17062     2209361 :          data_tmp = ISHFT(pack_tmp, 8)
   17063     2209361 :          ipack = ipack + 1
   17064     2209361 :          pack_tmp = packed_data(ipack)
   17065     2209361 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17066     2209361 :          pack_tmp = ISHFT(pack_tmp, -8)
   17067     2209361 :          idata = idata + 1
   17068     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17069     2209361 :          full_data(idata) = data_tmp
   17070     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17071     2209361 :          idata = idata + 1
   17072     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17073     2209361 :          full_data(idata) = data_tmp
   17074     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17075     2209361 :          idata = idata + 1
   17076     2209361 :          data_tmp = ISHFT(pack_tmp, 16)
   17077     2209361 :          ipack = ipack + 1
   17078     2209361 :          pack_tmp = packed_data(ipack)
   17079     2209361 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17080     2209361 :          pack_tmp = ISHFT(pack_tmp, -16)
   17081     2209361 :          idata = idata + 1
   17082     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17083     2209361 :          full_data(idata) = data_tmp
   17084     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17085     2209361 :          idata = idata + 1
   17086     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17087     2209361 :          full_data(idata) = data_tmp
   17088     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17089     2209361 :          idata = idata + 1
   17090     2209361 :          data_tmp = ISHFT(pack_tmp, 24)
   17091     2209361 :          ipack = ipack + 1
   17092     2209361 :          pack_tmp = packed_data(ipack)
   17093     2209361 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17094     2209361 :          pack_tmp = ISHFT(pack_tmp, -24)
   17095     2209361 :          idata = idata + 1
   17096     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17097     2209361 :          full_data(idata) = data_tmp
   17098     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17099     2209361 :          idata = idata + 1
   17100     2209361 :          data_tmp = ISHFT(pack_tmp, 8)
   17101     2209361 :          ipack = ipack + 1
   17102     2209361 :          pack_tmp = packed_data(ipack)
   17103     2209361 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17104     2209361 :          pack_tmp = ISHFT(pack_tmp, -8)
   17105     2209361 :          idata = idata + 1
   17106     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17107     2209361 :          full_data(idata) = data_tmp
   17108     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17109     2209361 :          idata = idata + 1
   17110     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17111     2209361 :          full_data(idata) = data_tmp
   17112     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17113     2209361 :          idata = idata + 1
   17114     2209361 :          data_tmp = ISHFT(pack_tmp, 16)
   17115     2209361 :          ipack = ipack + 1
   17116     2209361 :          pack_tmp = packed_data(ipack)
   17117     2209361 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17118     2209361 :          pack_tmp = ISHFT(pack_tmp, -16)
   17119     2209361 :          idata = idata + 1
   17120     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17121     2209361 :          full_data(idata) = data_tmp
   17122     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17123     2209361 :          idata = idata + 1
   17124     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17125     2209361 :          full_data(idata) = data_tmp
   17126     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17127     2209361 :          idata = idata + 1
   17128     2209361 :          data_tmp = ISHFT(pack_tmp, 24)
   17129     2209361 :          ipack = ipack + 1
   17130     2209361 :          pack_tmp = packed_data(ipack)
   17131     2209361 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17132     2209361 :          pack_tmp = ISHFT(pack_tmp, -24)
   17133     2209361 :          idata = idata + 1
   17134     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17135     2209361 :          full_data(idata) = data_tmp
   17136     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17137     2209361 :          idata = idata + 1
   17138     2209361 :          data_tmp = ISHFT(pack_tmp, 8)
   17139     2209361 :          ipack = ipack + 1
   17140     2209361 :          pack_tmp = packed_data(ipack)
   17141     2209361 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17142     2209361 :          pack_tmp = ISHFT(pack_tmp, -8)
   17143     2209361 :          idata = idata + 1
   17144     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17145     2209361 :          full_data(idata) = data_tmp
   17146     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17147     2209361 :          idata = idata + 1
   17148     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17149     2209361 :          full_data(idata) = data_tmp
   17150     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17151     2209361 :          idata = idata + 1
   17152     2209361 :          data_tmp = ISHFT(pack_tmp, 16)
   17153     2209361 :          ipack = ipack + 1
   17154     2209361 :          pack_tmp = packed_data(ipack)
   17155     2209361 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17156     2209361 :          pack_tmp = ISHFT(pack_tmp, -16)
   17157     2209361 :          idata = idata + 1
   17158     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17159     2209361 :          full_data(idata) = data_tmp
   17160     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17161     2209361 :          idata = idata + 1
   17162     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17163     2209361 :          full_data(idata) = data_tmp
   17164     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17165     2209361 :          idata = idata + 1
   17166     2209361 :          data_tmp = ISHFT(pack_tmp, 24)
   17167     2209361 :          ipack = ipack + 1
   17168     2209361 :          pack_tmp = packed_data(ipack)
   17169     2209361 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17170     2209361 :          pack_tmp = ISHFT(pack_tmp, -24)
   17171     2209361 :          idata = idata + 1
   17172     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17173     2209361 :          full_data(idata) = data_tmp
   17174     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17175     2209361 :          idata = idata + 1
   17176     2209361 :          data_tmp = ISHFT(pack_tmp, 8)
   17177     2209361 :          ipack = ipack + 1
   17178     2209361 :          pack_tmp = packed_data(ipack)
   17179     2209361 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17180     2209361 :          pack_tmp = ISHFT(pack_tmp, -8)
   17181     2209361 :          idata = idata + 1
   17182     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17183     2209361 :          full_data(idata) = data_tmp
   17184     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17185     2209361 :          idata = idata + 1
   17186     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17187     2209361 :          full_data(idata) = data_tmp
   17188     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17189     2209361 :          idata = idata + 1
   17190     2209361 :          data_tmp = ISHFT(pack_tmp, 16)
   17191     2209361 :          ipack = ipack + 1
   17192     2209361 :          pack_tmp = packed_data(ipack)
   17193     2209361 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17194     2209361 :          pack_tmp = ISHFT(pack_tmp, -16)
   17195     2209361 :          idata = idata + 1
   17196     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17197     2209361 :          full_data(idata) = data_tmp
   17198     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17199     2209361 :          idata = idata + 1
   17200     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17201     2209361 :          full_data(idata) = data_tmp
   17202     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17203     2209361 :          idata = idata + 1
   17204     2209361 :          data_tmp = ISHFT(pack_tmp, 24)
   17205     2209361 :          ipack = ipack + 1
   17206     2209361 :          pack_tmp = packed_data(ipack)
   17207     2209361 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17208     2209361 :          pack_tmp = ISHFT(pack_tmp, -24)
   17209     2209361 :          idata = idata + 1
   17210     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17211     2209361 :          full_data(idata) = data_tmp
   17212     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17213     2209361 :          idata = idata + 1
   17214     2209361 :          data_tmp = ISHFT(pack_tmp, 8)
   17215     2209361 :          ipack = ipack + 1
   17216     2209361 :          pack_tmp = packed_data(ipack)
   17217     2209361 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17218     2209361 :          pack_tmp = ISHFT(pack_tmp, -8)
   17219     2209361 :          idata = idata + 1
   17220     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17221     2209361 :          full_data(idata) = data_tmp
   17222     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17223     2209361 :          idata = idata + 1
   17224     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17225     2209361 :          full_data(idata) = data_tmp
   17226     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17227     2209361 :          idata = idata + 1
   17228     2209361 :          data_tmp = ISHFT(pack_tmp, 16)
   17229     2209361 :          ipack = ipack + 1
   17230     2209361 :          pack_tmp = packed_data(ipack)
   17231     2209361 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17232     2209361 :          pack_tmp = ISHFT(pack_tmp, -16)
   17233     2209361 :          idata = idata + 1
   17234     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17235     2209361 :          full_data(idata) = data_tmp
   17236     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17237     2209361 :          idata = idata + 1
   17238     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17239     2209361 :          full_data(idata) = data_tmp
   17240     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17241     2209361 :          idata = idata + 1
   17242     2209361 :          data_tmp = ISHFT(pack_tmp, 24)
   17243     2209361 :          ipack = ipack + 1
   17244     2209361 :          pack_tmp = packed_data(ipack)
   17245     2209361 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17246     2209361 :          pack_tmp = ISHFT(pack_tmp, -24)
   17247     2209361 :          idata = idata + 1
   17248     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17249     2209361 :          full_data(idata) = data_tmp
   17250     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17251     2209361 :          idata = idata + 1
   17252     2209361 :          data_tmp = ISHFT(pack_tmp, 8)
   17253     2209361 :          ipack = ipack + 1
   17254     2209361 :          pack_tmp = packed_data(ipack)
   17255     2209361 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17256     2209361 :          pack_tmp = ISHFT(pack_tmp, -8)
   17257     2209361 :          idata = idata + 1
   17258     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17259     2209361 :          full_data(idata) = data_tmp
   17260     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17261     2209361 :          idata = idata + 1
   17262     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17263     2209361 :          full_data(idata) = data_tmp
   17264     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17265     2209361 :          idata = idata + 1
   17266     2209361 :          data_tmp = ISHFT(pack_tmp, 16)
   17267     2209361 :          ipack = ipack + 1
   17268     2209361 :          pack_tmp = packed_data(ipack)
   17269     2209361 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17270     2209361 :          pack_tmp = ISHFT(pack_tmp, -16)
   17271     2209361 :          idata = idata + 1
   17272     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17273     2209361 :          full_data(idata) = data_tmp
   17274     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17275     2209361 :          idata = idata + 1
   17276     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17277     2209361 :          full_data(idata) = data_tmp
   17278     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17279     2209361 :          idata = idata + 1
   17280     2209361 :          data_tmp = ISHFT(pack_tmp, 24)
   17281     2209361 :          ipack = ipack + 1
   17282     2209361 :          pack_tmp = packed_data(ipack)
   17283     2209361 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17284     2209361 :          pack_tmp = ISHFT(pack_tmp, -24)
   17285     2209361 :          idata = idata + 1
   17286     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17287     2209361 :          full_data(idata) = data_tmp
   17288     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17289     2209361 :          idata = idata + 1
   17290     2209361 :          data_tmp = ISHFT(pack_tmp, 8)
   17291     2209361 :          ipack = ipack + 1
   17292     2209361 :          pack_tmp = packed_data(ipack)
   17293     2209361 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17294     2209361 :          pack_tmp = ISHFT(pack_tmp, -8)
   17295     2209361 :          idata = idata + 1
   17296     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17297     2209361 :          full_data(idata) = data_tmp
   17298     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17299     2209361 :          idata = idata + 1
   17300     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17301     2209361 :          full_data(idata) = data_tmp
   17302     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17303     2209361 :          idata = idata + 1
   17304     2209361 :          data_tmp = ISHFT(pack_tmp, 16)
   17305     2209361 :          ipack = ipack + 1
   17306     2209361 :          pack_tmp = packed_data(ipack)
   17307     2209361 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17308     2209361 :          pack_tmp = ISHFT(pack_tmp, -16)
   17309     2209361 :          idata = idata + 1
   17310     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17311     2209361 :          full_data(idata) = data_tmp
   17312     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17313     2209361 :          idata = idata + 1
   17314     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17315     2209361 :          full_data(idata) = data_tmp
   17316     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17317     2209361 :          idata = idata + 1
   17318     2209361 :          data_tmp = ISHFT(pack_tmp, 24)
   17319     2209361 :          ipack = ipack + 1
   17320     2209361 :          pack_tmp = packed_data(ipack)
   17321     2209361 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17322     2209361 :          pack_tmp = ISHFT(pack_tmp, -24)
   17323     2209361 :          idata = idata + 1
   17324     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17325     2209361 :          full_data(idata) = data_tmp
   17326     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17327     2209361 :          idata = idata + 1
   17328     2209361 :          data_tmp = ISHFT(pack_tmp, 8)
   17329     2209361 :          ipack = ipack + 1
   17330     2209361 :          pack_tmp = packed_data(ipack)
   17331     2209361 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17332     2209361 :          pack_tmp = ISHFT(pack_tmp, -8)
   17333     2209361 :          idata = idata + 1
   17334     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17335     2209361 :          full_data(idata) = data_tmp
   17336     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17337     2209361 :          idata = idata + 1
   17338     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17339     2209361 :          full_data(idata) = data_tmp
   17340     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17341     2209361 :          idata = idata + 1
   17342     2209361 :          data_tmp = ISHFT(pack_tmp, 16)
   17343     2209361 :          ipack = ipack + 1
   17344     2209361 :          pack_tmp = packed_data(ipack)
   17345     2209361 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17346     2209361 :          pack_tmp = ISHFT(pack_tmp, -16)
   17347     2209361 :          idata = idata + 1
   17348     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17349     2209361 :          full_data(idata) = data_tmp
   17350     2209361 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17351     2209361 :          idata = idata + 1
   17352     2209361 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17353     2209361 :          full_data(idata) = data_tmp
   17354     2213040 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17355             :       END DO
   17356      156087 :       IF (Ndata_rep < Ndata) THEN
   17357       33886 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   17358             :       END IF
   17359      156087 :    END SUBROUTINE bits2ints_24
   17360             : 
   17361             : ! **************************************************************************************************
   17362             : !> \brief ...
   17363             : !> \param Ndata ...
   17364             : !> \param packed_data ...
   17365             : !> \param full_data ...
   17366             : ! **************************************************************************************************
   17367       33399 :    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       33399 :       idata = 0
   17378       33399 :       ipack = 0
   17379       33399 :       Ndata_rep = (Ndata/64)*64
   17380       33399 :       DO kdata = 1, Ndata_rep, 64
   17381      485612 :          pack_tmp = 0
   17382      485612 :          idata = idata + 1
   17383      485612 :          data_tmp = full_data(idata)
   17384      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17385      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17386      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17387      485612 :          idata = idata + 1
   17388      485612 :          data_tmp = full_data(idata)
   17389      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17390      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17391      485612 :          pack_tmp = ISHFT(pack_tmp, -14)
   17392      485612 :          idata = idata + 1
   17393      485612 :          data_tmp = full_data(idata)
   17394      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17395      485612 :          data_tmp = IAND(data_tmp, mask_left(14))
   17396      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17397      485612 :          ipack = ipack + 1
   17398      485612 :          packed_data(ipack) = pack_tmp
   17399      485612 :          data_tmp = full_data(idata)
   17400      485612 :          pack_tmp = ISHFT(data_tmp, 53)
   17401      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17402      485612 :          idata = idata + 1
   17403      485612 :          data_tmp = full_data(idata)
   17404      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17405      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17406      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17407      485612 :          idata = idata + 1
   17408      485612 :          data_tmp = full_data(idata)
   17409      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17410      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17411      485612 :          pack_tmp = ISHFT(pack_tmp, -3)
   17412      485612 :          idata = idata + 1
   17413      485612 :          data_tmp = full_data(idata)
   17414      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17415      485612 :          data_tmp = IAND(data_tmp, mask_left(3))
   17416      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17417      485612 :          ipack = ipack + 1
   17418      485612 :          packed_data(ipack) = pack_tmp
   17419      485612 :          data_tmp = full_data(idata)
   17420      485612 :          pack_tmp = ISHFT(data_tmp, 42)
   17421      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17422      485612 :          idata = idata + 1
   17423      485612 :          data_tmp = full_data(idata)
   17424      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17425      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17426      485612 :          pack_tmp = ISHFT(pack_tmp, -17)
   17427      485612 :          idata = idata + 1
   17428      485612 :          data_tmp = full_data(idata)
   17429      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17430      485612 :          data_tmp = IAND(data_tmp, mask_left(17))
   17431      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17432      485612 :          ipack = ipack + 1
   17433      485612 :          packed_data(ipack) = pack_tmp
   17434      485612 :          data_tmp = full_data(idata)
   17435      485612 :          pack_tmp = ISHFT(data_tmp, 56)
   17436      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17437      485612 :          idata = idata + 1
   17438      485612 :          data_tmp = full_data(idata)
   17439      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17440      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17441      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17442      485612 :          idata = idata + 1
   17443      485612 :          data_tmp = full_data(idata)
   17444      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17445      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17446      485612 :          pack_tmp = ISHFT(pack_tmp, -6)
   17447      485612 :          idata = idata + 1
   17448      485612 :          data_tmp = full_data(idata)
   17449      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17450      485612 :          data_tmp = IAND(data_tmp, mask_left(6))
   17451      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17452      485612 :          ipack = ipack + 1
   17453      485612 :          packed_data(ipack) = pack_tmp
   17454      485612 :          data_tmp = full_data(idata)
   17455      485612 :          pack_tmp = ISHFT(data_tmp, 45)
   17456      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17457      485612 :          idata = idata + 1
   17458      485612 :          data_tmp = full_data(idata)
   17459      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17460      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17461      485612 :          pack_tmp = ISHFT(pack_tmp, -20)
   17462      485612 :          idata = idata + 1
   17463      485612 :          data_tmp = full_data(idata)
   17464      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17465      485612 :          data_tmp = IAND(data_tmp, mask_left(20))
   17466      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17467      485612 :          ipack = ipack + 1
   17468      485612 :          packed_data(ipack) = pack_tmp
   17469      485612 :          data_tmp = full_data(idata)
   17470      485612 :          pack_tmp = ISHFT(data_tmp, 59)
   17471      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17472      485612 :          idata = idata + 1
   17473      485612 :          data_tmp = full_data(idata)
   17474      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17475      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17476      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17477      485612 :          idata = idata + 1
   17478      485612 :          data_tmp = full_data(idata)
   17479      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17480      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17481      485612 :          pack_tmp = ISHFT(pack_tmp, -9)
   17482      485612 :          idata = idata + 1
   17483      485612 :          data_tmp = full_data(idata)
   17484      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17485      485612 :          data_tmp = IAND(data_tmp, mask_left(9))
   17486      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17487      485612 :          ipack = ipack + 1
   17488      485612 :          packed_data(ipack) = pack_tmp
   17489      485612 :          data_tmp = full_data(idata)
   17490      485612 :          pack_tmp = ISHFT(data_tmp, 48)
   17491      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17492      485612 :          idata = idata + 1
   17493      485612 :          data_tmp = full_data(idata)
   17494      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17495      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17496      485612 :          pack_tmp = ISHFT(pack_tmp, -23)
   17497      485612 :          idata = idata + 1
   17498      485612 :          data_tmp = full_data(idata)
   17499      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17500      485612 :          data_tmp = IAND(data_tmp, mask_left(23))
   17501      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17502      485612 :          ipack = ipack + 1
   17503      485612 :          packed_data(ipack) = pack_tmp
   17504      485612 :          data_tmp = full_data(idata)
   17505      485612 :          pack_tmp = ISHFT(data_tmp, 62)
   17506      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17507      485612 :          idata = idata + 1
   17508      485612 :          data_tmp = full_data(idata)
   17509      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17510      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17511      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17512      485612 :          idata = idata + 1
   17513      485612 :          data_tmp = full_data(idata)
   17514      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17515      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17516      485612 :          pack_tmp = ISHFT(pack_tmp, -12)
   17517      485612 :          idata = idata + 1
   17518      485612 :          data_tmp = full_data(idata)
   17519      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17520      485612 :          data_tmp = IAND(data_tmp, mask_left(12))
   17521      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17522      485612 :          ipack = ipack + 1
   17523      485612 :          packed_data(ipack) = pack_tmp
   17524      485612 :          data_tmp = full_data(idata)
   17525      485612 :          pack_tmp = ISHFT(data_tmp, 51)
   17526      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17527      485612 :          idata = idata + 1
   17528      485612 :          data_tmp = full_data(idata)
   17529      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17530      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17531      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17532      485612 :          idata = idata + 1
   17533      485612 :          data_tmp = full_data(idata)
   17534      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17535      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17536      485612 :          pack_tmp = ISHFT(pack_tmp, -1)
   17537      485612 :          idata = idata + 1
   17538      485612 :          data_tmp = full_data(idata)
   17539      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17540      485612 :          data_tmp = IAND(data_tmp, mask_left(1))
   17541      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17542      485612 :          ipack = ipack + 1
   17543      485612 :          packed_data(ipack) = pack_tmp
   17544      485612 :          data_tmp = full_data(idata)
   17545      485612 :          pack_tmp = ISHFT(data_tmp, 40)
   17546      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17547      485612 :          idata = idata + 1
   17548      485612 :          data_tmp = full_data(idata)
   17549      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17550      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17551      485612 :          pack_tmp = ISHFT(pack_tmp, -15)
   17552      485612 :          idata = idata + 1
   17553      485612 :          data_tmp = full_data(idata)
   17554      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17555      485612 :          data_tmp = IAND(data_tmp, mask_left(15))
   17556      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17557      485612 :          ipack = ipack + 1
   17558      485612 :          packed_data(ipack) = pack_tmp
   17559      485612 :          data_tmp = full_data(idata)
   17560      485612 :          pack_tmp = ISHFT(data_tmp, 54)
   17561      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17562      485612 :          idata = idata + 1
   17563      485612 :          data_tmp = full_data(idata)
   17564      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17565      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17566      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17567      485612 :          idata = idata + 1
   17568      485612 :          data_tmp = full_data(idata)
   17569      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17570      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17571      485612 :          pack_tmp = ISHFT(pack_tmp, -4)
   17572      485612 :          idata = idata + 1
   17573      485612 :          data_tmp = full_data(idata)
   17574      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17575      485612 :          data_tmp = IAND(data_tmp, mask_left(4))
   17576      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17577      485612 :          ipack = ipack + 1
   17578      485612 :          packed_data(ipack) = pack_tmp
   17579      485612 :          data_tmp = full_data(idata)
   17580      485612 :          pack_tmp = ISHFT(data_tmp, 43)
   17581      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17582      485612 :          idata = idata + 1
   17583      485612 :          data_tmp = full_data(idata)
   17584      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17585      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17586      485612 :          pack_tmp = ISHFT(pack_tmp, -18)
   17587      485612 :          idata = idata + 1
   17588      485612 :          data_tmp = full_data(idata)
   17589      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17590      485612 :          data_tmp = IAND(data_tmp, mask_left(18))
   17591      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17592      485612 :          ipack = ipack + 1
   17593      485612 :          packed_data(ipack) = pack_tmp
   17594      485612 :          data_tmp = full_data(idata)
   17595      485612 :          pack_tmp = ISHFT(data_tmp, 57)
   17596      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17597      485612 :          idata = idata + 1
   17598      485612 :          data_tmp = full_data(idata)
   17599      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17600      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17601      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17602      485612 :          idata = idata + 1
   17603      485612 :          data_tmp = full_data(idata)
   17604      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17605      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17606      485612 :          pack_tmp = ISHFT(pack_tmp, -7)
   17607      485612 :          idata = idata + 1
   17608      485612 :          data_tmp = full_data(idata)
   17609      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17610      485612 :          data_tmp = IAND(data_tmp, mask_left(7))
   17611      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17612      485612 :          ipack = ipack + 1
   17613      485612 :          packed_data(ipack) = pack_tmp
   17614      485612 :          data_tmp = full_data(idata)
   17615      485612 :          pack_tmp = ISHFT(data_tmp, 46)
   17616      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17617      485612 :          idata = idata + 1
   17618      485612 :          data_tmp = full_data(idata)
   17619      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17620      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17621      485612 :          pack_tmp = ISHFT(pack_tmp, -21)
   17622      485612 :          idata = idata + 1
   17623      485612 :          data_tmp = full_data(idata)
   17624      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17625      485612 :          data_tmp = IAND(data_tmp, mask_left(21))
   17626      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17627      485612 :          ipack = ipack + 1
   17628      485612 :          packed_data(ipack) = pack_tmp
   17629      485612 :          data_tmp = full_data(idata)
   17630      485612 :          pack_tmp = ISHFT(data_tmp, 60)
   17631      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17632      485612 :          idata = idata + 1
   17633      485612 :          data_tmp = full_data(idata)
   17634      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17635      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17636      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17637      485612 :          idata = idata + 1
   17638      485612 :          data_tmp = full_data(idata)
   17639      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17640      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17641      485612 :          pack_tmp = ISHFT(pack_tmp, -10)
   17642      485612 :          idata = idata + 1
   17643      485612 :          data_tmp = full_data(idata)
   17644      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17645      485612 :          data_tmp = IAND(data_tmp, mask_left(10))
   17646      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17647      485612 :          ipack = ipack + 1
   17648      485612 :          packed_data(ipack) = pack_tmp
   17649      485612 :          data_tmp = full_data(idata)
   17650      485612 :          pack_tmp = ISHFT(data_tmp, 49)
   17651      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17652      485612 :          idata = idata + 1
   17653      485612 :          data_tmp = full_data(idata)
   17654      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17655      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17656      485612 :          pack_tmp = ISHFT(pack_tmp, -24)
   17657      485612 :          idata = idata + 1
   17658      485612 :          data_tmp = full_data(idata)
   17659      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17660      485612 :          data_tmp = IAND(data_tmp, mask_left(24))
   17661      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17662      485612 :          ipack = ipack + 1
   17663      485612 :          packed_data(ipack) = pack_tmp
   17664      485612 :          data_tmp = full_data(idata)
   17665      485612 :          pack_tmp = ISHFT(data_tmp, 63)
   17666      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17667      485612 :          idata = idata + 1
   17668      485612 :          data_tmp = full_data(idata)
   17669      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17670      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17671      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17672      485612 :          idata = idata + 1
   17673      485612 :          data_tmp = full_data(idata)
   17674      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17675      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17676      485612 :          pack_tmp = ISHFT(pack_tmp, -13)
   17677      485612 :          idata = idata + 1
   17678      485612 :          data_tmp = full_data(idata)
   17679      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17680      485612 :          data_tmp = IAND(data_tmp, mask_left(13))
   17681      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17682      485612 :          ipack = ipack + 1
   17683      485612 :          packed_data(ipack) = pack_tmp
   17684      485612 :          data_tmp = full_data(idata)
   17685      485612 :          pack_tmp = ISHFT(data_tmp, 52)
   17686      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17687      485612 :          idata = idata + 1
   17688      485612 :          data_tmp = full_data(idata)
   17689      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17690      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17691      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17692      485612 :          idata = idata + 1
   17693      485612 :          data_tmp = full_data(idata)
   17694      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17695      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17696      485612 :          pack_tmp = ISHFT(pack_tmp, -2)
   17697      485612 :          idata = idata + 1
   17698      485612 :          data_tmp = full_data(idata)
   17699      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17700      485612 :          data_tmp = IAND(data_tmp, mask_left(2))
   17701      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17702      485612 :          ipack = ipack + 1
   17703      485612 :          packed_data(ipack) = pack_tmp
   17704      485612 :          data_tmp = full_data(idata)
   17705      485612 :          pack_tmp = ISHFT(data_tmp, 41)
   17706      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17707      485612 :          idata = idata + 1
   17708      485612 :          data_tmp = full_data(idata)
   17709      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17710      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17711      485612 :          pack_tmp = ISHFT(pack_tmp, -16)
   17712      485612 :          idata = idata + 1
   17713      485612 :          data_tmp = full_data(idata)
   17714      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17715      485612 :          data_tmp = IAND(data_tmp, mask_left(16))
   17716      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17717      485612 :          ipack = ipack + 1
   17718      485612 :          packed_data(ipack) = pack_tmp
   17719      485612 :          data_tmp = full_data(idata)
   17720      485612 :          pack_tmp = ISHFT(data_tmp, 55)
   17721      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17722      485612 :          idata = idata + 1
   17723      485612 :          data_tmp = full_data(idata)
   17724      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17725      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17726      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17727      485612 :          idata = idata + 1
   17728      485612 :          data_tmp = full_data(idata)
   17729      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17730      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17731      485612 :          pack_tmp = ISHFT(pack_tmp, -5)
   17732      485612 :          idata = idata + 1
   17733      485612 :          data_tmp = full_data(idata)
   17734      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17735      485612 :          data_tmp = IAND(data_tmp, mask_left(5))
   17736      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17737      485612 :          ipack = ipack + 1
   17738      485612 :          packed_data(ipack) = pack_tmp
   17739      485612 :          data_tmp = full_data(idata)
   17740      485612 :          pack_tmp = ISHFT(data_tmp, 44)
   17741      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17742      485612 :          idata = idata + 1
   17743      485612 :          data_tmp = full_data(idata)
   17744      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17745      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17746      485612 :          pack_tmp = ISHFT(pack_tmp, -19)
   17747      485612 :          idata = idata + 1
   17748      485612 :          data_tmp = full_data(idata)
   17749      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17750      485612 :          data_tmp = IAND(data_tmp, mask_left(19))
   17751      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17752      485612 :          ipack = ipack + 1
   17753      485612 :          packed_data(ipack) = pack_tmp
   17754      485612 :          data_tmp = full_data(idata)
   17755      485612 :          pack_tmp = ISHFT(data_tmp, 58)
   17756      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17757      485612 :          idata = idata + 1
   17758      485612 :          data_tmp = full_data(idata)
   17759      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17760      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17761      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17762      485612 :          idata = idata + 1
   17763      485612 :          data_tmp = full_data(idata)
   17764      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17765      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17766      485612 :          pack_tmp = ISHFT(pack_tmp, -8)
   17767      485612 :          idata = idata + 1
   17768      485612 :          data_tmp = full_data(idata)
   17769      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17770      485612 :          data_tmp = IAND(data_tmp, mask_left(8))
   17771      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17772      485612 :          ipack = ipack + 1
   17773      485612 :          packed_data(ipack) = pack_tmp
   17774      485612 :          data_tmp = full_data(idata)
   17775      485612 :          pack_tmp = ISHFT(data_tmp, 47)
   17776      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17777      485612 :          idata = idata + 1
   17778      485612 :          data_tmp = full_data(idata)
   17779      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17780      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17781      485612 :          pack_tmp = ISHFT(pack_tmp, -22)
   17782      485612 :          idata = idata + 1
   17783      485612 :          data_tmp = full_data(idata)
   17784      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17785      485612 :          data_tmp = IAND(data_tmp, mask_left(22))
   17786      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17787      485612 :          ipack = ipack + 1
   17788      485612 :          packed_data(ipack) = pack_tmp
   17789      485612 :          data_tmp = full_data(idata)
   17790      485612 :          pack_tmp = ISHFT(data_tmp, 61)
   17791      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17792      485612 :          idata = idata + 1
   17793      485612 :          data_tmp = full_data(idata)
   17794      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17795      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17796      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17797      485612 :          idata = idata + 1
   17798      485612 :          data_tmp = full_data(idata)
   17799      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17800      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17801      485612 :          pack_tmp = ISHFT(pack_tmp, -11)
   17802      485612 :          idata = idata + 1
   17803      485612 :          data_tmp = full_data(idata)
   17804      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17805      485612 :          data_tmp = IAND(data_tmp, mask_left(11))
   17806      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17807      485612 :          ipack = ipack + 1
   17808      485612 :          packed_data(ipack) = pack_tmp
   17809      485612 :          data_tmp = full_data(idata)
   17810      485612 :          pack_tmp = ISHFT(data_tmp, 50)
   17811      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17812      485612 :          idata = idata + 1
   17813      485612 :          data_tmp = full_data(idata)
   17814      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17815      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17816      485612 :          pack_tmp = ISHFT(pack_tmp, -25)
   17817      485612 :          idata = idata + 1
   17818      485612 :          data_tmp = full_data(idata)
   17819      485612 :          data_tmp = ISHFT(data_tmp, 39)
   17820      485612 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17821             :          pack_tmp = ISHFT(pack_tmp, 0)
   17822      485612 :          pack_tmp = ISHFT(pack_tmp, 0)
   17823      485612 :          ipack = ipack + 1
   17824      485738 :          packed_data(ipack) = pack_tmp
   17825             :       END DO
   17826       33399 :       IF (Ndata_rep < Ndata) THEN
   17827        5608 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   17828             :       END IF
   17829       33399 :    END SUBROUTINE ints2bits_25
   17830             : 
   17831             : ! **************************************************************************************************
   17832             : !> \brief ...
   17833             : !> \param Ndata ...
   17834             : !> \param packed_data ...
   17835             : !> \param full_data ...
   17836             : ! **************************************************************************************************
   17837      153555 :    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      153555 :       ipack = 0
   17848      153555 :       idata = 0
   17849      153555 :       pack_tmp = 0
   17850      153555 :       Ndata_rep = (Ndata/64)*64
   17851      153555 :       DO kdata = 1, Ndata_rep, 64
   17852     2177493 :          idata = idata + 1
   17853     2177493 :          data_tmp = ISHFT(pack_tmp, 25)
   17854     2177493 :          ipack = ipack + 1
   17855     2177493 :          pack_tmp = packed_data(ipack)
   17856     2177493 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   17857     2177493 :          pack_tmp = ISHFT(pack_tmp, -25)
   17858     2177493 :          idata = idata + 1
   17859     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17860     2177493 :          full_data(idata) = data_tmp
   17861     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17862     2177493 :          idata = idata + 1
   17863     2177493 :          data_tmp = ISHFT(pack_tmp, 11)
   17864     2177493 :          ipack = ipack + 1
   17865     2177493 :          pack_tmp = packed_data(ipack)
   17866     2177493 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   17867     2177493 :          pack_tmp = ISHFT(pack_tmp, -11)
   17868     2177493 :          idata = idata + 1
   17869     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17870     2177493 :          full_data(idata) = data_tmp
   17871     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17872     2177493 :          idata = idata + 1
   17873     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17874     2177493 :          full_data(idata) = data_tmp
   17875     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17876     2177493 :          idata = idata + 1
   17877     2177493 :          data_tmp = ISHFT(pack_tmp, 22)
   17878     2177493 :          ipack = ipack + 1
   17879     2177493 :          pack_tmp = packed_data(ipack)
   17880     2177493 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   17881     2177493 :          pack_tmp = ISHFT(pack_tmp, -22)
   17882     2177493 :          idata = idata + 1
   17883     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17884     2177493 :          full_data(idata) = data_tmp
   17885     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17886     2177493 :          idata = idata + 1
   17887     2177493 :          data_tmp = ISHFT(pack_tmp, 8)
   17888     2177493 :          ipack = ipack + 1
   17889     2177493 :          pack_tmp = packed_data(ipack)
   17890     2177493 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17891     2177493 :          pack_tmp = ISHFT(pack_tmp, -8)
   17892     2177493 :          idata = idata + 1
   17893     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17894     2177493 :          full_data(idata) = data_tmp
   17895     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17896     2177493 :          idata = idata + 1
   17897     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17898     2177493 :          full_data(idata) = data_tmp
   17899     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17900     2177493 :          idata = idata + 1
   17901     2177493 :          data_tmp = ISHFT(pack_tmp, 19)
   17902     2177493 :          ipack = ipack + 1
   17903     2177493 :          pack_tmp = packed_data(ipack)
   17904     2177493 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   17905     2177493 :          pack_tmp = ISHFT(pack_tmp, -19)
   17906     2177493 :          idata = idata + 1
   17907     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17908     2177493 :          full_data(idata) = data_tmp
   17909     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17910     2177493 :          idata = idata + 1
   17911     2177493 :          data_tmp = ISHFT(pack_tmp, 5)
   17912     2177493 :          ipack = ipack + 1
   17913     2177493 :          pack_tmp = packed_data(ipack)
   17914     2177493 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   17915     2177493 :          pack_tmp = ISHFT(pack_tmp, -5)
   17916     2177493 :          idata = idata + 1
   17917     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17918     2177493 :          full_data(idata) = data_tmp
   17919     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17920     2177493 :          idata = idata + 1
   17921     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17922     2177493 :          full_data(idata) = data_tmp
   17923     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17924     2177493 :          idata = idata + 1
   17925     2177493 :          data_tmp = ISHFT(pack_tmp, 16)
   17926     2177493 :          ipack = ipack + 1
   17927     2177493 :          pack_tmp = packed_data(ipack)
   17928     2177493 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17929     2177493 :          pack_tmp = ISHFT(pack_tmp, -16)
   17930     2177493 :          idata = idata + 1
   17931     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17932     2177493 :          full_data(idata) = data_tmp
   17933     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17934     2177493 :          idata = idata + 1
   17935     2177493 :          data_tmp = ISHFT(pack_tmp, 2)
   17936     2177493 :          ipack = ipack + 1
   17937     2177493 :          pack_tmp = packed_data(ipack)
   17938     2177493 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   17939     2177493 :          pack_tmp = ISHFT(pack_tmp, -2)
   17940     2177493 :          idata = idata + 1
   17941     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17942     2177493 :          full_data(idata) = data_tmp
   17943     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17944     2177493 :          idata = idata + 1
   17945     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17946     2177493 :          full_data(idata) = data_tmp
   17947     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17948     2177493 :          idata = idata + 1
   17949     2177493 :          data_tmp = ISHFT(pack_tmp, 13)
   17950     2177493 :          ipack = ipack + 1
   17951     2177493 :          pack_tmp = packed_data(ipack)
   17952     2177493 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   17953     2177493 :          pack_tmp = ISHFT(pack_tmp, -13)
   17954     2177493 :          idata = idata + 1
   17955     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17956     2177493 :          full_data(idata) = data_tmp
   17957     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17958     2177493 :          idata = idata + 1
   17959     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17960     2177493 :          full_data(idata) = data_tmp
   17961     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17962     2177493 :          idata = idata + 1
   17963     2177493 :          data_tmp = ISHFT(pack_tmp, 24)
   17964     2177493 :          ipack = ipack + 1
   17965     2177493 :          pack_tmp = packed_data(ipack)
   17966     2177493 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17967     2177493 :          pack_tmp = ISHFT(pack_tmp, -24)
   17968     2177493 :          idata = idata + 1
   17969     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17970     2177493 :          full_data(idata) = data_tmp
   17971     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17972     2177493 :          idata = idata + 1
   17973     2177493 :          data_tmp = ISHFT(pack_tmp, 10)
   17974     2177493 :          ipack = ipack + 1
   17975     2177493 :          pack_tmp = packed_data(ipack)
   17976     2177493 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   17977     2177493 :          pack_tmp = ISHFT(pack_tmp, -10)
   17978     2177493 :          idata = idata + 1
   17979     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17980     2177493 :          full_data(idata) = data_tmp
   17981     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17982     2177493 :          idata = idata + 1
   17983     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17984     2177493 :          full_data(idata) = data_tmp
   17985     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17986     2177493 :          idata = idata + 1
   17987     2177493 :          data_tmp = ISHFT(pack_tmp, 21)
   17988     2177493 :          ipack = ipack + 1
   17989     2177493 :          pack_tmp = packed_data(ipack)
   17990     2177493 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   17991     2177493 :          pack_tmp = ISHFT(pack_tmp, -21)
   17992     2177493 :          idata = idata + 1
   17993     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17994     2177493 :          full_data(idata) = data_tmp
   17995     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17996     2177493 :          idata = idata + 1
   17997     2177493 :          data_tmp = ISHFT(pack_tmp, 7)
   17998     2177493 :          ipack = ipack + 1
   17999     2177493 :          pack_tmp = packed_data(ipack)
   18000     2177493 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   18001     2177493 :          pack_tmp = ISHFT(pack_tmp, -7)
   18002     2177493 :          idata = idata + 1
   18003     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18004     2177493 :          full_data(idata) = data_tmp
   18005     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18006     2177493 :          idata = idata + 1
   18007     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18008     2177493 :          full_data(idata) = data_tmp
   18009     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18010     2177493 :          idata = idata + 1
   18011     2177493 :          data_tmp = ISHFT(pack_tmp, 18)
   18012     2177493 :          ipack = ipack + 1
   18013     2177493 :          pack_tmp = packed_data(ipack)
   18014     2177493 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   18015     2177493 :          pack_tmp = ISHFT(pack_tmp, -18)
   18016     2177493 :          idata = idata + 1
   18017     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18018     2177493 :          full_data(idata) = data_tmp
   18019     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18020     2177493 :          idata = idata + 1
   18021     2177493 :          data_tmp = ISHFT(pack_tmp, 4)
   18022     2177493 :          ipack = ipack + 1
   18023     2177493 :          pack_tmp = packed_data(ipack)
   18024     2177493 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   18025     2177493 :          pack_tmp = ISHFT(pack_tmp, -4)
   18026     2177493 :          idata = idata + 1
   18027     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18028     2177493 :          full_data(idata) = data_tmp
   18029     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18030     2177493 :          idata = idata + 1
   18031     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18032     2177493 :          full_data(idata) = data_tmp
   18033     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18034     2177493 :          idata = idata + 1
   18035     2177493 :          data_tmp = ISHFT(pack_tmp, 15)
   18036     2177493 :          ipack = ipack + 1
   18037     2177493 :          pack_tmp = packed_data(ipack)
   18038     2177493 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   18039     2177493 :          pack_tmp = ISHFT(pack_tmp, -15)
   18040     2177493 :          idata = idata + 1
   18041     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18042     2177493 :          full_data(idata) = data_tmp
   18043     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18044     2177493 :          idata = idata + 1
   18045     2177493 :          data_tmp = ISHFT(pack_tmp, 1)
   18046     2177493 :          ipack = ipack + 1
   18047     2177493 :          pack_tmp = packed_data(ipack)
   18048     2177493 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   18049     2177493 :          pack_tmp = ISHFT(pack_tmp, -1)
   18050     2177493 :          idata = idata + 1
   18051     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18052     2177493 :          full_data(idata) = data_tmp
   18053     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18054     2177493 :          idata = idata + 1
   18055     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18056     2177493 :          full_data(idata) = data_tmp
   18057     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18058     2177493 :          idata = idata + 1
   18059     2177493 :          data_tmp = ISHFT(pack_tmp, 12)
   18060     2177493 :          ipack = ipack + 1
   18061     2177493 :          pack_tmp = packed_data(ipack)
   18062     2177493 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   18063     2177493 :          pack_tmp = ISHFT(pack_tmp, -12)
   18064     2177493 :          idata = idata + 1
   18065     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18066     2177493 :          full_data(idata) = data_tmp
   18067     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18068     2177493 :          idata = idata + 1
   18069     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18070     2177493 :          full_data(idata) = data_tmp
   18071     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18072     2177493 :          idata = idata + 1
   18073     2177493 :          data_tmp = ISHFT(pack_tmp, 23)
   18074     2177493 :          ipack = ipack + 1
   18075     2177493 :          pack_tmp = packed_data(ipack)
   18076     2177493 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   18077     2177493 :          pack_tmp = ISHFT(pack_tmp, -23)
   18078     2177493 :          idata = idata + 1
   18079     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18080     2177493 :          full_data(idata) = data_tmp
   18081     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18082     2177493 :          idata = idata + 1
   18083     2177493 :          data_tmp = ISHFT(pack_tmp, 9)
   18084     2177493 :          ipack = ipack + 1
   18085     2177493 :          pack_tmp = packed_data(ipack)
   18086     2177493 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   18087     2177493 :          pack_tmp = ISHFT(pack_tmp, -9)
   18088     2177493 :          idata = idata + 1
   18089     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18090     2177493 :          full_data(idata) = data_tmp
   18091     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18092     2177493 :          idata = idata + 1
   18093     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18094     2177493 :          full_data(idata) = data_tmp
   18095     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18096     2177493 :          idata = idata + 1
   18097     2177493 :          data_tmp = ISHFT(pack_tmp, 20)
   18098     2177493 :          ipack = ipack + 1
   18099     2177493 :          pack_tmp = packed_data(ipack)
   18100     2177493 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   18101     2177493 :          pack_tmp = ISHFT(pack_tmp, -20)
   18102     2177493 :          idata = idata + 1
   18103     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18104     2177493 :          full_data(idata) = data_tmp
   18105     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18106     2177493 :          idata = idata + 1
   18107     2177493 :          data_tmp = ISHFT(pack_tmp, 6)
   18108     2177493 :          ipack = ipack + 1
   18109     2177493 :          pack_tmp = packed_data(ipack)
   18110     2177493 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   18111     2177493 :          pack_tmp = ISHFT(pack_tmp, -6)
   18112     2177493 :          idata = idata + 1
   18113     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18114     2177493 :          full_data(idata) = data_tmp
   18115     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18116     2177493 :          idata = idata + 1
   18117     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18118     2177493 :          full_data(idata) = data_tmp
   18119     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18120     2177493 :          idata = idata + 1
   18121     2177493 :          data_tmp = ISHFT(pack_tmp, 17)
   18122     2177493 :          ipack = ipack + 1
   18123     2177493 :          pack_tmp = packed_data(ipack)
   18124     2177493 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   18125     2177493 :          pack_tmp = ISHFT(pack_tmp, -17)
   18126     2177493 :          idata = idata + 1
   18127     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18128     2177493 :          full_data(idata) = data_tmp
   18129     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18130     2177493 :          idata = idata + 1
   18131     2177493 :          data_tmp = ISHFT(pack_tmp, 3)
   18132     2177493 :          ipack = ipack + 1
   18133     2177493 :          pack_tmp = packed_data(ipack)
   18134     2177493 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   18135     2177493 :          pack_tmp = ISHFT(pack_tmp, -3)
   18136     2177493 :          idata = idata + 1
   18137     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18138     2177493 :          full_data(idata) = data_tmp
   18139     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18140     2177493 :          idata = idata + 1
   18141     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18142     2177493 :          full_data(idata) = data_tmp
   18143     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18144     2177493 :          idata = idata + 1
   18145     2177493 :          data_tmp = ISHFT(pack_tmp, 14)
   18146     2177493 :          ipack = ipack + 1
   18147     2177493 :          pack_tmp = packed_data(ipack)
   18148     2177493 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   18149     2177493 :          pack_tmp = ISHFT(pack_tmp, -14)
   18150     2177493 :          idata = idata + 1
   18151     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18152     2177493 :          full_data(idata) = data_tmp
   18153     2177493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18154     2177493 :          idata = idata + 1
   18155     2177493 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18156     2177493 :          full_data(idata) = data_tmp
   18157     2178084 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18158             :       END DO
   18159      153555 :       IF (Ndata_rep < Ndata) THEN
   18160       32310 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   18161             :       END IF
   18162      153555 :    END SUBROUTINE bits2ints_25
   18163             : 
   18164             : ! **************************************************************************************************
   18165             : !> \brief ...
   18166             : !> \param Ndata ...
   18167             : !> \param packed_data ...
   18168             : !> \param full_data ...
   18169             : ! **************************************************************************************************
   18170       28914 :    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       28914 :       idata = 0
   18181       28914 :       ipack = 0
   18182       28914 :       Ndata_rep = (Ndata/64)*64
   18183       28914 :       DO kdata = 1, Ndata_rep, 64
   18184      434780 :          pack_tmp = 0
   18185      434780 :          idata = idata + 1
   18186      434780 :          data_tmp = full_data(idata)
   18187      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18188      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18189      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18190      434780 :          idata = idata + 1
   18191      434780 :          data_tmp = full_data(idata)
   18192      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18193      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18194      434780 :          pack_tmp = ISHFT(pack_tmp, -12)
   18195      434780 :          idata = idata + 1
   18196      434780 :          data_tmp = full_data(idata)
   18197      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18198      434780 :          data_tmp = IAND(data_tmp, mask_left(12))
   18199      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18200      434780 :          ipack = ipack + 1
   18201      434780 :          packed_data(ipack) = pack_tmp
   18202      434780 :          data_tmp = full_data(idata)
   18203      434780 :          pack_tmp = ISHFT(data_tmp, 50)
   18204      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18205      434780 :          idata = idata + 1
   18206      434780 :          data_tmp = full_data(idata)
   18207      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18208      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18209      434780 :          pack_tmp = ISHFT(pack_tmp, -24)
   18210      434780 :          idata = idata + 1
   18211      434780 :          data_tmp = full_data(idata)
   18212      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18213      434780 :          data_tmp = IAND(data_tmp, mask_left(24))
   18214      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18215      434780 :          ipack = ipack + 1
   18216      434780 :          packed_data(ipack) = pack_tmp
   18217      434780 :          data_tmp = full_data(idata)
   18218      434780 :          pack_tmp = ISHFT(data_tmp, 62)
   18219      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18220      434780 :          idata = idata + 1
   18221      434780 :          data_tmp = full_data(idata)
   18222      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18223      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18224      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18225      434780 :          idata = idata + 1
   18226      434780 :          data_tmp = full_data(idata)
   18227      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18228      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18229      434780 :          pack_tmp = ISHFT(pack_tmp, -10)
   18230      434780 :          idata = idata + 1
   18231      434780 :          data_tmp = full_data(idata)
   18232      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18233      434780 :          data_tmp = IAND(data_tmp, mask_left(10))
   18234      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18235      434780 :          ipack = ipack + 1
   18236      434780 :          packed_data(ipack) = pack_tmp
   18237      434780 :          data_tmp = full_data(idata)
   18238      434780 :          pack_tmp = ISHFT(data_tmp, 48)
   18239      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18240      434780 :          idata = idata + 1
   18241      434780 :          data_tmp = full_data(idata)
   18242      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18243      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18244      434780 :          pack_tmp = ISHFT(pack_tmp, -22)
   18245      434780 :          idata = idata + 1
   18246      434780 :          data_tmp = full_data(idata)
   18247      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18248      434780 :          data_tmp = IAND(data_tmp, mask_left(22))
   18249      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18250      434780 :          ipack = ipack + 1
   18251      434780 :          packed_data(ipack) = pack_tmp
   18252      434780 :          data_tmp = full_data(idata)
   18253      434780 :          pack_tmp = ISHFT(data_tmp, 60)
   18254      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18255      434780 :          idata = idata + 1
   18256      434780 :          data_tmp = full_data(idata)
   18257      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18258      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18259      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18260      434780 :          idata = idata + 1
   18261      434780 :          data_tmp = full_data(idata)
   18262      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18263      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18264      434780 :          pack_tmp = ISHFT(pack_tmp, -8)
   18265      434780 :          idata = idata + 1
   18266      434780 :          data_tmp = full_data(idata)
   18267      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18268      434780 :          data_tmp = IAND(data_tmp, mask_left(8))
   18269      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18270      434780 :          ipack = ipack + 1
   18271      434780 :          packed_data(ipack) = pack_tmp
   18272      434780 :          data_tmp = full_data(idata)
   18273      434780 :          pack_tmp = ISHFT(data_tmp, 46)
   18274      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18275      434780 :          idata = idata + 1
   18276      434780 :          data_tmp = full_data(idata)
   18277      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18278      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18279      434780 :          pack_tmp = ISHFT(pack_tmp, -20)
   18280      434780 :          idata = idata + 1
   18281      434780 :          data_tmp = full_data(idata)
   18282      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18283      434780 :          data_tmp = IAND(data_tmp, mask_left(20))
   18284      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18285      434780 :          ipack = ipack + 1
   18286      434780 :          packed_data(ipack) = pack_tmp
   18287      434780 :          data_tmp = full_data(idata)
   18288      434780 :          pack_tmp = ISHFT(data_tmp, 58)
   18289      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18290      434780 :          idata = idata + 1
   18291      434780 :          data_tmp = full_data(idata)
   18292      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18293      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18294      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18295      434780 :          idata = idata + 1
   18296      434780 :          data_tmp = full_data(idata)
   18297      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18298      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18299      434780 :          pack_tmp = ISHFT(pack_tmp, -6)
   18300      434780 :          idata = idata + 1
   18301      434780 :          data_tmp = full_data(idata)
   18302      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18303      434780 :          data_tmp = IAND(data_tmp, mask_left(6))
   18304      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18305      434780 :          ipack = ipack + 1
   18306      434780 :          packed_data(ipack) = pack_tmp
   18307      434780 :          data_tmp = full_data(idata)
   18308      434780 :          pack_tmp = ISHFT(data_tmp, 44)
   18309      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18310      434780 :          idata = idata + 1
   18311      434780 :          data_tmp = full_data(idata)
   18312      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18313      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18314      434780 :          pack_tmp = ISHFT(pack_tmp, -18)
   18315      434780 :          idata = idata + 1
   18316      434780 :          data_tmp = full_data(idata)
   18317      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18318      434780 :          data_tmp = IAND(data_tmp, mask_left(18))
   18319      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18320      434780 :          ipack = ipack + 1
   18321      434780 :          packed_data(ipack) = pack_tmp
   18322      434780 :          data_tmp = full_data(idata)
   18323      434780 :          pack_tmp = ISHFT(data_tmp, 56)
   18324      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18325      434780 :          idata = idata + 1
   18326      434780 :          data_tmp = full_data(idata)
   18327      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18328      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18329      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18330      434780 :          idata = idata + 1
   18331      434780 :          data_tmp = full_data(idata)
   18332      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18333      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18334      434780 :          pack_tmp = ISHFT(pack_tmp, -4)
   18335      434780 :          idata = idata + 1
   18336      434780 :          data_tmp = full_data(idata)
   18337      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18338      434780 :          data_tmp = IAND(data_tmp, mask_left(4))
   18339      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18340      434780 :          ipack = ipack + 1
   18341      434780 :          packed_data(ipack) = pack_tmp
   18342      434780 :          data_tmp = full_data(idata)
   18343      434780 :          pack_tmp = ISHFT(data_tmp, 42)
   18344      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18345      434780 :          idata = idata + 1
   18346      434780 :          data_tmp = full_data(idata)
   18347      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18348      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18349      434780 :          pack_tmp = ISHFT(pack_tmp, -16)
   18350      434780 :          idata = idata + 1
   18351      434780 :          data_tmp = full_data(idata)
   18352      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18353      434780 :          data_tmp = IAND(data_tmp, mask_left(16))
   18354      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18355      434780 :          ipack = ipack + 1
   18356      434780 :          packed_data(ipack) = pack_tmp
   18357      434780 :          data_tmp = full_data(idata)
   18358      434780 :          pack_tmp = ISHFT(data_tmp, 54)
   18359      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18360      434780 :          idata = idata + 1
   18361      434780 :          data_tmp = full_data(idata)
   18362      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18363      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18364      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18365      434780 :          idata = idata + 1
   18366      434780 :          data_tmp = full_data(idata)
   18367      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18368      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18369      434780 :          pack_tmp = ISHFT(pack_tmp, -2)
   18370      434780 :          idata = idata + 1
   18371      434780 :          data_tmp = full_data(idata)
   18372      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18373      434780 :          data_tmp = IAND(data_tmp, mask_left(2))
   18374      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18375      434780 :          ipack = ipack + 1
   18376      434780 :          packed_data(ipack) = pack_tmp
   18377      434780 :          data_tmp = full_data(idata)
   18378      434780 :          pack_tmp = ISHFT(data_tmp, 40)
   18379      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18380      434780 :          idata = idata + 1
   18381      434780 :          data_tmp = full_data(idata)
   18382      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18383      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18384      434780 :          pack_tmp = ISHFT(pack_tmp, -14)
   18385      434780 :          idata = idata + 1
   18386      434780 :          data_tmp = full_data(idata)
   18387      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18388      434780 :          data_tmp = IAND(data_tmp, mask_left(14))
   18389      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18390      434780 :          ipack = ipack + 1
   18391      434780 :          packed_data(ipack) = pack_tmp
   18392      434780 :          data_tmp = full_data(idata)
   18393      434780 :          pack_tmp = ISHFT(data_tmp, 52)
   18394      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18395      434780 :          idata = idata + 1
   18396      434780 :          data_tmp = full_data(idata)
   18397      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18398      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18399      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18400      434780 :          idata = idata + 1
   18401      434780 :          data_tmp = full_data(idata)
   18402      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18403      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18404      434780 :          pack_tmp = ISHFT(pack_tmp, 0)
   18405      434780 :          idata = idata + 1
   18406      434780 :          data_tmp = full_data(idata)
   18407             :          data_tmp = ISHFT(data_tmp, 38)
   18408      434780 :          data_tmp = IAND(data_tmp, mask_left(0))
   18409      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18410      434780 :          ipack = ipack + 1
   18411      434780 :          packed_data(ipack) = pack_tmp
   18412      434780 :          data_tmp = full_data(idata)
   18413      434780 :          pack_tmp = ISHFT(data_tmp, 38)
   18414      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18415      434780 :          idata = idata + 1
   18416      434780 :          data_tmp = full_data(idata)
   18417      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18418      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18419      434780 :          pack_tmp = ISHFT(pack_tmp, -12)
   18420      434780 :          idata = idata + 1
   18421      434780 :          data_tmp = full_data(idata)
   18422      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18423      434780 :          data_tmp = IAND(data_tmp, mask_left(12))
   18424      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18425      434780 :          ipack = ipack + 1
   18426      434780 :          packed_data(ipack) = pack_tmp
   18427      434780 :          data_tmp = full_data(idata)
   18428      434780 :          pack_tmp = ISHFT(data_tmp, 50)
   18429      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18430      434780 :          idata = idata + 1
   18431      434780 :          data_tmp = full_data(idata)
   18432      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18433      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18434      434780 :          pack_tmp = ISHFT(pack_tmp, -24)
   18435      434780 :          idata = idata + 1
   18436      434780 :          data_tmp = full_data(idata)
   18437      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18438      434780 :          data_tmp = IAND(data_tmp, mask_left(24))
   18439      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18440      434780 :          ipack = ipack + 1
   18441      434780 :          packed_data(ipack) = pack_tmp
   18442      434780 :          data_tmp = full_data(idata)
   18443      434780 :          pack_tmp = ISHFT(data_tmp, 62)
   18444      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18445      434780 :          idata = idata + 1
   18446      434780 :          data_tmp = full_data(idata)
   18447      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18448      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18449      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18450      434780 :          idata = idata + 1
   18451      434780 :          data_tmp = full_data(idata)
   18452      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18453      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18454      434780 :          pack_tmp = ISHFT(pack_tmp, -10)
   18455      434780 :          idata = idata + 1
   18456      434780 :          data_tmp = full_data(idata)
   18457      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18458      434780 :          data_tmp = IAND(data_tmp, mask_left(10))
   18459      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18460      434780 :          ipack = ipack + 1
   18461      434780 :          packed_data(ipack) = pack_tmp
   18462      434780 :          data_tmp = full_data(idata)
   18463      434780 :          pack_tmp = ISHFT(data_tmp, 48)
   18464      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18465      434780 :          idata = idata + 1
   18466      434780 :          data_tmp = full_data(idata)
   18467      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18468      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18469      434780 :          pack_tmp = ISHFT(pack_tmp, -22)
   18470      434780 :          idata = idata + 1
   18471      434780 :          data_tmp = full_data(idata)
   18472      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18473      434780 :          data_tmp = IAND(data_tmp, mask_left(22))
   18474      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18475      434780 :          ipack = ipack + 1
   18476      434780 :          packed_data(ipack) = pack_tmp
   18477      434780 :          data_tmp = full_data(idata)
   18478      434780 :          pack_tmp = ISHFT(data_tmp, 60)
   18479      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18480      434780 :          idata = idata + 1
   18481      434780 :          data_tmp = full_data(idata)
   18482      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18483      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18484      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18485      434780 :          idata = idata + 1
   18486      434780 :          data_tmp = full_data(idata)
   18487      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18488      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18489      434780 :          pack_tmp = ISHFT(pack_tmp, -8)
   18490      434780 :          idata = idata + 1
   18491      434780 :          data_tmp = full_data(idata)
   18492      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18493      434780 :          data_tmp = IAND(data_tmp, mask_left(8))
   18494      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18495      434780 :          ipack = ipack + 1
   18496      434780 :          packed_data(ipack) = pack_tmp
   18497      434780 :          data_tmp = full_data(idata)
   18498      434780 :          pack_tmp = ISHFT(data_tmp, 46)
   18499      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18500      434780 :          idata = idata + 1
   18501      434780 :          data_tmp = full_data(idata)
   18502      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18503      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18504      434780 :          pack_tmp = ISHFT(pack_tmp, -20)
   18505      434780 :          idata = idata + 1
   18506      434780 :          data_tmp = full_data(idata)
   18507      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18508      434780 :          data_tmp = IAND(data_tmp, mask_left(20))
   18509      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18510      434780 :          ipack = ipack + 1
   18511      434780 :          packed_data(ipack) = pack_tmp
   18512      434780 :          data_tmp = full_data(idata)
   18513      434780 :          pack_tmp = ISHFT(data_tmp, 58)
   18514      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18515      434780 :          idata = idata + 1
   18516      434780 :          data_tmp = full_data(idata)
   18517      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18518      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18519      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18520      434780 :          idata = idata + 1
   18521      434780 :          data_tmp = full_data(idata)
   18522      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18523      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18524      434780 :          pack_tmp = ISHFT(pack_tmp, -6)
   18525      434780 :          idata = idata + 1
   18526      434780 :          data_tmp = full_data(idata)
   18527      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18528      434780 :          data_tmp = IAND(data_tmp, mask_left(6))
   18529      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18530      434780 :          ipack = ipack + 1
   18531      434780 :          packed_data(ipack) = pack_tmp
   18532      434780 :          data_tmp = full_data(idata)
   18533      434780 :          pack_tmp = ISHFT(data_tmp, 44)
   18534      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18535      434780 :          idata = idata + 1
   18536      434780 :          data_tmp = full_data(idata)
   18537      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18538      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18539      434780 :          pack_tmp = ISHFT(pack_tmp, -18)
   18540      434780 :          idata = idata + 1
   18541      434780 :          data_tmp = full_data(idata)
   18542      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18543      434780 :          data_tmp = IAND(data_tmp, mask_left(18))
   18544      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18545      434780 :          ipack = ipack + 1
   18546      434780 :          packed_data(ipack) = pack_tmp
   18547      434780 :          data_tmp = full_data(idata)
   18548      434780 :          pack_tmp = ISHFT(data_tmp, 56)
   18549      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18550      434780 :          idata = idata + 1
   18551      434780 :          data_tmp = full_data(idata)
   18552      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18553      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18554      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18555      434780 :          idata = idata + 1
   18556      434780 :          data_tmp = full_data(idata)
   18557      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18558      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18559      434780 :          pack_tmp = ISHFT(pack_tmp, -4)
   18560      434780 :          idata = idata + 1
   18561      434780 :          data_tmp = full_data(idata)
   18562      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18563      434780 :          data_tmp = IAND(data_tmp, mask_left(4))
   18564      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18565      434780 :          ipack = ipack + 1
   18566      434780 :          packed_data(ipack) = pack_tmp
   18567      434780 :          data_tmp = full_data(idata)
   18568      434780 :          pack_tmp = ISHFT(data_tmp, 42)
   18569      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18570      434780 :          idata = idata + 1
   18571      434780 :          data_tmp = full_data(idata)
   18572      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18573      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18574      434780 :          pack_tmp = ISHFT(pack_tmp, -16)
   18575      434780 :          idata = idata + 1
   18576      434780 :          data_tmp = full_data(idata)
   18577      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18578      434780 :          data_tmp = IAND(data_tmp, mask_left(16))
   18579      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18580      434780 :          ipack = ipack + 1
   18581      434780 :          packed_data(ipack) = pack_tmp
   18582      434780 :          data_tmp = full_data(idata)
   18583      434780 :          pack_tmp = ISHFT(data_tmp, 54)
   18584      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18585      434780 :          idata = idata + 1
   18586      434780 :          data_tmp = full_data(idata)
   18587      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18588      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18589      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18590      434780 :          idata = idata + 1
   18591      434780 :          data_tmp = full_data(idata)
   18592      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18593      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18594      434780 :          pack_tmp = ISHFT(pack_tmp, -2)
   18595      434780 :          idata = idata + 1
   18596      434780 :          data_tmp = full_data(idata)
   18597      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18598      434780 :          data_tmp = IAND(data_tmp, mask_left(2))
   18599      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18600      434780 :          ipack = ipack + 1
   18601      434780 :          packed_data(ipack) = pack_tmp
   18602      434780 :          data_tmp = full_data(idata)
   18603      434780 :          pack_tmp = ISHFT(data_tmp, 40)
   18604      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18605      434780 :          idata = idata + 1
   18606      434780 :          data_tmp = full_data(idata)
   18607      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18608      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18609      434780 :          pack_tmp = ISHFT(pack_tmp, -14)
   18610      434780 :          idata = idata + 1
   18611      434780 :          data_tmp = full_data(idata)
   18612      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18613      434780 :          data_tmp = IAND(data_tmp, mask_left(14))
   18614      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18615      434780 :          ipack = ipack + 1
   18616      434780 :          packed_data(ipack) = pack_tmp
   18617      434780 :          data_tmp = full_data(idata)
   18618      434780 :          pack_tmp = ISHFT(data_tmp, 52)
   18619      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18620      434780 :          idata = idata + 1
   18621      434780 :          data_tmp = full_data(idata)
   18622      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18623      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18624      434780 :          pack_tmp = ISHFT(pack_tmp, -26)
   18625      434780 :          idata = idata + 1
   18626      434780 :          data_tmp = full_data(idata)
   18627      434780 :          data_tmp = ISHFT(data_tmp, 38)
   18628      434780 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18629             :          pack_tmp = ISHFT(pack_tmp, 0)
   18630      434780 :          pack_tmp = ISHFT(pack_tmp, 0)
   18631      434780 :          ipack = ipack + 1
   18632      434902 :          packed_data(ipack) = pack_tmp
   18633             :       END DO
   18634       28914 :       IF (Ndata_rep < Ndata) THEN
   18635        3208 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   18636             :       END IF
   18637       28914 :    END SUBROUTINE ints2bits_26
   18638             : 
   18639             : ! **************************************************************************************************
   18640             : !> \brief ...
   18641             : !> \param Ndata ...
   18642             : !> \param packed_data ...
   18643             : !> \param full_data ...
   18644             : ! **************************************************************************************************
   18645      130434 :    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      130434 :       ipack = 0
   18656      130434 :       idata = 0
   18657      130434 :       pack_tmp = 0
   18658      130434 :       Ndata_rep = (Ndata/64)*64
   18659      130434 :       DO kdata = 1, Ndata_rep, 64
   18660     1913147 :          idata = idata + 1
   18661     1913147 :          data_tmp = ISHFT(pack_tmp, 26)
   18662     1913147 :          ipack = ipack + 1
   18663     1913147 :          pack_tmp = packed_data(ipack)
   18664     1913147 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   18665     1913147 :          pack_tmp = ISHFT(pack_tmp, -26)
   18666     1913147 :          idata = idata + 1
   18667     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18668     1913147 :          full_data(idata) = data_tmp
   18669     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18670     1913147 :          idata = idata + 1
   18671     1913147 :          data_tmp = ISHFT(pack_tmp, 14)
   18672     1913147 :          ipack = ipack + 1
   18673     1913147 :          pack_tmp = packed_data(ipack)
   18674     1913147 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   18675     1913147 :          pack_tmp = ISHFT(pack_tmp, -14)
   18676     1913147 :          idata = idata + 1
   18677     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18678     1913147 :          full_data(idata) = data_tmp
   18679     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18680     1913147 :          idata = idata + 1
   18681     1913147 :          data_tmp = ISHFT(pack_tmp, 2)
   18682     1913147 :          ipack = ipack + 1
   18683     1913147 :          pack_tmp = packed_data(ipack)
   18684     1913147 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   18685     1913147 :          pack_tmp = ISHFT(pack_tmp, -2)
   18686     1913147 :          idata = idata + 1
   18687     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18688     1913147 :          full_data(idata) = data_tmp
   18689     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18690     1913147 :          idata = idata + 1
   18691     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18692     1913147 :          full_data(idata) = data_tmp
   18693     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18694     1913147 :          idata = idata + 1
   18695     1913147 :          data_tmp = ISHFT(pack_tmp, 16)
   18696     1913147 :          ipack = ipack + 1
   18697     1913147 :          pack_tmp = packed_data(ipack)
   18698     1913147 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   18699     1913147 :          pack_tmp = ISHFT(pack_tmp, -16)
   18700     1913147 :          idata = idata + 1
   18701     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18702     1913147 :          full_data(idata) = data_tmp
   18703     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18704     1913147 :          idata = idata + 1
   18705     1913147 :          data_tmp = ISHFT(pack_tmp, 4)
   18706     1913147 :          ipack = ipack + 1
   18707     1913147 :          pack_tmp = packed_data(ipack)
   18708     1913147 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   18709     1913147 :          pack_tmp = ISHFT(pack_tmp, -4)
   18710     1913147 :          idata = idata + 1
   18711     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18712     1913147 :          full_data(idata) = data_tmp
   18713     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18714     1913147 :          idata = idata + 1
   18715     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18716     1913147 :          full_data(idata) = data_tmp
   18717     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18718     1913147 :          idata = idata + 1
   18719     1913147 :          data_tmp = ISHFT(pack_tmp, 18)
   18720     1913147 :          ipack = ipack + 1
   18721     1913147 :          pack_tmp = packed_data(ipack)
   18722     1913147 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   18723     1913147 :          pack_tmp = ISHFT(pack_tmp, -18)
   18724     1913147 :          idata = idata + 1
   18725     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18726     1913147 :          full_data(idata) = data_tmp
   18727     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18728     1913147 :          idata = idata + 1
   18729     1913147 :          data_tmp = ISHFT(pack_tmp, 6)
   18730     1913147 :          ipack = ipack + 1
   18731     1913147 :          pack_tmp = packed_data(ipack)
   18732     1913147 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   18733     1913147 :          pack_tmp = ISHFT(pack_tmp, -6)
   18734     1913147 :          idata = idata + 1
   18735     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18736     1913147 :          full_data(idata) = data_tmp
   18737     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18738     1913147 :          idata = idata + 1
   18739     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18740     1913147 :          full_data(idata) = data_tmp
   18741     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18742     1913147 :          idata = idata + 1
   18743     1913147 :          data_tmp = ISHFT(pack_tmp, 20)
   18744     1913147 :          ipack = ipack + 1
   18745     1913147 :          pack_tmp = packed_data(ipack)
   18746     1913147 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   18747     1913147 :          pack_tmp = ISHFT(pack_tmp, -20)
   18748     1913147 :          idata = idata + 1
   18749     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18750     1913147 :          full_data(idata) = data_tmp
   18751     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18752     1913147 :          idata = idata + 1
   18753     1913147 :          data_tmp = ISHFT(pack_tmp, 8)
   18754     1913147 :          ipack = ipack + 1
   18755     1913147 :          pack_tmp = packed_data(ipack)
   18756     1913147 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   18757     1913147 :          pack_tmp = ISHFT(pack_tmp, -8)
   18758     1913147 :          idata = idata + 1
   18759     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18760     1913147 :          full_data(idata) = data_tmp
   18761     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18762     1913147 :          idata = idata + 1
   18763     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18764     1913147 :          full_data(idata) = data_tmp
   18765     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18766     1913147 :          idata = idata + 1
   18767     1913147 :          data_tmp = ISHFT(pack_tmp, 22)
   18768     1913147 :          ipack = ipack + 1
   18769     1913147 :          pack_tmp = packed_data(ipack)
   18770     1913147 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   18771     1913147 :          pack_tmp = ISHFT(pack_tmp, -22)
   18772     1913147 :          idata = idata + 1
   18773     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18774     1913147 :          full_data(idata) = data_tmp
   18775     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18776     1913147 :          idata = idata + 1
   18777     1913147 :          data_tmp = ISHFT(pack_tmp, 10)
   18778     1913147 :          ipack = ipack + 1
   18779     1913147 :          pack_tmp = packed_data(ipack)
   18780     1913147 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   18781     1913147 :          pack_tmp = ISHFT(pack_tmp, -10)
   18782     1913147 :          idata = idata + 1
   18783     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18784     1913147 :          full_data(idata) = data_tmp
   18785     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18786     1913147 :          idata = idata + 1
   18787     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18788     1913147 :          full_data(idata) = data_tmp
   18789     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18790     1913147 :          idata = idata + 1
   18791     1913147 :          data_tmp = ISHFT(pack_tmp, 24)
   18792     1913147 :          ipack = ipack + 1
   18793     1913147 :          pack_tmp = packed_data(ipack)
   18794     1913147 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   18795     1913147 :          pack_tmp = ISHFT(pack_tmp, -24)
   18796     1913147 :          idata = idata + 1
   18797     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18798     1913147 :          full_data(idata) = data_tmp
   18799     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18800     1913147 :          idata = idata + 1
   18801     1913147 :          data_tmp = ISHFT(pack_tmp, 12)
   18802     1913147 :          ipack = ipack + 1
   18803     1913147 :          pack_tmp = packed_data(ipack)
   18804     1913147 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   18805     1913147 :          pack_tmp = ISHFT(pack_tmp, -12)
   18806     1913147 :          idata = idata + 1
   18807     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18808     1913147 :          full_data(idata) = data_tmp
   18809     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18810     1913147 :          idata = idata + 1
   18811     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18812     1913147 :          full_data(idata) = data_tmp
   18813     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18814     1913147 :          idata = idata + 1
   18815     1913147 :          data_tmp = ISHFT(pack_tmp, 26)
   18816     1913147 :          ipack = ipack + 1
   18817     1913147 :          pack_tmp = packed_data(ipack)
   18818     1913147 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   18819     1913147 :          pack_tmp = ISHFT(pack_tmp, -26)
   18820     1913147 :          idata = idata + 1
   18821     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18822     1913147 :          full_data(idata) = data_tmp
   18823     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18824     1913147 :          idata = idata + 1
   18825     1913147 :          data_tmp = ISHFT(pack_tmp, 14)
   18826     1913147 :          ipack = ipack + 1
   18827     1913147 :          pack_tmp = packed_data(ipack)
   18828     1913147 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   18829     1913147 :          pack_tmp = ISHFT(pack_tmp, -14)
   18830     1913147 :          idata = idata + 1
   18831     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18832     1913147 :          full_data(idata) = data_tmp
   18833     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18834     1913147 :          idata = idata + 1
   18835     1913147 :          data_tmp = ISHFT(pack_tmp, 2)
   18836     1913147 :          ipack = ipack + 1
   18837     1913147 :          pack_tmp = packed_data(ipack)
   18838     1913147 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   18839     1913147 :          pack_tmp = ISHFT(pack_tmp, -2)
   18840     1913147 :          idata = idata + 1
   18841     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18842     1913147 :          full_data(idata) = data_tmp
   18843     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18844     1913147 :          idata = idata + 1
   18845     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18846     1913147 :          full_data(idata) = data_tmp
   18847     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18848     1913147 :          idata = idata + 1
   18849     1913147 :          data_tmp = ISHFT(pack_tmp, 16)
   18850     1913147 :          ipack = ipack + 1
   18851     1913147 :          pack_tmp = packed_data(ipack)
   18852     1913147 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   18853     1913147 :          pack_tmp = ISHFT(pack_tmp, -16)
   18854     1913147 :          idata = idata + 1
   18855     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18856     1913147 :          full_data(idata) = data_tmp
   18857     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18858     1913147 :          idata = idata + 1
   18859     1913147 :          data_tmp = ISHFT(pack_tmp, 4)
   18860     1913147 :          ipack = ipack + 1
   18861     1913147 :          pack_tmp = packed_data(ipack)
   18862     1913147 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   18863     1913147 :          pack_tmp = ISHFT(pack_tmp, -4)
   18864     1913147 :          idata = idata + 1
   18865     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18866     1913147 :          full_data(idata) = data_tmp
   18867     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18868     1913147 :          idata = idata + 1
   18869     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18870     1913147 :          full_data(idata) = data_tmp
   18871     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18872     1913147 :          idata = idata + 1
   18873     1913147 :          data_tmp = ISHFT(pack_tmp, 18)
   18874     1913147 :          ipack = ipack + 1
   18875     1913147 :          pack_tmp = packed_data(ipack)
   18876     1913147 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   18877     1913147 :          pack_tmp = ISHFT(pack_tmp, -18)
   18878     1913147 :          idata = idata + 1
   18879     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18880     1913147 :          full_data(idata) = data_tmp
   18881     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18882     1913147 :          idata = idata + 1
   18883     1913147 :          data_tmp = ISHFT(pack_tmp, 6)
   18884     1913147 :          ipack = ipack + 1
   18885     1913147 :          pack_tmp = packed_data(ipack)
   18886     1913147 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   18887     1913147 :          pack_tmp = ISHFT(pack_tmp, -6)
   18888     1913147 :          idata = idata + 1
   18889     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18890     1913147 :          full_data(idata) = data_tmp
   18891     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18892     1913147 :          idata = idata + 1
   18893     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18894     1913147 :          full_data(idata) = data_tmp
   18895     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18896     1913147 :          idata = idata + 1
   18897     1913147 :          data_tmp = ISHFT(pack_tmp, 20)
   18898     1913147 :          ipack = ipack + 1
   18899     1913147 :          pack_tmp = packed_data(ipack)
   18900     1913147 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   18901     1913147 :          pack_tmp = ISHFT(pack_tmp, -20)
   18902     1913147 :          idata = idata + 1
   18903     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18904     1913147 :          full_data(idata) = data_tmp
   18905     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18906     1913147 :          idata = idata + 1
   18907     1913147 :          data_tmp = ISHFT(pack_tmp, 8)
   18908     1913147 :          ipack = ipack + 1
   18909     1913147 :          pack_tmp = packed_data(ipack)
   18910     1913147 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   18911     1913147 :          pack_tmp = ISHFT(pack_tmp, -8)
   18912     1913147 :          idata = idata + 1
   18913     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18914     1913147 :          full_data(idata) = data_tmp
   18915     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18916     1913147 :          idata = idata + 1
   18917     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18918     1913147 :          full_data(idata) = data_tmp
   18919     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18920     1913147 :          idata = idata + 1
   18921     1913147 :          data_tmp = ISHFT(pack_tmp, 22)
   18922     1913147 :          ipack = ipack + 1
   18923     1913147 :          pack_tmp = packed_data(ipack)
   18924     1913147 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   18925     1913147 :          pack_tmp = ISHFT(pack_tmp, -22)
   18926     1913147 :          idata = idata + 1
   18927     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18928     1913147 :          full_data(idata) = data_tmp
   18929     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18930     1913147 :          idata = idata + 1
   18931     1913147 :          data_tmp = ISHFT(pack_tmp, 10)
   18932     1913147 :          ipack = ipack + 1
   18933     1913147 :          pack_tmp = packed_data(ipack)
   18934     1913147 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   18935     1913147 :          pack_tmp = ISHFT(pack_tmp, -10)
   18936     1913147 :          idata = idata + 1
   18937     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18938     1913147 :          full_data(idata) = data_tmp
   18939     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18940     1913147 :          idata = idata + 1
   18941     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18942     1913147 :          full_data(idata) = data_tmp
   18943     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18944     1913147 :          idata = idata + 1
   18945     1913147 :          data_tmp = ISHFT(pack_tmp, 24)
   18946     1913147 :          ipack = ipack + 1
   18947     1913147 :          pack_tmp = packed_data(ipack)
   18948     1913147 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   18949     1913147 :          pack_tmp = ISHFT(pack_tmp, -24)
   18950     1913147 :          idata = idata + 1
   18951     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18952     1913147 :          full_data(idata) = data_tmp
   18953     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18954     1913147 :          idata = idata + 1
   18955     1913147 :          data_tmp = ISHFT(pack_tmp, 12)
   18956     1913147 :          ipack = ipack + 1
   18957     1913147 :          pack_tmp = packed_data(ipack)
   18958     1913147 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   18959     1913147 :          pack_tmp = ISHFT(pack_tmp, -12)
   18960     1913147 :          idata = idata + 1
   18961     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18962     1913147 :          full_data(idata) = data_tmp
   18963     1913147 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18964     1913147 :          idata = idata + 1
   18965     1913147 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18966     1913147 :          full_data(idata) = data_tmp
   18967     1913646 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18968             :       END DO
   18969      130434 :       IF (Ndata_rep < Ndata) THEN
   18970       20202 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   18971             :       END IF
   18972      130434 :    END SUBROUTINE bits2ints_26
   18973             : 
   18974             : ! **************************************************************************************************
   18975             : !> \brief ...
   18976             : !> \param Ndata ...
   18977             : !> \param packed_data ...
   18978             : !> \param full_data ...
   18979             : ! **************************************************************************************************
   18980       27615 :    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       27615 :       idata = 0
   18991       27615 :       ipack = 0
   18992       27615 :       Ndata_rep = (Ndata/64)*64
   18993       27615 :       DO kdata = 1, Ndata_rep, 64
   18994      420539 :          pack_tmp = 0
   18995      420539 :          idata = idata + 1
   18996      420539 :          data_tmp = full_data(idata)
   18997      420539 :          data_tmp = ISHFT(data_tmp, 37)
   18998      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18999      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19000      420539 :          idata = idata + 1
   19001      420539 :          data_tmp = full_data(idata)
   19002      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19003      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19004      420539 :          pack_tmp = ISHFT(pack_tmp, -10)
   19005      420539 :          idata = idata + 1
   19006      420539 :          data_tmp = full_data(idata)
   19007      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19008      420539 :          data_tmp = IAND(data_tmp, mask_left(10))
   19009      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19010      420539 :          ipack = ipack + 1
   19011      420539 :          packed_data(ipack) = pack_tmp
   19012      420539 :          data_tmp = full_data(idata)
   19013      420539 :          pack_tmp = ISHFT(data_tmp, 47)
   19014      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19015      420539 :          idata = idata + 1
   19016      420539 :          data_tmp = full_data(idata)
   19017      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19018      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19019      420539 :          pack_tmp = ISHFT(pack_tmp, -20)
   19020      420539 :          idata = idata + 1
   19021      420539 :          data_tmp = full_data(idata)
   19022      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19023      420539 :          data_tmp = IAND(data_tmp, mask_left(20))
   19024      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19025      420539 :          ipack = ipack + 1
   19026      420539 :          packed_data(ipack) = pack_tmp
   19027      420539 :          data_tmp = full_data(idata)
   19028      420539 :          pack_tmp = ISHFT(data_tmp, 57)
   19029      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19030      420539 :          idata = idata + 1
   19031      420539 :          data_tmp = full_data(idata)
   19032      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19033      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19034      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19035      420539 :          idata = idata + 1
   19036      420539 :          data_tmp = full_data(idata)
   19037      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19038      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19039      420539 :          pack_tmp = ISHFT(pack_tmp, -3)
   19040      420539 :          idata = idata + 1
   19041      420539 :          data_tmp = full_data(idata)
   19042      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19043      420539 :          data_tmp = IAND(data_tmp, mask_left(3))
   19044      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19045      420539 :          ipack = ipack + 1
   19046      420539 :          packed_data(ipack) = pack_tmp
   19047      420539 :          data_tmp = full_data(idata)
   19048      420539 :          pack_tmp = ISHFT(data_tmp, 40)
   19049      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19050      420539 :          idata = idata + 1
   19051      420539 :          data_tmp = full_data(idata)
   19052      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19053      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19054      420539 :          pack_tmp = ISHFT(pack_tmp, -13)
   19055      420539 :          idata = idata + 1
   19056      420539 :          data_tmp = full_data(idata)
   19057      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19058      420539 :          data_tmp = IAND(data_tmp, mask_left(13))
   19059      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19060      420539 :          ipack = ipack + 1
   19061      420539 :          packed_data(ipack) = pack_tmp
   19062      420539 :          data_tmp = full_data(idata)
   19063      420539 :          pack_tmp = ISHFT(data_tmp, 50)
   19064      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19065      420539 :          idata = idata + 1
   19066      420539 :          data_tmp = full_data(idata)
   19067      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19068      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19069      420539 :          pack_tmp = ISHFT(pack_tmp, -23)
   19070      420539 :          idata = idata + 1
   19071      420539 :          data_tmp = full_data(idata)
   19072      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19073      420539 :          data_tmp = IAND(data_tmp, mask_left(23))
   19074      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19075      420539 :          ipack = ipack + 1
   19076      420539 :          packed_data(ipack) = pack_tmp
   19077      420539 :          data_tmp = full_data(idata)
   19078      420539 :          pack_tmp = ISHFT(data_tmp, 60)
   19079      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19080      420539 :          idata = idata + 1
   19081      420539 :          data_tmp = full_data(idata)
   19082      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19083      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19084      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19085      420539 :          idata = idata + 1
   19086      420539 :          data_tmp = full_data(idata)
   19087      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19088      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19089      420539 :          pack_tmp = ISHFT(pack_tmp, -6)
   19090      420539 :          idata = idata + 1
   19091      420539 :          data_tmp = full_data(idata)
   19092      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19093      420539 :          data_tmp = IAND(data_tmp, mask_left(6))
   19094      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19095      420539 :          ipack = ipack + 1
   19096      420539 :          packed_data(ipack) = pack_tmp
   19097      420539 :          data_tmp = full_data(idata)
   19098      420539 :          pack_tmp = ISHFT(data_tmp, 43)
   19099      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19100      420539 :          idata = idata + 1
   19101      420539 :          data_tmp = full_data(idata)
   19102      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19103      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19104      420539 :          pack_tmp = ISHFT(pack_tmp, -16)
   19105      420539 :          idata = idata + 1
   19106      420539 :          data_tmp = full_data(idata)
   19107      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19108      420539 :          data_tmp = IAND(data_tmp, mask_left(16))
   19109      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19110      420539 :          ipack = ipack + 1
   19111      420539 :          packed_data(ipack) = pack_tmp
   19112      420539 :          data_tmp = full_data(idata)
   19113      420539 :          pack_tmp = ISHFT(data_tmp, 53)
   19114      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19115      420539 :          idata = idata + 1
   19116      420539 :          data_tmp = full_data(idata)
   19117      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19118      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19119      420539 :          pack_tmp = ISHFT(pack_tmp, -26)
   19120      420539 :          idata = idata + 1
   19121      420539 :          data_tmp = full_data(idata)
   19122      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19123      420539 :          data_tmp = IAND(data_tmp, mask_left(26))
   19124      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19125      420539 :          ipack = ipack + 1
   19126      420539 :          packed_data(ipack) = pack_tmp
   19127      420539 :          data_tmp = full_data(idata)
   19128      420539 :          pack_tmp = ISHFT(data_tmp, 63)
   19129      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19130      420539 :          idata = idata + 1
   19131      420539 :          data_tmp = full_data(idata)
   19132      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19133      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19134      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19135      420539 :          idata = idata + 1
   19136      420539 :          data_tmp = full_data(idata)
   19137      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19138      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19139      420539 :          pack_tmp = ISHFT(pack_tmp, -9)
   19140      420539 :          idata = idata + 1
   19141      420539 :          data_tmp = full_data(idata)
   19142      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19143      420539 :          data_tmp = IAND(data_tmp, mask_left(9))
   19144      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19145      420539 :          ipack = ipack + 1
   19146      420539 :          packed_data(ipack) = pack_tmp
   19147      420539 :          data_tmp = full_data(idata)
   19148      420539 :          pack_tmp = ISHFT(data_tmp, 46)
   19149      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19150      420539 :          idata = idata + 1
   19151      420539 :          data_tmp = full_data(idata)
   19152      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19153      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19154      420539 :          pack_tmp = ISHFT(pack_tmp, -19)
   19155      420539 :          idata = idata + 1
   19156      420539 :          data_tmp = full_data(idata)
   19157      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19158      420539 :          data_tmp = IAND(data_tmp, mask_left(19))
   19159      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19160      420539 :          ipack = ipack + 1
   19161      420539 :          packed_data(ipack) = pack_tmp
   19162      420539 :          data_tmp = full_data(idata)
   19163      420539 :          pack_tmp = ISHFT(data_tmp, 56)
   19164      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19165      420539 :          idata = idata + 1
   19166      420539 :          data_tmp = full_data(idata)
   19167      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19168      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19169      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19170      420539 :          idata = idata + 1
   19171      420539 :          data_tmp = full_data(idata)
   19172      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19173      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19174      420539 :          pack_tmp = ISHFT(pack_tmp, -2)
   19175      420539 :          idata = idata + 1
   19176      420539 :          data_tmp = full_data(idata)
   19177      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19178      420539 :          data_tmp = IAND(data_tmp, mask_left(2))
   19179      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19180      420539 :          ipack = ipack + 1
   19181      420539 :          packed_data(ipack) = pack_tmp
   19182      420539 :          data_tmp = full_data(idata)
   19183      420539 :          pack_tmp = ISHFT(data_tmp, 39)
   19184      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19185      420539 :          idata = idata + 1
   19186      420539 :          data_tmp = full_data(idata)
   19187      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19188      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19189      420539 :          pack_tmp = ISHFT(pack_tmp, -12)
   19190      420539 :          idata = idata + 1
   19191      420539 :          data_tmp = full_data(idata)
   19192      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19193      420539 :          data_tmp = IAND(data_tmp, mask_left(12))
   19194      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19195      420539 :          ipack = ipack + 1
   19196      420539 :          packed_data(ipack) = pack_tmp
   19197      420539 :          data_tmp = full_data(idata)
   19198      420539 :          pack_tmp = ISHFT(data_tmp, 49)
   19199      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19200      420539 :          idata = idata + 1
   19201      420539 :          data_tmp = full_data(idata)
   19202      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19203      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19204      420539 :          pack_tmp = ISHFT(pack_tmp, -22)
   19205      420539 :          idata = idata + 1
   19206      420539 :          data_tmp = full_data(idata)
   19207      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19208      420539 :          data_tmp = IAND(data_tmp, mask_left(22))
   19209      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19210      420539 :          ipack = ipack + 1
   19211      420539 :          packed_data(ipack) = pack_tmp
   19212      420539 :          data_tmp = full_data(idata)
   19213      420539 :          pack_tmp = ISHFT(data_tmp, 59)
   19214      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19215      420539 :          idata = idata + 1
   19216      420539 :          data_tmp = full_data(idata)
   19217      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19218      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19219      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19220      420539 :          idata = idata + 1
   19221      420539 :          data_tmp = full_data(idata)
   19222      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19223      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19224      420539 :          pack_tmp = ISHFT(pack_tmp, -5)
   19225      420539 :          idata = idata + 1
   19226      420539 :          data_tmp = full_data(idata)
   19227      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19228      420539 :          data_tmp = IAND(data_tmp, mask_left(5))
   19229      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19230      420539 :          ipack = ipack + 1
   19231      420539 :          packed_data(ipack) = pack_tmp
   19232      420539 :          data_tmp = full_data(idata)
   19233      420539 :          pack_tmp = ISHFT(data_tmp, 42)
   19234      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19235      420539 :          idata = idata + 1
   19236      420539 :          data_tmp = full_data(idata)
   19237      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19238      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19239      420539 :          pack_tmp = ISHFT(pack_tmp, -15)
   19240      420539 :          idata = idata + 1
   19241      420539 :          data_tmp = full_data(idata)
   19242      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19243      420539 :          data_tmp = IAND(data_tmp, mask_left(15))
   19244      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19245      420539 :          ipack = ipack + 1
   19246      420539 :          packed_data(ipack) = pack_tmp
   19247      420539 :          data_tmp = full_data(idata)
   19248      420539 :          pack_tmp = ISHFT(data_tmp, 52)
   19249      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19250      420539 :          idata = idata + 1
   19251      420539 :          data_tmp = full_data(idata)
   19252      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19253      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19254      420539 :          pack_tmp = ISHFT(pack_tmp, -25)
   19255      420539 :          idata = idata + 1
   19256      420539 :          data_tmp = full_data(idata)
   19257      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19258      420539 :          data_tmp = IAND(data_tmp, mask_left(25))
   19259      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19260      420539 :          ipack = ipack + 1
   19261      420539 :          packed_data(ipack) = pack_tmp
   19262      420539 :          data_tmp = full_data(idata)
   19263      420539 :          pack_tmp = ISHFT(data_tmp, 62)
   19264      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19265      420539 :          idata = idata + 1
   19266      420539 :          data_tmp = full_data(idata)
   19267      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19268      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19269      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19270      420539 :          idata = idata + 1
   19271      420539 :          data_tmp = full_data(idata)
   19272      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19273      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19274      420539 :          pack_tmp = ISHFT(pack_tmp, -8)
   19275      420539 :          idata = idata + 1
   19276      420539 :          data_tmp = full_data(idata)
   19277      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19278      420539 :          data_tmp = IAND(data_tmp, mask_left(8))
   19279      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19280      420539 :          ipack = ipack + 1
   19281      420539 :          packed_data(ipack) = pack_tmp
   19282      420539 :          data_tmp = full_data(idata)
   19283      420539 :          pack_tmp = ISHFT(data_tmp, 45)
   19284      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19285      420539 :          idata = idata + 1
   19286      420539 :          data_tmp = full_data(idata)
   19287      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19288      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19289      420539 :          pack_tmp = ISHFT(pack_tmp, -18)
   19290      420539 :          idata = idata + 1
   19291      420539 :          data_tmp = full_data(idata)
   19292      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19293      420539 :          data_tmp = IAND(data_tmp, mask_left(18))
   19294      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19295      420539 :          ipack = ipack + 1
   19296      420539 :          packed_data(ipack) = pack_tmp
   19297      420539 :          data_tmp = full_data(idata)
   19298      420539 :          pack_tmp = ISHFT(data_tmp, 55)
   19299      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19300      420539 :          idata = idata + 1
   19301      420539 :          data_tmp = full_data(idata)
   19302      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19303      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19304      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19305      420539 :          idata = idata + 1
   19306      420539 :          data_tmp = full_data(idata)
   19307      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19308      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19309      420539 :          pack_tmp = ISHFT(pack_tmp, -1)
   19310      420539 :          idata = idata + 1
   19311      420539 :          data_tmp = full_data(idata)
   19312      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19313      420539 :          data_tmp = IAND(data_tmp, mask_left(1))
   19314      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19315      420539 :          ipack = ipack + 1
   19316      420539 :          packed_data(ipack) = pack_tmp
   19317      420539 :          data_tmp = full_data(idata)
   19318      420539 :          pack_tmp = ISHFT(data_tmp, 38)
   19319      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19320      420539 :          idata = idata + 1
   19321      420539 :          data_tmp = full_data(idata)
   19322      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19323      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19324      420539 :          pack_tmp = ISHFT(pack_tmp, -11)
   19325      420539 :          idata = idata + 1
   19326      420539 :          data_tmp = full_data(idata)
   19327      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19328      420539 :          data_tmp = IAND(data_tmp, mask_left(11))
   19329      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19330      420539 :          ipack = ipack + 1
   19331      420539 :          packed_data(ipack) = pack_tmp
   19332      420539 :          data_tmp = full_data(idata)
   19333      420539 :          pack_tmp = ISHFT(data_tmp, 48)
   19334      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19335      420539 :          idata = idata + 1
   19336      420539 :          data_tmp = full_data(idata)
   19337      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19338      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19339      420539 :          pack_tmp = ISHFT(pack_tmp, -21)
   19340      420539 :          idata = idata + 1
   19341      420539 :          data_tmp = full_data(idata)
   19342      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19343      420539 :          data_tmp = IAND(data_tmp, mask_left(21))
   19344      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19345      420539 :          ipack = ipack + 1
   19346      420539 :          packed_data(ipack) = pack_tmp
   19347      420539 :          data_tmp = full_data(idata)
   19348      420539 :          pack_tmp = ISHFT(data_tmp, 58)
   19349      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19350      420539 :          idata = idata + 1
   19351      420539 :          data_tmp = full_data(idata)
   19352      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19353      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19354      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19355      420539 :          idata = idata + 1
   19356      420539 :          data_tmp = full_data(idata)
   19357      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19358      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19359      420539 :          pack_tmp = ISHFT(pack_tmp, -4)
   19360      420539 :          idata = idata + 1
   19361      420539 :          data_tmp = full_data(idata)
   19362      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19363      420539 :          data_tmp = IAND(data_tmp, mask_left(4))
   19364      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19365      420539 :          ipack = ipack + 1
   19366      420539 :          packed_data(ipack) = pack_tmp
   19367      420539 :          data_tmp = full_data(idata)
   19368      420539 :          pack_tmp = ISHFT(data_tmp, 41)
   19369      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19370      420539 :          idata = idata + 1
   19371      420539 :          data_tmp = full_data(idata)
   19372      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19373      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19374      420539 :          pack_tmp = ISHFT(pack_tmp, -14)
   19375      420539 :          idata = idata + 1
   19376      420539 :          data_tmp = full_data(idata)
   19377      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19378      420539 :          data_tmp = IAND(data_tmp, mask_left(14))
   19379      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19380      420539 :          ipack = ipack + 1
   19381      420539 :          packed_data(ipack) = pack_tmp
   19382      420539 :          data_tmp = full_data(idata)
   19383      420539 :          pack_tmp = ISHFT(data_tmp, 51)
   19384      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19385      420539 :          idata = idata + 1
   19386      420539 :          data_tmp = full_data(idata)
   19387      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19388      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19389      420539 :          pack_tmp = ISHFT(pack_tmp, -24)
   19390      420539 :          idata = idata + 1
   19391      420539 :          data_tmp = full_data(idata)
   19392      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19393      420539 :          data_tmp = IAND(data_tmp, mask_left(24))
   19394      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19395      420539 :          ipack = ipack + 1
   19396      420539 :          packed_data(ipack) = pack_tmp
   19397      420539 :          data_tmp = full_data(idata)
   19398      420539 :          pack_tmp = ISHFT(data_tmp, 61)
   19399      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19400      420539 :          idata = idata + 1
   19401      420539 :          data_tmp = full_data(idata)
   19402      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19403      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19404      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19405      420539 :          idata = idata + 1
   19406      420539 :          data_tmp = full_data(idata)
   19407      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19408      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19409      420539 :          pack_tmp = ISHFT(pack_tmp, -7)
   19410      420539 :          idata = idata + 1
   19411      420539 :          data_tmp = full_data(idata)
   19412      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19413      420539 :          data_tmp = IAND(data_tmp, mask_left(7))
   19414      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19415      420539 :          ipack = ipack + 1
   19416      420539 :          packed_data(ipack) = pack_tmp
   19417      420539 :          data_tmp = full_data(idata)
   19418      420539 :          pack_tmp = ISHFT(data_tmp, 44)
   19419      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19420      420539 :          idata = idata + 1
   19421      420539 :          data_tmp = full_data(idata)
   19422      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19423      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19424      420539 :          pack_tmp = ISHFT(pack_tmp, -17)
   19425      420539 :          idata = idata + 1
   19426      420539 :          data_tmp = full_data(idata)
   19427      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19428      420539 :          data_tmp = IAND(data_tmp, mask_left(17))
   19429      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19430      420539 :          ipack = ipack + 1
   19431      420539 :          packed_data(ipack) = pack_tmp
   19432      420539 :          data_tmp = full_data(idata)
   19433      420539 :          pack_tmp = ISHFT(data_tmp, 54)
   19434      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19435      420539 :          idata = idata + 1
   19436      420539 :          data_tmp = full_data(idata)
   19437      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19438      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19439      420539 :          pack_tmp = ISHFT(pack_tmp, -27)
   19440      420539 :          idata = idata + 1
   19441      420539 :          data_tmp = full_data(idata)
   19442      420539 :          data_tmp = ISHFT(data_tmp, 37)
   19443      420539 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19444             :          pack_tmp = ISHFT(pack_tmp, 0)
   19445      420539 :          pack_tmp = ISHFT(pack_tmp, 0)
   19446      420539 :          ipack = ipack + 1
   19447      420611 :          packed_data(ipack) = pack_tmp
   19448             :       END DO
   19449       27615 :       IF (Ndata_rep < Ndata) THEN
   19450        2506 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   19451             :       END IF
   19452       27615 :    END SUBROUTINE ints2bits_27
   19453             : 
   19454             : ! **************************************************************************************************
   19455             : !> \brief ...
   19456             : !> \param Ndata ...
   19457             : !> \param packed_data ...
   19458             : !> \param full_data ...
   19459             : ! **************************************************************************************************
   19460      129571 :    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      129571 :       ipack = 0
   19471      129571 :       idata = 0
   19472      129571 :       pack_tmp = 0
   19473      129571 :       Ndata_rep = (Ndata/64)*64
   19474      129571 :       DO kdata = 1, Ndata_rep, 64
   19475     1902898 :          idata = idata + 1
   19476     1902898 :          data_tmp = ISHFT(pack_tmp, 27)
   19477     1902898 :          ipack = ipack + 1
   19478     1902898 :          pack_tmp = packed_data(ipack)
   19479     1902898 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   19480     1902898 :          pack_tmp = ISHFT(pack_tmp, -27)
   19481     1902898 :          idata = idata + 1
   19482     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19483     1902898 :          full_data(idata) = data_tmp
   19484     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19485     1902898 :          idata = idata + 1
   19486     1902898 :          data_tmp = ISHFT(pack_tmp, 17)
   19487     1902898 :          ipack = ipack + 1
   19488     1902898 :          pack_tmp = packed_data(ipack)
   19489     1902898 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   19490     1902898 :          pack_tmp = ISHFT(pack_tmp, -17)
   19491     1902898 :          idata = idata + 1
   19492     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19493     1902898 :          full_data(idata) = data_tmp
   19494     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19495     1902898 :          idata = idata + 1
   19496     1902898 :          data_tmp = ISHFT(pack_tmp, 7)
   19497     1902898 :          ipack = ipack + 1
   19498     1902898 :          pack_tmp = packed_data(ipack)
   19499     1902898 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   19500     1902898 :          pack_tmp = ISHFT(pack_tmp, -7)
   19501     1902898 :          idata = idata + 1
   19502     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19503     1902898 :          full_data(idata) = data_tmp
   19504     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19505     1902898 :          idata = idata + 1
   19506     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19507     1902898 :          full_data(idata) = data_tmp
   19508     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19509     1902898 :          idata = idata + 1
   19510     1902898 :          data_tmp = ISHFT(pack_tmp, 24)
   19511     1902898 :          ipack = ipack + 1
   19512     1902898 :          pack_tmp = packed_data(ipack)
   19513     1902898 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   19514     1902898 :          pack_tmp = ISHFT(pack_tmp, -24)
   19515     1902898 :          idata = idata + 1
   19516     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19517     1902898 :          full_data(idata) = data_tmp
   19518     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19519     1902898 :          idata = idata + 1
   19520     1902898 :          data_tmp = ISHFT(pack_tmp, 14)
   19521     1902898 :          ipack = ipack + 1
   19522     1902898 :          pack_tmp = packed_data(ipack)
   19523     1902898 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   19524     1902898 :          pack_tmp = ISHFT(pack_tmp, -14)
   19525     1902898 :          idata = idata + 1
   19526     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19527     1902898 :          full_data(idata) = data_tmp
   19528     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19529     1902898 :          idata = idata + 1
   19530     1902898 :          data_tmp = ISHFT(pack_tmp, 4)
   19531     1902898 :          ipack = ipack + 1
   19532     1902898 :          pack_tmp = packed_data(ipack)
   19533     1902898 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   19534     1902898 :          pack_tmp = ISHFT(pack_tmp, -4)
   19535     1902898 :          idata = idata + 1
   19536     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19537     1902898 :          full_data(idata) = data_tmp
   19538     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19539     1902898 :          idata = idata + 1
   19540     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19541     1902898 :          full_data(idata) = data_tmp
   19542     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19543     1902898 :          idata = idata + 1
   19544     1902898 :          data_tmp = ISHFT(pack_tmp, 21)
   19545     1902898 :          ipack = ipack + 1
   19546     1902898 :          pack_tmp = packed_data(ipack)
   19547     1902898 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   19548     1902898 :          pack_tmp = ISHFT(pack_tmp, -21)
   19549     1902898 :          idata = idata + 1
   19550     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19551     1902898 :          full_data(idata) = data_tmp
   19552     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19553     1902898 :          idata = idata + 1
   19554     1902898 :          data_tmp = ISHFT(pack_tmp, 11)
   19555     1902898 :          ipack = ipack + 1
   19556     1902898 :          pack_tmp = packed_data(ipack)
   19557     1902898 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   19558     1902898 :          pack_tmp = ISHFT(pack_tmp, -11)
   19559     1902898 :          idata = idata + 1
   19560     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19561     1902898 :          full_data(idata) = data_tmp
   19562     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19563     1902898 :          idata = idata + 1
   19564     1902898 :          data_tmp = ISHFT(pack_tmp, 1)
   19565     1902898 :          ipack = ipack + 1
   19566     1902898 :          pack_tmp = packed_data(ipack)
   19567     1902898 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   19568     1902898 :          pack_tmp = ISHFT(pack_tmp, -1)
   19569     1902898 :          idata = idata + 1
   19570     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19571     1902898 :          full_data(idata) = data_tmp
   19572     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19573     1902898 :          idata = idata + 1
   19574     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19575     1902898 :          full_data(idata) = data_tmp
   19576     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19577     1902898 :          idata = idata + 1
   19578     1902898 :          data_tmp = ISHFT(pack_tmp, 18)
   19579     1902898 :          ipack = ipack + 1
   19580     1902898 :          pack_tmp = packed_data(ipack)
   19581     1902898 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   19582     1902898 :          pack_tmp = ISHFT(pack_tmp, -18)
   19583     1902898 :          idata = idata + 1
   19584     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19585     1902898 :          full_data(idata) = data_tmp
   19586     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19587     1902898 :          idata = idata + 1
   19588     1902898 :          data_tmp = ISHFT(pack_tmp, 8)
   19589     1902898 :          ipack = ipack + 1
   19590     1902898 :          pack_tmp = packed_data(ipack)
   19591     1902898 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   19592     1902898 :          pack_tmp = ISHFT(pack_tmp, -8)
   19593     1902898 :          idata = idata + 1
   19594     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19595     1902898 :          full_data(idata) = data_tmp
   19596     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19597     1902898 :          idata = idata + 1
   19598     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19599     1902898 :          full_data(idata) = data_tmp
   19600     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19601     1902898 :          idata = idata + 1
   19602     1902898 :          data_tmp = ISHFT(pack_tmp, 25)
   19603     1902898 :          ipack = ipack + 1
   19604     1902898 :          pack_tmp = packed_data(ipack)
   19605     1902898 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   19606     1902898 :          pack_tmp = ISHFT(pack_tmp, -25)
   19607     1902898 :          idata = idata + 1
   19608     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19609     1902898 :          full_data(idata) = data_tmp
   19610     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19611     1902898 :          idata = idata + 1
   19612     1902898 :          data_tmp = ISHFT(pack_tmp, 15)
   19613     1902898 :          ipack = ipack + 1
   19614     1902898 :          pack_tmp = packed_data(ipack)
   19615     1902898 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   19616     1902898 :          pack_tmp = ISHFT(pack_tmp, -15)
   19617     1902898 :          idata = idata + 1
   19618     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19619     1902898 :          full_data(idata) = data_tmp
   19620     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19621     1902898 :          idata = idata + 1
   19622     1902898 :          data_tmp = ISHFT(pack_tmp, 5)
   19623     1902898 :          ipack = ipack + 1
   19624     1902898 :          pack_tmp = packed_data(ipack)
   19625     1902898 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   19626     1902898 :          pack_tmp = ISHFT(pack_tmp, -5)
   19627     1902898 :          idata = idata + 1
   19628     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19629     1902898 :          full_data(idata) = data_tmp
   19630     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19631     1902898 :          idata = idata + 1
   19632     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19633     1902898 :          full_data(idata) = data_tmp
   19634     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19635     1902898 :          idata = idata + 1
   19636     1902898 :          data_tmp = ISHFT(pack_tmp, 22)
   19637     1902898 :          ipack = ipack + 1
   19638     1902898 :          pack_tmp = packed_data(ipack)
   19639     1902898 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   19640     1902898 :          pack_tmp = ISHFT(pack_tmp, -22)
   19641     1902898 :          idata = idata + 1
   19642     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19643     1902898 :          full_data(idata) = data_tmp
   19644     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19645     1902898 :          idata = idata + 1
   19646     1902898 :          data_tmp = ISHFT(pack_tmp, 12)
   19647     1902898 :          ipack = ipack + 1
   19648     1902898 :          pack_tmp = packed_data(ipack)
   19649     1902898 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   19650     1902898 :          pack_tmp = ISHFT(pack_tmp, -12)
   19651     1902898 :          idata = idata + 1
   19652     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19653     1902898 :          full_data(idata) = data_tmp
   19654     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19655     1902898 :          idata = idata + 1
   19656     1902898 :          data_tmp = ISHFT(pack_tmp, 2)
   19657     1902898 :          ipack = ipack + 1
   19658     1902898 :          pack_tmp = packed_data(ipack)
   19659     1902898 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   19660     1902898 :          pack_tmp = ISHFT(pack_tmp, -2)
   19661     1902898 :          idata = idata + 1
   19662     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19663     1902898 :          full_data(idata) = data_tmp
   19664     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19665     1902898 :          idata = idata + 1
   19666     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19667     1902898 :          full_data(idata) = data_tmp
   19668     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19669     1902898 :          idata = idata + 1
   19670     1902898 :          data_tmp = ISHFT(pack_tmp, 19)
   19671     1902898 :          ipack = ipack + 1
   19672     1902898 :          pack_tmp = packed_data(ipack)
   19673     1902898 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   19674     1902898 :          pack_tmp = ISHFT(pack_tmp, -19)
   19675     1902898 :          idata = idata + 1
   19676     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19677     1902898 :          full_data(idata) = data_tmp
   19678     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19679     1902898 :          idata = idata + 1
   19680     1902898 :          data_tmp = ISHFT(pack_tmp, 9)
   19681     1902898 :          ipack = ipack + 1
   19682     1902898 :          pack_tmp = packed_data(ipack)
   19683     1902898 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   19684     1902898 :          pack_tmp = ISHFT(pack_tmp, -9)
   19685     1902898 :          idata = idata + 1
   19686     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19687     1902898 :          full_data(idata) = data_tmp
   19688     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19689     1902898 :          idata = idata + 1
   19690     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19691     1902898 :          full_data(idata) = data_tmp
   19692     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19693     1902898 :          idata = idata + 1
   19694     1902898 :          data_tmp = ISHFT(pack_tmp, 26)
   19695     1902898 :          ipack = ipack + 1
   19696     1902898 :          pack_tmp = packed_data(ipack)
   19697     1902898 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   19698     1902898 :          pack_tmp = ISHFT(pack_tmp, -26)
   19699     1902898 :          idata = idata + 1
   19700     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19701     1902898 :          full_data(idata) = data_tmp
   19702     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19703     1902898 :          idata = idata + 1
   19704     1902898 :          data_tmp = ISHFT(pack_tmp, 16)
   19705     1902898 :          ipack = ipack + 1
   19706     1902898 :          pack_tmp = packed_data(ipack)
   19707     1902898 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   19708     1902898 :          pack_tmp = ISHFT(pack_tmp, -16)
   19709     1902898 :          idata = idata + 1
   19710     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19711     1902898 :          full_data(idata) = data_tmp
   19712     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19713     1902898 :          idata = idata + 1
   19714     1902898 :          data_tmp = ISHFT(pack_tmp, 6)
   19715     1902898 :          ipack = ipack + 1
   19716     1902898 :          pack_tmp = packed_data(ipack)
   19717     1902898 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   19718     1902898 :          pack_tmp = ISHFT(pack_tmp, -6)
   19719     1902898 :          idata = idata + 1
   19720     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19721     1902898 :          full_data(idata) = data_tmp
   19722     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19723     1902898 :          idata = idata + 1
   19724     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19725     1902898 :          full_data(idata) = data_tmp
   19726     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19727     1902898 :          idata = idata + 1
   19728     1902898 :          data_tmp = ISHFT(pack_tmp, 23)
   19729     1902898 :          ipack = ipack + 1
   19730     1902898 :          pack_tmp = packed_data(ipack)
   19731     1902898 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   19732     1902898 :          pack_tmp = ISHFT(pack_tmp, -23)
   19733     1902898 :          idata = idata + 1
   19734     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19735     1902898 :          full_data(idata) = data_tmp
   19736     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19737     1902898 :          idata = idata + 1
   19738     1902898 :          data_tmp = ISHFT(pack_tmp, 13)
   19739     1902898 :          ipack = ipack + 1
   19740     1902898 :          pack_tmp = packed_data(ipack)
   19741     1902898 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   19742     1902898 :          pack_tmp = ISHFT(pack_tmp, -13)
   19743     1902898 :          idata = idata + 1
   19744     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19745     1902898 :          full_data(idata) = data_tmp
   19746     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19747     1902898 :          idata = idata + 1
   19748     1902898 :          data_tmp = ISHFT(pack_tmp, 3)
   19749     1902898 :          ipack = ipack + 1
   19750     1902898 :          pack_tmp = packed_data(ipack)
   19751     1902898 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   19752     1902898 :          pack_tmp = ISHFT(pack_tmp, -3)
   19753     1902898 :          idata = idata + 1
   19754     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19755     1902898 :          full_data(idata) = data_tmp
   19756     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19757     1902898 :          idata = idata + 1
   19758     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19759     1902898 :          full_data(idata) = data_tmp
   19760     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19761     1902898 :          idata = idata + 1
   19762     1902898 :          data_tmp = ISHFT(pack_tmp, 20)
   19763     1902898 :          ipack = ipack + 1
   19764     1902898 :          pack_tmp = packed_data(ipack)
   19765     1902898 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   19766     1902898 :          pack_tmp = ISHFT(pack_tmp, -20)
   19767     1902898 :          idata = idata + 1
   19768     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19769     1902898 :          full_data(idata) = data_tmp
   19770     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19771     1902898 :          idata = idata + 1
   19772     1902898 :          data_tmp = ISHFT(pack_tmp, 10)
   19773     1902898 :          ipack = ipack + 1
   19774     1902898 :          pack_tmp = packed_data(ipack)
   19775     1902898 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   19776     1902898 :          pack_tmp = ISHFT(pack_tmp, -10)
   19777     1902898 :          idata = idata + 1
   19778     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19779     1902898 :          full_data(idata) = data_tmp
   19780     1902898 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19781     1902898 :          idata = idata + 1
   19782     1902898 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19783     1902898 :          full_data(idata) = data_tmp
   19784     1903443 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19785             :       END DO
   19786      129571 :       IF (Ndata_rep < Ndata) THEN
   19787       20028 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   19788             :       END IF
   19789      129571 :    END SUBROUTINE bits2ints_27
   19790             : 
   19791             : ! **************************************************************************************************
   19792             : !> \brief ...
   19793             : !> \param Ndata ...
   19794             : !> \param packed_data ...
   19795             : !> \param full_data ...
   19796             : ! **************************************************************************************************
   19797       30631 :    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       30631 :       idata = 0
   19808       30631 :       ipack = 0
   19809       30631 :       Ndata_rep = (Ndata/64)*64
   19810       30631 :       DO kdata = 1, Ndata_rep, 64
   19811      451047 :          pack_tmp = 0
   19812      451047 :          idata = idata + 1
   19813      451047 :          data_tmp = full_data(idata)
   19814      451047 :          data_tmp = ISHFT(data_tmp, 36)
   19815      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19816      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   19817      451047 :          idata = idata + 1
   19818      451047 :          data_tmp = full_data(idata)
   19819      451047 :          data_tmp = ISHFT(data_tmp, 36)
   19820      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19821      451047 :          pack_tmp = ISHFT(pack_tmp, -8)
   19822      451047 :          idata = idata + 1
   19823      451047 :          data_tmp = full_data(idata)
   19824      451047 :          data_tmp = ISHFT(data_tmp, 36)
   19825      451047 :          data_tmp = IAND(data_tmp, mask_left(8))
   19826      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19827      451047 :          ipack = ipack + 1
   19828      451047 :          packed_data(ipack) = pack_tmp
   19829      451047 :          data_tmp = full_data(idata)
   19830      451047 :          pack_tmp = ISHFT(data_tmp, 44)
   19831      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   19832      451047 :          idata = idata + 1
   19833      451047 :          data_tmp = full_data(idata)
   19834      451047 :          data_tmp = ISHFT(data_tmp, 36)
   19835      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19836      451047 :          pack_tmp = ISHFT(pack_tmp, -16)
   19837      451047 :          idata = idata + 1
   19838      451047 :          data_tmp = full_data(idata)
   19839      451047 :          data_tmp = ISHFT(data_tmp, 36)
   19840      451047 :          data_tmp = IAND(data_tmp, mask_left(16))
   19841      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19842      451047 :          ipack = ipack + 1
   19843      451047 :          packed_data(ipack) = pack_tmp
   19844      451047 :          data_tmp = full_data(idata)
   19845      451047 :          pack_tmp = ISHFT(data_tmp, 52)
   19846      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   19847      451047 :          idata = idata + 1
   19848      451047 :          data_tmp = full_data(idata)
   19849      451047 :          data_tmp = ISHFT(data_tmp, 36)
   19850      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19851      451047 :          pack_tmp = ISHFT(pack_tmp, -24)
   19852      451047 :          idata = idata + 1
   19853      451047 :          data_tmp = full_data(idata)
   19854      451047 :          data_tmp = ISHFT(data_tmp, 36)
   19855      451047 :          data_tmp = IAND(data_tmp, mask_left(24))
   19856      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19857      451047 :          ipack = ipack + 1
   19858      451047 :          packed_data(ipack) = pack_tmp
   19859      451047 :          data_tmp = full_data(idata)
   19860      451047 :          pack_tmp = ISHFT(data_tmp, 60)
   19861      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   19862      451047 :          idata = idata + 1
   19863      451047 :          data_tmp = full_data(idata)
   19864      451047 :          data_tmp = ISHFT(data_tmp, 36)
   19865      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19866      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   19867      451047 :          idata = idata + 1
   19868      451047 :          data_tmp = full_data(idata)
   19869      451047 :          data_tmp = ISHFT(data_tmp, 36)
   19870      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19871      451047 :          pack_tmp = ISHFT(pack_tmp, -4)
   19872      451047 :          idata = idata + 1
   19873      451047 :          data_tmp = full_data(idata)
   19874      451047 :          data_tmp = ISHFT(data_tmp, 36)
   19875      451047 :          data_tmp = IAND(data_tmp, mask_left(4))
   19876      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19877      451047 :          ipack = ipack + 1
   19878      451047 :          packed_data(ipack) = pack_tmp
   19879      451047 :          data_tmp = full_data(idata)
   19880      451047 :          pack_tmp = ISHFT(data_tmp, 40)
   19881      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   19882      451047 :          idata = idata + 1
   19883      451047 :          data_tmp = full_data(idata)
   19884      451047 :          data_tmp = ISHFT(data_tmp, 36)
   19885      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19886      451047 :          pack_tmp = ISHFT(pack_tmp, -12)
   19887      451047 :          idata = idata + 1
   19888      451047 :          data_tmp = full_data(idata)
   19889      451047 :          data_tmp = ISHFT(data_tmp, 36)
   19890      451047 :          data_tmp = IAND(data_tmp, mask_left(12))
   19891      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19892      451047 :          ipack = ipack + 1
   19893      451047 :          packed_data(ipack) = pack_tmp
   19894      451047 :          data_tmp = full_data(idata)
   19895      451047 :          pack_tmp = ISHFT(data_tmp, 48)
   19896      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   19897      451047 :          idata = idata + 1
   19898      451047 :          data_tmp = full_data(idata)
   19899      451047 :          data_tmp = ISHFT(data_tmp, 36)
   19900      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19901      451047 :          pack_tmp = ISHFT(pack_tmp, -20)
   19902      451047 :          idata = idata + 1
   19903      451047 :          data_tmp = full_data(idata)
   19904      451047 :          data_tmp = ISHFT(data_tmp, 36)
   19905      451047 :          data_tmp = IAND(data_tmp, mask_left(20))
   19906      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19907      451047 :          ipack = ipack + 1
   19908      451047 :          packed_data(ipack) = pack_tmp
   19909      451047 :          data_tmp = full_data(idata)
   19910      451047 :          pack_tmp = ISHFT(data_tmp, 56)
   19911      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   19912      451047 :          idata = idata + 1
   19913      451047 :          data_tmp = full_data(idata)
   19914      451047 :          data_tmp = ISHFT(data_tmp, 36)
   19915      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19916      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   19917      451047 :          idata = idata + 1
   19918      451047 :          data_tmp = full_data(idata)
   19919      451047 :          data_tmp = ISHFT(data_tmp, 36)
   19920      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19921      451047 :          pack_tmp = ISHFT(pack_tmp, 0)
   19922      451047 :          idata = idata + 1
   19923      451047 :          data_tmp = full_data(idata)
   19924             :          data_tmp = ISHFT(data_tmp, 36)
   19925      451047 :          data_tmp = IAND(data_tmp, mask_left(0))
   19926      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19927      451047 :          ipack = ipack + 1
   19928      451047 :          packed_data(ipack) = pack_tmp
   19929      451047 :          data_tmp = full_data(idata)
   19930      451047 :          pack_tmp = ISHFT(data_tmp, 36)
   19931      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   19932      451047 :          idata = idata + 1
   19933      451047 :          data_tmp = full_data(idata)
   19934      451047 :          data_tmp = ISHFT(data_tmp, 36)
   19935      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19936      451047 :          pack_tmp = ISHFT(pack_tmp, -8)
   19937      451047 :          idata = idata + 1
   19938      451047 :          data_tmp = full_data(idata)
   19939      451047 :          data_tmp = ISHFT(data_tmp, 36)
   19940      451047 :          data_tmp = IAND(data_tmp, mask_left(8))
   19941      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19942      451047 :          ipack = ipack + 1
   19943      451047 :          packed_data(ipack) = pack_tmp
   19944      451047 :          data_tmp = full_data(idata)
   19945      451047 :          pack_tmp = ISHFT(data_tmp, 44)
   19946      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   19947      451047 :          idata = idata + 1
   19948      451047 :          data_tmp = full_data(idata)
   19949      451047 :          data_tmp = ISHFT(data_tmp, 36)
   19950      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19951      451047 :          pack_tmp = ISHFT(pack_tmp, -16)
   19952      451047 :          idata = idata + 1
   19953      451047 :          data_tmp = full_data(idata)
   19954      451047 :          data_tmp = ISHFT(data_tmp, 36)
   19955      451047 :          data_tmp = IAND(data_tmp, mask_left(16))
   19956      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19957      451047 :          ipack = ipack + 1
   19958      451047 :          packed_data(ipack) = pack_tmp
   19959      451047 :          data_tmp = full_data(idata)
   19960      451047 :          pack_tmp = ISHFT(data_tmp, 52)
   19961      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   19962      451047 :          idata = idata + 1
   19963      451047 :          data_tmp = full_data(idata)
   19964      451047 :          data_tmp = ISHFT(data_tmp, 36)
   19965      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19966      451047 :          pack_tmp = ISHFT(pack_tmp, -24)
   19967      451047 :          idata = idata + 1
   19968      451047 :          data_tmp = full_data(idata)
   19969      451047 :          data_tmp = ISHFT(data_tmp, 36)
   19970      451047 :          data_tmp = IAND(data_tmp, mask_left(24))
   19971      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19972      451047 :          ipack = ipack + 1
   19973      451047 :          packed_data(ipack) = pack_tmp
   19974      451047 :          data_tmp = full_data(idata)
   19975      451047 :          pack_tmp = ISHFT(data_tmp, 60)
   19976      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   19977      451047 :          idata = idata + 1
   19978      451047 :          data_tmp = full_data(idata)
   19979      451047 :          data_tmp = ISHFT(data_tmp, 36)
   19980      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19981      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   19982      451047 :          idata = idata + 1
   19983      451047 :          data_tmp = full_data(idata)
   19984      451047 :          data_tmp = ISHFT(data_tmp, 36)
   19985      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19986      451047 :          pack_tmp = ISHFT(pack_tmp, -4)
   19987      451047 :          idata = idata + 1
   19988      451047 :          data_tmp = full_data(idata)
   19989      451047 :          data_tmp = ISHFT(data_tmp, 36)
   19990      451047 :          data_tmp = IAND(data_tmp, mask_left(4))
   19991      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19992      451047 :          ipack = ipack + 1
   19993      451047 :          packed_data(ipack) = pack_tmp
   19994      451047 :          data_tmp = full_data(idata)
   19995      451047 :          pack_tmp = ISHFT(data_tmp, 40)
   19996      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   19997      451047 :          idata = idata + 1
   19998      451047 :          data_tmp = full_data(idata)
   19999      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20000      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20001      451047 :          pack_tmp = ISHFT(pack_tmp, -12)
   20002      451047 :          idata = idata + 1
   20003      451047 :          data_tmp = full_data(idata)
   20004      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20005      451047 :          data_tmp = IAND(data_tmp, mask_left(12))
   20006      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20007      451047 :          ipack = ipack + 1
   20008      451047 :          packed_data(ipack) = pack_tmp
   20009      451047 :          data_tmp = full_data(idata)
   20010      451047 :          pack_tmp = ISHFT(data_tmp, 48)
   20011      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   20012      451047 :          idata = idata + 1
   20013      451047 :          data_tmp = full_data(idata)
   20014      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20015      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20016      451047 :          pack_tmp = ISHFT(pack_tmp, -20)
   20017      451047 :          idata = idata + 1
   20018      451047 :          data_tmp = full_data(idata)
   20019      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20020      451047 :          data_tmp = IAND(data_tmp, mask_left(20))
   20021      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20022      451047 :          ipack = ipack + 1
   20023      451047 :          packed_data(ipack) = pack_tmp
   20024      451047 :          data_tmp = full_data(idata)
   20025      451047 :          pack_tmp = ISHFT(data_tmp, 56)
   20026      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   20027      451047 :          idata = idata + 1
   20028      451047 :          data_tmp = full_data(idata)
   20029      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20030      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20031      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   20032      451047 :          idata = idata + 1
   20033      451047 :          data_tmp = full_data(idata)
   20034      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20035      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20036      451047 :          pack_tmp = ISHFT(pack_tmp, 0)
   20037      451047 :          idata = idata + 1
   20038      451047 :          data_tmp = full_data(idata)
   20039             :          data_tmp = ISHFT(data_tmp, 36)
   20040      451047 :          data_tmp = IAND(data_tmp, mask_left(0))
   20041      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20042      451047 :          ipack = ipack + 1
   20043      451047 :          packed_data(ipack) = pack_tmp
   20044      451047 :          data_tmp = full_data(idata)
   20045      451047 :          pack_tmp = ISHFT(data_tmp, 36)
   20046      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   20047      451047 :          idata = idata + 1
   20048      451047 :          data_tmp = full_data(idata)
   20049      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20050      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20051      451047 :          pack_tmp = ISHFT(pack_tmp, -8)
   20052      451047 :          idata = idata + 1
   20053      451047 :          data_tmp = full_data(idata)
   20054      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20055      451047 :          data_tmp = IAND(data_tmp, mask_left(8))
   20056      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20057      451047 :          ipack = ipack + 1
   20058      451047 :          packed_data(ipack) = pack_tmp
   20059      451047 :          data_tmp = full_data(idata)
   20060      451047 :          pack_tmp = ISHFT(data_tmp, 44)
   20061      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   20062      451047 :          idata = idata + 1
   20063      451047 :          data_tmp = full_data(idata)
   20064      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20065      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20066      451047 :          pack_tmp = ISHFT(pack_tmp, -16)
   20067      451047 :          idata = idata + 1
   20068      451047 :          data_tmp = full_data(idata)
   20069      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20070      451047 :          data_tmp = IAND(data_tmp, mask_left(16))
   20071      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20072      451047 :          ipack = ipack + 1
   20073      451047 :          packed_data(ipack) = pack_tmp
   20074      451047 :          data_tmp = full_data(idata)
   20075      451047 :          pack_tmp = ISHFT(data_tmp, 52)
   20076      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   20077      451047 :          idata = idata + 1
   20078      451047 :          data_tmp = full_data(idata)
   20079      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20080      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20081      451047 :          pack_tmp = ISHFT(pack_tmp, -24)
   20082      451047 :          idata = idata + 1
   20083      451047 :          data_tmp = full_data(idata)
   20084      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20085      451047 :          data_tmp = IAND(data_tmp, mask_left(24))
   20086      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20087      451047 :          ipack = ipack + 1
   20088      451047 :          packed_data(ipack) = pack_tmp
   20089      451047 :          data_tmp = full_data(idata)
   20090      451047 :          pack_tmp = ISHFT(data_tmp, 60)
   20091      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   20092      451047 :          idata = idata + 1
   20093      451047 :          data_tmp = full_data(idata)
   20094      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20095      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20096      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   20097      451047 :          idata = idata + 1
   20098      451047 :          data_tmp = full_data(idata)
   20099      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20100      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20101      451047 :          pack_tmp = ISHFT(pack_tmp, -4)
   20102      451047 :          idata = idata + 1
   20103      451047 :          data_tmp = full_data(idata)
   20104      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20105      451047 :          data_tmp = IAND(data_tmp, mask_left(4))
   20106      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20107      451047 :          ipack = ipack + 1
   20108      451047 :          packed_data(ipack) = pack_tmp
   20109      451047 :          data_tmp = full_data(idata)
   20110      451047 :          pack_tmp = ISHFT(data_tmp, 40)
   20111      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   20112      451047 :          idata = idata + 1
   20113      451047 :          data_tmp = full_data(idata)
   20114      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20115      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20116      451047 :          pack_tmp = ISHFT(pack_tmp, -12)
   20117      451047 :          idata = idata + 1
   20118      451047 :          data_tmp = full_data(idata)
   20119      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20120      451047 :          data_tmp = IAND(data_tmp, mask_left(12))
   20121      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20122      451047 :          ipack = ipack + 1
   20123      451047 :          packed_data(ipack) = pack_tmp
   20124      451047 :          data_tmp = full_data(idata)
   20125      451047 :          pack_tmp = ISHFT(data_tmp, 48)
   20126      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   20127      451047 :          idata = idata + 1
   20128      451047 :          data_tmp = full_data(idata)
   20129      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20130      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20131      451047 :          pack_tmp = ISHFT(pack_tmp, -20)
   20132      451047 :          idata = idata + 1
   20133      451047 :          data_tmp = full_data(idata)
   20134      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20135      451047 :          data_tmp = IAND(data_tmp, mask_left(20))
   20136      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20137      451047 :          ipack = ipack + 1
   20138      451047 :          packed_data(ipack) = pack_tmp
   20139      451047 :          data_tmp = full_data(idata)
   20140      451047 :          pack_tmp = ISHFT(data_tmp, 56)
   20141      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   20142      451047 :          idata = idata + 1
   20143      451047 :          data_tmp = full_data(idata)
   20144      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20145      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20146      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   20147      451047 :          idata = idata + 1
   20148      451047 :          data_tmp = full_data(idata)
   20149      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20150      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20151      451047 :          pack_tmp = ISHFT(pack_tmp, 0)
   20152      451047 :          idata = idata + 1
   20153      451047 :          data_tmp = full_data(idata)
   20154             :          data_tmp = ISHFT(data_tmp, 36)
   20155      451047 :          data_tmp = IAND(data_tmp, mask_left(0))
   20156      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20157      451047 :          ipack = ipack + 1
   20158      451047 :          packed_data(ipack) = pack_tmp
   20159      451047 :          data_tmp = full_data(idata)
   20160      451047 :          pack_tmp = ISHFT(data_tmp, 36)
   20161      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   20162      451047 :          idata = idata + 1
   20163      451047 :          data_tmp = full_data(idata)
   20164      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20165      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20166      451047 :          pack_tmp = ISHFT(pack_tmp, -8)
   20167      451047 :          idata = idata + 1
   20168      451047 :          data_tmp = full_data(idata)
   20169      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20170      451047 :          data_tmp = IAND(data_tmp, mask_left(8))
   20171      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20172      451047 :          ipack = ipack + 1
   20173      451047 :          packed_data(ipack) = pack_tmp
   20174      451047 :          data_tmp = full_data(idata)
   20175      451047 :          pack_tmp = ISHFT(data_tmp, 44)
   20176      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   20177      451047 :          idata = idata + 1
   20178      451047 :          data_tmp = full_data(idata)
   20179      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20180      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20181      451047 :          pack_tmp = ISHFT(pack_tmp, -16)
   20182      451047 :          idata = idata + 1
   20183      451047 :          data_tmp = full_data(idata)
   20184      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20185      451047 :          data_tmp = IAND(data_tmp, mask_left(16))
   20186      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20187      451047 :          ipack = ipack + 1
   20188      451047 :          packed_data(ipack) = pack_tmp
   20189      451047 :          data_tmp = full_data(idata)
   20190      451047 :          pack_tmp = ISHFT(data_tmp, 52)
   20191      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   20192      451047 :          idata = idata + 1
   20193      451047 :          data_tmp = full_data(idata)
   20194      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20195      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20196      451047 :          pack_tmp = ISHFT(pack_tmp, -24)
   20197      451047 :          idata = idata + 1
   20198      451047 :          data_tmp = full_data(idata)
   20199      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20200      451047 :          data_tmp = IAND(data_tmp, mask_left(24))
   20201      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20202      451047 :          ipack = ipack + 1
   20203      451047 :          packed_data(ipack) = pack_tmp
   20204      451047 :          data_tmp = full_data(idata)
   20205      451047 :          pack_tmp = ISHFT(data_tmp, 60)
   20206      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   20207      451047 :          idata = idata + 1
   20208      451047 :          data_tmp = full_data(idata)
   20209      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20210      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20211      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   20212      451047 :          idata = idata + 1
   20213      451047 :          data_tmp = full_data(idata)
   20214      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20215      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20216      451047 :          pack_tmp = ISHFT(pack_tmp, -4)
   20217      451047 :          idata = idata + 1
   20218      451047 :          data_tmp = full_data(idata)
   20219      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20220      451047 :          data_tmp = IAND(data_tmp, mask_left(4))
   20221      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20222      451047 :          ipack = ipack + 1
   20223      451047 :          packed_data(ipack) = pack_tmp
   20224      451047 :          data_tmp = full_data(idata)
   20225      451047 :          pack_tmp = ISHFT(data_tmp, 40)
   20226      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   20227      451047 :          idata = idata + 1
   20228      451047 :          data_tmp = full_data(idata)
   20229      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20230      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20231      451047 :          pack_tmp = ISHFT(pack_tmp, -12)
   20232      451047 :          idata = idata + 1
   20233      451047 :          data_tmp = full_data(idata)
   20234      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20235      451047 :          data_tmp = IAND(data_tmp, mask_left(12))
   20236      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20237      451047 :          ipack = ipack + 1
   20238      451047 :          packed_data(ipack) = pack_tmp
   20239      451047 :          data_tmp = full_data(idata)
   20240      451047 :          pack_tmp = ISHFT(data_tmp, 48)
   20241      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   20242      451047 :          idata = idata + 1
   20243      451047 :          data_tmp = full_data(idata)
   20244      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20245      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20246      451047 :          pack_tmp = ISHFT(pack_tmp, -20)
   20247      451047 :          idata = idata + 1
   20248      451047 :          data_tmp = full_data(idata)
   20249      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20250      451047 :          data_tmp = IAND(data_tmp, mask_left(20))
   20251      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20252      451047 :          ipack = ipack + 1
   20253      451047 :          packed_data(ipack) = pack_tmp
   20254      451047 :          data_tmp = full_data(idata)
   20255      451047 :          pack_tmp = ISHFT(data_tmp, 56)
   20256      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   20257      451047 :          idata = idata + 1
   20258      451047 :          data_tmp = full_data(idata)
   20259      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20260      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20261      451047 :          pack_tmp = ISHFT(pack_tmp, -28)
   20262      451047 :          idata = idata + 1
   20263      451047 :          data_tmp = full_data(idata)
   20264      451047 :          data_tmp = ISHFT(data_tmp, 36)
   20265      451047 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20266             :          pack_tmp = ISHFT(pack_tmp, 0)
   20267      451047 :          pack_tmp = ISHFT(pack_tmp, 0)
   20268      451047 :          ipack = ipack + 1
   20269      451157 :          packed_data(ipack) = pack_tmp
   20270             :       END DO
   20271       30631 :       IF (Ndata_rep < Ndata) THEN
   20272        4562 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   20273             :       END IF
   20274       30631 :    END SUBROUTINE ints2bits_28
   20275             : 
   20276             : ! **************************************************************************************************
   20277             : !> \brief ...
   20278             : !> \param Ndata ...
   20279             : !> \param packed_data ...
   20280             : !> \param full_data ...
   20281             : ! **************************************************************************************************
   20282      149185 :    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      149185 :       ipack = 0
   20293      149185 :       idata = 0
   20294      149185 :       pack_tmp = 0
   20295      149185 :       Ndata_rep = (Ndata/64)*64
   20296      149185 :       DO kdata = 1, Ndata_rep, 64
   20297     2111003 :          idata = idata + 1
   20298     2111003 :          data_tmp = ISHFT(pack_tmp, 28)
   20299     2111003 :          ipack = ipack + 1
   20300     2111003 :          pack_tmp = packed_data(ipack)
   20301     2111003 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   20302     2111003 :          pack_tmp = ISHFT(pack_tmp, -28)
   20303     2111003 :          idata = idata + 1
   20304     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20305     2111003 :          full_data(idata) = data_tmp
   20306     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20307     2111003 :          idata = idata + 1
   20308     2111003 :          data_tmp = ISHFT(pack_tmp, 20)
   20309     2111003 :          ipack = ipack + 1
   20310     2111003 :          pack_tmp = packed_data(ipack)
   20311     2111003 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   20312     2111003 :          pack_tmp = ISHFT(pack_tmp, -20)
   20313     2111003 :          idata = idata + 1
   20314     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20315     2111003 :          full_data(idata) = data_tmp
   20316     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20317     2111003 :          idata = idata + 1
   20318     2111003 :          data_tmp = ISHFT(pack_tmp, 12)
   20319     2111003 :          ipack = ipack + 1
   20320     2111003 :          pack_tmp = packed_data(ipack)
   20321     2111003 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   20322     2111003 :          pack_tmp = ISHFT(pack_tmp, -12)
   20323     2111003 :          idata = idata + 1
   20324     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20325     2111003 :          full_data(idata) = data_tmp
   20326     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20327     2111003 :          idata = idata + 1
   20328     2111003 :          data_tmp = ISHFT(pack_tmp, 4)
   20329     2111003 :          ipack = ipack + 1
   20330     2111003 :          pack_tmp = packed_data(ipack)
   20331     2111003 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   20332     2111003 :          pack_tmp = ISHFT(pack_tmp, -4)
   20333     2111003 :          idata = idata + 1
   20334     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20335     2111003 :          full_data(idata) = data_tmp
   20336     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20337     2111003 :          idata = idata + 1
   20338     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20339     2111003 :          full_data(idata) = data_tmp
   20340     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20341     2111003 :          idata = idata + 1
   20342     2111003 :          data_tmp = ISHFT(pack_tmp, 24)
   20343     2111003 :          ipack = ipack + 1
   20344     2111003 :          pack_tmp = packed_data(ipack)
   20345     2111003 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   20346     2111003 :          pack_tmp = ISHFT(pack_tmp, -24)
   20347     2111003 :          idata = idata + 1
   20348     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20349     2111003 :          full_data(idata) = data_tmp
   20350     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20351     2111003 :          idata = idata + 1
   20352     2111003 :          data_tmp = ISHFT(pack_tmp, 16)
   20353     2111003 :          ipack = ipack + 1
   20354     2111003 :          pack_tmp = packed_data(ipack)
   20355     2111003 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   20356     2111003 :          pack_tmp = ISHFT(pack_tmp, -16)
   20357     2111003 :          idata = idata + 1
   20358     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20359     2111003 :          full_data(idata) = data_tmp
   20360     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20361     2111003 :          idata = idata + 1
   20362     2111003 :          data_tmp = ISHFT(pack_tmp, 8)
   20363     2111003 :          ipack = ipack + 1
   20364     2111003 :          pack_tmp = packed_data(ipack)
   20365     2111003 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   20366     2111003 :          pack_tmp = ISHFT(pack_tmp, -8)
   20367     2111003 :          idata = idata + 1
   20368     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20369     2111003 :          full_data(idata) = data_tmp
   20370     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20371     2111003 :          idata = idata + 1
   20372     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20373     2111003 :          full_data(idata) = data_tmp
   20374     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20375     2111003 :          idata = idata + 1
   20376     2111003 :          data_tmp = ISHFT(pack_tmp, 28)
   20377     2111003 :          ipack = ipack + 1
   20378     2111003 :          pack_tmp = packed_data(ipack)
   20379     2111003 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   20380     2111003 :          pack_tmp = ISHFT(pack_tmp, -28)
   20381     2111003 :          idata = idata + 1
   20382     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20383     2111003 :          full_data(idata) = data_tmp
   20384     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20385     2111003 :          idata = idata + 1
   20386     2111003 :          data_tmp = ISHFT(pack_tmp, 20)
   20387     2111003 :          ipack = ipack + 1
   20388     2111003 :          pack_tmp = packed_data(ipack)
   20389     2111003 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   20390     2111003 :          pack_tmp = ISHFT(pack_tmp, -20)
   20391     2111003 :          idata = idata + 1
   20392     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20393     2111003 :          full_data(idata) = data_tmp
   20394     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20395     2111003 :          idata = idata + 1
   20396     2111003 :          data_tmp = ISHFT(pack_tmp, 12)
   20397     2111003 :          ipack = ipack + 1
   20398     2111003 :          pack_tmp = packed_data(ipack)
   20399     2111003 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   20400     2111003 :          pack_tmp = ISHFT(pack_tmp, -12)
   20401     2111003 :          idata = idata + 1
   20402     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20403     2111003 :          full_data(idata) = data_tmp
   20404     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20405     2111003 :          idata = idata + 1
   20406     2111003 :          data_tmp = ISHFT(pack_tmp, 4)
   20407     2111003 :          ipack = ipack + 1
   20408     2111003 :          pack_tmp = packed_data(ipack)
   20409     2111003 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   20410     2111003 :          pack_tmp = ISHFT(pack_tmp, -4)
   20411     2111003 :          idata = idata + 1
   20412     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20413     2111003 :          full_data(idata) = data_tmp
   20414     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20415     2111003 :          idata = idata + 1
   20416     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20417     2111003 :          full_data(idata) = data_tmp
   20418     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20419     2111003 :          idata = idata + 1
   20420     2111003 :          data_tmp = ISHFT(pack_tmp, 24)
   20421     2111003 :          ipack = ipack + 1
   20422     2111003 :          pack_tmp = packed_data(ipack)
   20423     2111003 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   20424     2111003 :          pack_tmp = ISHFT(pack_tmp, -24)
   20425     2111003 :          idata = idata + 1
   20426     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20427     2111003 :          full_data(idata) = data_tmp
   20428     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20429     2111003 :          idata = idata + 1
   20430     2111003 :          data_tmp = ISHFT(pack_tmp, 16)
   20431     2111003 :          ipack = ipack + 1
   20432     2111003 :          pack_tmp = packed_data(ipack)
   20433     2111003 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   20434     2111003 :          pack_tmp = ISHFT(pack_tmp, -16)
   20435     2111003 :          idata = idata + 1
   20436     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20437     2111003 :          full_data(idata) = data_tmp
   20438     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20439     2111003 :          idata = idata + 1
   20440     2111003 :          data_tmp = ISHFT(pack_tmp, 8)
   20441     2111003 :          ipack = ipack + 1
   20442     2111003 :          pack_tmp = packed_data(ipack)
   20443     2111003 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   20444     2111003 :          pack_tmp = ISHFT(pack_tmp, -8)
   20445     2111003 :          idata = idata + 1
   20446     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20447     2111003 :          full_data(idata) = data_tmp
   20448     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20449     2111003 :          idata = idata + 1
   20450     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20451     2111003 :          full_data(idata) = data_tmp
   20452     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20453     2111003 :          idata = idata + 1
   20454     2111003 :          data_tmp = ISHFT(pack_tmp, 28)
   20455     2111003 :          ipack = ipack + 1
   20456     2111003 :          pack_tmp = packed_data(ipack)
   20457     2111003 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   20458     2111003 :          pack_tmp = ISHFT(pack_tmp, -28)
   20459     2111003 :          idata = idata + 1
   20460     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20461     2111003 :          full_data(idata) = data_tmp
   20462     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20463     2111003 :          idata = idata + 1
   20464     2111003 :          data_tmp = ISHFT(pack_tmp, 20)
   20465     2111003 :          ipack = ipack + 1
   20466     2111003 :          pack_tmp = packed_data(ipack)
   20467     2111003 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   20468     2111003 :          pack_tmp = ISHFT(pack_tmp, -20)
   20469     2111003 :          idata = idata + 1
   20470     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20471     2111003 :          full_data(idata) = data_tmp
   20472     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20473     2111003 :          idata = idata + 1
   20474     2111003 :          data_tmp = ISHFT(pack_tmp, 12)
   20475     2111003 :          ipack = ipack + 1
   20476     2111003 :          pack_tmp = packed_data(ipack)
   20477     2111003 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   20478     2111003 :          pack_tmp = ISHFT(pack_tmp, -12)
   20479     2111003 :          idata = idata + 1
   20480     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20481     2111003 :          full_data(idata) = data_tmp
   20482     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20483     2111003 :          idata = idata + 1
   20484     2111003 :          data_tmp = ISHFT(pack_tmp, 4)
   20485     2111003 :          ipack = ipack + 1
   20486     2111003 :          pack_tmp = packed_data(ipack)
   20487     2111003 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   20488     2111003 :          pack_tmp = ISHFT(pack_tmp, -4)
   20489     2111003 :          idata = idata + 1
   20490     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20491     2111003 :          full_data(idata) = data_tmp
   20492     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20493     2111003 :          idata = idata + 1
   20494     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20495     2111003 :          full_data(idata) = data_tmp
   20496     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20497     2111003 :          idata = idata + 1
   20498     2111003 :          data_tmp = ISHFT(pack_tmp, 24)
   20499     2111003 :          ipack = ipack + 1
   20500     2111003 :          pack_tmp = packed_data(ipack)
   20501     2111003 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   20502     2111003 :          pack_tmp = ISHFT(pack_tmp, -24)
   20503     2111003 :          idata = idata + 1
   20504     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20505     2111003 :          full_data(idata) = data_tmp
   20506     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20507     2111003 :          idata = idata + 1
   20508     2111003 :          data_tmp = ISHFT(pack_tmp, 16)
   20509     2111003 :          ipack = ipack + 1
   20510     2111003 :          pack_tmp = packed_data(ipack)
   20511     2111003 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   20512     2111003 :          pack_tmp = ISHFT(pack_tmp, -16)
   20513     2111003 :          idata = idata + 1
   20514     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20515     2111003 :          full_data(idata) = data_tmp
   20516     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20517     2111003 :          idata = idata + 1
   20518     2111003 :          data_tmp = ISHFT(pack_tmp, 8)
   20519     2111003 :          ipack = ipack + 1
   20520     2111003 :          pack_tmp = packed_data(ipack)
   20521     2111003 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   20522     2111003 :          pack_tmp = ISHFT(pack_tmp, -8)
   20523     2111003 :          idata = idata + 1
   20524     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20525     2111003 :          full_data(idata) = data_tmp
   20526     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20527     2111003 :          idata = idata + 1
   20528     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20529     2111003 :          full_data(idata) = data_tmp
   20530     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20531     2111003 :          idata = idata + 1
   20532     2111003 :          data_tmp = ISHFT(pack_tmp, 28)
   20533     2111003 :          ipack = ipack + 1
   20534     2111003 :          pack_tmp = packed_data(ipack)
   20535     2111003 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   20536     2111003 :          pack_tmp = ISHFT(pack_tmp, -28)
   20537     2111003 :          idata = idata + 1
   20538     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20539     2111003 :          full_data(idata) = data_tmp
   20540     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20541     2111003 :          idata = idata + 1
   20542     2111003 :          data_tmp = ISHFT(pack_tmp, 20)
   20543     2111003 :          ipack = ipack + 1
   20544     2111003 :          pack_tmp = packed_data(ipack)
   20545     2111003 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   20546     2111003 :          pack_tmp = ISHFT(pack_tmp, -20)
   20547     2111003 :          idata = idata + 1
   20548     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20549     2111003 :          full_data(idata) = data_tmp
   20550     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20551     2111003 :          idata = idata + 1
   20552     2111003 :          data_tmp = ISHFT(pack_tmp, 12)
   20553     2111003 :          ipack = ipack + 1
   20554     2111003 :          pack_tmp = packed_data(ipack)
   20555     2111003 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   20556     2111003 :          pack_tmp = ISHFT(pack_tmp, -12)
   20557     2111003 :          idata = idata + 1
   20558     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20559     2111003 :          full_data(idata) = data_tmp
   20560     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20561     2111003 :          idata = idata + 1
   20562     2111003 :          data_tmp = ISHFT(pack_tmp, 4)
   20563     2111003 :          ipack = ipack + 1
   20564     2111003 :          pack_tmp = packed_data(ipack)
   20565     2111003 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   20566     2111003 :          pack_tmp = ISHFT(pack_tmp, -4)
   20567     2111003 :          idata = idata + 1
   20568     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20569     2111003 :          full_data(idata) = data_tmp
   20570     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20571     2111003 :          idata = idata + 1
   20572     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20573     2111003 :          full_data(idata) = data_tmp
   20574     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20575     2111003 :          idata = idata + 1
   20576     2111003 :          data_tmp = ISHFT(pack_tmp, 24)
   20577     2111003 :          ipack = ipack + 1
   20578     2111003 :          pack_tmp = packed_data(ipack)
   20579     2111003 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   20580     2111003 :          pack_tmp = ISHFT(pack_tmp, -24)
   20581     2111003 :          idata = idata + 1
   20582     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20583     2111003 :          full_data(idata) = data_tmp
   20584     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20585     2111003 :          idata = idata + 1
   20586     2111003 :          data_tmp = ISHFT(pack_tmp, 16)
   20587     2111003 :          ipack = ipack + 1
   20588     2111003 :          pack_tmp = packed_data(ipack)
   20589     2111003 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   20590     2111003 :          pack_tmp = ISHFT(pack_tmp, -16)
   20591     2111003 :          idata = idata + 1
   20592     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20593     2111003 :          full_data(idata) = data_tmp
   20594     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20595     2111003 :          idata = idata + 1
   20596     2111003 :          data_tmp = ISHFT(pack_tmp, 8)
   20597     2111003 :          ipack = ipack + 1
   20598     2111003 :          pack_tmp = packed_data(ipack)
   20599     2111003 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   20600     2111003 :          pack_tmp = ISHFT(pack_tmp, -8)
   20601     2111003 :          idata = idata + 1
   20602     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20603     2111003 :          full_data(idata) = data_tmp
   20604     2111003 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20605     2111003 :          idata = idata + 1
   20606     2111003 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20607     2111003 :          full_data(idata) = data_tmp
   20608     2111961 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20609             :       END DO
   20610      149185 :       IF (Ndata_rep < Ndata) THEN
   20611       32170 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   20612             :       END IF
   20613      149185 :    END SUBROUTINE bits2ints_28
   20614             : 
   20615             : ! **************************************************************************************************
   20616             : !> \brief ...
   20617             : !> \param Ndata ...
   20618             : !> \param packed_data ...
   20619             : !> \param full_data ...
   20620             : ! **************************************************************************************************
   20621       33020 :    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       33020 :       idata = 0
   20632       33020 :       ipack = 0
   20633       33020 :       Ndata_rep = (Ndata/64)*64
   20634       33020 :       DO kdata = 1, Ndata_rep, 64
   20635      477050 :          pack_tmp = 0
   20636      477050 :          idata = idata + 1
   20637      477050 :          data_tmp = full_data(idata)
   20638      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20639      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20640      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   20641      477050 :          idata = idata + 1
   20642      477050 :          data_tmp = full_data(idata)
   20643      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20644      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20645      477050 :          pack_tmp = ISHFT(pack_tmp, -6)
   20646      477050 :          idata = idata + 1
   20647      477050 :          data_tmp = full_data(idata)
   20648      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20649      477050 :          data_tmp = IAND(data_tmp, mask_left(6))
   20650      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20651      477050 :          ipack = ipack + 1
   20652      477050 :          packed_data(ipack) = pack_tmp
   20653      477050 :          data_tmp = full_data(idata)
   20654      477050 :          pack_tmp = ISHFT(data_tmp, 41)
   20655      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   20656      477050 :          idata = idata + 1
   20657      477050 :          data_tmp = full_data(idata)
   20658      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20659      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20660      477050 :          pack_tmp = ISHFT(pack_tmp, -12)
   20661      477050 :          idata = idata + 1
   20662      477050 :          data_tmp = full_data(idata)
   20663      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20664      477050 :          data_tmp = IAND(data_tmp, mask_left(12))
   20665      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20666      477050 :          ipack = ipack + 1
   20667      477050 :          packed_data(ipack) = pack_tmp
   20668      477050 :          data_tmp = full_data(idata)
   20669      477050 :          pack_tmp = ISHFT(data_tmp, 47)
   20670      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   20671      477050 :          idata = idata + 1
   20672      477050 :          data_tmp = full_data(idata)
   20673      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20674      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20675      477050 :          pack_tmp = ISHFT(pack_tmp, -18)
   20676      477050 :          idata = idata + 1
   20677      477050 :          data_tmp = full_data(idata)
   20678      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20679      477050 :          data_tmp = IAND(data_tmp, mask_left(18))
   20680      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20681      477050 :          ipack = ipack + 1
   20682      477050 :          packed_data(ipack) = pack_tmp
   20683      477050 :          data_tmp = full_data(idata)
   20684      477050 :          pack_tmp = ISHFT(data_tmp, 53)
   20685      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   20686      477050 :          idata = idata + 1
   20687      477050 :          data_tmp = full_data(idata)
   20688      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20689      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20690      477050 :          pack_tmp = ISHFT(pack_tmp, -24)
   20691      477050 :          idata = idata + 1
   20692      477050 :          data_tmp = full_data(idata)
   20693      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20694      477050 :          data_tmp = IAND(data_tmp, mask_left(24))
   20695      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20696      477050 :          ipack = ipack + 1
   20697      477050 :          packed_data(ipack) = pack_tmp
   20698      477050 :          data_tmp = full_data(idata)
   20699      477050 :          pack_tmp = ISHFT(data_tmp, 59)
   20700      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   20701      477050 :          idata = idata + 1
   20702      477050 :          data_tmp = full_data(idata)
   20703      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20704      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20705      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   20706      477050 :          idata = idata + 1
   20707      477050 :          data_tmp = full_data(idata)
   20708      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20709      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20710      477050 :          pack_tmp = ISHFT(pack_tmp, -1)
   20711      477050 :          idata = idata + 1
   20712      477050 :          data_tmp = full_data(idata)
   20713      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20714      477050 :          data_tmp = IAND(data_tmp, mask_left(1))
   20715      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20716      477050 :          ipack = ipack + 1
   20717      477050 :          packed_data(ipack) = pack_tmp
   20718      477050 :          data_tmp = full_data(idata)
   20719      477050 :          pack_tmp = ISHFT(data_tmp, 36)
   20720      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   20721      477050 :          idata = idata + 1
   20722      477050 :          data_tmp = full_data(idata)
   20723      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20724      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20725      477050 :          pack_tmp = ISHFT(pack_tmp, -7)
   20726      477050 :          idata = idata + 1
   20727      477050 :          data_tmp = full_data(idata)
   20728      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20729      477050 :          data_tmp = IAND(data_tmp, mask_left(7))
   20730      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20731      477050 :          ipack = ipack + 1
   20732      477050 :          packed_data(ipack) = pack_tmp
   20733      477050 :          data_tmp = full_data(idata)
   20734      477050 :          pack_tmp = ISHFT(data_tmp, 42)
   20735      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   20736      477050 :          idata = idata + 1
   20737      477050 :          data_tmp = full_data(idata)
   20738      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20739      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20740      477050 :          pack_tmp = ISHFT(pack_tmp, -13)
   20741      477050 :          idata = idata + 1
   20742      477050 :          data_tmp = full_data(idata)
   20743      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20744      477050 :          data_tmp = IAND(data_tmp, mask_left(13))
   20745      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20746      477050 :          ipack = ipack + 1
   20747      477050 :          packed_data(ipack) = pack_tmp
   20748      477050 :          data_tmp = full_data(idata)
   20749      477050 :          pack_tmp = ISHFT(data_tmp, 48)
   20750      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   20751      477050 :          idata = idata + 1
   20752      477050 :          data_tmp = full_data(idata)
   20753      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20754      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20755      477050 :          pack_tmp = ISHFT(pack_tmp, -19)
   20756      477050 :          idata = idata + 1
   20757      477050 :          data_tmp = full_data(idata)
   20758      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20759      477050 :          data_tmp = IAND(data_tmp, mask_left(19))
   20760      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20761      477050 :          ipack = ipack + 1
   20762      477050 :          packed_data(ipack) = pack_tmp
   20763      477050 :          data_tmp = full_data(idata)
   20764      477050 :          pack_tmp = ISHFT(data_tmp, 54)
   20765      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   20766      477050 :          idata = idata + 1
   20767      477050 :          data_tmp = full_data(idata)
   20768      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20769      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20770      477050 :          pack_tmp = ISHFT(pack_tmp, -25)
   20771      477050 :          idata = idata + 1
   20772      477050 :          data_tmp = full_data(idata)
   20773      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20774      477050 :          data_tmp = IAND(data_tmp, mask_left(25))
   20775      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20776      477050 :          ipack = ipack + 1
   20777      477050 :          packed_data(ipack) = pack_tmp
   20778      477050 :          data_tmp = full_data(idata)
   20779      477050 :          pack_tmp = ISHFT(data_tmp, 60)
   20780      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   20781      477050 :          idata = idata + 1
   20782      477050 :          data_tmp = full_data(idata)
   20783      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20784      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20785      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   20786      477050 :          idata = idata + 1
   20787      477050 :          data_tmp = full_data(idata)
   20788      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20789      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20790      477050 :          pack_tmp = ISHFT(pack_tmp, -2)
   20791      477050 :          idata = idata + 1
   20792      477050 :          data_tmp = full_data(idata)
   20793      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20794      477050 :          data_tmp = IAND(data_tmp, mask_left(2))
   20795      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20796      477050 :          ipack = ipack + 1
   20797      477050 :          packed_data(ipack) = pack_tmp
   20798      477050 :          data_tmp = full_data(idata)
   20799      477050 :          pack_tmp = ISHFT(data_tmp, 37)
   20800      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   20801      477050 :          idata = idata + 1
   20802      477050 :          data_tmp = full_data(idata)
   20803      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20804      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20805      477050 :          pack_tmp = ISHFT(pack_tmp, -8)
   20806      477050 :          idata = idata + 1
   20807      477050 :          data_tmp = full_data(idata)
   20808      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20809      477050 :          data_tmp = IAND(data_tmp, mask_left(8))
   20810      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20811      477050 :          ipack = ipack + 1
   20812      477050 :          packed_data(ipack) = pack_tmp
   20813      477050 :          data_tmp = full_data(idata)
   20814      477050 :          pack_tmp = ISHFT(data_tmp, 43)
   20815      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   20816      477050 :          idata = idata + 1
   20817      477050 :          data_tmp = full_data(idata)
   20818      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20819      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20820      477050 :          pack_tmp = ISHFT(pack_tmp, -14)
   20821      477050 :          idata = idata + 1
   20822      477050 :          data_tmp = full_data(idata)
   20823      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20824      477050 :          data_tmp = IAND(data_tmp, mask_left(14))
   20825      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20826      477050 :          ipack = ipack + 1
   20827      477050 :          packed_data(ipack) = pack_tmp
   20828      477050 :          data_tmp = full_data(idata)
   20829      477050 :          pack_tmp = ISHFT(data_tmp, 49)
   20830      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   20831      477050 :          idata = idata + 1
   20832      477050 :          data_tmp = full_data(idata)
   20833      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20834      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20835      477050 :          pack_tmp = ISHFT(pack_tmp, -20)
   20836      477050 :          idata = idata + 1
   20837      477050 :          data_tmp = full_data(idata)
   20838      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20839      477050 :          data_tmp = IAND(data_tmp, mask_left(20))
   20840      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20841      477050 :          ipack = ipack + 1
   20842      477050 :          packed_data(ipack) = pack_tmp
   20843      477050 :          data_tmp = full_data(idata)
   20844      477050 :          pack_tmp = ISHFT(data_tmp, 55)
   20845      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   20846      477050 :          idata = idata + 1
   20847      477050 :          data_tmp = full_data(idata)
   20848      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20849      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20850      477050 :          pack_tmp = ISHFT(pack_tmp, -26)
   20851      477050 :          idata = idata + 1
   20852      477050 :          data_tmp = full_data(idata)
   20853      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20854      477050 :          data_tmp = IAND(data_tmp, mask_left(26))
   20855      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20856      477050 :          ipack = ipack + 1
   20857      477050 :          packed_data(ipack) = pack_tmp
   20858      477050 :          data_tmp = full_data(idata)
   20859      477050 :          pack_tmp = ISHFT(data_tmp, 61)
   20860      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   20861      477050 :          idata = idata + 1
   20862      477050 :          data_tmp = full_data(idata)
   20863      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20864      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20865      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   20866      477050 :          idata = idata + 1
   20867      477050 :          data_tmp = full_data(idata)
   20868      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20869      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20870      477050 :          pack_tmp = ISHFT(pack_tmp, -3)
   20871      477050 :          idata = idata + 1
   20872      477050 :          data_tmp = full_data(idata)
   20873      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20874      477050 :          data_tmp = IAND(data_tmp, mask_left(3))
   20875      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20876      477050 :          ipack = ipack + 1
   20877      477050 :          packed_data(ipack) = pack_tmp
   20878      477050 :          data_tmp = full_data(idata)
   20879      477050 :          pack_tmp = ISHFT(data_tmp, 38)
   20880      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   20881      477050 :          idata = idata + 1
   20882      477050 :          data_tmp = full_data(idata)
   20883      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20884      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20885      477050 :          pack_tmp = ISHFT(pack_tmp, -9)
   20886      477050 :          idata = idata + 1
   20887      477050 :          data_tmp = full_data(idata)
   20888      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20889      477050 :          data_tmp = IAND(data_tmp, mask_left(9))
   20890      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20891      477050 :          ipack = ipack + 1
   20892      477050 :          packed_data(ipack) = pack_tmp
   20893      477050 :          data_tmp = full_data(idata)
   20894      477050 :          pack_tmp = ISHFT(data_tmp, 44)
   20895      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   20896      477050 :          idata = idata + 1
   20897      477050 :          data_tmp = full_data(idata)
   20898      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20899      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20900      477050 :          pack_tmp = ISHFT(pack_tmp, -15)
   20901      477050 :          idata = idata + 1
   20902      477050 :          data_tmp = full_data(idata)
   20903      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20904      477050 :          data_tmp = IAND(data_tmp, mask_left(15))
   20905      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20906      477050 :          ipack = ipack + 1
   20907      477050 :          packed_data(ipack) = pack_tmp
   20908      477050 :          data_tmp = full_data(idata)
   20909      477050 :          pack_tmp = ISHFT(data_tmp, 50)
   20910      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   20911      477050 :          idata = idata + 1
   20912      477050 :          data_tmp = full_data(idata)
   20913      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20914      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20915      477050 :          pack_tmp = ISHFT(pack_tmp, -21)
   20916      477050 :          idata = idata + 1
   20917      477050 :          data_tmp = full_data(idata)
   20918      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20919      477050 :          data_tmp = IAND(data_tmp, mask_left(21))
   20920      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20921      477050 :          ipack = ipack + 1
   20922      477050 :          packed_data(ipack) = pack_tmp
   20923      477050 :          data_tmp = full_data(idata)
   20924      477050 :          pack_tmp = ISHFT(data_tmp, 56)
   20925      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   20926      477050 :          idata = idata + 1
   20927      477050 :          data_tmp = full_data(idata)
   20928      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20929      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20930      477050 :          pack_tmp = ISHFT(pack_tmp, -27)
   20931      477050 :          idata = idata + 1
   20932      477050 :          data_tmp = full_data(idata)
   20933      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20934      477050 :          data_tmp = IAND(data_tmp, mask_left(27))
   20935      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20936      477050 :          ipack = ipack + 1
   20937      477050 :          packed_data(ipack) = pack_tmp
   20938      477050 :          data_tmp = full_data(idata)
   20939      477050 :          pack_tmp = ISHFT(data_tmp, 62)
   20940      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   20941      477050 :          idata = idata + 1
   20942      477050 :          data_tmp = full_data(idata)
   20943      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20944      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20945      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   20946      477050 :          idata = idata + 1
   20947      477050 :          data_tmp = full_data(idata)
   20948      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20949      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20950      477050 :          pack_tmp = ISHFT(pack_tmp, -4)
   20951      477050 :          idata = idata + 1
   20952      477050 :          data_tmp = full_data(idata)
   20953      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20954      477050 :          data_tmp = IAND(data_tmp, mask_left(4))
   20955      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20956      477050 :          ipack = ipack + 1
   20957      477050 :          packed_data(ipack) = pack_tmp
   20958      477050 :          data_tmp = full_data(idata)
   20959      477050 :          pack_tmp = ISHFT(data_tmp, 39)
   20960      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   20961      477050 :          idata = idata + 1
   20962      477050 :          data_tmp = full_data(idata)
   20963      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20964      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20965      477050 :          pack_tmp = ISHFT(pack_tmp, -10)
   20966      477050 :          idata = idata + 1
   20967      477050 :          data_tmp = full_data(idata)
   20968      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20969      477050 :          data_tmp = IAND(data_tmp, mask_left(10))
   20970      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20971      477050 :          ipack = ipack + 1
   20972      477050 :          packed_data(ipack) = pack_tmp
   20973      477050 :          data_tmp = full_data(idata)
   20974      477050 :          pack_tmp = ISHFT(data_tmp, 45)
   20975      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   20976      477050 :          idata = idata + 1
   20977      477050 :          data_tmp = full_data(idata)
   20978      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20979      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20980      477050 :          pack_tmp = ISHFT(pack_tmp, -16)
   20981      477050 :          idata = idata + 1
   20982      477050 :          data_tmp = full_data(idata)
   20983      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20984      477050 :          data_tmp = IAND(data_tmp, mask_left(16))
   20985      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20986      477050 :          ipack = ipack + 1
   20987      477050 :          packed_data(ipack) = pack_tmp
   20988      477050 :          data_tmp = full_data(idata)
   20989      477050 :          pack_tmp = ISHFT(data_tmp, 51)
   20990      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   20991      477050 :          idata = idata + 1
   20992      477050 :          data_tmp = full_data(idata)
   20993      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20994      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20995      477050 :          pack_tmp = ISHFT(pack_tmp, -22)
   20996      477050 :          idata = idata + 1
   20997      477050 :          data_tmp = full_data(idata)
   20998      477050 :          data_tmp = ISHFT(data_tmp, 35)
   20999      477050 :          data_tmp = IAND(data_tmp, mask_left(22))
   21000      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21001      477050 :          ipack = ipack + 1
   21002      477050 :          packed_data(ipack) = pack_tmp
   21003      477050 :          data_tmp = full_data(idata)
   21004      477050 :          pack_tmp = ISHFT(data_tmp, 57)
   21005      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   21006      477050 :          idata = idata + 1
   21007      477050 :          data_tmp = full_data(idata)
   21008      477050 :          data_tmp = ISHFT(data_tmp, 35)
   21009      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21010      477050 :          pack_tmp = ISHFT(pack_tmp, -28)
   21011      477050 :          idata = idata + 1
   21012      477050 :          data_tmp = full_data(idata)
   21013      477050 :          data_tmp = ISHFT(data_tmp, 35)
   21014      477050 :          data_tmp = IAND(data_tmp, mask_left(28))
   21015      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21016      477050 :          ipack = ipack + 1
   21017      477050 :          packed_data(ipack) = pack_tmp
   21018      477050 :          data_tmp = full_data(idata)
   21019      477050 :          pack_tmp = ISHFT(data_tmp, 63)
   21020      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   21021      477050 :          idata = idata + 1
   21022      477050 :          data_tmp = full_data(idata)
   21023      477050 :          data_tmp = ISHFT(data_tmp, 35)
   21024      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21025      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   21026      477050 :          idata = idata + 1
   21027      477050 :          data_tmp = full_data(idata)
   21028      477050 :          data_tmp = ISHFT(data_tmp, 35)
   21029      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21030      477050 :          pack_tmp = ISHFT(pack_tmp, -5)
   21031      477050 :          idata = idata + 1
   21032      477050 :          data_tmp = full_data(idata)
   21033      477050 :          data_tmp = ISHFT(data_tmp, 35)
   21034      477050 :          data_tmp = IAND(data_tmp, mask_left(5))
   21035      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21036      477050 :          ipack = ipack + 1
   21037      477050 :          packed_data(ipack) = pack_tmp
   21038      477050 :          data_tmp = full_data(idata)
   21039      477050 :          pack_tmp = ISHFT(data_tmp, 40)
   21040      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   21041      477050 :          idata = idata + 1
   21042      477050 :          data_tmp = full_data(idata)
   21043      477050 :          data_tmp = ISHFT(data_tmp, 35)
   21044      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21045      477050 :          pack_tmp = ISHFT(pack_tmp, -11)
   21046      477050 :          idata = idata + 1
   21047      477050 :          data_tmp = full_data(idata)
   21048      477050 :          data_tmp = ISHFT(data_tmp, 35)
   21049      477050 :          data_tmp = IAND(data_tmp, mask_left(11))
   21050      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21051      477050 :          ipack = ipack + 1
   21052      477050 :          packed_data(ipack) = pack_tmp
   21053      477050 :          data_tmp = full_data(idata)
   21054      477050 :          pack_tmp = ISHFT(data_tmp, 46)
   21055      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   21056      477050 :          idata = idata + 1
   21057      477050 :          data_tmp = full_data(idata)
   21058      477050 :          data_tmp = ISHFT(data_tmp, 35)
   21059      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21060      477050 :          pack_tmp = ISHFT(pack_tmp, -17)
   21061      477050 :          idata = idata + 1
   21062      477050 :          data_tmp = full_data(idata)
   21063      477050 :          data_tmp = ISHFT(data_tmp, 35)
   21064      477050 :          data_tmp = IAND(data_tmp, mask_left(17))
   21065      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21066      477050 :          ipack = ipack + 1
   21067      477050 :          packed_data(ipack) = pack_tmp
   21068      477050 :          data_tmp = full_data(idata)
   21069      477050 :          pack_tmp = ISHFT(data_tmp, 52)
   21070      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   21071      477050 :          idata = idata + 1
   21072      477050 :          data_tmp = full_data(idata)
   21073      477050 :          data_tmp = ISHFT(data_tmp, 35)
   21074      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21075      477050 :          pack_tmp = ISHFT(pack_tmp, -23)
   21076      477050 :          idata = idata + 1
   21077      477050 :          data_tmp = full_data(idata)
   21078      477050 :          data_tmp = ISHFT(data_tmp, 35)
   21079      477050 :          data_tmp = IAND(data_tmp, mask_left(23))
   21080      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21081      477050 :          ipack = ipack + 1
   21082      477050 :          packed_data(ipack) = pack_tmp
   21083      477050 :          data_tmp = full_data(idata)
   21084      477050 :          pack_tmp = ISHFT(data_tmp, 58)
   21085      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   21086      477050 :          idata = idata + 1
   21087      477050 :          data_tmp = full_data(idata)
   21088      477050 :          data_tmp = ISHFT(data_tmp, 35)
   21089      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21090      477050 :          pack_tmp = ISHFT(pack_tmp, -29)
   21091      477050 :          idata = idata + 1
   21092      477050 :          data_tmp = full_data(idata)
   21093      477050 :          data_tmp = ISHFT(data_tmp, 35)
   21094      477050 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21095             :          pack_tmp = ISHFT(pack_tmp, 0)
   21096      477050 :          pack_tmp = ISHFT(pack_tmp, 0)
   21097      477050 :          ipack = ipack + 1
   21098      477348 :          packed_data(ipack) = pack_tmp
   21099             :       END DO
   21100       33020 :       IF (Ndata_rep < Ndata) THEN
   21101        5932 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   21102             :       END IF
   21103       33020 :    END SUBROUTINE ints2bits_29
   21104             : 
   21105             : ! **************************************************************************************************
   21106             : !> \brief ...
   21107             : !> \param Ndata ...
   21108             : !> \param packed_data ...
   21109             : !> \param full_data ...
   21110             : ! **************************************************************************************************
   21111      172673 :    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      172673 :       ipack = 0
   21122      172673 :       idata = 0
   21123      172673 :       pack_tmp = 0
   21124      172673 :       Ndata_rep = (Ndata/64)*64
   21125      172673 :       DO kdata = 1, Ndata_rep, 64
   21126     2365804 :          idata = idata + 1
   21127     2365804 :          data_tmp = ISHFT(pack_tmp, 29)
   21128     2365804 :          ipack = ipack + 1
   21129     2365804 :          pack_tmp = packed_data(ipack)
   21130     2365804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   21131     2365804 :          pack_tmp = ISHFT(pack_tmp, -29)
   21132     2365804 :          idata = idata + 1
   21133     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21134     2365804 :          full_data(idata) = data_tmp
   21135     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21136     2365804 :          idata = idata + 1
   21137     2365804 :          data_tmp = ISHFT(pack_tmp, 23)
   21138     2365804 :          ipack = ipack + 1
   21139     2365804 :          pack_tmp = packed_data(ipack)
   21140     2365804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   21141     2365804 :          pack_tmp = ISHFT(pack_tmp, -23)
   21142     2365804 :          idata = idata + 1
   21143     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21144     2365804 :          full_data(idata) = data_tmp
   21145     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21146     2365804 :          idata = idata + 1
   21147     2365804 :          data_tmp = ISHFT(pack_tmp, 17)
   21148     2365804 :          ipack = ipack + 1
   21149     2365804 :          pack_tmp = packed_data(ipack)
   21150     2365804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   21151     2365804 :          pack_tmp = ISHFT(pack_tmp, -17)
   21152     2365804 :          idata = idata + 1
   21153     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21154     2365804 :          full_data(idata) = data_tmp
   21155     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21156     2365804 :          idata = idata + 1
   21157     2365804 :          data_tmp = ISHFT(pack_tmp, 11)
   21158     2365804 :          ipack = ipack + 1
   21159     2365804 :          pack_tmp = packed_data(ipack)
   21160     2365804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   21161     2365804 :          pack_tmp = ISHFT(pack_tmp, -11)
   21162     2365804 :          idata = idata + 1
   21163     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21164     2365804 :          full_data(idata) = data_tmp
   21165     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21166     2365804 :          idata = idata + 1
   21167     2365804 :          data_tmp = ISHFT(pack_tmp, 5)
   21168     2365804 :          ipack = ipack + 1
   21169     2365804 :          pack_tmp = packed_data(ipack)
   21170     2365804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   21171     2365804 :          pack_tmp = ISHFT(pack_tmp, -5)
   21172     2365804 :          idata = idata + 1
   21173     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21174     2365804 :          full_data(idata) = data_tmp
   21175     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21176     2365804 :          idata = idata + 1
   21177     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21178     2365804 :          full_data(idata) = data_tmp
   21179     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21180     2365804 :          idata = idata + 1
   21181     2365804 :          data_tmp = ISHFT(pack_tmp, 28)
   21182     2365804 :          ipack = ipack + 1
   21183     2365804 :          pack_tmp = packed_data(ipack)
   21184     2365804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   21185     2365804 :          pack_tmp = ISHFT(pack_tmp, -28)
   21186     2365804 :          idata = idata + 1
   21187     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21188     2365804 :          full_data(idata) = data_tmp
   21189     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21190     2365804 :          idata = idata + 1
   21191     2365804 :          data_tmp = ISHFT(pack_tmp, 22)
   21192     2365804 :          ipack = ipack + 1
   21193     2365804 :          pack_tmp = packed_data(ipack)
   21194     2365804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   21195     2365804 :          pack_tmp = ISHFT(pack_tmp, -22)
   21196     2365804 :          idata = idata + 1
   21197     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21198     2365804 :          full_data(idata) = data_tmp
   21199     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21200     2365804 :          idata = idata + 1
   21201     2365804 :          data_tmp = ISHFT(pack_tmp, 16)
   21202     2365804 :          ipack = ipack + 1
   21203     2365804 :          pack_tmp = packed_data(ipack)
   21204     2365804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   21205     2365804 :          pack_tmp = ISHFT(pack_tmp, -16)
   21206     2365804 :          idata = idata + 1
   21207     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21208     2365804 :          full_data(idata) = data_tmp
   21209     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21210     2365804 :          idata = idata + 1
   21211     2365804 :          data_tmp = ISHFT(pack_tmp, 10)
   21212     2365804 :          ipack = ipack + 1
   21213     2365804 :          pack_tmp = packed_data(ipack)
   21214     2365804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   21215     2365804 :          pack_tmp = ISHFT(pack_tmp, -10)
   21216     2365804 :          idata = idata + 1
   21217     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21218     2365804 :          full_data(idata) = data_tmp
   21219     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21220     2365804 :          idata = idata + 1
   21221     2365804 :          data_tmp = ISHFT(pack_tmp, 4)
   21222     2365804 :          ipack = ipack + 1
   21223     2365804 :          pack_tmp = packed_data(ipack)
   21224     2365804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   21225     2365804 :          pack_tmp = ISHFT(pack_tmp, -4)
   21226     2365804 :          idata = idata + 1
   21227     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21228     2365804 :          full_data(idata) = data_tmp
   21229     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21230     2365804 :          idata = idata + 1
   21231     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21232     2365804 :          full_data(idata) = data_tmp
   21233     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21234     2365804 :          idata = idata + 1
   21235     2365804 :          data_tmp = ISHFT(pack_tmp, 27)
   21236     2365804 :          ipack = ipack + 1
   21237     2365804 :          pack_tmp = packed_data(ipack)
   21238     2365804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   21239     2365804 :          pack_tmp = ISHFT(pack_tmp, -27)
   21240     2365804 :          idata = idata + 1
   21241     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21242     2365804 :          full_data(idata) = data_tmp
   21243     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21244     2365804 :          idata = idata + 1
   21245     2365804 :          data_tmp = ISHFT(pack_tmp, 21)
   21246     2365804 :          ipack = ipack + 1
   21247     2365804 :          pack_tmp = packed_data(ipack)
   21248     2365804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   21249     2365804 :          pack_tmp = ISHFT(pack_tmp, -21)
   21250     2365804 :          idata = idata + 1
   21251     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21252     2365804 :          full_data(idata) = data_tmp
   21253     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21254     2365804 :          idata = idata + 1
   21255     2365804 :          data_tmp = ISHFT(pack_tmp, 15)
   21256     2365804 :          ipack = ipack + 1
   21257     2365804 :          pack_tmp = packed_data(ipack)
   21258     2365804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   21259     2365804 :          pack_tmp = ISHFT(pack_tmp, -15)
   21260     2365804 :          idata = idata + 1
   21261     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21262     2365804 :          full_data(idata) = data_tmp
   21263     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21264     2365804 :          idata = idata + 1
   21265     2365804 :          data_tmp = ISHFT(pack_tmp, 9)
   21266     2365804 :          ipack = ipack + 1
   21267     2365804 :          pack_tmp = packed_data(ipack)
   21268     2365804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   21269     2365804 :          pack_tmp = ISHFT(pack_tmp, -9)
   21270     2365804 :          idata = idata + 1
   21271     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21272     2365804 :          full_data(idata) = data_tmp
   21273     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21274     2365804 :          idata = idata + 1
   21275     2365804 :          data_tmp = ISHFT(pack_tmp, 3)
   21276     2365804 :          ipack = ipack + 1
   21277     2365804 :          pack_tmp = packed_data(ipack)
   21278     2365804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   21279     2365804 :          pack_tmp = ISHFT(pack_tmp, -3)
   21280     2365804 :          idata = idata + 1
   21281     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21282     2365804 :          full_data(idata) = data_tmp
   21283     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21284     2365804 :          idata = idata + 1
   21285     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21286     2365804 :          full_data(idata) = data_tmp
   21287     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21288     2365804 :          idata = idata + 1
   21289     2365804 :          data_tmp = ISHFT(pack_tmp, 26)
   21290     2365804 :          ipack = ipack + 1
   21291     2365804 :          pack_tmp = packed_data(ipack)
   21292     2365804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   21293     2365804 :          pack_tmp = ISHFT(pack_tmp, -26)
   21294     2365804 :          idata = idata + 1
   21295     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21296     2365804 :          full_data(idata) = data_tmp
   21297     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21298     2365804 :          idata = idata + 1
   21299     2365804 :          data_tmp = ISHFT(pack_tmp, 20)
   21300     2365804 :          ipack = ipack + 1
   21301     2365804 :          pack_tmp = packed_data(ipack)
   21302     2365804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   21303     2365804 :          pack_tmp = ISHFT(pack_tmp, -20)
   21304     2365804 :          idata = idata + 1
   21305     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21306     2365804 :          full_data(idata) = data_tmp
   21307     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21308     2365804 :          idata = idata + 1
   21309     2365804 :          data_tmp = ISHFT(pack_tmp, 14)
   21310     2365804 :          ipack = ipack + 1
   21311     2365804 :          pack_tmp = packed_data(ipack)
   21312     2365804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   21313     2365804 :          pack_tmp = ISHFT(pack_tmp, -14)
   21314     2365804 :          idata = idata + 1
   21315     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21316     2365804 :          full_data(idata) = data_tmp
   21317     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21318     2365804 :          idata = idata + 1
   21319     2365804 :          data_tmp = ISHFT(pack_tmp, 8)
   21320     2365804 :          ipack = ipack + 1
   21321     2365804 :          pack_tmp = packed_data(ipack)
   21322     2365804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   21323     2365804 :          pack_tmp = ISHFT(pack_tmp, -8)
   21324     2365804 :          idata = idata + 1
   21325     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21326     2365804 :          full_data(idata) = data_tmp
   21327     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21328     2365804 :          idata = idata + 1
   21329     2365804 :          data_tmp = ISHFT(pack_tmp, 2)
   21330     2365804 :          ipack = ipack + 1
   21331     2365804 :          pack_tmp = packed_data(ipack)
   21332     2365804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   21333     2365804 :          pack_tmp = ISHFT(pack_tmp, -2)
   21334     2365804 :          idata = idata + 1
   21335     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21336     2365804 :          full_data(idata) = data_tmp
   21337     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21338     2365804 :          idata = idata + 1
   21339     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21340     2365804 :          full_data(idata) = data_tmp
   21341     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21342     2365804 :          idata = idata + 1
   21343     2365804 :          data_tmp = ISHFT(pack_tmp, 25)
   21344     2365804 :          ipack = ipack + 1
   21345     2365804 :          pack_tmp = packed_data(ipack)
   21346     2365804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   21347     2365804 :          pack_tmp = ISHFT(pack_tmp, -25)
   21348     2365804 :          idata = idata + 1
   21349     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21350     2365804 :          full_data(idata) = data_tmp
   21351     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21352     2365804 :          idata = idata + 1
   21353     2365804 :          data_tmp = ISHFT(pack_tmp, 19)
   21354     2365804 :          ipack = ipack + 1
   21355     2365804 :          pack_tmp = packed_data(ipack)
   21356     2365804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   21357     2365804 :          pack_tmp = ISHFT(pack_tmp, -19)
   21358     2365804 :          idata = idata + 1
   21359     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21360     2365804 :          full_data(idata) = data_tmp
   21361     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21362     2365804 :          idata = idata + 1
   21363     2365804 :          data_tmp = ISHFT(pack_tmp, 13)
   21364     2365804 :          ipack = ipack + 1
   21365     2365804 :          pack_tmp = packed_data(ipack)
   21366     2365804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   21367     2365804 :          pack_tmp = ISHFT(pack_tmp, -13)
   21368     2365804 :          idata = idata + 1
   21369     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21370     2365804 :          full_data(idata) = data_tmp
   21371     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21372     2365804 :          idata = idata + 1
   21373     2365804 :          data_tmp = ISHFT(pack_tmp, 7)
   21374     2365804 :          ipack = ipack + 1
   21375     2365804 :          pack_tmp = packed_data(ipack)
   21376     2365804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   21377     2365804 :          pack_tmp = ISHFT(pack_tmp, -7)
   21378     2365804 :          idata = idata + 1
   21379     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21380     2365804 :          full_data(idata) = data_tmp
   21381     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21382     2365804 :          idata = idata + 1
   21383     2365804 :          data_tmp = ISHFT(pack_tmp, 1)
   21384     2365804 :          ipack = ipack + 1
   21385     2365804 :          pack_tmp = packed_data(ipack)
   21386     2365804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   21387     2365804 :          pack_tmp = ISHFT(pack_tmp, -1)
   21388     2365804 :          idata = idata + 1
   21389     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21390     2365804 :          full_data(idata) = data_tmp
   21391     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21392     2365804 :          idata = idata + 1
   21393     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21394     2365804 :          full_data(idata) = data_tmp
   21395     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21396     2365804 :          idata = idata + 1
   21397     2365804 :          data_tmp = ISHFT(pack_tmp, 24)
   21398     2365804 :          ipack = ipack + 1
   21399     2365804 :          pack_tmp = packed_data(ipack)
   21400     2365804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   21401     2365804 :          pack_tmp = ISHFT(pack_tmp, -24)
   21402     2365804 :          idata = idata + 1
   21403     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21404     2365804 :          full_data(idata) = data_tmp
   21405     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21406     2365804 :          idata = idata + 1
   21407     2365804 :          data_tmp = ISHFT(pack_tmp, 18)
   21408     2365804 :          ipack = ipack + 1
   21409     2365804 :          pack_tmp = packed_data(ipack)
   21410     2365804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   21411     2365804 :          pack_tmp = ISHFT(pack_tmp, -18)
   21412     2365804 :          idata = idata + 1
   21413     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21414     2365804 :          full_data(idata) = data_tmp
   21415     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21416     2365804 :          idata = idata + 1
   21417     2365804 :          data_tmp = ISHFT(pack_tmp, 12)
   21418     2365804 :          ipack = ipack + 1
   21419     2365804 :          pack_tmp = packed_data(ipack)
   21420     2365804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   21421     2365804 :          pack_tmp = ISHFT(pack_tmp, -12)
   21422     2365804 :          idata = idata + 1
   21423     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21424     2365804 :          full_data(idata) = data_tmp
   21425     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21426     2365804 :          idata = idata + 1
   21427     2365804 :          data_tmp = ISHFT(pack_tmp, 6)
   21428     2365804 :          ipack = ipack + 1
   21429     2365804 :          pack_tmp = packed_data(ipack)
   21430     2365804 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   21431     2365804 :          pack_tmp = ISHFT(pack_tmp, -6)
   21432     2365804 :          idata = idata + 1
   21433     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21434     2365804 :          full_data(idata) = data_tmp
   21435     2365804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21436     2365804 :          idata = idata + 1
   21437     2365804 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21438     2365804 :          full_data(idata) = data_tmp
   21439     2368070 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21440             :       END DO
   21441      172673 :       IF (Ndata_rep < Ndata) THEN
   21442       45800 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   21443             :       END IF
   21444      172673 :    END SUBROUTINE bits2ints_29
   21445             : 
   21446             : ! **************************************************************************************************
   21447             : !> \brief ...
   21448             : !> \param Ndata ...
   21449             : !> \param packed_data ...
   21450             : !> \param full_data ...
   21451             : ! **************************************************************************************************
   21452       37170 :    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       37170 :       idata = 0
   21463       37170 :       ipack = 0
   21464       37170 :       Ndata_rep = (Ndata/64)*64
   21465       37170 :       DO kdata = 1, Ndata_rep, 64
   21466      519478 :          pack_tmp = 0
   21467      519478 :          idata = idata + 1
   21468      519478 :          data_tmp = full_data(idata)
   21469      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21470      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21471      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21472      519478 :          idata = idata + 1
   21473      519478 :          data_tmp = full_data(idata)
   21474      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21475      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21476      519478 :          pack_tmp = ISHFT(pack_tmp, -4)
   21477      519478 :          idata = idata + 1
   21478      519478 :          data_tmp = full_data(idata)
   21479      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21480      519478 :          data_tmp = IAND(data_tmp, mask_left(4))
   21481      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21482      519478 :          ipack = ipack + 1
   21483      519478 :          packed_data(ipack) = pack_tmp
   21484      519478 :          data_tmp = full_data(idata)
   21485      519478 :          pack_tmp = ISHFT(data_tmp, 38)
   21486      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21487      519478 :          idata = idata + 1
   21488      519478 :          data_tmp = full_data(idata)
   21489      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21490      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21491      519478 :          pack_tmp = ISHFT(pack_tmp, -8)
   21492      519478 :          idata = idata + 1
   21493      519478 :          data_tmp = full_data(idata)
   21494      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21495      519478 :          data_tmp = IAND(data_tmp, mask_left(8))
   21496      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21497      519478 :          ipack = ipack + 1
   21498      519478 :          packed_data(ipack) = pack_tmp
   21499      519478 :          data_tmp = full_data(idata)
   21500      519478 :          pack_tmp = ISHFT(data_tmp, 42)
   21501      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21502      519478 :          idata = idata + 1
   21503      519478 :          data_tmp = full_data(idata)
   21504      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21505      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21506      519478 :          pack_tmp = ISHFT(pack_tmp, -12)
   21507      519478 :          idata = idata + 1
   21508      519478 :          data_tmp = full_data(idata)
   21509      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21510      519478 :          data_tmp = IAND(data_tmp, mask_left(12))
   21511      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21512      519478 :          ipack = ipack + 1
   21513      519478 :          packed_data(ipack) = pack_tmp
   21514      519478 :          data_tmp = full_data(idata)
   21515      519478 :          pack_tmp = ISHFT(data_tmp, 46)
   21516      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21517      519478 :          idata = idata + 1
   21518      519478 :          data_tmp = full_data(idata)
   21519      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21520      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21521      519478 :          pack_tmp = ISHFT(pack_tmp, -16)
   21522      519478 :          idata = idata + 1
   21523      519478 :          data_tmp = full_data(idata)
   21524      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21525      519478 :          data_tmp = IAND(data_tmp, mask_left(16))
   21526      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21527      519478 :          ipack = ipack + 1
   21528      519478 :          packed_data(ipack) = pack_tmp
   21529      519478 :          data_tmp = full_data(idata)
   21530      519478 :          pack_tmp = ISHFT(data_tmp, 50)
   21531      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21532      519478 :          idata = idata + 1
   21533      519478 :          data_tmp = full_data(idata)
   21534      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21535      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21536      519478 :          pack_tmp = ISHFT(pack_tmp, -20)
   21537      519478 :          idata = idata + 1
   21538      519478 :          data_tmp = full_data(idata)
   21539      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21540      519478 :          data_tmp = IAND(data_tmp, mask_left(20))
   21541      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21542      519478 :          ipack = ipack + 1
   21543      519478 :          packed_data(ipack) = pack_tmp
   21544      519478 :          data_tmp = full_data(idata)
   21545      519478 :          pack_tmp = ISHFT(data_tmp, 54)
   21546      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21547      519478 :          idata = idata + 1
   21548      519478 :          data_tmp = full_data(idata)
   21549      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21550      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21551      519478 :          pack_tmp = ISHFT(pack_tmp, -24)
   21552      519478 :          idata = idata + 1
   21553      519478 :          data_tmp = full_data(idata)
   21554      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21555      519478 :          data_tmp = IAND(data_tmp, mask_left(24))
   21556      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21557      519478 :          ipack = ipack + 1
   21558      519478 :          packed_data(ipack) = pack_tmp
   21559      519478 :          data_tmp = full_data(idata)
   21560      519478 :          pack_tmp = ISHFT(data_tmp, 58)
   21561      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21562      519478 :          idata = idata + 1
   21563      519478 :          data_tmp = full_data(idata)
   21564      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21565      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21566      519478 :          pack_tmp = ISHFT(pack_tmp, -28)
   21567      519478 :          idata = idata + 1
   21568      519478 :          data_tmp = full_data(idata)
   21569      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21570      519478 :          data_tmp = IAND(data_tmp, mask_left(28))
   21571      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21572      519478 :          ipack = ipack + 1
   21573      519478 :          packed_data(ipack) = pack_tmp
   21574      519478 :          data_tmp = full_data(idata)
   21575      519478 :          pack_tmp = ISHFT(data_tmp, 62)
   21576      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21577      519478 :          idata = idata + 1
   21578      519478 :          data_tmp = full_data(idata)
   21579      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21580      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21581      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21582      519478 :          idata = idata + 1
   21583      519478 :          data_tmp = full_data(idata)
   21584      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21585      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21586      519478 :          pack_tmp = ISHFT(pack_tmp, -2)
   21587      519478 :          idata = idata + 1
   21588      519478 :          data_tmp = full_data(idata)
   21589      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21590      519478 :          data_tmp = IAND(data_tmp, mask_left(2))
   21591      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21592      519478 :          ipack = ipack + 1
   21593      519478 :          packed_data(ipack) = pack_tmp
   21594      519478 :          data_tmp = full_data(idata)
   21595      519478 :          pack_tmp = ISHFT(data_tmp, 36)
   21596      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21597      519478 :          idata = idata + 1
   21598      519478 :          data_tmp = full_data(idata)
   21599      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21600      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21601      519478 :          pack_tmp = ISHFT(pack_tmp, -6)
   21602      519478 :          idata = idata + 1
   21603      519478 :          data_tmp = full_data(idata)
   21604      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21605      519478 :          data_tmp = IAND(data_tmp, mask_left(6))
   21606      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21607      519478 :          ipack = ipack + 1
   21608      519478 :          packed_data(ipack) = pack_tmp
   21609      519478 :          data_tmp = full_data(idata)
   21610      519478 :          pack_tmp = ISHFT(data_tmp, 40)
   21611      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21612      519478 :          idata = idata + 1
   21613      519478 :          data_tmp = full_data(idata)
   21614      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21615      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21616      519478 :          pack_tmp = ISHFT(pack_tmp, -10)
   21617      519478 :          idata = idata + 1
   21618      519478 :          data_tmp = full_data(idata)
   21619      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21620      519478 :          data_tmp = IAND(data_tmp, mask_left(10))
   21621      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21622      519478 :          ipack = ipack + 1
   21623      519478 :          packed_data(ipack) = pack_tmp
   21624      519478 :          data_tmp = full_data(idata)
   21625      519478 :          pack_tmp = ISHFT(data_tmp, 44)
   21626      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21627      519478 :          idata = idata + 1
   21628      519478 :          data_tmp = full_data(idata)
   21629      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21630      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21631      519478 :          pack_tmp = ISHFT(pack_tmp, -14)
   21632      519478 :          idata = idata + 1
   21633      519478 :          data_tmp = full_data(idata)
   21634      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21635      519478 :          data_tmp = IAND(data_tmp, mask_left(14))
   21636      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21637      519478 :          ipack = ipack + 1
   21638      519478 :          packed_data(ipack) = pack_tmp
   21639      519478 :          data_tmp = full_data(idata)
   21640      519478 :          pack_tmp = ISHFT(data_tmp, 48)
   21641      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21642      519478 :          idata = idata + 1
   21643      519478 :          data_tmp = full_data(idata)
   21644      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21645      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21646      519478 :          pack_tmp = ISHFT(pack_tmp, -18)
   21647      519478 :          idata = idata + 1
   21648      519478 :          data_tmp = full_data(idata)
   21649      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21650      519478 :          data_tmp = IAND(data_tmp, mask_left(18))
   21651      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21652      519478 :          ipack = ipack + 1
   21653      519478 :          packed_data(ipack) = pack_tmp
   21654      519478 :          data_tmp = full_data(idata)
   21655      519478 :          pack_tmp = ISHFT(data_tmp, 52)
   21656      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21657      519478 :          idata = idata + 1
   21658      519478 :          data_tmp = full_data(idata)
   21659      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21660      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21661      519478 :          pack_tmp = ISHFT(pack_tmp, -22)
   21662      519478 :          idata = idata + 1
   21663      519478 :          data_tmp = full_data(idata)
   21664      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21665      519478 :          data_tmp = IAND(data_tmp, mask_left(22))
   21666      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21667      519478 :          ipack = ipack + 1
   21668      519478 :          packed_data(ipack) = pack_tmp
   21669      519478 :          data_tmp = full_data(idata)
   21670      519478 :          pack_tmp = ISHFT(data_tmp, 56)
   21671      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21672      519478 :          idata = idata + 1
   21673      519478 :          data_tmp = full_data(idata)
   21674      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21675      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21676      519478 :          pack_tmp = ISHFT(pack_tmp, -26)
   21677      519478 :          idata = idata + 1
   21678      519478 :          data_tmp = full_data(idata)
   21679      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21680      519478 :          data_tmp = IAND(data_tmp, mask_left(26))
   21681      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21682      519478 :          ipack = ipack + 1
   21683      519478 :          packed_data(ipack) = pack_tmp
   21684      519478 :          data_tmp = full_data(idata)
   21685      519478 :          pack_tmp = ISHFT(data_tmp, 60)
   21686      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21687      519478 :          idata = idata + 1
   21688      519478 :          data_tmp = full_data(idata)
   21689      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21690      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21691      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21692      519478 :          idata = idata + 1
   21693      519478 :          data_tmp = full_data(idata)
   21694      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21695      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21696      519478 :          pack_tmp = ISHFT(pack_tmp, 0)
   21697      519478 :          idata = idata + 1
   21698      519478 :          data_tmp = full_data(idata)
   21699             :          data_tmp = ISHFT(data_tmp, 34)
   21700      519478 :          data_tmp = IAND(data_tmp, mask_left(0))
   21701      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21702      519478 :          ipack = ipack + 1
   21703      519478 :          packed_data(ipack) = pack_tmp
   21704      519478 :          data_tmp = full_data(idata)
   21705      519478 :          pack_tmp = ISHFT(data_tmp, 34)
   21706      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21707      519478 :          idata = idata + 1
   21708      519478 :          data_tmp = full_data(idata)
   21709      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21710      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21711      519478 :          pack_tmp = ISHFT(pack_tmp, -4)
   21712      519478 :          idata = idata + 1
   21713      519478 :          data_tmp = full_data(idata)
   21714      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21715      519478 :          data_tmp = IAND(data_tmp, mask_left(4))
   21716      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21717      519478 :          ipack = ipack + 1
   21718      519478 :          packed_data(ipack) = pack_tmp
   21719      519478 :          data_tmp = full_data(idata)
   21720      519478 :          pack_tmp = ISHFT(data_tmp, 38)
   21721      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21722      519478 :          idata = idata + 1
   21723      519478 :          data_tmp = full_data(idata)
   21724      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21725      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21726      519478 :          pack_tmp = ISHFT(pack_tmp, -8)
   21727      519478 :          idata = idata + 1
   21728      519478 :          data_tmp = full_data(idata)
   21729      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21730      519478 :          data_tmp = IAND(data_tmp, mask_left(8))
   21731      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21732      519478 :          ipack = ipack + 1
   21733      519478 :          packed_data(ipack) = pack_tmp
   21734      519478 :          data_tmp = full_data(idata)
   21735      519478 :          pack_tmp = ISHFT(data_tmp, 42)
   21736      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21737      519478 :          idata = idata + 1
   21738      519478 :          data_tmp = full_data(idata)
   21739      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21740      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21741      519478 :          pack_tmp = ISHFT(pack_tmp, -12)
   21742      519478 :          idata = idata + 1
   21743      519478 :          data_tmp = full_data(idata)
   21744      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21745      519478 :          data_tmp = IAND(data_tmp, mask_left(12))
   21746      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21747      519478 :          ipack = ipack + 1
   21748      519478 :          packed_data(ipack) = pack_tmp
   21749      519478 :          data_tmp = full_data(idata)
   21750      519478 :          pack_tmp = ISHFT(data_tmp, 46)
   21751      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21752      519478 :          idata = idata + 1
   21753      519478 :          data_tmp = full_data(idata)
   21754      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21755      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21756      519478 :          pack_tmp = ISHFT(pack_tmp, -16)
   21757      519478 :          idata = idata + 1
   21758      519478 :          data_tmp = full_data(idata)
   21759      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21760      519478 :          data_tmp = IAND(data_tmp, mask_left(16))
   21761      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21762      519478 :          ipack = ipack + 1
   21763      519478 :          packed_data(ipack) = pack_tmp
   21764      519478 :          data_tmp = full_data(idata)
   21765      519478 :          pack_tmp = ISHFT(data_tmp, 50)
   21766      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21767      519478 :          idata = idata + 1
   21768      519478 :          data_tmp = full_data(idata)
   21769      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21770      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21771      519478 :          pack_tmp = ISHFT(pack_tmp, -20)
   21772      519478 :          idata = idata + 1
   21773      519478 :          data_tmp = full_data(idata)
   21774      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21775      519478 :          data_tmp = IAND(data_tmp, mask_left(20))
   21776      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21777      519478 :          ipack = ipack + 1
   21778      519478 :          packed_data(ipack) = pack_tmp
   21779      519478 :          data_tmp = full_data(idata)
   21780      519478 :          pack_tmp = ISHFT(data_tmp, 54)
   21781      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21782      519478 :          idata = idata + 1
   21783      519478 :          data_tmp = full_data(idata)
   21784      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21785      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21786      519478 :          pack_tmp = ISHFT(pack_tmp, -24)
   21787      519478 :          idata = idata + 1
   21788      519478 :          data_tmp = full_data(idata)
   21789      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21790      519478 :          data_tmp = IAND(data_tmp, mask_left(24))
   21791      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21792      519478 :          ipack = ipack + 1
   21793      519478 :          packed_data(ipack) = pack_tmp
   21794      519478 :          data_tmp = full_data(idata)
   21795      519478 :          pack_tmp = ISHFT(data_tmp, 58)
   21796      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21797      519478 :          idata = idata + 1
   21798      519478 :          data_tmp = full_data(idata)
   21799      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21800      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21801      519478 :          pack_tmp = ISHFT(pack_tmp, -28)
   21802      519478 :          idata = idata + 1
   21803      519478 :          data_tmp = full_data(idata)
   21804      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21805      519478 :          data_tmp = IAND(data_tmp, mask_left(28))
   21806      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21807      519478 :          ipack = ipack + 1
   21808      519478 :          packed_data(ipack) = pack_tmp
   21809      519478 :          data_tmp = full_data(idata)
   21810      519478 :          pack_tmp = ISHFT(data_tmp, 62)
   21811      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21812      519478 :          idata = idata + 1
   21813      519478 :          data_tmp = full_data(idata)
   21814      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21815      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21816      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21817      519478 :          idata = idata + 1
   21818      519478 :          data_tmp = full_data(idata)
   21819      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21820      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21821      519478 :          pack_tmp = ISHFT(pack_tmp, -2)
   21822      519478 :          idata = idata + 1
   21823      519478 :          data_tmp = full_data(idata)
   21824      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21825      519478 :          data_tmp = IAND(data_tmp, mask_left(2))
   21826      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21827      519478 :          ipack = ipack + 1
   21828      519478 :          packed_data(ipack) = pack_tmp
   21829      519478 :          data_tmp = full_data(idata)
   21830      519478 :          pack_tmp = ISHFT(data_tmp, 36)
   21831      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21832      519478 :          idata = idata + 1
   21833      519478 :          data_tmp = full_data(idata)
   21834      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21835      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21836      519478 :          pack_tmp = ISHFT(pack_tmp, -6)
   21837      519478 :          idata = idata + 1
   21838      519478 :          data_tmp = full_data(idata)
   21839      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21840      519478 :          data_tmp = IAND(data_tmp, mask_left(6))
   21841      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21842      519478 :          ipack = ipack + 1
   21843      519478 :          packed_data(ipack) = pack_tmp
   21844      519478 :          data_tmp = full_data(idata)
   21845      519478 :          pack_tmp = ISHFT(data_tmp, 40)
   21846      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21847      519478 :          idata = idata + 1
   21848      519478 :          data_tmp = full_data(idata)
   21849      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21850      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21851      519478 :          pack_tmp = ISHFT(pack_tmp, -10)
   21852      519478 :          idata = idata + 1
   21853      519478 :          data_tmp = full_data(idata)
   21854      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21855      519478 :          data_tmp = IAND(data_tmp, mask_left(10))
   21856      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21857      519478 :          ipack = ipack + 1
   21858      519478 :          packed_data(ipack) = pack_tmp
   21859      519478 :          data_tmp = full_data(idata)
   21860      519478 :          pack_tmp = ISHFT(data_tmp, 44)
   21861      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21862      519478 :          idata = idata + 1
   21863      519478 :          data_tmp = full_data(idata)
   21864      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21865      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21866      519478 :          pack_tmp = ISHFT(pack_tmp, -14)
   21867      519478 :          idata = idata + 1
   21868      519478 :          data_tmp = full_data(idata)
   21869      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21870      519478 :          data_tmp = IAND(data_tmp, mask_left(14))
   21871      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21872      519478 :          ipack = ipack + 1
   21873      519478 :          packed_data(ipack) = pack_tmp
   21874      519478 :          data_tmp = full_data(idata)
   21875      519478 :          pack_tmp = ISHFT(data_tmp, 48)
   21876      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21877      519478 :          idata = idata + 1
   21878      519478 :          data_tmp = full_data(idata)
   21879      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21880      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21881      519478 :          pack_tmp = ISHFT(pack_tmp, -18)
   21882      519478 :          idata = idata + 1
   21883      519478 :          data_tmp = full_data(idata)
   21884      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21885      519478 :          data_tmp = IAND(data_tmp, mask_left(18))
   21886      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21887      519478 :          ipack = ipack + 1
   21888      519478 :          packed_data(ipack) = pack_tmp
   21889      519478 :          data_tmp = full_data(idata)
   21890      519478 :          pack_tmp = ISHFT(data_tmp, 52)
   21891      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21892      519478 :          idata = idata + 1
   21893      519478 :          data_tmp = full_data(idata)
   21894      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21895      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21896      519478 :          pack_tmp = ISHFT(pack_tmp, -22)
   21897      519478 :          idata = idata + 1
   21898      519478 :          data_tmp = full_data(idata)
   21899      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21900      519478 :          data_tmp = IAND(data_tmp, mask_left(22))
   21901      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21902      519478 :          ipack = ipack + 1
   21903      519478 :          packed_data(ipack) = pack_tmp
   21904      519478 :          data_tmp = full_data(idata)
   21905      519478 :          pack_tmp = ISHFT(data_tmp, 56)
   21906      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21907      519478 :          idata = idata + 1
   21908      519478 :          data_tmp = full_data(idata)
   21909      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21910      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21911      519478 :          pack_tmp = ISHFT(pack_tmp, -26)
   21912      519478 :          idata = idata + 1
   21913      519478 :          data_tmp = full_data(idata)
   21914      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21915      519478 :          data_tmp = IAND(data_tmp, mask_left(26))
   21916      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21917      519478 :          ipack = ipack + 1
   21918      519478 :          packed_data(ipack) = pack_tmp
   21919      519478 :          data_tmp = full_data(idata)
   21920      519478 :          pack_tmp = ISHFT(data_tmp, 60)
   21921      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21922      519478 :          idata = idata + 1
   21923      519478 :          data_tmp = full_data(idata)
   21924      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21925      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21926      519478 :          pack_tmp = ISHFT(pack_tmp, -30)
   21927      519478 :          idata = idata + 1
   21928      519478 :          data_tmp = full_data(idata)
   21929      519478 :          data_tmp = ISHFT(data_tmp, 34)
   21930      519478 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21931             :          pack_tmp = ISHFT(pack_tmp, 0)
   21932      519478 :          pack_tmp = ISHFT(pack_tmp, 0)
   21933      519478 :          ipack = ipack + 1
   21934      519697 :          packed_data(ipack) = pack_tmp
   21935             :       END DO
   21936       37170 :       IF (Ndata_rep < Ndata) THEN
   21937        8852 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   21938             :       END IF
   21939       37170 :    END SUBROUTINE ints2bits_30
   21940             : 
   21941             : ! **************************************************************************************************
   21942             : !> \brief ...
   21943             : !> \param Ndata ...
   21944             : !> \param packed_data ...
   21945             : !> \param full_data ...
   21946             : ! **************************************************************************************************
   21947      214672 :    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      214672 :       ipack = 0
   21958      214672 :       idata = 0
   21959      214672 :       pack_tmp = 0
   21960      214672 :       Ndata_rep = (Ndata/64)*64
   21961      214672 :       DO kdata = 1, Ndata_rep, 64
   21962     2797082 :          idata = idata + 1
   21963     2797082 :          data_tmp = ISHFT(pack_tmp, 30)
   21964     2797082 :          ipack = ipack + 1
   21965     2797082 :          pack_tmp = packed_data(ipack)
   21966     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   21967     2797082 :          pack_tmp = ISHFT(pack_tmp, -30)
   21968     2797082 :          idata = idata + 1
   21969     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21970     2797082 :          full_data(idata) = data_tmp
   21971     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21972     2797082 :          idata = idata + 1
   21973     2797082 :          data_tmp = ISHFT(pack_tmp, 26)
   21974     2797082 :          ipack = ipack + 1
   21975     2797082 :          pack_tmp = packed_data(ipack)
   21976     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   21977     2797082 :          pack_tmp = ISHFT(pack_tmp, -26)
   21978     2797082 :          idata = idata + 1
   21979     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21980     2797082 :          full_data(idata) = data_tmp
   21981     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21982     2797082 :          idata = idata + 1
   21983     2797082 :          data_tmp = ISHFT(pack_tmp, 22)
   21984     2797082 :          ipack = ipack + 1
   21985     2797082 :          pack_tmp = packed_data(ipack)
   21986     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   21987     2797082 :          pack_tmp = ISHFT(pack_tmp, -22)
   21988     2797082 :          idata = idata + 1
   21989     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21990     2797082 :          full_data(idata) = data_tmp
   21991     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21992     2797082 :          idata = idata + 1
   21993     2797082 :          data_tmp = ISHFT(pack_tmp, 18)
   21994     2797082 :          ipack = ipack + 1
   21995     2797082 :          pack_tmp = packed_data(ipack)
   21996     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   21997     2797082 :          pack_tmp = ISHFT(pack_tmp, -18)
   21998     2797082 :          idata = idata + 1
   21999     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22000     2797082 :          full_data(idata) = data_tmp
   22001     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22002     2797082 :          idata = idata + 1
   22003     2797082 :          data_tmp = ISHFT(pack_tmp, 14)
   22004     2797082 :          ipack = ipack + 1
   22005     2797082 :          pack_tmp = packed_data(ipack)
   22006     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   22007     2797082 :          pack_tmp = ISHFT(pack_tmp, -14)
   22008     2797082 :          idata = idata + 1
   22009     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22010     2797082 :          full_data(idata) = data_tmp
   22011     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22012     2797082 :          idata = idata + 1
   22013     2797082 :          data_tmp = ISHFT(pack_tmp, 10)
   22014     2797082 :          ipack = ipack + 1
   22015     2797082 :          pack_tmp = packed_data(ipack)
   22016     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   22017     2797082 :          pack_tmp = ISHFT(pack_tmp, -10)
   22018     2797082 :          idata = idata + 1
   22019     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22020     2797082 :          full_data(idata) = data_tmp
   22021     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22022     2797082 :          idata = idata + 1
   22023     2797082 :          data_tmp = ISHFT(pack_tmp, 6)
   22024     2797082 :          ipack = ipack + 1
   22025     2797082 :          pack_tmp = packed_data(ipack)
   22026     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   22027     2797082 :          pack_tmp = ISHFT(pack_tmp, -6)
   22028     2797082 :          idata = idata + 1
   22029     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22030     2797082 :          full_data(idata) = data_tmp
   22031     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22032     2797082 :          idata = idata + 1
   22033     2797082 :          data_tmp = ISHFT(pack_tmp, 2)
   22034     2797082 :          ipack = ipack + 1
   22035     2797082 :          pack_tmp = packed_data(ipack)
   22036     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   22037     2797082 :          pack_tmp = ISHFT(pack_tmp, -2)
   22038     2797082 :          idata = idata + 1
   22039     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22040     2797082 :          full_data(idata) = data_tmp
   22041     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22042     2797082 :          idata = idata + 1
   22043     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22044     2797082 :          full_data(idata) = data_tmp
   22045     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22046     2797082 :          idata = idata + 1
   22047     2797082 :          data_tmp = ISHFT(pack_tmp, 28)
   22048     2797082 :          ipack = ipack + 1
   22049     2797082 :          pack_tmp = packed_data(ipack)
   22050     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   22051     2797082 :          pack_tmp = ISHFT(pack_tmp, -28)
   22052     2797082 :          idata = idata + 1
   22053     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22054     2797082 :          full_data(idata) = data_tmp
   22055     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22056     2797082 :          idata = idata + 1
   22057     2797082 :          data_tmp = ISHFT(pack_tmp, 24)
   22058     2797082 :          ipack = ipack + 1
   22059     2797082 :          pack_tmp = packed_data(ipack)
   22060     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   22061     2797082 :          pack_tmp = ISHFT(pack_tmp, -24)
   22062     2797082 :          idata = idata + 1
   22063     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22064     2797082 :          full_data(idata) = data_tmp
   22065     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22066     2797082 :          idata = idata + 1
   22067     2797082 :          data_tmp = ISHFT(pack_tmp, 20)
   22068     2797082 :          ipack = ipack + 1
   22069     2797082 :          pack_tmp = packed_data(ipack)
   22070     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   22071     2797082 :          pack_tmp = ISHFT(pack_tmp, -20)
   22072     2797082 :          idata = idata + 1
   22073     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22074     2797082 :          full_data(idata) = data_tmp
   22075     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22076     2797082 :          idata = idata + 1
   22077     2797082 :          data_tmp = ISHFT(pack_tmp, 16)
   22078     2797082 :          ipack = ipack + 1
   22079     2797082 :          pack_tmp = packed_data(ipack)
   22080     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   22081     2797082 :          pack_tmp = ISHFT(pack_tmp, -16)
   22082     2797082 :          idata = idata + 1
   22083     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22084     2797082 :          full_data(idata) = data_tmp
   22085     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22086     2797082 :          idata = idata + 1
   22087     2797082 :          data_tmp = ISHFT(pack_tmp, 12)
   22088     2797082 :          ipack = ipack + 1
   22089     2797082 :          pack_tmp = packed_data(ipack)
   22090     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   22091     2797082 :          pack_tmp = ISHFT(pack_tmp, -12)
   22092     2797082 :          idata = idata + 1
   22093     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22094     2797082 :          full_data(idata) = data_tmp
   22095     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22096     2797082 :          idata = idata + 1
   22097     2797082 :          data_tmp = ISHFT(pack_tmp, 8)
   22098     2797082 :          ipack = ipack + 1
   22099     2797082 :          pack_tmp = packed_data(ipack)
   22100     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   22101     2797082 :          pack_tmp = ISHFT(pack_tmp, -8)
   22102     2797082 :          idata = idata + 1
   22103     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22104     2797082 :          full_data(idata) = data_tmp
   22105     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22106     2797082 :          idata = idata + 1
   22107     2797082 :          data_tmp = ISHFT(pack_tmp, 4)
   22108     2797082 :          ipack = ipack + 1
   22109     2797082 :          pack_tmp = packed_data(ipack)
   22110     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   22111     2797082 :          pack_tmp = ISHFT(pack_tmp, -4)
   22112     2797082 :          idata = idata + 1
   22113     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22114     2797082 :          full_data(idata) = data_tmp
   22115     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22116     2797082 :          idata = idata + 1
   22117     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22118     2797082 :          full_data(idata) = data_tmp
   22119     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22120     2797082 :          idata = idata + 1
   22121     2797082 :          data_tmp = ISHFT(pack_tmp, 30)
   22122     2797082 :          ipack = ipack + 1
   22123     2797082 :          pack_tmp = packed_data(ipack)
   22124     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   22125     2797082 :          pack_tmp = ISHFT(pack_tmp, -30)
   22126     2797082 :          idata = idata + 1
   22127     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22128     2797082 :          full_data(idata) = data_tmp
   22129     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22130     2797082 :          idata = idata + 1
   22131     2797082 :          data_tmp = ISHFT(pack_tmp, 26)
   22132     2797082 :          ipack = ipack + 1
   22133     2797082 :          pack_tmp = packed_data(ipack)
   22134     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   22135     2797082 :          pack_tmp = ISHFT(pack_tmp, -26)
   22136     2797082 :          idata = idata + 1
   22137     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22138     2797082 :          full_data(idata) = data_tmp
   22139     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22140     2797082 :          idata = idata + 1
   22141     2797082 :          data_tmp = ISHFT(pack_tmp, 22)
   22142     2797082 :          ipack = ipack + 1
   22143     2797082 :          pack_tmp = packed_data(ipack)
   22144     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   22145     2797082 :          pack_tmp = ISHFT(pack_tmp, -22)
   22146     2797082 :          idata = idata + 1
   22147     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22148     2797082 :          full_data(idata) = data_tmp
   22149     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22150     2797082 :          idata = idata + 1
   22151     2797082 :          data_tmp = ISHFT(pack_tmp, 18)
   22152     2797082 :          ipack = ipack + 1
   22153     2797082 :          pack_tmp = packed_data(ipack)
   22154     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   22155     2797082 :          pack_tmp = ISHFT(pack_tmp, -18)
   22156     2797082 :          idata = idata + 1
   22157     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22158     2797082 :          full_data(idata) = data_tmp
   22159     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22160     2797082 :          idata = idata + 1
   22161     2797082 :          data_tmp = ISHFT(pack_tmp, 14)
   22162     2797082 :          ipack = ipack + 1
   22163     2797082 :          pack_tmp = packed_data(ipack)
   22164     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   22165     2797082 :          pack_tmp = ISHFT(pack_tmp, -14)
   22166     2797082 :          idata = idata + 1
   22167     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22168     2797082 :          full_data(idata) = data_tmp
   22169     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22170     2797082 :          idata = idata + 1
   22171     2797082 :          data_tmp = ISHFT(pack_tmp, 10)
   22172     2797082 :          ipack = ipack + 1
   22173     2797082 :          pack_tmp = packed_data(ipack)
   22174     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   22175     2797082 :          pack_tmp = ISHFT(pack_tmp, -10)
   22176     2797082 :          idata = idata + 1
   22177     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22178     2797082 :          full_data(idata) = data_tmp
   22179     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22180     2797082 :          idata = idata + 1
   22181     2797082 :          data_tmp = ISHFT(pack_tmp, 6)
   22182     2797082 :          ipack = ipack + 1
   22183     2797082 :          pack_tmp = packed_data(ipack)
   22184     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   22185     2797082 :          pack_tmp = ISHFT(pack_tmp, -6)
   22186     2797082 :          idata = idata + 1
   22187     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22188     2797082 :          full_data(idata) = data_tmp
   22189     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22190     2797082 :          idata = idata + 1
   22191     2797082 :          data_tmp = ISHFT(pack_tmp, 2)
   22192     2797082 :          ipack = ipack + 1
   22193     2797082 :          pack_tmp = packed_data(ipack)
   22194     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   22195     2797082 :          pack_tmp = ISHFT(pack_tmp, -2)
   22196     2797082 :          idata = idata + 1
   22197     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22198     2797082 :          full_data(idata) = data_tmp
   22199     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22200     2797082 :          idata = idata + 1
   22201     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22202     2797082 :          full_data(idata) = data_tmp
   22203     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22204     2797082 :          idata = idata + 1
   22205     2797082 :          data_tmp = ISHFT(pack_tmp, 28)
   22206     2797082 :          ipack = ipack + 1
   22207     2797082 :          pack_tmp = packed_data(ipack)
   22208     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   22209     2797082 :          pack_tmp = ISHFT(pack_tmp, -28)
   22210     2797082 :          idata = idata + 1
   22211     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22212     2797082 :          full_data(idata) = data_tmp
   22213     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22214     2797082 :          idata = idata + 1
   22215     2797082 :          data_tmp = ISHFT(pack_tmp, 24)
   22216     2797082 :          ipack = ipack + 1
   22217     2797082 :          pack_tmp = packed_data(ipack)
   22218     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   22219     2797082 :          pack_tmp = ISHFT(pack_tmp, -24)
   22220     2797082 :          idata = idata + 1
   22221     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22222     2797082 :          full_data(idata) = data_tmp
   22223     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22224     2797082 :          idata = idata + 1
   22225     2797082 :          data_tmp = ISHFT(pack_tmp, 20)
   22226     2797082 :          ipack = ipack + 1
   22227     2797082 :          pack_tmp = packed_data(ipack)
   22228     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   22229     2797082 :          pack_tmp = ISHFT(pack_tmp, -20)
   22230     2797082 :          idata = idata + 1
   22231     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22232     2797082 :          full_data(idata) = data_tmp
   22233     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22234     2797082 :          idata = idata + 1
   22235     2797082 :          data_tmp = ISHFT(pack_tmp, 16)
   22236     2797082 :          ipack = ipack + 1
   22237     2797082 :          pack_tmp = packed_data(ipack)
   22238     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   22239     2797082 :          pack_tmp = ISHFT(pack_tmp, -16)
   22240     2797082 :          idata = idata + 1
   22241     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22242     2797082 :          full_data(idata) = data_tmp
   22243     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22244     2797082 :          idata = idata + 1
   22245     2797082 :          data_tmp = ISHFT(pack_tmp, 12)
   22246     2797082 :          ipack = ipack + 1
   22247     2797082 :          pack_tmp = packed_data(ipack)
   22248     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   22249     2797082 :          pack_tmp = ISHFT(pack_tmp, -12)
   22250     2797082 :          idata = idata + 1
   22251     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22252     2797082 :          full_data(idata) = data_tmp
   22253     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22254     2797082 :          idata = idata + 1
   22255     2797082 :          data_tmp = ISHFT(pack_tmp, 8)
   22256     2797082 :          ipack = ipack + 1
   22257     2797082 :          pack_tmp = packed_data(ipack)
   22258     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   22259     2797082 :          pack_tmp = ISHFT(pack_tmp, -8)
   22260     2797082 :          idata = idata + 1
   22261     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22262     2797082 :          full_data(idata) = data_tmp
   22263     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22264     2797082 :          idata = idata + 1
   22265     2797082 :          data_tmp = ISHFT(pack_tmp, 4)
   22266     2797082 :          ipack = ipack + 1
   22267     2797082 :          pack_tmp = packed_data(ipack)
   22268     2797082 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   22269     2797082 :          pack_tmp = ISHFT(pack_tmp, -4)
   22270     2797082 :          idata = idata + 1
   22271     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22272     2797082 :          full_data(idata) = data_tmp
   22273     2797082 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22274     2797082 :          idata = idata + 1
   22275     2797082 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22276     2797082 :          full_data(idata) = data_tmp
   22277     2799340 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22278             :       END DO
   22279      214672 :       IF (Ndata_rep < Ndata) THEN
   22280       75020 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   22281             :       END IF
   22282      214672 :    END SUBROUTINE bits2ints_30
   22283             : 
   22284             : ! **************************************************************************************************
   22285             : !> \brief ...
   22286             : !> \param Ndata ...
   22287             : !> \param packed_data ...
   22288             : !> \param full_data ...
   22289             : ! **************************************************************************************************
   22290       38746 :    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       38746 :       idata = 0
   22301       38746 :       ipack = 0
   22302       38746 :       Ndata_rep = (Ndata/64)*64
   22303       38746 :       DO kdata = 1, Ndata_rep, 64
   22304      535735 :          pack_tmp = 0
   22305      535735 :          idata = idata + 1
   22306      535735 :          data_tmp = full_data(idata)
   22307      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22308      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22309      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22310      535735 :          idata = idata + 1
   22311      535735 :          data_tmp = full_data(idata)
   22312      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22313      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22314      535735 :          pack_tmp = ISHFT(pack_tmp, -2)
   22315      535735 :          idata = idata + 1
   22316      535735 :          data_tmp = full_data(idata)
   22317      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22318      535735 :          data_tmp = IAND(data_tmp, mask_left(2))
   22319      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22320      535735 :          ipack = ipack + 1
   22321      535735 :          packed_data(ipack) = pack_tmp
   22322      535735 :          data_tmp = full_data(idata)
   22323      535735 :          pack_tmp = ISHFT(data_tmp, 35)
   22324      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22325      535735 :          idata = idata + 1
   22326      535735 :          data_tmp = full_data(idata)
   22327      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22328      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22329      535735 :          pack_tmp = ISHFT(pack_tmp, -4)
   22330      535735 :          idata = idata + 1
   22331      535735 :          data_tmp = full_data(idata)
   22332      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22333      535735 :          data_tmp = IAND(data_tmp, mask_left(4))
   22334      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22335      535735 :          ipack = ipack + 1
   22336      535735 :          packed_data(ipack) = pack_tmp
   22337      535735 :          data_tmp = full_data(idata)
   22338      535735 :          pack_tmp = ISHFT(data_tmp, 37)
   22339      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22340      535735 :          idata = idata + 1
   22341      535735 :          data_tmp = full_data(idata)
   22342      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22343      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22344      535735 :          pack_tmp = ISHFT(pack_tmp, -6)
   22345      535735 :          idata = idata + 1
   22346      535735 :          data_tmp = full_data(idata)
   22347      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22348      535735 :          data_tmp = IAND(data_tmp, mask_left(6))
   22349      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22350      535735 :          ipack = ipack + 1
   22351      535735 :          packed_data(ipack) = pack_tmp
   22352      535735 :          data_tmp = full_data(idata)
   22353      535735 :          pack_tmp = ISHFT(data_tmp, 39)
   22354      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22355      535735 :          idata = idata + 1
   22356      535735 :          data_tmp = full_data(idata)
   22357      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22358      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22359      535735 :          pack_tmp = ISHFT(pack_tmp, -8)
   22360      535735 :          idata = idata + 1
   22361      535735 :          data_tmp = full_data(idata)
   22362      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22363      535735 :          data_tmp = IAND(data_tmp, mask_left(8))
   22364      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22365      535735 :          ipack = ipack + 1
   22366      535735 :          packed_data(ipack) = pack_tmp
   22367      535735 :          data_tmp = full_data(idata)
   22368      535735 :          pack_tmp = ISHFT(data_tmp, 41)
   22369      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22370      535735 :          idata = idata + 1
   22371      535735 :          data_tmp = full_data(idata)
   22372      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22373      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22374      535735 :          pack_tmp = ISHFT(pack_tmp, -10)
   22375      535735 :          idata = idata + 1
   22376      535735 :          data_tmp = full_data(idata)
   22377      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22378      535735 :          data_tmp = IAND(data_tmp, mask_left(10))
   22379      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22380      535735 :          ipack = ipack + 1
   22381      535735 :          packed_data(ipack) = pack_tmp
   22382      535735 :          data_tmp = full_data(idata)
   22383      535735 :          pack_tmp = ISHFT(data_tmp, 43)
   22384      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22385      535735 :          idata = idata + 1
   22386      535735 :          data_tmp = full_data(idata)
   22387      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22388      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22389      535735 :          pack_tmp = ISHFT(pack_tmp, -12)
   22390      535735 :          idata = idata + 1
   22391      535735 :          data_tmp = full_data(idata)
   22392      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22393      535735 :          data_tmp = IAND(data_tmp, mask_left(12))
   22394      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22395      535735 :          ipack = ipack + 1
   22396      535735 :          packed_data(ipack) = pack_tmp
   22397      535735 :          data_tmp = full_data(idata)
   22398      535735 :          pack_tmp = ISHFT(data_tmp, 45)
   22399      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22400      535735 :          idata = idata + 1
   22401      535735 :          data_tmp = full_data(idata)
   22402      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22403      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22404      535735 :          pack_tmp = ISHFT(pack_tmp, -14)
   22405      535735 :          idata = idata + 1
   22406      535735 :          data_tmp = full_data(idata)
   22407      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22408      535735 :          data_tmp = IAND(data_tmp, mask_left(14))
   22409      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22410      535735 :          ipack = ipack + 1
   22411      535735 :          packed_data(ipack) = pack_tmp
   22412      535735 :          data_tmp = full_data(idata)
   22413      535735 :          pack_tmp = ISHFT(data_tmp, 47)
   22414      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22415      535735 :          idata = idata + 1
   22416      535735 :          data_tmp = full_data(idata)
   22417      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22418      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22419      535735 :          pack_tmp = ISHFT(pack_tmp, -16)
   22420      535735 :          idata = idata + 1
   22421      535735 :          data_tmp = full_data(idata)
   22422      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22423      535735 :          data_tmp = IAND(data_tmp, mask_left(16))
   22424      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22425      535735 :          ipack = ipack + 1
   22426      535735 :          packed_data(ipack) = pack_tmp
   22427      535735 :          data_tmp = full_data(idata)
   22428      535735 :          pack_tmp = ISHFT(data_tmp, 49)
   22429      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22430      535735 :          idata = idata + 1
   22431      535735 :          data_tmp = full_data(idata)
   22432      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22433      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22434      535735 :          pack_tmp = ISHFT(pack_tmp, -18)
   22435      535735 :          idata = idata + 1
   22436      535735 :          data_tmp = full_data(idata)
   22437      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22438      535735 :          data_tmp = IAND(data_tmp, mask_left(18))
   22439      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22440      535735 :          ipack = ipack + 1
   22441      535735 :          packed_data(ipack) = pack_tmp
   22442      535735 :          data_tmp = full_data(idata)
   22443      535735 :          pack_tmp = ISHFT(data_tmp, 51)
   22444      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22445      535735 :          idata = idata + 1
   22446      535735 :          data_tmp = full_data(idata)
   22447      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22448      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22449      535735 :          pack_tmp = ISHFT(pack_tmp, -20)
   22450      535735 :          idata = idata + 1
   22451      535735 :          data_tmp = full_data(idata)
   22452      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22453      535735 :          data_tmp = IAND(data_tmp, mask_left(20))
   22454      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22455      535735 :          ipack = ipack + 1
   22456      535735 :          packed_data(ipack) = pack_tmp
   22457      535735 :          data_tmp = full_data(idata)
   22458      535735 :          pack_tmp = ISHFT(data_tmp, 53)
   22459      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22460      535735 :          idata = idata + 1
   22461      535735 :          data_tmp = full_data(idata)
   22462      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22463      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22464      535735 :          pack_tmp = ISHFT(pack_tmp, -22)
   22465      535735 :          idata = idata + 1
   22466      535735 :          data_tmp = full_data(idata)
   22467      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22468      535735 :          data_tmp = IAND(data_tmp, mask_left(22))
   22469      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22470      535735 :          ipack = ipack + 1
   22471      535735 :          packed_data(ipack) = pack_tmp
   22472      535735 :          data_tmp = full_data(idata)
   22473      535735 :          pack_tmp = ISHFT(data_tmp, 55)
   22474      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22475      535735 :          idata = idata + 1
   22476      535735 :          data_tmp = full_data(idata)
   22477      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22478      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22479      535735 :          pack_tmp = ISHFT(pack_tmp, -24)
   22480      535735 :          idata = idata + 1
   22481      535735 :          data_tmp = full_data(idata)
   22482      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22483      535735 :          data_tmp = IAND(data_tmp, mask_left(24))
   22484      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22485      535735 :          ipack = ipack + 1
   22486      535735 :          packed_data(ipack) = pack_tmp
   22487      535735 :          data_tmp = full_data(idata)
   22488      535735 :          pack_tmp = ISHFT(data_tmp, 57)
   22489      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22490      535735 :          idata = idata + 1
   22491      535735 :          data_tmp = full_data(idata)
   22492      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22493      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22494      535735 :          pack_tmp = ISHFT(pack_tmp, -26)
   22495      535735 :          idata = idata + 1
   22496      535735 :          data_tmp = full_data(idata)
   22497      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22498      535735 :          data_tmp = IAND(data_tmp, mask_left(26))
   22499      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22500      535735 :          ipack = ipack + 1
   22501      535735 :          packed_data(ipack) = pack_tmp
   22502      535735 :          data_tmp = full_data(idata)
   22503      535735 :          pack_tmp = ISHFT(data_tmp, 59)
   22504      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22505      535735 :          idata = idata + 1
   22506      535735 :          data_tmp = full_data(idata)
   22507      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22508      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22509      535735 :          pack_tmp = ISHFT(pack_tmp, -28)
   22510      535735 :          idata = idata + 1
   22511      535735 :          data_tmp = full_data(idata)
   22512      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22513      535735 :          data_tmp = IAND(data_tmp, mask_left(28))
   22514      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22515      535735 :          ipack = ipack + 1
   22516      535735 :          packed_data(ipack) = pack_tmp
   22517      535735 :          data_tmp = full_data(idata)
   22518      535735 :          pack_tmp = ISHFT(data_tmp, 61)
   22519      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22520      535735 :          idata = idata + 1
   22521      535735 :          data_tmp = full_data(idata)
   22522      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22523      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22524      535735 :          pack_tmp = ISHFT(pack_tmp, -30)
   22525      535735 :          idata = idata + 1
   22526      535735 :          data_tmp = full_data(idata)
   22527      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22528      535735 :          data_tmp = IAND(data_tmp, mask_left(30))
   22529      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22530      535735 :          ipack = ipack + 1
   22531      535735 :          packed_data(ipack) = pack_tmp
   22532      535735 :          data_tmp = full_data(idata)
   22533      535735 :          pack_tmp = ISHFT(data_tmp, 63)
   22534      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22535      535735 :          idata = idata + 1
   22536      535735 :          data_tmp = full_data(idata)
   22537      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22538      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22539      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22540      535735 :          idata = idata + 1
   22541      535735 :          data_tmp = full_data(idata)
   22542      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22543      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22544      535735 :          pack_tmp = ISHFT(pack_tmp, -1)
   22545      535735 :          idata = idata + 1
   22546      535735 :          data_tmp = full_data(idata)
   22547      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22548      535735 :          data_tmp = IAND(data_tmp, mask_left(1))
   22549      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22550      535735 :          ipack = ipack + 1
   22551      535735 :          packed_data(ipack) = pack_tmp
   22552      535735 :          data_tmp = full_data(idata)
   22553      535735 :          pack_tmp = ISHFT(data_tmp, 34)
   22554      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22555      535735 :          idata = idata + 1
   22556      535735 :          data_tmp = full_data(idata)
   22557      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22558      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22559      535735 :          pack_tmp = ISHFT(pack_tmp, -3)
   22560      535735 :          idata = idata + 1
   22561      535735 :          data_tmp = full_data(idata)
   22562      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22563      535735 :          data_tmp = IAND(data_tmp, mask_left(3))
   22564      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22565      535735 :          ipack = ipack + 1
   22566      535735 :          packed_data(ipack) = pack_tmp
   22567      535735 :          data_tmp = full_data(idata)
   22568      535735 :          pack_tmp = ISHFT(data_tmp, 36)
   22569      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22570      535735 :          idata = idata + 1
   22571      535735 :          data_tmp = full_data(idata)
   22572      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22573      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22574      535735 :          pack_tmp = ISHFT(pack_tmp, -5)
   22575      535735 :          idata = idata + 1
   22576      535735 :          data_tmp = full_data(idata)
   22577      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22578      535735 :          data_tmp = IAND(data_tmp, mask_left(5))
   22579      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22580      535735 :          ipack = ipack + 1
   22581      535735 :          packed_data(ipack) = pack_tmp
   22582      535735 :          data_tmp = full_data(idata)
   22583      535735 :          pack_tmp = ISHFT(data_tmp, 38)
   22584      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22585      535735 :          idata = idata + 1
   22586      535735 :          data_tmp = full_data(idata)
   22587      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22588      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22589      535735 :          pack_tmp = ISHFT(pack_tmp, -7)
   22590      535735 :          idata = idata + 1
   22591      535735 :          data_tmp = full_data(idata)
   22592      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22593      535735 :          data_tmp = IAND(data_tmp, mask_left(7))
   22594      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22595      535735 :          ipack = ipack + 1
   22596      535735 :          packed_data(ipack) = pack_tmp
   22597      535735 :          data_tmp = full_data(idata)
   22598      535735 :          pack_tmp = ISHFT(data_tmp, 40)
   22599      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22600      535735 :          idata = idata + 1
   22601      535735 :          data_tmp = full_data(idata)
   22602      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22603      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22604      535735 :          pack_tmp = ISHFT(pack_tmp, -9)
   22605      535735 :          idata = idata + 1
   22606      535735 :          data_tmp = full_data(idata)
   22607      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22608      535735 :          data_tmp = IAND(data_tmp, mask_left(9))
   22609      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22610      535735 :          ipack = ipack + 1
   22611      535735 :          packed_data(ipack) = pack_tmp
   22612      535735 :          data_tmp = full_data(idata)
   22613      535735 :          pack_tmp = ISHFT(data_tmp, 42)
   22614      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22615      535735 :          idata = idata + 1
   22616      535735 :          data_tmp = full_data(idata)
   22617      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22618      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22619      535735 :          pack_tmp = ISHFT(pack_tmp, -11)
   22620      535735 :          idata = idata + 1
   22621      535735 :          data_tmp = full_data(idata)
   22622      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22623      535735 :          data_tmp = IAND(data_tmp, mask_left(11))
   22624      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22625      535735 :          ipack = ipack + 1
   22626      535735 :          packed_data(ipack) = pack_tmp
   22627      535735 :          data_tmp = full_data(idata)
   22628      535735 :          pack_tmp = ISHFT(data_tmp, 44)
   22629      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22630      535735 :          idata = idata + 1
   22631      535735 :          data_tmp = full_data(idata)
   22632      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22633      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22634      535735 :          pack_tmp = ISHFT(pack_tmp, -13)
   22635      535735 :          idata = idata + 1
   22636      535735 :          data_tmp = full_data(idata)
   22637      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22638      535735 :          data_tmp = IAND(data_tmp, mask_left(13))
   22639      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22640      535735 :          ipack = ipack + 1
   22641      535735 :          packed_data(ipack) = pack_tmp
   22642      535735 :          data_tmp = full_data(idata)
   22643      535735 :          pack_tmp = ISHFT(data_tmp, 46)
   22644      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22645      535735 :          idata = idata + 1
   22646      535735 :          data_tmp = full_data(idata)
   22647      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22648      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22649      535735 :          pack_tmp = ISHFT(pack_tmp, -15)
   22650      535735 :          idata = idata + 1
   22651      535735 :          data_tmp = full_data(idata)
   22652      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22653      535735 :          data_tmp = IAND(data_tmp, mask_left(15))
   22654      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22655      535735 :          ipack = ipack + 1
   22656      535735 :          packed_data(ipack) = pack_tmp
   22657      535735 :          data_tmp = full_data(idata)
   22658      535735 :          pack_tmp = ISHFT(data_tmp, 48)
   22659      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22660      535735 :          idata = idata + 1
   22661      535735 :          data_tmp = full_data(idata)
   22662      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22663      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22664      535735 :          pack_tmp = ISHFT(pack_tmp, -17)
   22665      535735 :          idata = idata + 1
   22666      535735 :          data_tmp = full_data(idata)
   22667      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22668      535735 :          data_tmp = IAND(data_tmp, mask_left(17))
   22669      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22670      535735 :          ipack = ipack + 1
   22671      535735 :          packed_data(ipack) = pack_tmp
   22672      535735 :          data_tmp = full_data(idata)
   22673      535735 :          pack_tmp = ISHFT(data_tmp, 50)
   22674      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22675      535735 :          idata = idata + 1
   22676      535735 :          data_tmp = full_data(idata)
   22677      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22678      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22679      535735 :          pack_tmp = ISHFT(pack_tmp, -19)
   22680      535735 :          idata = idata + 1
   22681      535735 :          data_tmp = full_data(idata)
   22682      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22683      535735 :          data_tmp = IAND(data_tmp, mask_left(19))
   22684      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22685      535735 :          ipack = ipack + 1
   22686      535735 :          packed_data(ipack) = pack_tmp
   22687      535735 :          data_tmp = full_data(idata)
   22688      535735 :          pack_tmp = ISHFT(data_tmp, 52)
   22689      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22690      535735 :          idata = idata + 1
   22691      535735 :          data_tmp = full_data(idata)
   22692      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22693      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22694      535735 :          pack_tmp = ISHFT(pack_tmp, -21)
   22695      535735 :          idata = idata + 1
   22696      535735 :          data_tmp = full_data(idata)
   22697      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22698      535735 :          data_tmp = IAND(data_tmp, mask_left(21))
   22699      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22700      535735 :          ipack = ipack + 1
   22701      535735 :          packed_data(ipack) = pack_tmp
   22702      535735 :          data_tmp = full_data(idata)
   22703      535735 :          pack_tmp = ISHFT(data_tmp, 54)
   22704      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22705      535735 :          idata = idata + 1
   22706      535735 :          data_tmp = full_data(idata)
   22707      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22708      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22709      535735 :          pack_tmp = ISHFT(pack_tmp, -23)
   22710      535735 :          idata = idata + 1
   22711      535735 :          data_tmp = full_data(idata)
   22712      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22713      535735 :          data_tmp = IAND(data_tmp, mask_left(23))
   22714      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22715      535735 :          ipack = ipack + 1
   22716      535735 :          packed_data(ipack) = pack_tmp
   22717      535735 :          data_tmp = full_data(idata)
   22718      535735 :          pack_tmp = ISHFT(data_tmp, 56)
   22719      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22720      535735 :          idata = idata + 1
   22721      535735 :          data_tmp = full_data(idata)
   22722      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22723      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22724      535735 :          pack_tmp = ISHFT(pack_tmp, -25)
   22725      535735 :          idata = idata + 1
   22726      535735 :          data_tmp = full_data(idata)
   22727      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22728      535735 :          data_tmp = IAND(data_tmp, mask_left(25))
   22729      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22730      535735 :          ipack = ipack + 1
   22731      535735 :          packed_data(ipack) = pack_tmp
   22732      535735 :          data_tmp = full_data(idata)
   22733      535735 :          pack_tmp = ISHFT(data_tmp, 58)
   22734      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22735      535735 :          idata = idata + 1
   22736      535735 :          data_tmp = full_data(idata)
   22737      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22738      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22739      535735 :          pack_tmp = ISHFT(pack_tmp, -27)
   22740      535735 :          idata = idata + 1
   22741      535735 :          data_tmp = full_data(idata)
   22742      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22743      535735 :          data_tmp = IAND(data_tmp, mask_left(27))
   22744      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22745      535735 :          ipack = ipack + 1
   22746      535735 :          packed_data(ipack) = pack_tmp
   22747      535735 :          data_tmp = full_data(idata)
   22748      535735 :          pack_tmp = ISHFT(data_tmp, 60)
   22749      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22750      535735 :          idata = idata + 1
   22751      535735 :          data_tmp = full_data(idata)
   22752      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22753      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22754      535735 :          pack_tmp = ISHFT(pack_tmp, -29)
   22755      535735 :          idata = idata + 1
   22756      535735 :          data_tmp = full_data(idata)
   22757      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22758      535735 :          data_tmp = IAND(data_tmp, mask_left(29))
   22759      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22760      535735 :          ipack = ipack + 1
   22761      535735 :          packed_data(ipack) = pack_tmp
   22762      535735 :          data_tmp = full_data(idata)
   22763      535735 :          pack_tmp = ISHFT(data_tmp, 62)
   22764      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22765      535735 :          idata = idata + 1
   22766      535735 :          data_tmp = full_data(idata)
   22767      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22768      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22769      535735 :          pack_tmp = ISHFT(pack_tmp, -31)
   22770      535735 :          idata = idata + 1
   22771      535735 :          data_tmp = full_data(idata)
   22772      535735 :          data_tmp = ISHFT(data_tmp, 33)
   22773      535735 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22774             :          pack_tmp = ISHFT(pack_tmp, 0)
   22775      535735 :          pack_tmp = ISHFT(pack_tmp, 0)
   22776      535735 :          ipack = ipack + 1
   22777      535891 :          packed_data(ipack) = pack_tmp
   22778             :       END DO
   22779       38746 :       IF (Ndata_rep < Ndata) THEN
   22780        9906 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   22781             :       END IF
   22782       38746 :    END SUBROUTINE ints2bits_31
   22783             : 
   22784             : ! **************************************************************************************************
   22785             : !> \brief ...
   22786             : !> \param Ndata ...
   22787             : !> \param packed_data ...
   22788             : !> \param full_data ...
   22789             : ! **************************************************************************************************
   22790      266298 :    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      266298 :       ipack = 0
   22801      266298 :       idata = 0
   22802      266298 :       pack_tmp = 0
   22803      266298 :       Ndata_rep = (Ndata/64)*64
   22804      266298 :       DO kdata = 1, Ndata_rep, 64
   22805     3332262 :          idata = idata + 1
   22806     3332262 :          data_tmp = ISHFT(pack_tmp, 31)
   22807     3332262 :          ipack = ipack + 1
   22808     3332262 :          pack_tmp = packed_data(ipack)
   22809     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   22810     3332262 :          pack_tmp = ISHFT(pack_tmp, -31)
   22811     3332262 :          idata = idata + 1
   22812     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22813     3332262 :          full_data(idata) = data_tmp
   22814     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22815     3332262 :          idata = idata + 1
   22816     3332262 :          data_tmp = ISHFT(pack_tmp, 29)
   22817     3332262 :          ipack = ipack + 1
   22818     3332262 :          pack_tmp = packed_data(ipack)
   22819     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   22820     3332262 :          pack_tmp = ISHFT(pack_tmp, -29)
   22821     3332262 :          idata = idata + 1
   22822     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22823     3332262 :          full_data(idata) = data_tmp
   22824     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22825     3332262 :          idata = idata + 1
   22826     3332262 :          data_tmp = ISHFT(pack_tmp, 27)
   22827     3332262 :          ipack = ipack + 1
   22828     3332262 :          pack_tmp = packed_data(ipack)
   22829     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   22830     3332262 :          pack_tmp = ISHFT(pack_tmp, -27)
   22831     3332262 :          idata = idata + 1
   22832     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22833     3332262 :          full_data(idata) = data_tmp
   22834     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22835     3332262 :          idata = idata + 1
   22836     3332262 :          data_tmp = ISHFT(pack_tmp, 25)
   22837     3332262 :          ipack = ipack + 1
   22838     3332262 :          pack_tmp = packed_data(ipack)
   22839     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   22840     3332262 :          pack_tmp = ISHFT(pack_tmp, -25)
   22841     3332262 :          idata = idata + 1
   22842     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22843     3332262 :          full_data(idata) = data_tmp
   22844     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22845     3332262 :          idata = idata + 1
   22846     3332262 :          data_tmp = ISHFT(pack_tmp, 23)
   22847     3332262 :          ipack = ipack + 1
   22848     3332262 :          pack_tmp = packed_data(ipack)
   22849     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   22850     3332262 :          pack_tmp = ISHFT(pack_tmp, -23)
   22851     3332262 :          idata = idata + 1
   22852     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22853     3332262 :          full_data(idata) = data_tmp
   22854     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22855     3332262 :          idata = idata + 1
   22856     3332262 :          data_tmp = ISHFT(pack_tmp, 21)
   22857     3332262 :          ipack = ipack + 1
   22858     3332262 :          pack_tmp = packed_data(ipack)
   22859     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   22860     3332262 :          pack_tmp = ISHFT(pack_tmp, -21)
   22861     3332262 :          idata = idata + 1
   22862     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22863     3332262 :          full_data(idata) = data_tmp
   22864     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22865     3332262 :          idata = idata + 1
   22866     3332262 :          data_tmp = ISHFT(pack_tmp, 19)
   22867     3332262 :          ipack = ipack + 1
   22868     3332262 :          pack_tmp = packed_data(ipack)
   22869     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   22870     3332262 :          pack_tmp = ISHFT(pack_tmp, -19)
   22871     3332262 :          idata = idata + 1
   22872     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22873     3332262 :          full_data(idata) = data_tmp
   22874     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22875     3332262 :          idata = idata + 1
   22876     3332262 :          data_tmp = ISHFT(pack_tmp, 17)
   22877     3332262 :          ipack = ipack + 1
   22878     3332262 :          pack_tmp = packed_data(ipack)
   22879     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   22880     3332262 :          pack_tmp = ISHFT(pack_tmp, -17)
   22881     3332262 :          idata = idata + 1
   22882     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22883     3332262 :          full_data(idata) = data_tmp
   22884     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22885     3332262 :          idata = idata + 1
   22886     3332262 :          data_tmp = ISHFT(pack_tmp, 15)
   22887     3332262 :          ipack = ipack + 1
   22888     3332262 :          pack_tmp = packed_data(ipack)
   22889     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   22890     3332262 :          pack_tmp = ISHFT(pack_tmp, -15)
   22891     3332262 :          idata = idata + 1
   22892     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22893     3332262 :          full_data(idata) = data_tmp
   22894     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22895     3332262 :          idata = idata + 1
   22896     3332262 :          data_tmp = ISHFT(pack_tmp, 13)
   22897     3332262 :          ipack = ipack + 1
   22898     3332262 :          pack_tmp = packed_data(ipack)
   22899     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   22900     3332262 :          pack_tmp = ISHFT(pack_tmp, -13)
   22901     3332262 :          idata = idata + 1
   22902     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22903     3332262 :          full_data(idata) = data_tmp
   22904     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22905     3332262 :          idata = idata + 1
   22906     3332262 :          data_tmp = ISHFT(pack_tmp, 11)
   22907     3332262 :          ipack = ipack + 1
   22908     3332262 :          pack_tmp = packed_data(ipack)
   22909     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   22910     3332262 :          pack_tmp = ISHFT(pack_tmp, -11)
   22911     3332262 :          idata = idata + 1
   22912     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22913     3332262 :          full_data(idata) = data_tmp
   22914     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22915     3332262 :          idata = idata + 1
   22916     3332262 :          data_tmp = ISHFT(pack_tmp, 9)
   22917     3332262 :          ipack = ipack + 1
   22918     3332262 :          pack_tmp = packed_data(ipack)
   22919     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   22920     3332262 :          pack_tmp = ISHFT(pack_tmp, -9)
   22921     3332262 :          idata = idata + 1
   22922     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22923     3332262 :          full_data(idata) = data_tmp
   22924     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22925     3332262 :          idata = idata + 1
   22926     3332262 :          data_tmp = ISHFT(pack_tmp, 7)
   22927     3332262 :          ipack = ipack + 1
   22928     3332262 :          pack_tmp = packed_data(ipack)
   22929     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   22930     3332262 :          pack_tmp = ISHFT(pack_tmp, -7)
   22931     3332262 :          idata = idata + 1
   22932     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22933     3332262 :          full_data(idata) = data_tmp
   22934     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22935     3332262 :          idata = idata + 1
   22936     3332262 :          data_tmp = ISHFT(pack_tmp, 5)
   22937     3332262 :          ipack = ipack + 1
   22938     3332262 :          pack_tmp = packed_data(ipack)
   22939     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   22940     3332262 :          pack_tmp = ISHFT(pack_tmp, -5)
   22941     3332262 :          idata = idata + 1
   22942     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22943     3332262 :          full_data(idata) = data_tmp
   22944     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22945     3332262 :          idata = idata + 1
   22946     3332262 :          data_tmp = ISHFT(pack_tmp, 3)
   22947     3332262 :          ipack = ipack + 1
   22948     3332262 :          pack_tmp = packed_data(ipack)
   22949     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   22950     3332262 :          pack_tmp = ISHFT(pack_tmp, -3)
   22951     3332262 :          idata = idata + 1
   22952     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22953     3332262 :          full_data(idata) = data_tmp
   22954     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22955     3332262 :          idata = idata + 1
   22956     3332262 :          data_tmp = ISHFT(pack_tmp, 1)
   22957     3332262 :          ipack = ipack + 1
   22958     3332262 :          pack_tmp = packed_data(ipack)
   22959     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   22960     3332262 :          pack_tmp = ISHFT(pack_tmp, -1)
   22961     3332262 :          idata = idata + 1
   22962     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22963     3332262 :          full_data(idata) = data_tmp
   22964     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22965     3332262 :          idata = idata + 1
   22966     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22967     3332262 :          full_data(idata) = data_tmp
   22968     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22969     3332262 :          idata = idata + 1
   22970     3332262 :          data_tmp = ISHFT(pack_tmp, 30)
   22971     3332262 :          ipack = ipack + 1
   22972     3332262 :          pack_tmp = packed_data(ipack)
   22973     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   22974     3332262 :          pack_tmp = ISHFT(pack_tmp, -30)
   22975     3332262 :          idata = idata + 1
   22976     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22977     3332262 :          full_data(idata) = data_tmp
   22978     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22979     3332262 :          idata = idata + 1
   22980     3332262 :          data_tmp = ISHFT(pack_tmp, 28)
   22981     3332262 :          ipack = ipack + 1
   22982     3332262 :          pack_tmp = packed_data(ipack)
   22983     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   22984     3332262 :          pack_tmp = ISHFT(pack_tmp, -28)
   22985     3332262 :          idata = idata + 1
   22986     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22987     3332262 :          full_data(idata) = data_tmp
   22988     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22989     3332262 :          idata = idata + 1
   22990     3332262 :          data_tmp = ISHFT(pack_tmp, 26)
   22991     3332262 :          ipack = ipack + 1
   22992     3332262 :          pack_tmp = packed_data(ipack)
   22993     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   22994     3332262 :          pack_tmp = ISHFT(pack_tmp, -26)
   22995     3332262 :          idata = idata + 1
   22996     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22997     3332262 :          full_data(idata) = data_tmp
   22998     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22999     3332262 :          idata = idata + 1
   23000     3332262 :          data_tmp = ISHFT(pack_tmp, 24)
   23001     3332262 :          ipack = ipack + 1
   23002     3332262 :          pack_tmp = packed_data(ipack)
   23003     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   23004     3332262 :          pack_tmp = ISHFT(pack_tmp, -24)
   23005     3332262 :          idata = idata + 1
   23006     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23007     3332262 :          full_data(idata) = data_tmp
   23008     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23009     3332262 :          idata = idata + 1
   23010     3332262 :          data_tmp = ISHFT(pack_tmp, 22)
   23011     3332262 :          ipack = ipack + 1
   23012     3332262 :          pack_tmp = packed_data(ipack)
   23013     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   23014     3332262 :          pack_tmp = ISHFT(pack_tmp, -22)
   23015     3332262 :          idata = idata + 1
   23016     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23017     3332262 :          full_data(idata) = data_tmp
   23018     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23019     3332262 :          idata = idata + 1
   23020     3332262 :          data_tmp = ISHFT(pack_tmp, 20)
   23021     3332262 :          ipack = ipack + 1
   23022     3332262 :          pack_tmp = packed_data(ipack)
   23023     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   23024     3332262 :          pack_tmp = ISHFT(pack_tmp, -20)
   23025     3332262 :          idata = idata + 1
   23026     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23027     3332262 :          full_data(idata) = data_tmp
   23028     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23029     3332262 :          idata = idata + 1
   23030     3332262 :          data_tmp = ISHFT(pack_tmp, 18)
   23031     3332262 :          ipack = ipack + 1
   23032     3332262 :          pack_tmp = packed_data(ipack)
   23033     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   23034     3332262 :          pack_tmp = ISHFT(pack_tmp, -18)
   23035     3332262 :          idata = idata + 1
   23036     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23037     3332262 :          full_data(idata) = data_tmp
   23038     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23039     3332262 :          idata = idata + 1
   23040     3332262 :          data_tmp = ISHFT(pack_tmp, 16)
   23041     3332262 :          ipack = ipack + 1
   23042     3332262 :          pack_tmp = packed_data(ipack)
   23043     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   23044     3332262 :          pack_tmp = ISHFT(pack_tmp, -16)
   23045     3332262 :          idata = idata + 1
   23046     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23047     3332262 :          full_data(idata) = data_tmp
   23048     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23049     3332262 :          idata = idata + 1
   23050     3332262 :          data_tmp = ISHFT(pack_tmp, 14)
   23051     3332262 :          ipack = ipack + 1
   23052     3332262 :          pack_tmp = packed_data(ipack)
   23053     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   23054     3332262 :          pack_tmp = ISHFT(pack_tmp, -14)
   23055     3332262 :          idata = idata + 1
   23056     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23057     3332262 :          full_data(idata) = data_tmp
   23058     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23059     3332262 :          idata = idata + 1
   23060     3332262 :          data_tmp = ISHFT(pack_tmp, 12)
   23061     3332262 :          ipack = ipack + 1
   23062     3332262 :          pack_tmp = packed_data(ipack)
   23063     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   23064     3332262 :          pack_tmp = ISHFT(pack_tmp, -12)
   23065     3332262 :          idata = idata + 1
   23066     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23067     3332262 :          full_data(idata) = data_tmp
   23068     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23069     3332262 :          idata = idata + 1
   23070     3332262 :          data_tmp = ISHFT(pack_tmp, 10)
   23071     3332262 :          ipack = ipack + 1
   23072     3332262 :          pack_tmp = packed_data(ipack)
   23073     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   23074     3332262 :          pack_tmp = ISHFT(pack_tmp, -10)
   23075     3332262 :          idata = idata + 1
   23076     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23077     3332262 :          full_data(idata) = data_tmp
   23078     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23079     3332262 :          idata = idata + 1
   23080     3332262 :          data_tmp = ISHFT(pack_tmp, 8)
   23081     3332262 :          ipack = ipack + 1
   23082     3332262 :          pack_tmp = packed_data(ipack)
   23083     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   23084     3332262 :          pack_tmp = ISHFT(pack_tmp, -8)
   23085     3332262 :          idata = idata + 1
   23086     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23087     3332262 :          full_data(idata) = data_tmp
   23088     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23089     3332262 :          idata = idata + 1
   23090     3332262 :          data_tmp = ISHFT(pack_tmp, 6)
   23091     3332262 :          ipack = ipack + 1
   23092     3332262 :          pack_tmp = packed_data(ipack)
   23093     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   23094     3332262 :          pack_tmp = ISHFT(pack_tmp, -6)
   23095     3332262 :          idata = idata + 1
   23096     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23097     3332262 :          full_data(idata) = data_tmp
   23098     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23099     3332262 :          idata = idata + 1
   23100     3332262 :          data_tmp = ISHFT(pack_tmp, 4)
   23101     3332262 :          ipack = ipack + 1
   23102     3332262 :          pack_tmp = packed_data(ipack)
   23103     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   23104     3332262 :          pack_tmp = ISHFT(pack_tmp, -4)
   23105     3332262 :          idata = idata + 1
   23106     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23107     3332262 :          full_data(idata) = data_tmp
   23108     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23109     3332262 :          idata = idata + 1
   23110     3332262 :          data_tmp = ISHFT(pack_tmp, 2)
   23111     3332262 :          ipack = ipack + 1
   23112     3332262 :          pack_tmp = packed_data(ipack)
   23113     3332262 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   23114     3332262 :          pack_tmp = ISHFT(pack_tmp, -2)
   23115     3332262 :          idata = idata + 1
   23116     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23117     3332262 :          full_data(idata) = data_tmp
   23118     3332262 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23119     3332262 :          idata = idata + 1
   23120     3332262 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23121     3332262 :          full_data(idata) = data_tmp
   23122     3334442 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23123             :       END DO
   23124      266298 :       IF (Ndata_rep < Ndata) THEN
   23125      109236 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   23126             :       END IF
   23127      266298 :    END SUBROUTINE bits2ints_31
   23128             : 
   23129             : ! **************************************************************************************************
   23130             : !> \brief ...
   23131             : !> \param Ndata ...
   23132             : !> \param packed_data ...
   23133             : !> \param full_data ...
   23134             : ! **************************************************************************************************
   23135       45221 :    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       45221 :       idata = 0
   23146       45221 :       ipack = 0
   23147       45221 :       Ndata_rep = (Ndata/64)*64
   23148       45221 :       DO kdata = 1, Ndata_rep, 64
   23149      600192 :          pack_tmp = 0
   23150      600192 :          idata = idata + 1
   23151      600192 :          data_tmp = full_data(idata)
   23152      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23153      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23154      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23155      600192 :          idata = idata + 1
   23156      600192 :          data_tmp = full_data(idata)
   23157      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23158      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23159      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23160      600192 :          idata = idata + 1
   23161      600192 :          data_tmp = full_data(idata)
   23162             :          data_tmp = ISHFT(data_tmp, 32)
   23163      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23164      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23165      600192 :          ipack = ipack + 1
   23166      600192 :          packed_data(ipack) = pack_tmp
   23167      600192 :          data_tmp = full_data(idata)
   23168      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23169      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23170      600192 :          idata = idata + 1
   23171      600192 :          data_tmp = full_data(idata)
   23172      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23173      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23174      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23175      600192 :          idata = idata + 1
   23176      600192 :          data_tmp = full_data(idata)
   23177             :          data_tmp = ISHFT(data_tmp, 32)
   23178      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23179      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23180      600192 :          ipack = ipack + 1
   23181      600192 :          packed_data(ipack) = pack_tmp
   23182      600192 :          data_tmp = full_data(idata)
   23183      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23184      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23185      600192 :          idata = idata + 1
   23186      600192 :          data_tmp = full_data(idata)
   23187      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23188      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23189      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23190      600192 :          idata = idata + 1
   23191      600192 :          data_tmp = full_data(idata)
   23192             :          data_tmp = ISHFT(data_tmp, 32)
   23193      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23194      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23195      600192 :          ipack = ipack + 1
   23196      600192 :          packed_data(ipack) = pack_tmp
   23197      600192 :          data_tmp = full_data(idata)
   23198      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23199      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23200      600192 :          idata = idata + 1
   23201      600192 :          data_tmp = full_data(idata)
   23202      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23203      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23204      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23205      600192 :          idata = idata + 1
   23206      600192 :          data_tmp = full_data(idata)
   23207             :          data_tmp = ISHFT(data_tmp, 32)
   23208      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23209      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23210      600192 :          ipack = ipack + 1
   23211      600192 :          packed_data(ipack) = pack_tmp
   23212      600192 :          data_tmp = full_data(idata)
   23213      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23214      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23215      600192 :          idata = idata + 1
   23216      600192 :          data_tmp = full_data(idata)
   23217      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23218      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23219      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23220      600192 :          idata = idata + 1
   23221      600192 :          data_tmp = full_data(idata)
   23222             :          data_tmp = ISHFT(data_tmp, 32)
   23223      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23224      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23225      600192 :          ipack = ipack + 1
   23226      600192 :          packed_data(ipack) = pack_tmp
   23227      600192 :          data_tmp = full_data(idata)
   23228      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23229      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23230      600192 :          idata = idata + 1
   23231      600192 :          data_tmp = full_data(idata)
   23232      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23233      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23234      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23235      600192 :          idata = idata + 1
   23236      600192 :          data_tmp = full_data(idata)
   23237             :          data_tmp = ISHFT(data_tmp, 32)
   23238      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23239      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23240      600192 :          ipack = ipack + 1
   23241      600192 :          packed_data(ipack) = pack_tmp
   23242      600192 :          data_tmp = full_data(idata)
   23243      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23244      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23245      600192 :          idata = idata + 1
   23246      600192 :          data_tmp = full_data(idata)
   23247      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23248      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23249      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23250      600192 :          idata = idata + 1
   23251      600192 :          data_tmp = full_data(idata)
   23252             :          data_tmp = ISHFT(data_tmp, 32)
   23253      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23254      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23255      600192 :          ipack = ipack + 1
   23256      600192 :          packed_data(ipack) = pack_tmp
   23257      600192 :          data_tmp = full_data(idata)
   23258      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23259      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23260      600192 :          idata = idata + 1
   23261      600192 :          data_tmp = full_data(idata)
   23262      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23263      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23264      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23265      600192 :          idata = idata + 1
   23266      600192 :          data_tmp = full_data(idata)
   23267             :          data_tmp = ISHFT(data_tmp, 32)
   23268      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23269      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23270      600192 :          ipack = ipack + 1
   23271      600192 :          packed_data(ipack) = pack_tmp
   23272      600192 :          data_tmp = full_data(idata)
   23273      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23274      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23275      600192 :          idata = idata + 1
   23276      600192 :          data_tmp = full_data(idata)
   23277      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23278      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23279      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23280      600192 :          idata = idata + 1
   23281      600192 :          data_tmp = full_data(idata)
   23282             :          data_tmp = ISHFT(data_tmp, 32)
   23283      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23284      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23285      600192 :          ipack = ipack + 1
   23286      600192 :          packed_data(ipack) = pack_tmp
   23287      600192 :          data_tmp = full_data(idata)
   23288      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23289      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23290      600192 :          idata = idata + 1
   23291      600192 :          data_tmp = full_data(idata)
   23292      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23293      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23294      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23295      600192 :          idata = idata + 1
   23296      600192 :          data_tmp = full_data(idata)
   23297             :          data_tmp = ISHFT(data_tmp, 32)
   23298      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23299      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23300      600192 :          ipack = ipack + 1
   23301      600192 :          packed_data(ipack) = pack_tmp
   23302      600192 :          data_tmp = full_data(idata)
   23303      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23304      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23305      600192 :          idata = idata + 1
   23306      600192 :          data_tmp = full_data(idata)
   23307      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23308      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23309      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23310      600192 :          idata = idata + 1
   23311      600192 :          data_tmp = full_data(idata)
   23312             :          data_tmp = ISHFT(data_tmp, 32)
   23313      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23314      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23315      600192 :          ipack = ipack + 1
   23316      600192 :          packed_data(ipack) = pack_tmp
   23317      600192 :          data_tmp = full_data(idata)
   23318      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23319      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23320      600192 :          idata = idata + 1
   23321      600192 :          data_tmp = full_data(idata)
   23322      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23323      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23324      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23325      600192 :          idata = idata + 1
   23326      600192 :          data_tmp = full_data(idata)
   23327             :          data_tmp = ISHFT(data_tmp, 32)
   23328      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23329      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23330      600192 :          ipack = ipack + 1
   23331      600192 :          packed_data(ipack) = pack_tmp
   23332      600192 :          data_tmp = full_data(idata)
   23333      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23334      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23335      600192 :          idata = idata + 1
   23336      600192 :          data_tmp = full_data(idata)
   23337      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23338      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23339      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23340      600192 :          idata = idata + 1
   23341      600192 :          data_tmp = full_data(idata)
   23342             :          data_tmp = ISHFT(data_tmp, 32)
   23343      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23344      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23345      600192 :          ipack = ipack + 1
   23346      600192 :          packed_data(ipack) = pack_tmp
   23347      600192 :          data_tmp = full_data(idata)
   23348      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23349      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23350      600192 :          idata = idata + 1
   23351      600192 :          data_tmp = full_data(idata)
   23352      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23353      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23354      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23355      600192 :          idata = idata + 1
   23356      600192 :          data_tmp = full_data(idata)
   23357             :          data_tmp = ISHFT(data_tmp, 32)
   23358      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23359      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23360      600192 :          ipack = ipack + 1
   23361      600192 :          packed_data(ipack) = pack_tmp
   23362      600192 :          data_tmp = full_data(idata)
   23363      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23364      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23365      600192 :          idata = idata + 1
   23366      600192 :          data_tmp = full_data(idata)
   23367      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23368      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23369      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23370      600192 :          idata = idata + 1
   23371      600192 :          data_tmp = full_data(idata)
   23372             :          data_tmp = ISHFT(data_tmp, 32)
   23373      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23374      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23375      600192 :          ipack = ipack + 1
   23376      600192 :          packed_data(ipack) = pack_tmp
   23377      600192 :          data_tmp = full_data(idata)
   23378      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23379      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23380      600192 :          idata = idata + 1
   23381      600192 :          data_tmp = full_data(idata)
   23382      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23383      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23384      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23385      600192 :          idata = idata + 1
   23386      600192 :          data_tmp = full_data(idata)
   23387             :          data_tmp = ISHFT(data_tmp, 32)
   23388      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23389      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23390      600192 :          ipack = ipack + 1
   23391      600192 :          packed_data(ipack) = pack_tmp
   23392      600192 :          data_tmp = full_data(idata)
   23393      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23394      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23395      600192 :          idata = idata + 1
   23396      600192 :          data_tmp = full_data(idata)
   23397      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23398      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23399      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23400      600192 :          idata = idata + 1
   23401      600192 :          data_tmp = full_data(idata)
   23402             :          data_tmp = ISHFT(data_tmp, 32)
   23403      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23404      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23405      600192 :          ipack = ipack + 1
   23406      600192 :          packed_data(ipack) = pack_tmp
   23407      600192 :          data_tmp = full_data(idata)
   23408      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23409      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23410      600192 :          idata = idata + 1
   23411      600192 :          data_tmp = full_data(idata)
   23412      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23413      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23414      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23415      600192 :          idata = idata + 1
   23416      600192 :          data_tmp = full_data(idata)
   23417             :          data_tmp = ISHFT(data_tmp, 32)
   23418      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23419      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23420      600192 :          ipack = ipack + 1
   23421      600192 :          packed_data(ipack) = pack_tmp
   23422      600192 :          data_tmp = full_data(idata)
   23423      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23424      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23425      600192 :          idata = idata + 1
   23426      600192 :          data_tmp = full_data(idata)
   23427      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23428      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23429      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23430      600192 :          idata = idata + 1
   23431      600192 :          data_tmp = full_data(idata)
   23432             :          data_tmp = ISHFT(data_tmp, 32)
   23433      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23434      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23435      600192 :          ipack = ipack + 1
   23436      600192 :          packed_data(ipack) = pack_tmp
   23437      600192 :          data_tmp = full_data(idata)
   23438      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23439      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23440      600192 :          idata = idata + 1
   23441      600192 :          data_tmp = full_data(idata)
   23442      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23443      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23444      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23445      600192 :          idata = idata + 1
   23446      600192 :          data_tmp = full_data(idata)
   23447             :          data_tmp = ISHFT(data_tmp, 32)
   23448      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23449      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23450      600192 :          ipack = ipack + 1
   23451      600192 :          packed_data(ipack) = pack_tmp
   23452      600192 :          data_tmp = full_data(idata)
   23453      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23454      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23455      600192 :          idata = idata + 1
   23456      600192 :          data_tmp = full_data(idata)
   23457      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23458      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23459      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23460      600192 :          idata = idata + 1
   23461      600192 :          data_tmp = full_data(idata)
   23462             :          data_tmp = ISHFT(data_tmp, 32)
   23463      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23464      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23465      600192 :          ipack = ipack + 1
   23466      600192 :          packed_data(ipack) = pack_tmp
   23467      600192 :          data_tmp = full_data(idata)
   23468      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23469      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23470      600192 :          idata = idata + 1
   23471      600192 :          data_tmp = full_data(idata)
   23472      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23473      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23474      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23475      600192 :          idata = idata + 1
   23476      600192 :          data_tmp = full_data(idata)
   23477             :          data_tmp = ISHFT(data_tmp, 32)
   23478      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23479      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23480      600192 :          ipack = ipack + 1
   23481      600192 :          packed_data(ipack) = pack_tmp
   23482      600192 :          data_tmp = full_data(idata)
   23483      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23484      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23485      600192 :          idata = idata + 1
   23486      600192 :          data_tmp = full_data(idata)
   23487      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23488      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23489      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23490      600192 :          idata = idata + 1
   23491      600192 :          data_tmp = full_data(idata)
   23492             :          data_tmp = ISHFT(data_tmp, 32)
   23493      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23494      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23495      600192 :          ipack = ipack + 1
   23496      600192 :          packed_data(ipack) = pack_tmp
   23497      600192 :          data_tmp = full_data(idata)
   23498      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23499      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23500      600192 :          idata = idata + 1
   23501      600192 :          data_tmp = full_data(idata)
   23502      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23503      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23504      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23505      600192 :          idata = idata + 1
   23506      600192 :          data_tmp = full_data(idata)
   23507             :          data_tmp = ISHFT(data_tmp, 32)
   23508      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23509      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23510      600192 :          ipack = ipack + 1
   23511      600192 :          packed_data(ipack) = pack_tmp
   23512      600192 :          data_tmp = full_data(idata)
   23513      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23514      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23515      600192 :          idata = idata + 1
   23516      600192 :          data_tmp = full_data(idata)
   23517      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23518      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23519      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23520      600192 :          idata = idata + 1
   23521      600192 :          data_tmp = full_data(idata)
   23522             :          data_tmp = ISHFT(data_tmp, 32)
   23523      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23524      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23525      600192 :          ipack = ipack + 1
   23526      600192 :          packed_data(ipack) = pack_tmp
   23527      600192 :          data_tmp = full_data(idata)
   23528      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23529      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23530      600192 :          idata = idata + 1
   23531      600192 :          data_tmp = full_data(idata)
   23532      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23533      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23534      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23535      600192 :          idata = idata + 1
   23536      600192 :          data_tmp = full_data(idata)
   23537             :          data_tmp = ISHFT(data_tmp, 32)
   23538      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23539      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23540      600192 :          ipack = ipack + 1
   23541      600192 :          packed_data(ipack) = pack_tmp
   23542      600192 :          data_tmp = full_data(idata)
   23543      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23544      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23545      600192 :          idata = idata + 1
   23546      600192 :          data_tmp = full_data(idata)
   23547      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23548      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23549      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23550      600192 :          idata = idata + 1
   23551      600192 :          data_tmp = full_data(idata)
   23552             :          data_tmp = ISHFT(data_tmp, 32)
   23553      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23554      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23555      600192 :          ipack = ipack + 1
   23556      600192 :          packed_data(ipack) = pack_tmp
   23557      600192 :          data_tmp = full_data(idata)
   23558      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23559      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23560      600192 :          idata = idata + 1
   23561      600192 :          data_tmp = full_data(idata)
   23562      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23563      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23564      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23565      600192 :          idata = idata + 1
   23566      600192 :          data_tmp = full_data(idata)
   23567             :          data_tmp = ISHFT(data_tmp, 32)
   23568      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23569      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23570      600192 :          ipack = ipack + 1
   23571      600192 :          packed_data(ipack) = pack_tmp
   23572      600192 :          data_tmp = full_data(idata)
   23573      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23574      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23575      600192 :          idata = idata + 1
   23576      600192 :          data_tmp = full_data(idata)
   23577      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23578      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23579      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23580      600192 :          idata = idata + 1
   23581      600192 :          data_tmp = full_data(idata)
   23582             :          data_tmp = ISHFT(data_tmp, 32)
   23583      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23584      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23585      600192 :          ipack = ipack + 1
   23586      600192 :          packed_data(ipack) = pack_tmp
   23587      600192 :          data_tmp = full_data(idata)
   23588      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23589      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23590      600192 :          idata = idata + 1
   23591      600192 :          data_tmp = full_data(idata)
   23592      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23593      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23594      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23595      600192 :          idata = idata + 1
   23596      600192 :          data_tmp = full_data(idata)
   23597             :          data_tmp = ISHFT(data_tmp, 32)
   23598      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23599      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23600      600192 :          ipack = ipack + 1
   23601      600192 :          packed_data(ipack) = pack_tmp
   23602      600192 :          data_tmp = full_data(idata)
   23603      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23604      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23605      600192 :          idata = idata + 1
   23606      600192 :          data_tmp = full_data(idata)
   23607      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23608      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23609      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23610      600192 :          idata = idata + 1
   23611      600192 :          data_tmp = full_data(idata)
   23612             :          data_tmp = ISHFT(data_tmp, 32)
   23613      600192 :          data_tmp = IAND(data_tmp, mask_left(0))
   23614      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23615      600192 :          ipack = ipack + 1
   23616      600192 :          packed_data(ipack) = pack_tmp
   23617      600192 :          data_tmp = full_data(idata)
   23618      600192 :          pack_tmp = ISHFT(data_tmp, 32)
   23619      600192 :          pack_tmp = ISHFT(pack_tmp, -32)
   23620      600192 :          idata = idata + 1
   23621      600192 :          data_tmp = full_data(idata)
   23622      600192 :          data_tmp = ISHFT(data_tmp, 32)
   23623      600192 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23624             :          pack_tmp = ISHFT(pack_tmp, 0)
   23625      600192 :          pack_tmp = ISHFT(pack_tmp, 0)
   23626      600192 :          ipack = ipack + 1
   23627      607901 :          packed_data(ipack) = pack_tmp
   23628             :       END DO
   23629       45221 :       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       45221 :    END SUBROUTINE ints2bits_32
   23633             : 
   23634             : ! **************************************************************************************************
   23635             : !> \brief ...
   23636             : !> \param Ndata ...
   23637             : !> \param packed_data ...
   23638             : !> \param full_data ...
   23639             : ! **************************************************************************************************
   23640      341168 :    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      341168 :       ipack = 0
   23651      341168 :       idata = 0
   23652      341168 :       pack_tmp = 0
   23653      341168 :       Ndata_rep = (Ndata/64)*64
   23654      341168 :       DO kdata = 1, Ndata_rep, 64
   23655     4087696 :          idata = idata + 1
   23656     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23657     4087696 :          ipack = ipack + 1
   23658     4087696 :          pack_tmp = packed_data(ipack)
   23659     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23660     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23661     4087696 :          idata = idata + 1
   23662     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23663     4087696 :          full_data(idata) = data_tmp
   23664     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23665     4087696 :          idata = idata + 1
   23666     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23667     4087696 :          ipack = ipack + 1
   23668     4087696 :          pack_tmp = packed_data(ipack)
   23669     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23670     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23671     4087696 :          idata = idata + 1
   23672     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23673     4087696 :          full_data(idata) = data_tmp
   23674     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23675     4087696 :          idata = idata + 1
   23676     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23677     4087696 :          ipack = ipack + 1
   23678     4087696 :          pack_tmp = packed_data(ipack)
   23679     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23680     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23681     4087696 :          idata = idata + 1
   23682     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23683     4087696 :          full_data(idata) = data_tmp
   23684     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23685     4087696 :          idata = idata + 1
   23686     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23687     4087696 :          ipack = ipack + 1
   23688     4087696 :          pack_tmp = packed_data(ipack)
   23689     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23690     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23691     4087696 :          idata = idata + 1
   23692     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23693     4087696 :          full_data(idata) = data_tmp
   23694     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23695     4087696 :          idata = idata + 1
   23696     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23697     4087696 :          ipack = ipack + 1
   23698     4087696 :          pack_tmp = packed_data(ipack)
   23699     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23700     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23701     4087696 :          idata = idata + 1
   23702     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23703     4087696 :          full_data(idata) = data_tmp
   23704     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23705     4087696 :          idata = idata + 1
   23706     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23707     4087696 :          ipack = ipack + 1
   23708     4087696 :          pack_tmp = packed_data(ipack)
   23709     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23710     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23711     4087696 :          idata = idata + 1
   23712     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23713     4087696 :          full_data(idata) = data_tmp
   23714     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23715     4087696 :          idata = idata + 1
   23716     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23717     4087696 :          ipack = ipack + 1
   23718     4087696 :          pack_tmp = packed_data(ipack)
   23719     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23720     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23721     4087696 :          idata = idata + 1
   23722     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23723     4087696 :          full_data(idata) = data_tmp
   23724     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23725     4087696 :          idata = idata + 1
   23726     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23727     4087696 :          ipack = ipack + 1
   23728     4087696 :          pack_tmp = packed_data(ipack)
   23729     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23730     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23731     4087696 :          idata = idata + 1
   23732     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23733     4087696 :          full_data(idata) = data_tmp
   23734     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23735     4087696 :          idata = idata + 1
   23736     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23737     4087696 :          ipack = ipack + 1
   23738     4087696 :          pack_tmp = packed_data(ipack)
   23739     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23740     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23741     4087696 :          idata = idata + 1
   23742     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23743     4087696 :          full_data(idata) = data_tmp
   23744     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23745     4087696 :          idata = idata + 1
   23746     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23747     4087696 :          ipack = ipack + 1
   23748     4087696 :          pack_tmp = packed_data(ipack)
   23749     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23750     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23751     4087696 :          idata = idata + 1
   23752     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23753     4087696 :          full_data(idata) = data_tmp
   23754     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23755     4087696 :          idata = idata + 1
   23756     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23757     4087696 :          ipack = ipack + 1
   23758     4087696 :          pack_tmp = packed_data(ipack)
   23759     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23760     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23761     4087696 :          idata = idata + 1
   23762     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23763     4087696 :          full_data(idata) = data_tmp
   23764     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23765     4087696 :          idata = idata + 1
   23766     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23767     4087696 :          ipack = ipack + 1
   23768     4087696 :          pack_tmp = packed_data(ipack)
   23769     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23770     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23771     4087696 :          idata = idata + 1
   23772     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23773     4087696 :          full_data(idata) = data_tmp
   23774     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23775     4087696 :          idata = idata + 1
   23776     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23777     4087696 :          ipack = ipack + 1
   23778     4087696 :          pack_tmp = packed_data(ipack)
   23779     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23780     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23781     4087696 :          idata = idata + 1
   23782     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23783     4087696 :          full_data(idata) = data_tmp
   23784     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23785     4087696 :          idata = idata + 1
   23786     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23787     4087696 :          ipack = ipack + 1
   23788     4087696 :          pack_tmp = packed_data(ipack)
   23789     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23790     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23791     4087696 :          idata = idata + 1
   23792     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23793     4087696 :          full_data(idata) = data_tmp
   23794     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23795     4087696 :          idata = idata + 1
   23796     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23797     4087696 :          ipack = ipack + 1
   23798     4087696 :          pack_tmp = packed_data(ipack)
   23799     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23800     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23801     4087696 :          idata = idata + 1
   23802     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23803     4087696 :          full_data(idata) = data_tmp
   23804     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23805     4087696 :          idata = idata + 1
   23806     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23807     4087696 :          ipack = ipack + 1
   23808     4087696 :          pack_tmp = packed_data(ipack)
   23809     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23810     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23811     4087696 :          idata = idata + 1
   23812     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23813     4087696 :          full_data(idata) = data_tmp
   23814     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23815     4087696 :          idata = idata + 1
   23816     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23817     4087696 :          ipack = ipack + 1
   23818     4087696 :          pack_tmp = packed_data(ipack)
   23819     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23820     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23821     4087696 :          idata = idata + 1
   23822     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23823     4087696 :          full_data(idata) = data_tmp
   23824     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23825     4087696 :          idata = idata + 1
   23826     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23827     4087696 :          ipack = ipack + 1
   23828     4087696 :          pack_tmp = packed_data(ipack)
   23829     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23830     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23831     4087696 :          idata = idata + 1
   23832     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23833     4087696 :          full_data(idata) = data_tmp
   23834     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23835     4087696 :          idata = idata + 1
   23836     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23837     4087696 :          ipack = ipack + 1
   23838     4087696 :          pack_tmp = packed_data(ipack)
   23839     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23840     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23841     4087696 :          idata = idata + 1
   23842     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23843     4087696 :          full_data(idata) = data_tmp
   23844     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23845     4087696 :          idata = idata + 1
   23846     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23847     4087696 :          ipack = ipack + 1
   23848     4087696 :          pack_tmp = packed_data(ipack)
   23849     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23850     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23851     4087696 :          idata = idata + 1
   23852     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23853     4087696 :          full_data(idata) = data_tmp
   23854     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23855     4087696 :          idata = idata + 1
   23856     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23857     4087696 :          ipack = ipack + 1
   23858     4087696 :          pack_tmp = packed_data(ipack)
   23859     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23860     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23861     4087696 :          idata = idata + 1
   23862     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23863     4087696 :          full_data(idata) = data_tmp
   23864     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23865     4087696 :          idata = idata + 1
   23866     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23867     4087696 :          ipack = ipack + 1
   23868     4087696 :          pack_tmp = packed_data(ipack)
   23869     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23870     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23871     4087696 :          idata = idata + 1
   23872     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23873     4087696 :          full_data(idata) = data_tmp
   23874     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23875     4087696 :          idata = idata + 1
   23876     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23877     4087696 :          ipack = ipack + 1
   23878     4087696 :          pack_tmp = packed_data(ipack)
   23879     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23880     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23881     4087696 :          idata = idata + 1
   23882     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23883     4087696 :          full_data(idata) = data_tmp
   23884     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23885     4087696 :          idata = idata + 1
   23886     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23887     4087696 :          ipack = ipack + 1
   23888     4087696 :          pack_tmp = packed_data(ipack)
   23889     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23890     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23891     4087696 :          idata = idata + 1
   23892     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23893     4087696 :          full_data(idata) = data_tmp
   23894     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23895     4087696 :          idata = idata + 1
   23896     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23897     4087696 :          ipack = ipack + 1
   23898     4087696 :          pack_tmp = packed_data(ipack)
   23899     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23900     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23901     4087696 :          idata = idata + 1
   23902     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23903     4087696 :          full_data(idata) = data_tmp
   23904     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23905     4087696 :          idata = idata + 1
   23906     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23907     4087696 :          ipack = ipack + 1
   23908     4087696 :          pack_tmp = packed_data(ipack)
   23909     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23910     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23911     4087696 :          idata = idata + 1
   23912     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23913     4087696 :          full_data(idata) = data_tmp
   23914     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23915     4087696 :          idata = idata + 1
   23916     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23917     4087696 :          ipack = ipack + 1
   23918     4087696 :          pack_tmp = packed_data(ipack)
   23919     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23920     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23921     4087696 :          idata = idata + 1
   23922     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23923     4087696 :          full_data(idata) = data_tmp
   23924     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23925     4087696 :          idata = idata + 1
   23926     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23927     4087696 :          ipack = ipack + 1
   23928     4087696 :          pack_tmp = packed_data(ipack)
   23929     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23930     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23931     4087696 :          idata = idata + 1
   23932     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23933     4087696 :          full_data(idata) = data_tmp
   23934     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23935     4087696 :          idata = idata + 1
   23936     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23937     4087696 :          ipack = ipack + 1
   23938     4087696 :          pack_tmp = packed_data(ipack)
   23939     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23940     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23941     4087696 :          idata = idata + 1
   23942     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23943     4087696 :          full_data(idata) = data_tmp
   23944     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23945     4087696 :          idata = idata + 1
   23946     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23947     4087696 :          ipack = ipack + 1
   23948     4087696 :          pack_tmp = packed_data(ipack)
   23949     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23950     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23951     4087696 :          idata = idata + 1
   23952     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23953     4087696 :          full_data(idata) = data_tmp
   23954     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23955     4087696 :          idata = idata + 1
   23956     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23957     4087696 :          ipack = ipack + 1
   23958     4087696 :          pack_tmp = packed_data(ipack)
   23959     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23960     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23961     4087696 :          idata = idata + 1
   23962     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23963     4087696 :          full_data(idata) = data_tmp
   23964     4087696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23965     4087696 :          idata = idata + 1
   23966     4087696 :          data_tmp = ISHFT(pack_tmp, 32)
   23967     4087696 :          ipack = ipack + 1
   23968     4087696 :          pack_tmp = packed_data(ipack)
   23969     4087696 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23970     4087696 :          pack_tmp = ISHFT(pack_tmp, -32)
   23971     4087696 :          idata = idata + 1
   23972     4087696 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23973     4087696 :          full_data(idata) = data_tmp
   23974     4173383 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23975             :       END DO
   23976      341168 :       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      341168 :    END SUBROUTINE bits2ints_32
   23980             : 
   23981             : ! **************************************************************************************************
   23982             : !> \brief ...
   23983             : !> \param Ndata ...
   23984             : !> \param packed_data ...
   23985             : !> \param full_data ...
   23986             : ! **************************************************************************************************
   23987       46023 :    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       46023 :       idata = 0
   23998       46023 :       ipack = 0
   23999       46023 :       Ndata_rep = (Ndata/64)*64
   24000       46023 :       DO kdata = 1, Ndata_rep, 64
   24001      598447 :          pack_tmp = 0
   24002      598447 :          idata = idata + 1
   24003      598447 :          data_tmp = full_data(idata)
   24004      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24005      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24006      598447 :          pack_tmp = ISHFT(pack_tmp, -31)
   24007      598447 :          idata = idata + 1
   24008      598447 :          data_tmp = full_data(idata)
   24009      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24010      598447 :          data_tmp = IAND(data_tmp, mask_left(31))
   24011      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24012      598447 :          ipack = ipack + 1
   24013      598447 :          packed_data(ipack) = pack_tmp
   24014      598447 :          data_tmp = full_data(idata)
   24015      598447 :          pack_tmp = ISHFT(data_tmp, 62)
   24016      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24017      598447 :          idata = idata + 1
   24018      598447 :          data_tmp = full_data(idata)
   24019      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24020      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24021      598447 :          pack_tmp = ISHFT(pack_tmp, -29)
   24022      598447 :          idata = idata + 1
   24023      598447 :          data_tmp = full_data(idata)
   24024      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24025      598447 :          data_tmp = IAND(data_tmp, mask_left(29))
   24026      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24027      598447 :          ipack = ipack + 1
   24028      598447 :          packed_data(ipack) = pack_tmp
   24029      598447 :          data_tmp = full_data(idata)
   24030      598447 :          pack_tmp = ISHFT(data_tmp, 60)
   24031      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24032      598447 :          idata = idata + 1
   24033      598447 :          data_tmp = full_data(idata)
   24034      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24035      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24036      598447 :          pack_tmp = ISHFT(pack_tmp, -27)
   24037      598447 :          idata = idata + 1
   24038      598447 :          data_tmp = full_data(idata)
   24039      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24040      598447 :          data_tmp = IAND(data_tmp, mask_left(27))
   24041      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24042      598447 :          ipack = ipack + 1
   24043      598447 :          packed_data(ipack) = pack_tmp
   24044      598447 :          data_tmp = full_data(idata)
   24045      598447 :          pack_tmp = ISHFT(data_tmp, 58)
   24046      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24047      598447 :          idata = idata + 1
   24048      598447 :          data_tmp = full_data(idata)
   24049      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24050      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24051      598447 :          pack_tmp = ISHFT(pack_tmp, -25)
   24052      598447 :          idata = idata + 1
   24053      598447 :          data_tmp = full_data(idata)
   24054      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24055      598447 :          data_tmp = IAND(data_tmp, mask_left(25))
   24056      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24057      598447 :          ipack = ipack + 1
   24058      598447 :          packed_data(ipack) = pack_tmp
   24059      598447 :          data_tmp = full_data(idata)
   24060      598447 :          pack_tmp = ISHFT(data_tmp, 56)
   24061      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24062      598447 :          idata = idata + 1
   24063      598447 :          data_tmp = full_data(idata)
   24064      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24065      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24066      598447 :          pack_tmp = ISHFT(pack_tmp, -23)
   24067      598447 :          idata = idata + 1
   24068      598447 :          data_tmp = full_data(idata)
   24069      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24070      598447 :          data_tmp = IAND(data_tmp, mask_left(23))
   24071      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24072      598447 :          ipack = ipack + 1
   24073      598447 :          packed_data(ipack) = pack_tmp
   24074      598447 :          data_tmp = full_data(idata)
   24075      598447 :          pack_tmp = ISHFT(data_tmp, 54)
   24076      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24077      598447 :          idata = idata + 1
   24078      598447 :          data_tmp = full_data(idata)
   24079      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24080      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24081      598447 :          pack_tmp = ISHFT(pack_tmp, -21)
   24082      598447 :          idata = idata + 1
   24083      598447 :          data_tmp = full_data(idata)
   24084      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24085      598447 :          data_tmp = IAND(data_tmp, mask_left(21))
   24086      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24087      598447 :          ipack = ipack + 1
   24088      598447 :          packed_data(ipack) = pack_tmp
   24089      598447 :          data_tmp = full_data(idata)
   24090      598447 :          pack_tmp = ISHFT(data_tmp, 52)
   24091      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24092      598447 :          idata = idata + 1
   24093      598447 :          data_tmp = full_data(idata)
   24094      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24095      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24096      598447 :          pack_tmp = ISHFT(pack_tmp, -19)
   24097      598447 :          idata = idata + 1
   24098      598447 :          data_tmp = full_data(idata)
   24099      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24100      598447 :          data_tmp = IAND(data_tmp, mask_left(19))
   24101      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24102      598447 :          ipack = ipack + 1
   24103      598447 :          packed_data(ipack) = pack_tmp
   24104      598447 :          data_tmp = full_data(idata)
   24105      598447 :          pack_tmp = ISHFT(data_tmp, 50)
   24106      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24107      598447 :          idata = idata + 1
   24108      598447 :          data_tmp = full_data(idata)
   24109      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24110      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24111      598447 :          pack_tmp = ISHFT(pack_tmp, -17)
   24112      598447 :          idata = idata + 1
   24113      598447 :          data_tmp = full_data(idata)
   24114      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24115      598447 :          data_tmp = IAND(data_tmp, mask_left(17))
   24116      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24117      598447 :          ipack = ipack + 1
   24118      598447 :          packed_data(ipack) = pack_tmp
   24119      598447 :          data_tmp = full_data(idata)
   24120      598447 :          pack_tmp = ISHFT(data_tmp, 48)
   24121      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24122      598447 :          idata = idata + 1
   24123      598447 :          data_tmp = full_data(idata)
   24124      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24125      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24126      598447 :          pack_tmp = ISHFT(pack_tmp, -15)
   24127      598447 :          idata = idata + 1
   24128      598447 :          data_tmp = full_data(idata)
   24129      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24130      598447 :          data_tmp = IAND(data_tmp, mask_left(15))
   24131      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24132      598447 :          ipack = ipack + 1
   24133      598447 :          packed_data(ipack) = pack_tmp
   24134      598447 :          data_tmp = full_data(idata)
   24135      598447 :          pack_tmp = ISHFT(data_tmp, 46)
   24136      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24137      598447 :          idata = idata + 1
   24138      598447 :          data_tmp = full_data(idata)
   24139      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24140      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24141      598447 :          pack_tmp = ISHFT(pack_tmp, -13)
   24142      598447 :          idata = idata + 1
   24143      598447 :          data_tmp = full_data(idata)
   24144      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24145      598447 :          data_tmp = IAND(data_tmp, mask_left(13))
   24146      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24147      598447 :          ipack = ipack + 1
   24148      598447 :          packed_data(ipack) = pack_tmp
   24149      598447 :          data_tmp = full_data(idata)
   24150      598447 :          pack_tmp = ISHFT(data_tmp, 44)
   24151      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24152      598447 :          idata = idata + 1
   24153      598447 :          data_tmp = full_data(idata)
   24154      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24155      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24156      598447 :          pack_tmp = ISHFT(pack_tmp, -11)
   24157      598447 :          idata = idata + 1
   24158      598447 :          data_tmp = full_data(idata)
   24159      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24160      598447 :          data_tmp = IAND(data_tmp, mask_left(11))
   24161      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24162      598447 :          ipack = ipack + 1
   24163      598447 :          packed_data(ipack) = pack_tmp
   24164      598447 :          data_tmp = full_data(idata)
   24165      598447 :          pack_tmp = ISHFT(data_tmp, 42)
   24166      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24167      598447 :          idata = idata + 1
   24168      598447 :          data_tmp = full_data(idata)
   24169      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24170      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24171      598447 :          pack_tmp = ISHFT(pack_tmp, -9)
   24172      598447 :          idata = idata + 1
   24173      598447 :          data_tmp = full_data(idata)
   24174      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24175      598447 :          data_tmp = IAND(data_tmp, mask_left(9))
   24176      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24177      598447 :          ipack = ipack + 1
   24178      598447 :          packed_data(ipack) = pack_tmp
   24179      598447 :          data_tmp = full_data(idata)
   24180      598447 :          pack_tmp = ISHFT(data_tmp, 40)
   24181      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24182      598447 :          idata = idata + 1
   24183      598447 :          data_tmp = full_data(idata)
   24184      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24185      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24186      598447 :          pack_tmp = ISHFT(pack_tmp, -7)
   24187      598447 :          idata = idata + 1
   24188      598447 :          data_tmp = full_data(idata)
   24189      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24190      598447 :          data_tmp = IAND(data_tmp, mask_left(7))
   24191      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24192      598447 :          ipack = ipack + 1
   24193      598447 :          packed_data(ipack) = pack_tmp
   24194      598447 :          data_tmp = full_data(idata)
   24195      598447 :          pack_tmp = ISHFT(data_tmp, 38)
   24196      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24197      598447 :          idata = idata + 1
   24198      598447 :          data_tmp = full_data(idata)
   24199      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24200      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24201      598447 :          pack_tmp = ISHFT(pack_tmp, -5)
   24202      598447 :          idata = idata + 1
   24203      598447 :          data_tmp = full_data(idata)
   24204      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24205      598447 :          data_tmp = IAND(data_tmp, mask_left(5))
   24206      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24207      598447 :          ipack = ipack + 1
   24208      598447 :          packed_data(ipack) = pack_tmp
   24209      598447 :          data_tmp = full_data(idata)
   24210      598447 :          pack_tmp = ISHFT(data_tmp, 36)
   24211      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24212      598447 :          idata = idata + 1
   24213      598447 :          data_tmp = full_data(idata)
   24214      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24215      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24216      598447 :          pack_tmp = ISHFT(pack_tmp, -3)
   24217      598447 :          idata = idata + 1
   24218      598447 :          data_tmp = full_data(idata)
   24219      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24220      598447 :          data_tmp = IAND(data_tmp, mask_left(3))
   24221      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24222      598447 :          ipack = ipack + 1
   24223      598447 :          packed_data(ipack) = pack_tmp
   24224      598447 :          data_tmp = full_data(idata)
   24225      598447 :          pack_tmp = ISHFT(data_tmp, 34)
   24226      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24227      598447 :          idata = idata + 1
   24228      598447 :          data_tmp = full_data(idata)
   24229      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24230      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24231      598447 :          pack_tmp = ISHFT(pack_tmp, -1)
   24232      598447 :          idata = idata + 1
   24233      598447 :          data_tmp = full_data(idata)
   24234      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24235      598447 :          data_tmp = IAND(data_tmp, mask_left(1))
   24236      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24237      598447 :          ipack = ipack + 1
   24238      598447 :          packed_data(ipack) = pack_tmp
   24239      598447 :          data_tmp = full_data(idata)
   24240      598447 :          pack_tmp = ISHFT(data_tmp, 32)
   24241      598447 :          pack_tmp = ISHFT(pack_tmp, -32)
   24242      598447 :          idata = idata + 1
   24243      598447 :          data_tmp = full_data(idata)
   24244      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24245      598447 :          data_tmp = IAND(data_tmp, mask_left(32))
   24246      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24247      598447 :          ipack = ipack + 1
   24248      598447 :          packed_data(ipack) = pack_tmp
   24249      598447 :          data_tmp = full_data(idata)
   24250      598447 :          pack_tmp = ISHFT(data_tmp, 63)
   24251      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24252      598447 :          idata = idata + 1
   24253      598447 :          data_tmp = full_data(idata)
   24254      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24255      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24256      598447 :          pack_tmp = ISHFT(pack_tmp, -30)
   24257      598447 :          idata = idata + 1
   24258      598447 :          data_tmp = full_data(idata)
   24259      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24260      598447 :          data_tmp = IAND(data_tmp, mask_left(30))
   24261      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24262      598447 :          ipack = ipack + 1
   24263      598447 :          packed_data(ipack) = pack_tmp
   24264      598447 :          data_tmp = full_data(idata)
   24265      598447 :          pack_tmp = ISHFT(data_tmp, 61)
   24266      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24267      598447 :          idata = idata + 1
   24268      598447 :          data_tmp = full_data(idata)
   24269      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24270      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24271      598447 :          pack_tmp = ISHFT(pack_tmp, -28)
   24272      598447 :          idata = idata + 1
   24273      598447 :          data_tmp = full_data(idata)
   24274      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24275      598447 :          data_tmp = IAND(data_tmp, mask_left(28))
   24276      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24277      598447 :          ipack = ipack + 1
   24278      598447 :          packed_data(ipack) = pack_tmp
   24279      598447 :          data_tmp = full_data(idata)
   24280      598447 :          pack_tmp = ISHFT(data_tmp, 59)
   24281      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24282      598447 :          idata = idata + 1
   24283      598447 :          data_tmp = full_data(idata)
   24284      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24285      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24286      598447 :          pack_tmp = ISHFT(pack_tmp, -26)
   24287      598447 :          idata = idata + 1
   24288      598447 :          data_tmp = full_data(idata)
   24289      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24290      598447 :          data_tmp = IAND(data_tmp, mask_left(26))
   24291      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24292      598447 :          ipack = ipack + 1
   24293      598447 :          packed_data(ipack) = pack_tmp
   24294      598447 :          data_tmp = full_data(idata)
   24295      598447 :          pack_tmp = ISHFT(data_tmp, 57)
   24296      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24297      598447 :          idata = idata + 1
   24298      598447 :          data_tmp = full_data(idata)
   24299      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24300      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24301      598447 :          pack_tmp = ISHFT(pack_tmp, -24)
   24302      598447 :          idata = idata + 1
   24303      598447 :          data_tmp = full_data(idata)
   24304      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24305      598447 :          data_tmp = IAND(data_tmp, mask_left(24))
   24306      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24307      598447 :          ipack = ipack + 1
   24308      598447 :          packed_data(ipack) = pack_tmp
   24309      598447 :          data_tmp = full_data(idata)
   24310      598447 :          pack_tmp = ISHFT(data_tmp, 55)
   24311      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24312      598447 :          idata = idata + 1
   24313      598447 :          data_tmp = full_data(idata)
   24314      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24315      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24316      598447 :          pack_tmp = ISHFT(pack_tmp, -22)
   24317      598447 :          idata = idata + 1
   24318      598447 :          data_tmp = full_data(idata)
   24319      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24320      598447 :          data_tmp = IAND(data_tmp, mask_left(22))
   24321      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24322      598447 :          ipack = ipack + 1
   24323      598447 :          packed_data(ipack) = pack_tmp
   24324      598447 :          data_tmp = full_data(idata)
   24325      598447 :          pack_tmp = ISHFT(data_tmp, 53)
   24326      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24327      598447 :          idata = idata + 1
   24328      598447 :          data_tmp = full_data(idata)
   24329      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24330      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24331      598447 :          pack_tmp = ISHFT(pack_tmp, -20)
   24332      598447 :          idata = idata + 1
   24333      598447 :          data_tmp = full_data(idata)
   24334      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24335      598447 :          data_tmp = IAND(data_tmp, mask_left(20))
   24336      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24337      598447 :          ipack = ipack + 1
   24338      598447 :          packed_data(ipack) = pack_tmp
   24339      598447 :          data_tmp = full_data(idata)
   24340      598447 :          pack_tmp = ISHFT(data_tmp, 51)
   24341      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24342      598447 :          idata = idata + 1
   24343      598447 :          data_tmp = full_data(idata)
   24344      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24345      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24346      598447 :          pack_tmp = ISHFT(pack_tmp, -18)
   24347      598447 :          idata = idata + 1
   24348      598447 :          data_tmp = full_data(idata)
   24349      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24350      598447 :          data_tmp = IAND(data_tmp, mask_left(18))
   24351      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24352      598447 :          ipack = ipack + 1
   24353      598447 :          packed_data(ipack) = pack_tmp
   24354      598447 :          data_tmp = full_data(idata)
   24355      598447 :          pack_tmp = ISHFT(data_tmp, 49)
   24356      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24357      598447 :          idata = idata + 1
   24358      598447 :          data_tmp = full_data(idata)
   24359      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24360      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24361      598447 :          pack_tmp = ISHFT(pack_tmp, -16)
   24362      598447 :          idata = idata + 1
   24363      598447 :          data_tmp = full_data(idata)
   24364      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24365      598447 :          data_tmp = IAND(data_tmp, mask_left(16))
   24366      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24367      598447 :          ipack = ipack + 1
   24368      598447 :          packed_data(ipack) = pack_tmp
   24369      598447 :          data_tmp = full_data(idata)
   24370      598447 :          pack_tmp = ISHFT(data_tmp, 47)
   24371      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24372      598447 :          idata = idata + 1
   24373      598447 :          data_tmp = full_data(idata)
   24374      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24375      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24376      598447 :          pack_tmp = ISHFT(pack_tmp, -14)
   24377      598447 :          idata = idata + 1
   24378      598447 :          data_tmp = full_data(idata)
   24379      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24380      598447 :          data_tmp = IAND(data_tmp, mask_left(14))
   24381      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24382      598447 :          ipack = ipack + 1
   24383      598447 :          packed_data(ipack) = pack_tmp
   24384      598447 :          data_tmp = full_data(idata)
   24385      598447 :          pack_tmp = ISHFT(data_tmp, 45)
   24386      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24387      598447 :          idata = idata + 1
   24388      598447 :          data_tmp = full_data(idata)
   24389      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24390      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24391      598447 :          pack_tmp = ISHFT(pack_tmp, -12)
   24392      598447 :          idata = idata + 1
   24393      598447 :          data_tmp = full_data(idata)
   24394      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24395      598447 :          data_tmp = IAND(data_tmp, mask_left(12))
   24396      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24397      598447 :          ipack = ipack + 1
   24398      598447 :          packed_data(ipack) = pack_tmp
   24399      598447 :          data_tmp = full_data(idata)
   24400      598447 :          pack_tmp = ISHFT(data_tmp, 43)
   24401      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24402      598447 :          idata = idata + 1
   24403      598447 :          data_tmp = full_data(idata)
   24404      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24405      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24406      598447 :          pack_tmp = ISHFT(pack_tmp, -10)
   24407      598447 :          idata = idata + 1
   24408      598447 :          data_tmp = full_data(idata)
   24409      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24410      598447 :          data_tmp = IAND(data_tmp, mask_left(10))
   24411      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24412      598447 :          ipack = ipack + 1
   24413      598447 :          packed_data(ipack) = pack_tmp
   24414      598447 :          data_tmp = full_data(idata)
   24415      598447 :          pack_tmp = ISHFT(data_tmp, 41)
   24416      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24417      598447 :          idata = idata + 1
   24418      598447 :          data_tmp = full_data(idata)
   24419      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24420      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24421      598447 :          pack_tmp = ISHFT(pack_tmp, -8)
   24422      598447 :          idata = idata + 1
   24423      598447 :          data_tmp = full_data(idata)
   24424      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24425      598447 :          data_tmp = IAND(data_tmp, mask_left(8))
   24426      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24427      598447 :          ipack = ipack + 1
   24428      598447 :          packed_data(ipack) = pack_tmp
   24429      598447 :          data_tmp = full_data(idata)
   24430      598447 :          pack_tmp = ISHFT(data_tmp, 39)
   24431      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24432      598447 :          idata = idata + 1
   24433      598447 :          data_tmp = full_data(idata)
   24434      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24435      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24436      598447 :          pack_tmp = ISHFT(pack_tmp, -6)
   24437      598447 :          idata = idata + 1
   24438      598447 :          data_tmp = full_data(idata)
   24439      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24440      598447 :          data_tmp = IAND(data_tmp, mask_left(6))
   24441      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24442      598447 :          ipack = ipack + 1
   24443      598447 :          packed_data(ipack) = pack_tmp
   24444      598447 :          data_tmp = full_data(idata)
   24445      598447 :          pack_tmp = ISHFT(data_tmp, 37)
   24446      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24447      598447 :          idata = idata + 1
   24448      598447 :          data_tmp = full_data(idata)
   24449      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24450      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24451      598447 :          pack_tmp = ISHFT(pack_tmp, -4)
   24452      598447 :          idata = idata + 1
   24453      598447 :          data_tmp = full_data(idata)
   24454      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24455      598447 :          data_tmp = IAND(data_tmp, mask_left(4))
   24456      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24457      598447 :          ipack = ipack + 1
   24458      598447 :          packed_data(ipack) = pack_tmp
   24459      598447 :          data_tmp = full_data(idata)
   24460      598447 :          pack_tmp = ISHFT(data_tmp, 35)
   24461      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24462      598447 :          idata = idata + 1
   24463      598447 :          data_tmp = full_data(idata)
   24464      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24465      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24466      598447 :          pack_tmp = ISHFT(pack_tmp, -2)
   24467      598447 :          idata = idata + 1
   24468      598447 :          data_tmp = full_data(idata)
   24469      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24470      598447 :          data_tmp = IAND(data_tmp, mask_left(2))
   24471      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24472      598447 :          ipack = ipack + 1
   24473      598447 :          packed_data(ipack) = pack_tmp
   24474      598447 :          data_tmp = full_data(idata)
   24475      598447 :          pack_tmp = ISHFT(data_tmp, 33)
   24476      598447 :          pack_tmp = ISHFT(pack_tmp, -33)
   24477      598447 :          idata = idata + 1
   24478      598447 :          data_tmp = full_data(idata)
   24479      598447 :          data_tmp = ISHFT(data_tmp, 31)
   24480      598447 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24481             :          pack_tmp = ISHFT(pack_tmp, 0)
   24482      598447 :          pack_tmp = ISHFT(pack_tmp, 0)
   24483      598447 :          ipack = ipack + 1
   24484      600866 :          packed_data(ipack) = pack_tmp
   24485             :       END DO
   24486       46023 :       IF (Ndata_rep < Ndata) THEN
   24487       16226 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   24488             :       END IF
   24489       46023 :    END SUBROUTINE ints2bits_33
   24490             : 
   24491             : ! **************************************************************************************************
   24492             : !> \brief ...
   24493             : !> \param Ndata ...
   24494             : !> \param packed_data ...
   24495             : !> \param full_data ...
   24496             : ! **************************************************************************************************
   24497      249145 :    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      249145 :       ipack = 0
   24508      249145 :       idata = 0
   24509      249145 :       pack_tmp = 0
   24510      249145 :       Ndata_rep = (Ndata/64)*64
   24511      249145 :       DO kdata = 1, Ndata_rep, 64
   24512     3044962 :          idata = idata + 1
   24513     3044962 :          data_tmp = ISHFT(pack_tmp, 33)
   24514     3044962 :          ipack = ipack + 1
   24515     3044962 :          pack_tmp = packed_data(ipack)
   24516     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   24517     3044962 :          pack_tmp = ISHFT(pack_tmp, -33)
   24518     3044962 :          idata = idata + 1
   24519     3044962 :          data_tmp = ISHFT(pack_tmp, 2)
   24520     3044962 :          ipack = ipack + 1
   24521     3044962 :          pack_tmp = packed_data(ipack)
   24522     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   24523     3044962 :          pack_tmp = ISHFT(pack_tmp, -2)
   24524     3044962 :          idata = idata + 1
   24525     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24526     3044962 :          full_data(idata) = data_tmp
   24527     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24528     3044962 :          idata = idata + 1
   24529     3044962 :          data_tmp = ISHFT(pack_tmp, 4)
   24530     3044962 :          ipack = ipack + 1
   24531     3044962 :          pack_tmp = packed_data(ipack)
   24532     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   24533     3044962 :          pack_tmp = ISHFT(pack_tmp, -4)
   24534     3044962 :          idata = idata + 1
   24535     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24536     3044962 :          full_data(idata) = data_tmp
   24537     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24538     3044962 :          idata = idata + 1
   24539     3044962 :          data_tmp = ISHFT(pack_tmp, 6)
   24540     3044962 :          ipack = ipack + 1
   24541     3044962 :          pack_tmp = packed_data(ipack)
   24542     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   24543     3044962 :          pack_tmp = ISHFT(pack_tmp, -6)
   24544     3044962 :          idata = idata + 1
   24545     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24546     3044962 :          full_data(idata) = data_tmp
   24547     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24548     3044962 :          idata = idata + 1
   24549     3044962 :          data_tmp = ISHFT(pack_tmp, 8)
   24550     3044962 :          ipack = ipack + 1
   24551     3044962 :          pack_tmp = packed_data(ipack)
   24552     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   24553     3044962 :          pack_tmp = ISHFT(pack_tmp, -8)
   24554     3044962 :          idata = idata + 1
   24555     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24556     3044962 :          full_data(idata) = data_tmp
   24557     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24558     3044962 :          idata = idata + 1
   24559     3044962 :          data_tmp = ISHFT(pack_tmp, 10)
   24560     3044962 :          ipack = ipack + 1
   24561     3044962 :          pack_tmp = packed_data(ipack)
   24562     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   24563     3044962 :          pack_tmp = ISHFT(pack_tmp, -10)
   24564     3044962 :          idata = idata + 1
   24565     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24566     3044962 :          full_data(idata) = data_tmp
   24567     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24568     3044962 :          idata = idata + 1
   24569     3044962 :          data_tmp = ISHFT(pack_tmp, 12)
   24570     3044962 :          ipack = ipack + 1
   24571     3044962 :          pack_tmp = packed_data(ipack)
   24572     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   24573     3044962 :          pack_tmp = ISHFT(pack_tmp, -12)
   24574     3044962 :          idata = idata + 1
   24575     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24576     3044962 :          full_data(idata) = data_tmp
   24577     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24578     3044962 :          idata = idata + 1
   24579     3044962 :          data_tmp = ISHFT(pack_tmp, 14)
   24580     3044962 :          ipack = ipack + 1
   24581     3044962 :          pack_tmp = packed_data(ipack)
   24582     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   24583     3044962 :          pack_tmp = ISHFT(pack_tmp, -14)
   24584     3044962 :          idata = idata + 1
   24585     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24586     3044962 :          full_data(idata) = data_tmp
   24587     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24588     3044962 :          idata = idata + 1
   24589     3044962 :          data_tmp = ISHFT(pack_tmp, 16)
   24590     3044962 :          ipack = ipack + 1
   24591     3044962 :          pack_tmp = packed_data(ipack)
   24592     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   24593     3044962 :          pack_tmp = ISHFT(pack_tmp, -16)
   24594     3044962 :          idata = idata + 1
   24595     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24596     3044962 :          full_data(idata) = data_tmp
   24597     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24598     3044962 :          idata = idata + 1
   24599     3044962 :          data_tmp = ISHFT(pack_tmp, 18)
   24600     3044962 :          ipack = ipack + 1
   24601     3044962 :          pack_tmp = packed_data(ipack)
   24602     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   24603     3044962 :          pack_tmp = ISHFT(pack_tmp, -18)
   24604     3044962 :          idata = idata + 1
   24605     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24606     3044962 :          full_data(idata) = data_tmp
   24607     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24608     3044962 :          idata = idata + 1
   24609     3044962 :          data_tmp = ISHFT(pack_tmp, 20)
   24610     3044962 :          ipack = ipack + 1
   24611     3044962 :          pack_tmp = packed_data(ipack)
   24612     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   24613     3044962 :          pack_tmp = ISHFT(pack_tmp, -20)
   24614     3044962 :          idata = idata + 1
   24615     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24616     3044962 :          full_data(idata) = data_tmp
   24617     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24618     3044962 :          idata = idata + 1
   24619     3044962 :          data_tmp = ISHFT(pack_tmp, 22)
   24620     3044962 :          ipack = ipack + 1
   24621     3044962 :          pack_tmp = packed_data(ipack)
   24622     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   24623     3044962 :          pack_tmp = ISHFT(pack_tmp, -22)
   24624     3044962 :          idata = idata + 1
   24625     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24626     3044962 :          full_data(idata) = data_tmp
   24627     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24628     3044962 :          idata = idata + 1
   24629     3044962 :          data_tmp = ISHFT(pack_tmp, 24)
   24630     3044962 :          ipack = ipack + 1
   24631     3044962 :          pack_tmp = packed_data(ipack)
   24632     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   24633     3044962 :          pack_tmp = ISHFT(pack_tmp, -24)
   24634     3044962 :          idata = idata + 1
   24635     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24636     3044962 :          full_data(idata) = data_tmp
   24637     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24638     3044962 :          idata = idata + 1
   24639     3044962 :          data_tmp = ISHFT(pack_tmp, 26)
   24640     3044962 :          ipack = ipack + 1
   24641     3044962 :          pack_tmp = packed_data(ipack)
   24642     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   24643     3044962 :          pack_tmp = ISHFT(pack_tmp, -26)
   24644     3044962 :          idata = idata + 1
   24645     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24646     3044962 :          full_data(idata) = data_tmp
   24647     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24648     3044962 :          idata = idata + 1
   24649     3044962 :          data_tmp = ISHFT(pack_tmp, 28)
   24650     3044962 :          ipack = ipack + 1
   24651     3044962 :          pack_tmp = packed_data(ipack)
   24652     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   24653     3044962 :          pack_tmp = ISHFT(pack_tmp, -28)
   24654     3044962 :          idata = idata + 1
   24655     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24656     3044962 :          full_data(idata) = data_tmp
   24657     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24658     3044962 :          idata = idata + 1
   24659     3044962 :          data_tmp = ISHFT(pack_tmp, 30)
   24660     3044962 :          ipack = ipack + 1
   24661     3044962 :          pack_tmp = packed_data(ipack)
   24662     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   24663     3044962 :          pack_tmp = ISHFT(pack_tmp, -30)
   24664     3044962 :          idata = idata + 1
   24665     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24666     3044962 :          full_data(idata) = data_tmp
   24667     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24668     3044962 :          idata = idata + 1
   24669     3044962 :          data_tmp = ISHFT(pack_tmp, 32)
   24670     3044962 :          ipack = ipack + 1
   24671     3044962 :          pack_tmp = packed_data(ipack)
   24672     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   24673     3044962 :          pack_tmp = ISHFT(pack_tmp, -32)
   24674     3044962 :          idata = idata + 1
   24675     3044962 :          data_tmp = ISHFT(pack_tmp, 1)
   24676     3044962 :          ipack = ipack + 1
   24677     3044962 :          pack_tmp = packed_data(ipack)
   24678     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   24679     3044962 :          pack_tmp = ISHFT(pack_tmp, -1)
   24680     3044962 :          idata = idata + 1
   24681     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24682     3044962 :          full_data(idata) = data_tmp
   24683     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24684     3044962 :          idata = idata + 1
   24685     3044962 :          data_tmp = ISHFT(pack_tmp, 3)
   24686     3044962 :          ipack = ipack + 1
   24687     3044962 :          pack_tmp = packed_data(ipack)
   24688     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   24689     3044962 :          pack_tmp = ISHFT(pack_tmp, -3)
   24690     3044962 :          idata = idata + 1
   24691     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24692     3044962 :          full_data(idata) = data_tmp
   24693     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24694     3044962 :          idata = idata + 1
   24695     3044962 :          data_tmp = ISHFT(pack_tmp, 5)
   24696     3044962 :          ipack = ipack + 1
   24697     3044962 :          pack_tmp = packed_data(ipack)
   24698     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   24699     3044962 :          pack_tmp = ISHFT(pack_tmp, -5)
   24700     3044962 :          idata = idata + 1
   24701     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24702     3044962 :          full_data(idata) = data_tmp
   24703     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24704     3044962 :          idata = idata + 1
   24705     3044962 :          data_tmp = ISHFT(pack_tmp, 7)
   24706     3044962 :          ipack = ipack + 1
   24707     3044962 :          pack_tmp = packed_data(ipack)
   24708     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   24709     3044962 :          pack_tmp = ISHFT(pack_tmp, -7)
   24710     3044962 :          idata = idata + 1
   24711     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24712     3044962 :          full_data(idata) = data_tmp
   24713     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24714     3044962 :          idata = idata + 1
   24715     3044962 :          data_tmp = ISHFT(pack_tmp, 9)
   24716     3044962 :          ipack = ipack + 1
   24717     3044962 :          pack_tmp = packed_data(ipack)
   24718     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   24719     3044962 :          pack_tmp = ISHFT(pack_tmp, -9)
   24720     3044962 :          idata = idata + 1
   24721     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24722     3044962 :          full_data(idata) = data_tmp
   24723     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24724     3044962 :          idata = idata + 1
   24725     3044962 :          data_tmp = ISHFT(pack_tmp, 11)
   24726     3044962 :          ipack = ipack + 1
   24727     3044962 :          pack_tmp = packed_data(ipack)
   24728     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   24729     3044962 :          pack_tmp = ISHFT(pack_tmp, -11)
   24730     3044962 :          idata = idata + 1
   24731     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24732     3044962 :          full_data(idata) = data_tmp
   24733     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24734     3044962 :          idata = idata + 1
   24735     3044962 :          data_tmp = ISHFT(pack_tmp, 13)
   24736     3044962 :          ipack = ipack + 1
   24737     3044962 :          pack_tmp = packed_data(ipack)
   24738     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   24739     3044962 :          pack_tmp = ISHFT(pack_tmp, -13)
   24740     3044962 :          idata = idata + 1
   24741     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24742     3044962 :          full_data(idata) = data_tmp
   24743     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24744     3044962 :          idata = idata + 1
   24745     3044962 :          data_tmp = ISHFT(pack_tmp, 15)
   24746     3044962 :          ipack = ipack + 1
   24747     3044962 :          pack_tmp = packed_data(ipack)
   24748     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   24749     3044962 :          pack_tmp = ISHFT(pack_tmp, -15)
   24750     3044962 :          idata = idata + 1
   24751     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24752     3044962 :          full_data(idata) = data_tmp
   24753     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24754     3044962 :          idata = idata + 1
   24755     3044962 :          data_tmp = ISHFT(pack_tmp, 17)
   24756     3044962 :          ipack = ipack + 1
   24757     3044962 :          pack_tmp = packed_data(ipack)
   24758     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   24759     3044962 :          pack_tmp = ISHFT(pack_tmp, -17)
   24760     3044962 :          idata = idata + 1
   24761     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24762     3044962 :          full_data(idata) = data_tmp
   24763     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24764     3044962 :          idata = idata + 1
   24765     3044962 :          data_tmp = ISHFT(pack_tmp, 19)
   24766     3044962 :          ipack = ipack + 1
   24767     3044962 :          pack_tmp = packed_data(ipack)
   24768     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   24769     3044962 :          pack_tmp = ISHFT(pack_tmp, -19)
   24770     3044962 :          idata = idata + 1
   24771     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24772     3044962 :          full_data(idata) = data_tmp
   24773     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24774     3044962 :          idata = idata + 1
   24775     3044962 :          data_tmp = ISHFT(pack_tmp, 21)
   24776     3044962 :          ipack = ipack + 1
   24777     3044962 :          pack_tmp = packed_data(ipack)
   24778     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   24779     3044962 :          pack_tmp = ISHFT(pack_tmp, -21)
   24780     3044962 :          idata = idata + 1
   24781     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24782     3044962 :          full_data(idata) = data_tmp
   24783     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24784     3044962 :          idata = idata + 1
   24785     3044962 :          data_tmp = ISHFT(pack_tmp, 23)
   24786     3044962 :          ipack = ipack + 1
   24787     3044962 :          pack_tmp = packed_data(ipack)
   24788     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   24789     3044962 :          pack_tmp = ISHFT(pack_tmp, -23)
   24790     3044962 :          idata = idata + 1
   24791     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24792     3044962 :          full_data(idata) = data_tmp
   24793     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24794     3044962 :          idata = idata + 1
   24795     3044962 :          data_tmp = ISHFT(pack_tmp, 25)
   24796     3044962 :          ipack = ipack + 1
   24797     3044962 :          pack_tmp = packed_data(ipack)
   24798     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   24799     3044962 :          pack_tmp = ISHFT(pack_tmp, -25)
   24800     3044962 :          idata = idata + 1
   24801     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24802     3044962 :          full_data(idata) = data_tmp
   24803     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24804     3044962 :          idata = idata + 1
   24805     3044962 :          data_tmp = ISHFT(pack_tmp, 27)
   24806     3044962 :          ipack = ipack + 1
   24807     3044962 :          pack_tmp = packed_data(ipack)
   24808     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   24809     3044962 :          pack_tmp = ISHFT(pack_tmp, -27)
   24810     3044962 :          idata = idata + 1
   24811     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24812     3044962 :          full_data(idata) = data_tmp
   24813     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24814     3044962 :          idata = idata + 1
   24815     3044962 :          data_tmp = ISHFT(pack_tmp, 29)
   24816     3044962 :          ipack = ipack + 1
   24817     3044962 :          pack_tmp = packed_data(ipack)
   24818     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   24819     3044962 :          pack_tmp = ISHFT(pack_tmp, -29)
   24820     3044962 :          idata = idata + 1
   24821     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24822     3044962 :          full_data(idata) = data_tmp
   24823     3044962 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24824     3044962 :          idata = idata + 1
   24825     3044962 :          data_tmp = ISHFT(pack_tmp, 31)
   24826     3044962 :          ipack = ipack + 1
   24827     3044962 :          pack_tmp = packed_data(ipack)
   24828     3044962 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   24829     3044962 :          pack_tmp = ISHFT(pack_tmp, -31)
   24830     3044962 :          idata = idata + 1
   24831     3044962 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24832     3044962 :          full_data(idata) = data_tmp
   24833     3061819 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24834             :       END DO
   24835      249145 :       IF (Ndata_rep < Ndata) THEN
   24836      110748 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   24837             :       END IF
   24838      249145 :    END SUBROUTINE bits2ints_33
   24839             : 
   24840             : ! **************************************************************************************************
   24841             : !> \brief ...
   24842             : !> \param Ndata ...
   24843             : !> \param packed_data ...
   24844             : !> \param full_data ...
   24845             : ! **************************************************************************************************
   24846       41749 :    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       41749 :       idata = 0
   24857       41749 :       ipack = 0
   24858       41749 :       Ndata_rep = (Ndata/64)*64
   24859       41749 :       DO kdata = 1, Ndata_rep, 64
   24860      555547 :          pack_tmp = 0
   24861      555547 :          idata = idata + 1
   24862      555547 :          data_tmp = full_data(idata)
   24863      555547 :          data_tmp = ISHFT(data_tmp, 30)
   24864      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24865      555547 :          pack_tmp = ISHFT(pack_tmp, -30)
   24866      555547 :          idata = idata + 1
   24867      555547 :          data_tmp = full_data(idata)
   24868      555547 :          data_tmp = ISHFT(data_tmp, 30)
   24869      555547 :          data_tmp = IAND(data_tmp, mask_left(30))
   24870      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24871      555547 :          ipack = ipack + 1
   24872      555547 :          packed_data(ipack) = pack_tmp
   24873      555547 :          data_tmp = full_data(idata)
   24874      555547 :          pack_tmp = ISHFT(data_tmp, 60)
   24875      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   24876      555547 :          idata = idata + 1
   24877      555547 :          data_tmp = full_data(idata)
   24878      555547 :          data_tmp = ISHFT(data_tmp, 30)
   24879      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24880      555547 :          pack_tmp = ISHFT(pack_tmp, -26)
   24881      555547 :          idata = idata + 1
   24882      555547 :          data_tmp = full_data(idata)
   24883      555547 :          data_tmp = ISHFT(data_tmp, 30)
   24884      555547 :          data_tmp = IAND(data_tmp, mask_left(26))
   24885      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24886      555547 :          ipack = ipack + 1
   24887      555547 :          packed_data(ipack) = pack_tmp
   24888      555547 :          data_tmp = full_data(idata)
   24889      555547 :          pack_tmp = ISHFT(data_tmp, 56)
   24890      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   24891      555547 :          idata = idata + 1
   24892      555547 :          data_tmp = full_data(idata)
   24893      555547 :          data_tmp = ISHFT(data_tmp, 30)
   24894      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24895      555547 :          pack_tmp = ISHFT(pack_tmp, -22)
   24896      555547 :          idata = idata + 1
   24897      555547 :          data_tmp = full_data(idata)
   24898      555547 :          data_tmp = ISHFT(data_tmp, 30)
   24899      555547 :          data_tmp = IAND(data_tmp, mask_left(22))
   24900      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24901      555547 :          ipack = ipack + 1
   24902      555547 :          packed_data(ipack) = pack_tmp
   24903      555547 :          data_tmp = full_data(idata)
   24904      555547 :          pack_tmp = ISHFT(data_tmp, 52)
   24905      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   24906      555547 :          idata = idata + 1
   24907      555547 :          data_tmp = full_data(idata)
   24908      555547 :          data_tmp = ISHFT(data_tmp, 30)
   24909      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24910      555547 :          pack_tmp = ISHFT(pack_tmp, -18)
   24911      555547 :          idata = idata + 1
   24912      555547 :          data_tmp = full_data(idata)
   24913      555547 :          data_tmp = ISHFT(data_tmp, 30)
   24914      555547 :          data_tmp = IAND(data_tmp, mask_left(18))
   24915      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24916      555547 :          ipack = ipack + 1
   24917      555547 :          packed_data(ipack) = pack_tmp
   24918      555547 :          data_tmp = full_data(idata)
   24919      555547 :          pack_tmp = ISHFT(data_tmp, 48)
   24920      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   24921      555547 :          idata = idata + 1
   24922      555547 :          data_tmp = full_data(idata)
   24923      555547 :          data_tmp = ISHFT(data_tmp, 30)
   24924      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24925      555547 :          pack_tmp = ISHFT(pack_tmp, -14)
   24926      555547 :          idata = idata + 1
   24927      555547 :          data_tmp = full_data(idata)
   24928      555547 :          data_tmp = ISHFT(data_tmp, 30)
   24929      555547 :          data_tmp = IAND(data_tmp, mask_left(14))
   24930      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24931      555547 :          ipack = ipack + 1
   24932      555547 :          packed_data(ipack) = pack_tmp
   24933      555547 :          data_tmp = full_data(idata)
   24934      555547 :          pack_tmp = ISHFT(data_tmp, 44)
   24935      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   24936      555547 :          idata = idata + 1
   24937      555547 :          data_tmp = full_data(idata)
   24938      555547 :          data_tmp = ISHFT(data_tmp, 30)
   24939      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24940      555547 :          pack_tmp = ISHFT(pack_tmp, -10)
   24941      555547 :          idata = idata + 1
   24942      555547 :          data_tmp = full_data(idata)
   24943      555547 :          data_tmp = ISHFT(data_tmp, 30)
   24944      555547 :          data_tmp = IAND(data_tmp, mask_left(10))
   24945      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24946      555547 :          ipack = ipack + 1
   24947      555547 :          packed_data(ipack) = pack_tmp
   24948      555547 :          data_tmp = full_data(idata)
   24949      555547 :          pack_tmp = ISHFT(data_tmp, 40)
   24950      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   24951      555547 :          idata = idata + 1
   24952      555547 :          data_tmp = full_data(idata)
   24953      555547 :          data_tmp = ISHFT(data_tmp, 30)
   24954      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24955      555547 :          pack_tmp = ISHFT(pack_tmp, -6)
   24956      555547 :          idata = idata + 1
   24957      555547 :          data_tmp = full_data(idata)
   24958      555547 :          data_tmp = ISHFT(data_tmp, 30)
   24959      555547 :          data_tmp = IAND(data_tmp, mask_left(6))
   24960      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24961      555547 :          ipack = ipack + 1
   24962      555547 :          packed_data(ipack) = pack_tmp
   24963      555547 :          data_tmp = full_data(idata)
   24964      555547 :          pack_tmp = ISHFT(data_tmp, 36)
   24965      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   24966      555547 :          idata = idata + 1
   24967      555547 :          data_tmp = full_data(idata)
   24968      555547 :          data_tmp = ISHFT(data_tmp, 30)
   24969      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24970      555547 :          pack_tmp = ISHFT(pack_tmp, -2)
   24971      555547 :          idata = idata + 1
   24972      555547 :          data_tmp = full_data(idata)
   24973      555547 :          data_tmp = ISHFT(data_tmp, 30)
   24974      555547 :          data_tmp = IAND(data_tmp, mask_left(2))
   24975      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24976      555547 :          ipack = ipack + 1
   24977      555547 :          packed_data(ipack) = pack_tmp
   24978      555547 :          data_tmp = full_data(idata)
   24979      555547 :          pack_tmp = ISHFT(data_tmp, 32)
   24980      555547 :          pack_tmp = ISHFT(pack_tmp, -32)
   24981      555547 :          idata = idata + 1
   24982      555547 :          data_tmp = full_data(idata)
   24983      555547 :          data_tmp = ISHFT(data_tmp, 30)
   24984      555547 :          data_tmp = IAND(data_tmp, mask_left(32))
   24985      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24986      555547 :          ipack = ipack + 1
   24987      555547 :          packed_data(ipack) = pack_tmp
   24988      555547 :          data_tmp = full_data(idata)
   24989      555547 :          pack_tmp = ISHFT(data_tmp, 62)
   24990      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   24991      555547 :          idata = idata + 1
   24992      555547 :          data_tmp = full_data(idata)
   24993      555547 :          data_tmp = ISHFT(data_tmp, 30)
   24994      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24995      555547 :          pack_tmp = ISHFT(pack_tmp, -28)
   24996      555547 :          idata = idata + 1
   24997      555547 :          data_tmp = full_data(idata)
   24998      555547 :          data_tmp = ISHFT(data_tmp, 30)
   24999      555547 :          data_tmp = IAND(data_tmp, mask_left(28))
   25000      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25001      555547 :          ipack = ipack + 1
   25002      555547 :          packed_data(ipack) = pack_tmp
   25003      555547 :          data_tmp = full_data(idata)
   25004      555547 :          pack_tmp = ISHFT(data_tmp, 58)
   25005      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   25006      555547 :          idata = idata + 1
   25007      555547 :          data_tmp = full_data(idata)
   25008      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25009      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25010      555547 :          pack_tmp = ISHFT(pack_tmp, -24)
   25011      555547 :          idata = idata + 1
   25012      555547 :          data_tmp = full_data(idata)
   25013      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25014      555547 :          data_tmp = IAND(data_tmp, mask_left(24))
   25015      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25016      555547 :          ipack = ipack + 1
   25017      555547 :          packed_data(ipack) = pack_tmp
   25018      555547 :          data_tmp = full_data(idata)
   25019      555547 :          pack_tmp = ISHFT(data_tmp, 54)
   25020      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   25021      555547 :          idata = idata + 1
   25022      555547 :          data_tmp = full_data(idata)
   25023      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25024      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25025      555547 :          pack_tmp = ISHFT(pack_tmp, -20)
   25026      555547 :          idata = idata + 1
   25027      555547 :          data_tmp = full_data(idata)
   25028      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25029      555547 :          data_tmp = IAND(data_tmp, mask_left(20))
   25030      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25031      555547 :          ipack = ipack + 1
   25032      555547 :          packed_data(ipack) = pack_tmp
   25033      555547 :          data_tmp = full_data(idata)
   25034      555547 :          pack_tmp = ISHFT(data_tmp, 50)
   25035      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   25036      555547 :          idata = idata + 1
   25037      555547 :          data_tmp = full_data(idata)
   25038      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25039      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25040      555547 :          pack_tmp = ISHFT(pack_tmp, -16)
   25041      555547 :          idata = idata + 1
   25042      555547 :          data_tmp = full_data(idata)
   25043      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25044      555547 :          data_tmp = IAND(data_tmp, mask_left(16))
   25045      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25046      555547 :          ipack = ipack + 1
   25047      555547 :          packed_data(ipack) = pack_tmp
   25048      555547 :          data_tmp = full_data(idata)
   25049      555547 :          pack_tmp = ISHFT(data_tmp, 46)
   25050      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   25051      555547 :          idata = idata + 1
   25052      555547 :          data_tmp = full_data(idata)
   25053      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25054      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25055      555547 :          pack_tmp = ISHFT(pack_tmp, -12)
   25056      555547 :          idata = idata + 1
   25057      555547 :          data_tmp = full_data(idata)
   25058      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25059      555547 :          data_tmp = IAND(data_tmp, mask_left(12))
   25060      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25061      555547 :          ipack = ipack + 1
   25062      555547 :          packed_data(ipack) = pack_tmp
   25063      555547 :          data_tmp = full_data(idata)
   25064      555547 :          pack_tmp = ISHFT(data_tmp, 42)
   25065      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   25066      555547 :          idata = idata + 1
   25067      555547 :          data_tmp = full_data(idata)
   25068      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25069      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25070      555547 :          pack_tmp = ISHFT(pack_tmp, -8)
   25071      555547 :          idata = idata + 1
   25072      555547 :          data_tmp = full_data(idata)
   25073      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25074      555547 :          data_tmp = IAND(data_tmp, mask_left(8))
   25075      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25076      555547 :          ipack = ipack + 1
   25077      555547 :          packed_data(ipack) = pack_tmp
   25078      555547 :          data_tmp = full_data(idata)
   25079      555547 :          pack_tmp = ISHFT(data_tmp, 38)
   25080      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   25081      555547 :          idata = idata + 1
   25082      555547 :          data_tmp = full_data(idata)
   25083      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25084      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25085      555547 :          pack_tmp = ISHFT(pack_tmp, -4)
   25086      555547 :          idata = idata + 1
   25087      555547 :          data_tmp = full_data(idata)
   25088      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25089      555547 :          data_tmp = IAND(data_tmp, mask_left(4))
   25090      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25091      555547 :          ipack = ipack + 1
   25092      555547 :          packed_data(ipack) = pack_tmp
   25093      555547 :          data_tmp = full_data(idata)
   25094      555547 :          pack_tmp = ISHFT(data_tmp, 34)
   25095      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   25096      555547 :          idata = idata + 1
   25097      555547 :          data_tmp = full_data(idata)
   25098      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25099      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25100      555547 :          pack_tmp = ISHFT(pack_tmp, 0)
   25101      555547 :          idata = idata + 1
   25102      555547 :          data_tmp = full_data(idata)
   25103             :          data_tmp = ISHFT(data_tmp, 30)
   25104      555547 :          data_tmp = IAND(data_tmp, mask_left(0))
   25105      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25106      555547 :          ipack = ipack + 1
   25107      555547 :          packed_data(ipack) = pack_tmp
   25108      555547 :          data_tmp = full_data(idata)
   25109      555547 :          pack_tmp = ISHFT(data_tmp, 30)
   25110      555547 :          pack_tmp = ISHFT(pack_tmp, -30)
   25111      555547 :          idata = idata + 1
   25112      555547 :          data_tmp = full_data(idata)
   25113      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25114      555547 :          data_tmp = IAND(data_tmp, mask_left(30))
   25115      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25116      555547 :          ipack = ipack + 1
   25117      555547 :          packed_data(ipack) = pack_tmp
   25118      555547 :          data_tmp = full_data(idata)
   25119      555547 :          pack_tmp = ISHFT(data_tmp, 60)
   25120      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   25121      555547 :          idata = idata + 1
   25122      555547 :          data_tmp = full_data(idata)
   25123      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25124      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25125      555547 :          pack_tmp = ISHFT(pack_tmp, -26)
   25126      555547 :          idata = idata + 1
   25127      555547 :          data_tmp = full_data(idata)
   25128      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25129      555547 :          data_tmp = IAND(data_tmp, mask_left(26))
   25130      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25131      555547 :          ipack = ipack + 1
   25132      555547 :          packed_data(ipack) = pack_tmp
   25133      555547 :          data_tmp = full_data(idata)
   25134      555547 :          pack_tmp = ISHFT(data_tmp, 56)
   25135      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   25136      555547 :          idata = idata + 1
   25137      555547 :          data_tmp = full_data(idata)
   25138      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25139      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25140      555547 :          pack_tmp = ISHFT(pack_tmp, -22)
   25141      555547 :          idata = idata + 1
   25142      555547 :          data_tmp = full_data(idata)
   25143      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25144      555547 :          data_tmp = IAND(data_tmp, mask_left(22))
   25145      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25146      555547 :          ipack = ipack + 1
   25147      555547 :          packed_data(ipack) = pack_tmp
   25148      555547 :          data_tmp = full_data(idata)
   25149      555547 :          pack_tmp = ISHFT(data_tmp, 52)
   25150      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   25151      555547 :          idata = idata + 1
   25152      555547 :          data_tmp = full_data(idata)
   25153      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25154      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25155      555547 :          pack_tmp = ISHFT(pack_tmp, -18)
   25156      555547 :          idata = idata + 1
   25157      555547 :          data_tmp = full_data(idata)
   25158      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25159      555547 :          data_tmp = IAND(data_tmp, mask_left(18))
   25160      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25161      555547 :          ipack = ipack + 1
   25162      555547 :          packed_data(ipack) = pack_tmp
   25163      555547 :          data_tmp = full_data(idata)
   25164      555547 :          pack_tmp = ISHFT(data_tmp, 48)
   25165      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   25166      555547 :          idata = idata + 1
   25167      555547 :          data_tmp = full_data(idata)
   25168      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25169      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25170      555547 :          pack_tmp = ISHFT(pack_tmp, -14)
   25171      555547 :          idata = idata + 1
   25172      555547 :          data_tmp = full_data(idata)
   25173      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25174      555547 :          data_tmp = IAND(data_tmp, mask_left(14))
   25175      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25176      555547 :          ipack = ipack + 1
   25177      555547 :          packed_data(ipack) = pack_tmp
   25178      555547 :          data_tmp = full_data(idata)
   25179      555547 :          pack_tmp = ISHFT(data_tmp, 44)
   25180      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   25181      555547 :          idata = idata + 1
   25182      555547 :          data_tmp = full_data(idata)
   25183      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25184      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25185      555547 :          pack_tmp = ISHFT(pack_tmp, -10)
   25186      555547 :          idata = idata + 1
   25187      555547 :          data_tmp = full_data(idata)
   25188      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25189      555547 :          data_tmp = IAND(data_tmp, mask_left(10))
   25190      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25191      555547 :          ipack = ipack + 1
   25192      555547 :          packed_data(ipack) = pack_tmp
   25193      555547 :          data_tmp = full_data(idata)
   25194      555547 :          pack_tmp = ISHFT(data_tmp, 40)
   25195      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   25196      555547 :          idata = idata + 1
   25197      555547 :          data_tmp = full_data(idata)
   25198      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25199      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25200      555547 :          pack_tmp = ISHFT(pack_tmp, -6)
   25201      555547 :          idata = idata + 1
   25202      555547 :          data_tmp = full_data(idata)
   25203      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25204      555547 :          data_tmp = IAND(data_tmp, mask_left(6))
   25205      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25206      555547 :          ipack = ipack + 1
   25207      555547 :          packed_data(ipack) = pack_tmp
   25208      555547 :          data_tmp = full_data(idata)
   25209      555547 :          pack_tmp = ISHFT(data_tmp, 36)
   25210      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   25211      555547 :          idata = idata + 1
   25212      555547 :          data_tmp = full_data(idata)
   25213      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25214      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25215      555547 :          pack_tmp = ISHFT(pack_tmp, -2)
   25216      555547 :          idata = idata + 1
   25217      555547 :          data_tmp = full_data(idata)
   25218      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25219      555547 :          data_tmp = IAND(data_tmp, mask_left(2))
   25220      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25221      555547 :          ipack = ipack + 1
   25222      555547 :          packed_data(ipack) = pack_tmp
   25223      555547 :          data_tmp = full_data(idata)
   25224      555547 :          pack_tmp = ISHFT(data_tmp, 32)
   25225      555547 :          pack_tmp = ISHFT(pack_tmp, -32)
   25226      555547 :          idata = idata + 1
   25227      555547 :          data_tmp = full_data(idata)
   25228      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25229      555547 :          data_tmp = IAND(data_tmp, mask_left(32))
   25230      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25231      555547 :          ipack = ipack + 1
   25232      555547 :          packed_data(ipack) = pack_tmp
   25233      555547 :          data_tmp = full_data(idata)
   25234      555547 :          pack_tmp = ISHFT(data_tmp, 62)
   25235      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   25236      555547 :          idata = idata + 1
   25237      555547 :          data_tmp = full_data(idata)
   25238      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25239      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25240      555547 :          pack_tmp = ISHFT(pack_tmp, -28)
   25241      555547 :          idata = idata + 1
   25242      555547 :          data_tmp = full_data(idata)
   25243      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25244      555547 :          data_tmp = IAND(data_tmp, mask_left(28))
   25245      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25246      555547 :          ipack = ipack + 1
   25247      555547 :          packed_data(ipack) = pack_tmp
   25248      555547 :          data_tmp = full_data(idata)
   25249      555547 :          pack_tmp = ISHFT(data_tmp, 58)
   25250      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   25251      555547 :          idata = idata + 1
   25252      555547 :          data_tmp = full_data(idata)
   25253      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25254      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25255      555547 :          pack_tmp = ISHFT(pack_tmp, -24)
   25256      555547 :          idata = idata + 1
   25257      555547 :          data_tmp = full_data(idata)
   25258      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25259      555547 :          data_tmp = IAND(data_tmp, mask_left(24))
   25260      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25261      555547 :          ipack = ipack + 1
   25262      555547 :          packed_data(ipack) = pack_tmp
   25263      555547 :          data_tmp = full_data(idata)
   25264      555547 :          pack_tmp = ISHFT(data_tmp, 54)
   25265      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   25266      555547 :          idata = idata + 1
   25267      555547 :          data_tmp = full_data(idata)
   25268      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25269      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25270      555547 :          pack_tmp = ISHFT(pack_tmp, -20)
   25271      555547 :          idata = idata + 1
   25272      555547 :          data_tmp = full_data(idata)
   25273      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25274      555547 :          data_tmp = IAND(data_tmp, mask_left(20))
   25275      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25276      555547 :          ipack = ipack + 1
   25277      555547 :          packed_data(ipack) = pack_tmp
   25278      555547 :          data_tmp = full_data(idata)
   25279      555547 :          pack_tmp = ISHFT(data_tmp, 50)
   25280      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   25281      555547 :          idata = idata + 1
   25282      555547 :          data_tmp = full_data(idata)
   25283      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25284      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25285      555547 :          pack_tmp = ISHFT(pack_tmp, -16)
   25286      555547 :          idata = idata + 1
   25287      555547 :          data_tmp = full_data(idata)
   25288      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25289      555547 :          data_tmp = IAND(data_tmp, mask_left(16))
   25290      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25291      555547 :          ipack = ipack + 1
   25292      555547 :          packed_data(ipack) = pack_tmp
   25293      555547 :          data_tmp = full_data(idata)
   25294      555547 :          pack_tmp = ISHFT(data_tmp, 46)
   25295      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   25296      555547 :          idata = idata + 1
   25297      555547 :          data_tmp = full_data(idata)
   25298      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25299      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25300      555547 :          pack_tmp = ISHFT(pack_tmp, -12)
   25301      555547 :          idata = idata + 1
   25302      555547 :          data_tmp = full_data(idata)
   25303      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25304      555547 :          data_tmp = IAND(data_tmp, mask_left(12))
   25305      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25306      555547 :          ipack = ipack + 1
   25307      555547 :          packed_data(ipack) = pack_tmp
   25308      555547 :          data_tmp = full_data(idata)
   25309      555547 :          pack_tmp = ISHFT(data_tmp, 42)
   25310      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   25311      555547 :          idata = idata + 1
   25312      555547 :          data_tmp = full_data(idata)
   25313      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25314      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25315      555547 :          pack_tmp = ISHFT(pack_tmp, -8)
   25316      555547 :          idata = idata + 1
   25317      555547 :          data_tmp = full_data(idata)
   25318      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25319      555547 :          data_tmp = IAND(data_tmp, mask_left(8))
   25320      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25321      555547 :          ipack = ipack + 1
   25322      555547 :          packed_data(ipack) = pack_tmp
   25323      555547 :          data_tmp = full_data(idata)
   25324      555547 :          pack_tmp = ISHFT(data_tmp, 38)
   25325      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   25326      555547 :          idata = idata + 1
   25327      555547 :          data_tmp = full_data(idata)
   25328      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25329      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25330      555547 :          pack_tmp = ISHFT(pack_tmp, -4)
   25331      555547 :          idata = idata + 1
   25332      555547 :          data_tmp = full_data(idata)
   25333      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25334      555547 :          data_tmp = IAND(data_tmp, mask_left(4))
   25335      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25336      555547 :          ipack = ipack + 1
   25337      555547 :          packed_data(ipack) = pack_tmp
   25338      555547 :          data_tmp = full_data(idata)
   25339      555547 :          pack_tmp = ISHFT(data_tmp, 34)
   25340      555547 :          pack_tmp = ISHFT(pack_tmp, -34)
   25341      555547 :          idata = idata + 1
   25342      555547 :          data_tmp = full_data(idata)
   25343      555547 :          data_tmp = ISHFT(data_tmp, 30)
   25344      555547 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25345             :          pack_tmp = ISHFT(pack_tmp, 0)
   25346      555547 :          pack_tmp = ISHFT(pack_tmp, 0)
   25347      555547 :          ipack = ipack + 1
   25348      555763 :          packed_data(ipack) = pack_tmp
   25349             :       END DO
   25350       41749 :       IF (Ndata_rep < Ndata) THEN
   25351       13034 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   25352             :       END IF
   25353       41749 :    END SUBROUTINE ints2bits_34
   25354             : 
   25355             : ! **************************************************************************************************
   25356             : !> \brief ...
   25357             : !> \param Ndata ...
   25358             : !> \param packed_data ...
   25359             : !> \param full_data ...
   25360             : ! **************************************************************************************************
   25361      210330 :    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      210330 :       ipack = 0
   25372      210330 :       idata = 0
   25373      210330 :       pack_tmp = 0
   25374      210330 :       Ndata_rep = (Ndata/64)*64
   25375      210330 :       DO kdata = 1, Ndata_rep, 64
   25376     2658694 :          idata = idata + 1
   25377     2658694 :          data_tmp = ISHFT(pack_tmp, 34)
   25378     2658694 :          ipack = ipack + 1
   25379     2658694 :          pack_tmp = packed_data(ipack)
   25380     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   25381     2658694 :          pack_tmp = ISHFT(pack_tmp, -34)
   25382     2658694 :          idata = idata + 1
   25383     2658694 :          data_tmp = ISHFT(pack_tmp, 4)
   25384     2658694 :          ipack = ipack + 1
   25385     2658694 :          pack_tmp = packed_data(ipack)
   25386     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   25387     2658694 :          pack_tmp = ISHFT(pack_tmp, -4)
   25388     2658694 :          idata = idata + 1
   25389     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25390     2658694 :          full_data(idata) = data_tmp
   25391     2658694 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25392     2658694 :          idata = idata + 1
   25393     2658694 :          data_tmp = ISHFT(pack_tmp, 8)
   25394     2658694 :          ipack = ipack + 1
   25395     2658694 :          pack_tmp = packed_data(ipack)
   25396     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   25397     2658694 :          pack_tmp = ISHFT(pack_tmp, -8)
   25398     2658694 :          idata = idata + 1
   25399     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25400     2658694 :          full_data(idata) = data_tmp
   25401     2658694 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25402     2658694 :          idata = idata + 1
   25403     2658694 :          data_tmp = ISHFT(pack_tmp, 12)
   25404     2658694 :          ipack = ipack + 1
   25405     2658694 :          pack_tmp = packed_data(ipack)
   25406     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   25407     2658694 :          pack_tmp = ISHFT(pack_tmp, -12)
   25408     2658694 :          idata = idata + 1
   25409     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25410     2658694 :          full_data(idata) = data_tmp
   25411     2658694 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25412     2658694 :          idata = idata + 1
   25413     2658694 :          data_tmp = ISHFT(pack_tmp, 16)
   25414     2658694 :          ipack = ipack + 1
   25415     2658694 :          pack_tmp = packed_data(ipack)
   25416     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   25417     2658694 :          pack_tmp = ISHFT(pack_tmp, -16)
   25418     2658694 :          idata = idata + 1
   25419     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25420     2658694 :          full_data(idata) = data_tmp
   25421     2658694 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25422     2658694 :          idata = idata + 1
   25423     2658694 :          data_tmp = ISHFT(pack_tmp, 20)
   25424     2658694 :          ipack = ipack + 1
   25425     2658694 :          pack_tmp = packed_data(ipack)
   25426     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   25427     2658694 :          pack_tmp = ISHFT(pack_tmp, -20)
   25428     2658694 :          idata = idata + 1
   25429     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25430     2658694 :          full_data(idata) = data_tmp
   25431     2658694 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25432     2658694 :          idata = idata + 1
   25433     2658694 :          data_tmp = ISHFT(pack_tmp, 24)
   25434     2658694 :          ipack = ipack + 1
   25435     2658694 :          pack_tmp = packed_data(ipack)
   25436     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   25437     2658694 :          pack_tmp = ISHFT(pack_tmp, -24)
   25438     2658694 :          idata = idata + 1
   25439     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25440     2658694 :          full_data(idata) = data_tmp
   25441     2658694 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25442     2658694 :          idata = idata + 1
   25443     2658694 :          data_tmp = ISHFT(pack_tmp, 28)
   25444     2658694 :          ipack = ipack + 1
   25445     2658694 :          pack_tmp = packed_data(ipack)
   25446     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   25447     2658694 :          pack_tmp = ISHFT(pack_tmp, -28)
   25448     2658694 :          idata = idata + 1
   25449     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25450     2658694 :          full_data(idata) = data_tmp
   25451     2658694 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25452     2658694 :          idata = idata + 1
   25453     2658694 :          data_tmp = ISHFT(pack_tmp, 32)
   25454     2658694 :          ipack = ipack + 1
   25455     2658694 :          pack_tmp = packed_data(ipack)
   25456     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   25457     2658694 :          pack_tmp = ISHFT(pack_tmp, -32)
   25458     2658694 :          idata = idata + 1
   25459     2658694 :          data_tmp = ISHFT(pack_tmp, 2)
   25460     2658694 :          ipack = ipack + 1
   25461     2658694 :          pack_tmp = packed_data(ipack)
   25462     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   25463     2658694 :          pack_tmp = ISHFT(pack_tmp, -2)
   25464     2658694 :          idata = idata + 1
   25465     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25466     2658694 :          full_data(idata) = data_tmp
   25467     2658694 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25468     2658694 :          idata = idata + 1
   25469     2658694 :          data_tmp = ISHFT(pack_tmp, 6)
   25470     2658694 :          ipack = ipack + 1
   25471     2658694 :          pack_tmp = packed_data(ipack)
   25472     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   25473     2658694 :          pack_tmp = ISHFT(pack_tmp, -6)
   25474     2658694 :          idata = idata + 1
   25475     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25476     2658694 :          full_data(idata) = data_tmp
   25477     2658694 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25478     2658694 :          idata = idata + 1
   25479     2658694 :          data_tmp = ISHFT(pack_tmp, 10)
   25480     2658694 :          ipack = ipack + 1
   25481     2658694 :          pack_tmp = packed_data(ipack)
   25482     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   25483     2658694 :          pack_tmp = ISHFT(pack_tmp, -10)
   25484     2658694 :          idata = idata + 1
   25485     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25486     2658694 :          full_data(idata) = data_tmp
   25487     2658694 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25488     2658694 :          idata = idata + 1
   25489     2658694 :          data_tmp = ISHFT(pack_tmp, 14)
   25490     2658694 :          ipack = ipack + 1
   25491     2658694 :          pack_tmp = packed_data(ipack)
   25492     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   25493     2658694 :          pack_tmp = ISHFT(pack_tmp, -14)
   25494     2658694 :          idata = idata + 1
   25495     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25496     2658694 :          full_data(idata) = data_tmp
   25497     2658694 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25498     2658694 :          idata = idata + 1
   25499     2658694 :          data_tmp = ISHFT(pack_tmp, 18)
   25500     2658694 :          ipack = ipack + 1
   25501     2658694 :          pack_tmp = packed_data(ipack)
   25502     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   25503     2658694 :          pack_tmp = ISHFT(pack_tmp, -18)
   25504     2658694 :          idata = idata + 1
   25505     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25506     2658694 :          full_data(idata) = data_tmp
   25507     2658694 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25508     2658694 :          idata = idata + 1
   25509     2658694 :          data_tmp = ISHFT(pack_tmp, 22)
   25510     2658694 :          ipack = ipack + 1
   25511     2658694 :          pack_tmp = packed_data(ipack)
   25512     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   25513     2658694 :          pack_tmp = ISHFT(pack_tmp, -22)
   25514     2658694 :          idata = idata + 1
   25515     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25516     2658694 :          full_data(idata) = data_tmp
   25517     2658694 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25518     2658694 :          idata = idata + 1
   25519     2658694 :          data_tmp = ISHFT(pack_tmp, 26)
   25520     2658694 :          ipack = ipack + 1
   25521     2658694 :          pack_tmp = packed_data(ipack)
   25522     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   25523     2658694 :          pack_tmp = ISHFT(pack_tmp, -26)
   25524     2658694 :          idata = idata + 1
   25525     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25526     2658694 :          full_data(idata) = data_tmp
   25527     2658694 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25528     2658694 :          idata = idata + 1
   25529     2658694 :          data_tmp = ISHFT(pack_tmp, 30)
   25530     2658694 :          ipack = ipack + 1
   25531     2658694 :          pack_tmp = packed_data(ipack)
   25532     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   25533     2658694 :          pack_tmp = ISHFT(pack_tmp, -30)
   25534     2658694 :          idata = idata + 1
   25535     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25536     2658694 :          full_data(idata) = data_tmp
   25537     2658694 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25538     2658694 :          idata = idata + 1
   25539     2658694 :          data_tmp = ISHFT(pack_tmp, 34)
   25540     2658694 :          ipack = ipack + 1
   25541     2658694 :          pack_tmp = packed_data(ipack)
   25542     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   25543     2658694 :          pack_tmp = ISHFT(pack_tmp, -34)
   25544     2658694 :          idata = idata + 1
   25545     2658694 :          data_tmp = ISHFT(pack_tmp, 4)
   25546     2658694 :          ipack = ipack + 1
   25547     2658694 :          pack_tmp = packed_data(ipack)
   25548     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   25549     2658694 :          pack_tmp = ISHFT(pack_tmp, -4)
   25550     2658694 :          idata = idata + 1
   25551     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25552     2658694 :          full_data(idata) = data_tmp
   25553     2658694 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25554     2658694 :          idata = idata + 1
   25555     2658694 :          data_tmp = ISHFT(pack_tmp, 8)
   25556     2658694 :          ipack = ipack + 1
   25557     2658694 :          pack_tmp = packed_data(ipack)
   25558     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   25559     2658694 :          pack_tmp = ISHFT(pack_tmp, -8)
   25560     2658694 :          idata = idata + 1
   25561     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25562     2658694 :          full_data(idata) = data_tmp
   25563     2658694 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25564     2658694 :          idata = idata + 1
   25565     2658694 :          data_tmp = ISHFT(pack_tmp, 12)
   25566     2658694 :          ipack = ipack + 1
   25567     2658694 :          pack_tmp = packed_data(ipack)
   25568     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   25569     2658694 :          pack_tmp = ISHFT(pack_tmp, -12)
   25570     2658694 :          idata = idata + 1
   25571     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25572     2658694 :          full_data(idata) = data_tmp
   25573     2658694 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25574     2658694 :          idata = idata + 1
   25575     2658694 :          data_tmp = ISHFT(pack_tmp, 16)
   25576     2658694 :          ipack = ipack + 1
   25577     2658694 :          pack_tmp = packed_data(ipack)
   25578     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   25579     2658694 :          pack_tmp = ISHFT(pack_tmp, -16)
   25580     2658694 :          idata = idata + 1
   25581     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25582     2658694 :          full_data(idata) = data_tmp
   25583     2658694 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25584     2658694 :          idata = idata + 1
   25585     2658694 :          data_tmp = ISHFT(pack_tmp, 20)
   25586     2658694 :          ipack = ipack + 1
   25587     2658694 :          pack_tmp = packed_data(ipack)
   25588     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   25589     2658694 :          pack_tmp = ISHFT(pack_tmp, -20)
   25590     2658694 :          idata = idata + 1
   25591     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25592     2658694 :          full_data(idata) = data_tmp
   25593     2658694 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25594     2658694 :          idata = idata + 1
   25595     2658694 :          data_tmp = ISHFT(pack_tmp, 24)
   25596     2658694 :          ipack = ipack + 1
   25597     2658694 :          pack_tmp = packed_data(ipack)
   25598     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   25599     2658694 :          pack_tmp = ISHFT(pack_tmp, -24)
   25600     2658694 :          idata = idata + 1
   25601     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25602     2658694 :          full_data(idata) = data_tmp
   25603     2658694 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25604     2658694 :          idata = idata + 1
   25605     2658694 :          data_tmp = ISHFT(pack_tmp, 28)
   25606     2658694 :          ipack = ipack + 1
   25607     2658694 :          pack_tmp = packed_data(ipack)
   25608     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   25609     2658694 :          pack_tmp = ISHFT(pack_tmp, -28)
   25610     2658694 :          idata = idata + 1
   25611     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25612     2658694 :          full_data(idata) = data_tmp
   25613     2658694 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25614     2658694 :          idata = idata + 1
   25615     2658694 :          data_tmp = ISHFT(pack_tmp, 32)
   25616     2658694 :          ipack = ipack + 1
   25617     2658694 :          pack_tmp = packed_data(ipack)
   25618     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   25619     2658694 :          pack_tmp = ISHFT(pack_tmp, -32)
   25620     2658694 :          idata = idata + 1
   25621     2658694 :          data_tmp = ISHFT(pack_tmp, 2)
   25622     2658694 :          ipack = ipack + 1
   25623     2658694 :          pack_tmp = packed_data(ipack)
   25624     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   25625     2658694 :          pack_tmp = ISHFT(pack_tmp, -2)
   25626     2658694 :          idata = idata + 1
   25627     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25628     2658694 :          full_data(idata) = data_tmp
   25629     2658694 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25630     2658694 :          idata = idata + 1
   25631     2658694 :          data_tmp = ISHFT(pack_tmp, 6)
   25632     2658694 :          ipack = ipack + 1
   25633     2658694 :          pack_tmp = packed_data(ipack)
   25634     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   25635     2658694 :          pack_tmp = ISHFT(pack_tmp, -6)
   25636     2658694 :          idata = idata + 1
   25637     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25638     2658694 :          full_data(idata) = data_tmp
   25639     2658694 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25640     2658694 :          idata = idata + 1
   25641     2658694 :          data_tmp = ISHFT(pack_tmp, 10)
   25642     2658694 :          ipack = ipack + 1
   25643     2658694 :          pack_tmp = packed_data(ipack)
   25644     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   25645     2658694 :          pack_tmp = ISHFT(pack_tmp, -10)
   25646     2658694 :          idata = idata + 1
   25647     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25648     2658694 :          full_data(idata) = data_tmp
   25649     2658694 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25650     2658694 :          idata = idata + 1
   25651     2658694 :          data_tmp = ISHFT(pack_tmp, 14)
   25652     2658694 :          ipack = ipack + 1
   25653     2658694 :          pack_tmp = packed_data(ipack)
   25654     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   25655     2658694 :          pack_tmp = ISHFT(pack_tmp, -14)
   25656     2658694 :          idata = idata + 1
   25657     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25658     2658694 :          full_data(idata) = data_tmp
   25659     2658694 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25660     2658694 :          idata = idata + 1
   25661     2658694 :          data_tmp = ISHFT(pack_tmp, 18)
   25662     2658694 :          ipack = ipack + 1
   25663     2658694 :          pack_tmp = packed_data(ipack)
   25664     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   25665     2658694 :          pack_tmp = ISHFT(pack_tmp, -18)
   25666     2658694 :          idata = idata + 1
   25667     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25668     2658694 :          full_data(idata) = data_tmp
   25669     2658694 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25670     2658694 :          idata = idata + 1
   25671     2658694 :          data_tmp = ISHFT(pack_tmp, 22)
   25672     2658694 :          ipack = ipack + 1
   25673     2658694 :          pack_tmp = packed_data(ipack)
   25674     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   25675     2658694 :          pack_tmp = ISHFT(pack_tmp, -22)
   25676     2658694 :          idata = idata + 1
   25677     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25678     2658694 :          full_data(idata) = data_tmp
   25679     2658694 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25680     2658694 :          idata = idata + 1
   25681     2658694 :          data_tmp = ISHFT(pack_tmp, 26)
   25682     2658694 :          ipack = ipack + 1
   25683     2658694 :          pack_tmp = packed_data(ipack)
   25684     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   25685     2658694 :          pack_tmp = ISHFT(pack_tmp, -26)
   25686     2658694 :          idata = idata + 1
   25687     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25688     2658694 :          full_data(idata) = data_tmp
   25689     2658694 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25690     2658694 :          idata = idata + 1
   25691     2658694 :          data_tmp = ISHFT(pack_tmp, 30)
   25692     2658694 :          ipack = ipack + 1
   25693     2658694 :          pack_tmp = packed_data(ipack)
   25694     2658694 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   25695     2658694 :          pack_tmp = ISHFT(pack_tmp, -30)
   25696     2658694 :          idata = idata + 1
   25697     2658694 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25698     2658694 :          full_data(idata) = data_tmp
   25699     2659853 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25700             :       END DO
   25701      210330 :       IF (Ndata_rep < Ndata) THEN
   25702       81748 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   25703             :       END IF
   25704      210330 :    END SUBROUTINE bits2ints_34
   25705             : 
   25706             : ! **************************************************************************************************
   25707             : !> \brief ...
   25708             : !> \param Ndata ...
   25709             : !> \param packed_data ...
   25710             : !> \param full_data ...
   25711             : ! **************************************************************************************************
   25712       44185 :    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       44185 :       idata = 0
   25723       44185 :       ipack = 0
   25724       44185 :       Ndata_rep = (Ndata/64)*64
   25725       44185 :       DO kdata = 1, Ndata_rep, 64
   25726      572783 :          pack_tmp = 0
   25727      572783 :          idata = idata + 1
   25728      572783 :          data_tmp = full_data(idata)
   25729      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25730      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25731      572783 :          pack_tmp = ISHFT(pack_tmp, -29)
   25732      572783 :          idata = idata + 1
   25733      572783 :          data_tmp = full_data(idata)
   25734      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25735      572783 :          data_tmp = IAND(data_tmp, mask_left(29))
   25736      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25737      572783 :          ipack = ipack + 1
   25738      572783 :          packed_data(ipack) = pack_tmp
   25739      572783 :          data_tmp = full_data(idata)
   25740      572783 :          pack_tmp = ISHFT(data_tmp, 58)
   25741      572783 :          pack_tmp = ISHFT(pack_tmp, -35)
   25742      572783 :          idata = idata + 1
   25743      572783 :          data_tmp = full_data(idata)
   25744      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25745      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25746      572783 :          pack_tmp = ISHFT(pack_tmp, -23)
   25747      572783 :          idata = idata + 1
   25748      572783 :          data_tmp = full_data(idata)
   25749      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25750      572783 :          data_tmp = IAND(data_tmp, mask_left(23))
   25751      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25752      572783 :          ipack = ipack + 1
   25753      572783 :          packed_data(ipack) = pack_tmp
   25754      572783 :          data_tmp = full_data(idata)
   25755      572783 :          pack_tmp = ISHFT(data_tmp, 52)
   25756      572783 :          pack_tmp = ISHFT(pack_tmp, -35)
   25757      572783 :          idata = idata + 1
   25758      572783 :          data_tmp = full_data(idata)
   25759      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25760      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25761      572783 :          pack_tmp = ISHFT(pack_tmp, -17)
   25762      572783 :          idata = idata + 1
   25763      572783 :          data_tmp = full_data(idata)
   25764      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25765      572783 :          data_tmp = IAND(data_tmp, mask_left(17))
   25766      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25767      572783 :          ipack = ipack + 1
   25768      572783 :          packed_data(ipack) = pack_tmp
   25769      572783 :          data_tmp = full_data(idata)
   25770      572783 :          pack_tmp = ISHFT(data_tmp, 46)
   25771      572783 :          pack_tmp = ISHFT(pack_tmp, -35)
   25772      572783 :          idata = idata + 1
   25773      572783 :          data_tmp = full_data(idata)
   25774      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25775      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25776      572783 :          pack_tmp = ISHFT(pack_tmp, -11)
   25777      572783 :          idata = idata + 1
   25778      572783 :          data_tmp = full_data(idata)
   25779      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25780      572783 :          data_tmp = IAND(data_tmp, mask_left(11))
   25781      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25782      572783 :          ipack = ipack + 1
   25783      572783 :          packed_data(ipack) = pack_tmp
   25784      572783 :          data_tmp = full_data(idata)
   25785      572783 :          pack_tmp = ISHFT(data_tmp, 40)
   25786      572783 :          pack_tmp = ISHFT(pack_tmp, -35)
   25787      572783 :          idata = idata + 1
   25788      572783 :          data_tmp = full_data(idata)
   25789      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25790      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25791      572783 :          pack_tmp = ISHFT(pack_tmp, -5)
   25792      572783 :          idata = idata + 1
   25793      572783 :          data_tmp = full_data(idata)
   25794      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25795      572783 :          data_tmp = IAND(data_tmp, mask_left(5))
   25796      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25797      572783 :          ipack = ipack + 1
   25798      572783 :          packed_data(ipack) = pack_tmp
   25799      572783 :          data_tmp = full_data(idata)
   25800      572783 :          pack_tmp = ISHFT(data_tmp, 34)
   25801      572783 :          pack_tmp = ISHFT(pack_tmp, -34)
   25802      572783 :          idata = idata + 1
   25803      572783 :          data_tmp = full_data(idata)
   25804      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25805      572783 :          data_tmp = IAND(data_tmp, mask_left(34))
   25806      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25807      572783 :          ipack = ipack + 1
   25808      572783 :          packed_data(ipack) = pack_tmp
   25809      572783 :          data_tmp = full_data(idata)
   25810      572783 :          pack_tmp = ISHFT(data_tmp, 63)
   25811      572783 :          pack_tmp = ISHFT(pack_tmp, -35)
   25812      572783 :          idata = idata + 1
   25813      572783 :          data_tmp = full_data(idata)
   25814      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25815      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25816      572783 :          pack_tmp = ISHFT(pack_tmp, -28)
   25817      572783 :          idata = idata + 1
   25818      572783 :          data_tmp = full_data(idata)
   25819      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25820      572783 :          data_tmp = IAND(data_tmp, mask_left(28))
   25821      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25822      572783 :          ipack = ipack + 1
   25823      572783 :          packed_data(ipack) = pack_tmp
   25824      572783 :          data_tmp = full_data(idata)
   25825      572783 :          pack_tmp = ISHFT(data_tmp, 57)
   25826      572783 :          pack_tmp = ISHFT(pack_tmp, -35)
   25827      572783 :          idata = idata + 1
   25828      572783 :          data_tmp = full_data(idata)
   25829      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25830      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25831      572783 :          pack_tmp = ISHFT(pack_tmp, -22)
   25832      572783 :          idata = idata + 1
   25833      572783 :          data_tmp = full_data(idata)
   25834      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25835      572783 :          data_tmp = IAND(data_tmp, mask_left(22))
   25836      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25837      572783 :          ipack = ipack + 1
   25838      572783 :          packed_data(ipack) = pack_tmp
   25839      572783 :          data_tmp = full_data(idata)
   25840      572783 :          pack_tmp = ISHFT(data_tmp, 51)
   25841      572783 :          pack_tmp = ISHFT(pack_tmp, -35)
   25842      572783 :          idata = idata + 1
   25843      572783 :          data_tmp = full_data(idata)
   25844      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25845      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25846      572783 :          pack_tmp = ISHFT(pack_tmp, -16)
   25847      572783 :          idata = idata + 1
   25848      572783 :          data_tmp = full_data(idata)
   25849      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25850      572783 :          data_tmp = IAND(data_tmp, mask_left(16))
   25851      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25852      572783 :          ipack = ipack + 1
   25853      572783 :          packed_data(ipack) = pack_tmp
   25854      572783 :          data_tmp = full_data(idata)
   25855      572783 :          pack_tmp = ISHFT(data_tmp, 45)
   25856      572783 :          pack_tmp = ISHFT(pack_tmp, -35)
   25857      572783 :          idata = idata + 1
   25858      572783 :          data_tmp = full_data(idata)
   25859      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25860      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25861      572783 :          pack_tmp = ISHFT(pack_tmp, -10)
   25862      572783 :          idata = idata + 1
   25863      572783 :          data_tmp = full_data(idata)
   25864      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25865      572783 :          data_tmp = IAND(data_tmp, mask_left(10))
   25866      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25867      572783 :          ipack = ipack + 1
   25868      572783 :          packed_data(ipack) = pack_tmp
   25869      572783 :          data_tmp = full_data(idata)
   25870      572783 :          pack_tmp = ISHFT(data_tmp, 39)
   25871      572783 :          pack_tmp = ISHFT(pack_tmp, -35)
   25872      572783 :          idata = idata + 1
   25873      572783 :          data_tmp = full_data(idata)
   25874      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25875      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25876      572783 :          pack_tmp = ISHFT(pack_tmp, -4)
   25877      572783 :          idata = idata + 1
   25878      572783 :          data_tmp = full_data(idata)
   25879      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25880      572783 :          data_tmp = IAND(data_tmp, mask_left(4))
   25881      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25882      572783 :          ipack = ipack + 1
   25883      572783 :          packed_data(ipack) = pack_tmp
   25884      572783 :          data_tmp = full_data(idata)
   25885      572783 :          pack_tmp = ISHFT(data_tmp, 33)
   25886      572783 :          pack_tmp = ISHFT(pack_tmp, -33)
   25887      572783 :          idata = idata + 1
   25888      572783 :          data_tmp = full_data(idata)
   25889      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25890      572783 :          data_tmp = IAND(data_tmp, mask_left(33))
   25891      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25892      572783 :          ipack = ipack + 1
   25893      572783 :          packed_data(ipack) = pack_tmp
   25894      572783 :          data_tmp = full_data(idata)
   25895      572783 :          pack_tmp = ISHFT(data_tmp, 62)
   25896      572783 :          pack_tmp = ISHFT(pack_tmp, -35)
   25897      572783 :          idata = idata + 1
   25898      572783 :          data_tmp = full_data(idata)
   25899      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25900      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25901      572783 :          pack_tmp = ISHFT(pack_tmp, -27)
   25902      572783 :          idata = idata + 1
   25903      572783 :          data_tmp = full_data(idata)
   25904      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25905      572783 :          data_tmp = IAND(data_tmp, mask_left(27))
   25906      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25907      572783 :          ipack = ipack + 1
   25908      572783 :          packed_data(ipack) = pack_tmp
   25909      572783 :          data_tmp = full_data(idata)
   25910      572783 :          pack_tmp = ISHFT(data_tmp, 56)
   25911      572783 :          pack_tmp = ISHFT(pack_tmp, -35)
   25912      572783 :          idata = idata + 1
   25913      572783 :          data_tmp = full_data(idata)
   25914      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25915      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25916      572783 :          pack_tmp = ISHFT(pack_tmp, -21)
   25917      572783 :          idata = idata + 1
   25918      572783 :          data_tmp = full_data(idata)
   25919      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25920      572783 :          data_tmp = IAND(data_tmp, mask_left(21))
   25921      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25922      572783 :          ipack = ipack + 1
   25923      572783 :          packed_data(ipack) = pack_tmp
   25924      572783 :          data_tmp = full_data(idata)
   25925      572783 :          pack_tmp = ISHFT(data_tmp, 50)
   25926      572783 :          pack_tmp = ISHFT(pack_tmp, -35)
   25927      572783 :          idata = idata + 1
   25928      572783 :          data_tmp = full_data(idata)
   25929      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25930      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25931      572783 :          pack_tmp = ISHFT(pack_tmp, -15)
   25932      572783 :          idata = idata + 1
   25933      572783 :          data_tmp = full_data(idata)
   25934      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25935      572783 :          data_tmp = IAND(data_tmp, mask_left(15))
   25936      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25937      572783 :          ipack = ipack + 1
   25938      572783 :          packed_data(ipack) = pack_tmp
   25939      572783 :          data_tmp = full_data(idata)
   25940      572783 :          pack_tmp = ISHFT(data_tmp, 44)
   25941      572783 :          pack_tmp = ISHFT(pack_tmp, -35)
   25942      572783 :          idata = idata + 1
   25943      572783 :          data_tmp = full_data(idata)
   25944      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25945      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25946      572783 :          pack_tmp = ISHFT(pack_tmp, -9)
   25947      572783 :          idata = idata + 1
   25948      572783 :          data_tmp = full_data(idata)
   25949      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25950      572783 :          data_tmp = IAND(data_tmp, mask_left(9))
   25951      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25952      572783 :          ipack = ipack + 1
   25953      572783 :          packed_data(ipack) = pack_tmp
   25954      572783 :          data_tmp = full_data(idata)
   25955      572783 :          pack_tmp = ISHFT(data_tmp, 38)
   25956      572783 :          pack_tmp = ISHFT(pack_tmp, -35)
   25957      572783 :          idata = idata + 1
   25958      572783 :          data_tmp = full_data(idata)
   25959      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25960      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25961      572783 :          pack_tmp = ISHFT(pack_tmp, -3)
   25962      572783 :          idata = idata + 1
   25963      572783 :          data_tmp = full_data(idata)
   25964      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25965      572783 :          data_tmp = IAND(data_tmp, mask_left(3))
   25966      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25967      572783 :          ipack = ipack + 1
   25968      572783 :          packed_data(ipack) = pack_tmp
   25969      572783 :          data_tmp = full_data(idata)
   25970      572783 :          pack_tmp = ISHFT(data_tmp, 32)
   25971      572783 :          pack_tmp = ISHFT(pack_tmp, -32)
   25972      572783 :          idata = idata + 1
   25973      572783 :          data_tmp = full_data(idata)
   25974      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25975      572783 :          data_tmp = IAND(data_tmp, mask_left(32))
   25976      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25977      572783 :          ipack = ipack + 1
   25978      572783 :          packed_data(ipack) = pack_tmp
   25979      572783 :          data_tmp = full_data(idata)
   25980      572783 :          pack_tmp = ISHFT(data_tmp, 61)
   25981      572783 :          pack_tmp = ISHFT(pack_tmp, -35)
   25982      572783 :          idata = idata + 1
   25983      572783 :          data_tmp = full_data(idata)
   25984      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25985      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25986      572783 :          pack_tmp = ISHFT(pack_tmp, -26)
   25987      572783 :          idata = idata + 1
   25988      572783 :          data_tmp = full_data(idata)
   25989      572783 :          data_tmp = ISHFT(data_tmp, 29)
   25990      572783 :          data_tmp = IAND(data_tmp, mask_left(26))
   25991      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25992      572783 :          ipack = ipack + 1
   25993      572783 :          packed_data(ipack) = pack_tmp
   25994      572783 :          data_tmp = full_data(idata)
   25995      572783 :          pack_tmp = ISHFT(data_tmp, 55)
   25996      572783 :          pack_tmp = ISHFT(pack_tmp, -35)
   25997      572783 :          idata = idata + 1
   25998      572783 :          data_tmp = full_data(idata)
   25999      572783 :          data_tmp = ISHFT(data_tmp, 29)
   26000      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26001      572783 :          pack_tmp = ISHFT(pack_tmp, -20)
   26002      572783 :          idata = idata + 1
   26003      572783 :          data_tmp = full_data(idata)
   26004      572783 :          data_tmp = ISHFT(data_tmp, 29)
   26005      572783 :          data_tmp = IAND(data_tmp, mask_left(20))
   26006      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26007      572783 :          ipack = ipack + 1
   26008      572783 :          packed_data(ipack) = pack_tmp
   26009      572783 :          data_tmp = full_data(idata)
   26010      572783 :          pack_tmp = ISHFT(data_tmp, 49)
   26011      572783 :          pack_tmp = ISHFT(pack_tmp, -35)
   26012      572783 :          idata = idata + 1
   26013      572783 :          data_tmp = full_data(idata)
   26014      572783 :          data_tmp = ISHFT(data_tmp, 29)
   26015      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26016      572783 :          pack_tmp = ISHFT(pack_tmp, -14)
   26017      572783 :          idata = idata + 1
   26018      572783 :          data_tmp = full_data(idata)
   26019      572783 :          data_tmp = ISHFT(data_tmp, 29)
   26020      572783 :          data_tmp = IAND(data_tmp, mask_left(14))
   26021      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26022      572783 :          ipack = ipack + 1
   26023      572783 :          packed_data(ipack) = pack_tmp
   26024      572783 :          data_tmp = full_data(idata)
   26025      572783 :          pack_tmp = ISHFT(data_tmp, 43)
   26026      572783 :          pack_tmp = ISHFT(pack_tmp, -35)
   26027      572783 :          idata = idata + 1
   26028      572783 :          data_tmp = full_data(idata)
   26029      572783 :          data_tmp = ISHFT(data_tmp, 29)
   26030      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26031      572783 :          pack_tmp = ISHFT(pack_tmp, -8)
   26032      572783 :          idata = idata + 1
   26033      572783 :          data_tmp = full_data(idata)
   26034      572783 :          data_tmp = ISHFT(data_tmp, 29)
   26035      572783 :          data_tmp = IAND(data_tmp, mask_left(8))
   26036      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26037      572783 :          ipack = ipack + 1
   26038      572783 :          packed_data(ipack) = pack_tmp
   26039      572783 :          data_tmp = full_data(idata)
   26040      572783 :          pack_tmp = ISHFT(data_tmp, 37)
   26041      572783 :          pack_tmp = ISHFT(pack_tmp, -35)
   26042      572783 :          idata = idata + 1
   26043      572783 :          data_tmp = full_data(idata)
   26044      572783 :          data_tmp = ISHFT(data_tmp, 29)
   26045      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26046      572783 :          pack_tmp = ISHFT(pack_tmp, -2)
   26047      572783 :          idata = idata + 1
   26048      572783 :          data_tmp = full_data(idata)
   26049      572783 :          data_tmp = ISHFT(data_tmp, 29)
   26050      572783 :          data_tmp = IAND(data_tmp, mask_left(2))
   26051      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26052      572783 :          ipack = ipack + 1
   26053      572783 :          packed_data(ipack) = pack_tmp
   26054      572783 :          data_tmp = full_data(idata)
   26055      572783 :          pack_tmp = ISHFT(data_tmp, 31)
   26056      572783 :          pack_tmp = ISHFT(pack_tmp, -31)
   26057      572783 :          idata = idata + 1
   26058      572783 :          data_tmp = full_data(idata)
   26059      572783 :          data_tmp = ISHFT(data_tmp, 29)
   26060      572783 :          data_tmp = IAND(data_tmp, mask_left(31))
   26061      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26062      572783 :          ipack = ipack + 1
   26063      572783 :          packed_data(ipack) = pack_tmp
   26064      572783 :          data_tmp = full_data(idata)
   26065      572783 :          pack_tmp = ISHFT(data_tmp, 60)
   26066      572783 :          pack_tmp = ISHFT(pack_tmp, -35)
   26067      572783 :          idata = idata + 1
   26068      572783 :          data_tmp = full_data(idata)
   26069      572783 :          data_tmp = ISHFT(data_tmp, 29)
   26070      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26071      572783 :          pack_tmp = ISHFT(pack_tmp, -25)
   26072      572783 :          idata = idata + 1
   26073      572783 :          data_tmp = full_data(idata)
   26074      572783 :          data_tmp = ISHFT(data_tmp, 29)
   26075      572783 :          data_tmp = IAND(data_tmp, mask_left(25))
   26076      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26077      572783 :          ipack = ipack + 1
   26078      572783 :          packed_data(ipack) = pack_tmp
   26079      572783 :          data_tmp = full_data(idata)
   26080      572783 :          pack_tmp = ISHFT(data_tmp, 54)
   26081      572783 :          pack_tmp = ISHFT(pack_tmp, -35)
   26082      572783 :          idata = idata + 1
   26083      572783 :          data_tmp = full_data(idata)
   26084      572783 :          data_tmp = ISHFT(data_tmp, 29)
   26085      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26086      572783 :          pack_tmp = ISHFT(pack_tmp, -19)
   26087      572783 :          idata = idata + 1
   26088      572783 :          data_tmp = full_data(idata)
   26089      572783 :          data_tmp = ISHFT(data_tmp, 29)
   26090      572783 :          data_tmp = IAND(data_tmp, mask_left(19))
   26091      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26092      572783 :          ipack = ipack + 1
   26093      572783 :          packed_data(ipack) = pack_tmp
   26094      572783 :          data_tmp = full_data(idata)
   26095      572783 :          pack_tmp = ISHFT(data_tmp, 48)
   26096      572783 :          pack_tmp = ISHFT(pack_tmp, -35)
   26097      572783 :          idata = idata + 1
   26098      572783 :          data_tmp = full_data(idata)
   26099      572783 :          data_tmp = ISHFT(data_tmp, 29)
   26100      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26101      572783 :          pack_tmp = ISHFT(pack_tmp, -13)
   26102      572783 :          idata = idata + 1
   26103      572783 :          data_tmp = full_data(idata)
   26104      572783 :          data_tmp = ISHFT(data_tmp, 29)
   26105      572783 :          data_tmp = IAND(data_tmp, mask_left(13))
   26106      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26107      572783 :          ipack = ipack + 1
   26108      572783 :          packed_data(ipack) = pack_tmp
   26109      572783 :          data_tmp = full_data(idata)
   26110      572783 :          pack_tmp = ISHFT(data_tmp, 42)
   26111      572783 :          pack_tmp = ISHFT(pack_tmp, -35)
   26112      572783 :          idata = idata + 1
   26113      572783 :          data_tmp = full_data(idata)
   26114      572783 :          data_tmp = ISHFT(data_tmp, 29)
   26115      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26116      572783 :          pack_tmp = ISHFT(pack_tmp, -7)
   26117      572783 :          idata = idata + 1
   26118      572783 :          data_tmp = full_data(idata)
   26119      572783 :          data_tmp = ISHFT(data_tmp, 29)
   26120      572783 :          data_tmp = IAND(data_tmp, mask_left(7))
   26121      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26122      572783 :          ipack = ipack + 1
   26123      572783 :          packed_data(ipack) = pack_tmp
   26124      572783 :          data_tmp = full_data(idata)
   26125      572783 :          pack_tmp = ISHFT(data_tmp, 36)
   26126      572783 :          pack_tmp = ISHFT(pack_tmp, -35)
   26127      572783 :          idata = idata + 1
   26128      572783 :          data_tmp = full_data(idata)
   26129      572783 :          data_tmp = ISHFT(data_tmp, 29)
   26130      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26131      572783 :          pack_tmp = ISHFT(pack_tmp, -1)
   26132      572783 :          idata = idata + 1
   26133      572783 :          data_tmp = full_data(idata)
   26134      572783 :          data_tmp = ISHFT(data_tmp, 29)
   26135      572783 :          data_tmp = IAND(data_tmp, mask_left(1))
   26136      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26137      572783 :          ipack = ipack + 1
   26138      572783 :          packed_data(ipack) = pack_tmp
   26139      572783 :          data_tmp = full_data(idata)
   26140      572783 :          pack_tmp = ISHFT(data_tmp, 30)
   26141      572783 :          pack_tmp = ISHFT(pack_tmp, -30)
   26142      572783 :          idata = idata + 1
   26143      572783 :          data_tmp = full_data(idata)
   26144      572783 :          data_tmp = ISHFT(data_tmp, 29)
   26145      572783 :          data_tmp = IAND(data_tmp, mask_left(30))
   26146      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26147      572783 :          ipack = ipack + 1
   26148      572783 :          packed_data(ipack) = pack_tmp
   26149      572783 :          data_tmp = full_data(idata)
   26150      572783 :          pack_tmp = ISHFT(data_tmp, 59)
   26151      572783 :          pack_tmp = ISHFT(pack_tmp, -35)
   26152      572783 :          idata = idata + 1
   26153      572783 :          data_tmp = full_data(idata)
   26154      572783 :          data_tmp = ISHFT(data_tmp, 29)
   26155      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26156      572783 :          pack_tmp = ISHFT(pack_tmp, -24)
   26157      572783 :          idata = idata + 1
   26158      572783 :          data_tmp = full_data(idata)
   26159      572783 :          data_tmp = ISHFT(data_tmp, 29)
   26160      572783 :          data_tmp = IAND(data_tmp, mask_left(24))
   26161      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26162      572783 :          ipack = ipack + 1
   26163      572783 :          packed_data(ipack) = pack_tmp
   26164      572783 :          data_tmp = full_data(idata)
   26165      572783 :          pack_tmp = ISHFT(data_tmp, 53)
   26166      572783 :          pack_tmp = ISHFT(pack_tmp, -35)
   26167      572783 :          idata = idata + 1
   26168      572783 :          data_tmp = full_data(idata)
   26169      572783 :          data_tmp = ISHFT(data_tmp, 29)
   26170      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26171      572783 :          pack_tmp = ISHFT(pack_tmp, -18)
   26172      572783 :          idata = idata + 1
   26173      572783 :          data_tmp = full_data(idata)
   26174      572783 :          data_tmp = ISHFT(data_tmp, 29)
   26175      572783 :          data_tmp = IAND(data_tmp, mask_left(18))
   26176      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26177      572783 :          ipack = ipack + 1
   26178      572783 :          packed_data(ipack) = pack_tmp
   26179      572783 :          data_tmp = full_data(idata)
   26180      572783 :          pack_tmp = ISHFT(data_tmp, 47)
   26181      572783 :          pack_tmp = ISHFT(pack_tmp, -35)
   26182      572783 :          idata = idata + 1
   26183      572783 :          data_tmp = full_data(idata)
   26184      572783 :          data_tmp = ISHFT(data_tmp, 29)
   26185      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26186      572783 :          pack_tmp = ISHFT(pack_tmp, -12)
   26187      572783 :          idata = idata + 1
   26188      572783 :          data_tmp = full_data(idata)
   26189      572783 :          data_tmp = ISHFT(data_tmp, 29)
   26190      572783 :          data_tmp = IAND(data_tmp, mask_left(12))
   26191      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26192      572783 :          ipack = ipack + 1
   26193      572783 :          packed_data(ipack) = pack_tmp
   26194      572783 :          data_tmp = full_data(idata)
   26195      572783 :          pack_tmp = ISHFT(data_tmp, 41)
   26196      572783 :          pack_tmp = ISHFT(pack_tmp, -35)
   26197      572783 :          idata = idata + 1
   26198      572783 :          data_tmp = full_data(idata)
   26199      572783 :          data_tmp = ISHFT(data_tmp, 29)
   26200      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26201      572783 :          pack_tmp = ISHFT(pack_tmp, -6)
   26202      572783 :          idata = idata + 1
   26203      572783 :          data_tmp = full_data(idata)
   26204      572783 :          data_tmp = ISHFT(data_tmp, 29)
   26205      572783 :          data_tmp = IAND(data_tmp, mask_left(6))
   26206      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26207      572783 :          ipack = ipack + 1
   26208      572783 :          packed_data(ipack) = pack_tmp
   26209      572783 :          data_tmp = full_data(idata)
   26210      572783 :          pack_tmp = ISHFT(data_tmp, 35)
   26211      572783 :          pack_tmp = ISHFT(pack_tmp, -35)
   26212      572783 :          idata = idata + 1
   26213      572783 :          data_tmp = full_data(idata)
   26214      572783 :          data_tmp = ISHFT(data_tmp, 29)
   26215      572783 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26216             :          pack_tmp = ISHFT(pack_tmp, 0)
   26217      572783 :          pack_tmp = ISHFT(pack_tmp, 0)
   26218      572783 :          ipack = ipack + 1
   26219      573235 :          packed_data(ipack) = pack_tmp
   26220             :       END DO
   26221       44185 :       IF (Ndata_rep < Ndata) THEN
   26222       15586 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   26223             :       END IF
   26224       44185 :    END SUBROUTINE ints2bits_35
   26225             : 
   26226             : ! **************************************************************************************************
   26227             : !> \brief ...
   26228             : !> \param Ndata ...
   26229             : !> \param packed_data ...
   26230             : !> \param full_data ...
   26231             : ! **************************************************************************************************
   26232      217516 :    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      217516 :       ipack = 0
   26243      217516 :       idata = 0
   26244      217516 :       pack_tmp = 0
   26245      217516 :       Ndata_rep = (Ndata/64)*64
   26246      217516 :       DO kdata = 1, Ndata_rep, 64
   26247     2702589 :          idata = idata + 1
   26248     2702589 :          data_tmp = ISHFT(pack_tmp, 35)
   26249     2702589 :          ipack = ipack + 1
   26250     2702589 :          pack_tmp = packed_data(ipack)
   26251     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   26252     2702589 :          pack_tmp = ISHFT(pack_tmp, -35)
   26253     2702589 :          idata = idata + 1
   26254     2702589 :          data_tmp = ISHFT(pack_tmp, 6)
   26255     2702589 :          ipack = ipack + 1
   26256     2702589 :          pack_tmp = packed_data(ipack)
   26257     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   26258     2702589 :          pack_tmp = ISHFT(pack_tmp, -6)
   26259     2702589 :          idata = idata + 1
   26260     2702589 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26261     2702589 :          full_data(idata) = data_tmp
   26262     2702589 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26263     2702589 :          idata = idata + 1
   26264     2702589 :          data_tmp = ISHFT(pack_tmp, 12)
   26265     2702589 :          ipack = ipack + 1
   26266     2702589 :          pack_tmp = packed_data(ipack)
   26267     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   26268     2702589 :          pack_tmp = ISHFT(pack_tmp, -12)
   26269     2702589 :          idata = idata + 1
   26270     2702589 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26271     2702589 :          full_data(idata) = data_tmp
   26272     2702589 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26273     2702589 :          idata = idata + 1
   26274     2702589 :          data_tmp = ISHFT(pack_tmp, 18)
   26275     2702589 :          ipack = ipack + 1
   26276     2702589 :          pack_tmp = packed_data(ipack)
   26277     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   26278     2702589 :          pack_tmp = ISHFT(pack_tmp, -18)
   26279     2702589 :          idata = idata + 1
   26280     2702589 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26281     2702589 :          full_data(idata) = data_tmp
   26282     2702589 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26283     2702589 :          idata = idata + 1
   26284     2702589 :          data_tmp = ISHFT(pack_tmp, 24)
   26285     2702589 :          ipack = ipack + 1
   26286     2702589 :          pack_tmp = packed_data(ipack)
   26287     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   26288     2702589 :          pack_tmp = ISHFT(pack_tmp, -24)
   26289     2702589 :          idata = idata + 1
   26290     2702589 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26291     2702589 :          full_data(idata) = data_tmp
   26292     2702589 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26293     2702589 :          idata = idata + 1
   26294     2702589 :          data_tmp = ISHFT(pack_tmp, 30)
   26295     2702589 :          ipack = ipack + 1
   26296     2702589 :          pack_tmp = packed_data(ipack)
   26297     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   26298     2702589 :          pack_tmp = ISHFT(pack_tmp, -30)
   26299     2702589 :          idata = idata + 1
   26300     2702589 :          data_tmp = ISHFT(pack_tmp, 1)
   26301     2702589 :          ipack = ipack + 1
   26302     2702589 :          pack_tmp = packed_data(ipack)
   26303     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   26304     2702589 :          pack_tmp = ISHFT(pack_tmp, -1)
   26305     2702589 :          idata = idata + 1
   26306     2702589 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26307     2702589 :          full_data(idata) = data_tmp
   26308     2702589 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26309     2702589 :          idata = idata + 1
   26310     2702589 :          data_tmp = ISHFT(pack_tmp, 7)
   26311     2702589 :          ipack = ipack + 1
   26312     2702589 :          pack_tmp = packed_data(ipack)
   26313     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   26314     2702589 :          pack_tmp = ISHFT(pack_tmp, -7)
   26315     2702589 :          idata = idata + 1
   26316     2702589 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26317     2702589 :          full_data(idata) = data_tmp
   26318     2702589 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26319     2702589 :          idata = idata + 1
   26320     2702589 :          data_tmp = ISHFT(pack_tmp, 13)
   26321     2702589 :          ipack = ipack + 1
   26322     2702589 :          pack_tmp = packed_data(ipack)
   26323     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   26324     2702589 :          pack_tmp = ISHFT(pack_tmp, -13)
   26325     2702589 :          idata = idata + 1
   26326     2702589 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26327     2702589 :          full_data(idata) = data_tmp
   26328     2702589 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26329     2702589 :          idata = idata + 1
   26330     2702589 :          data_tmp = ISHFT(pack_tmp, 19)
   26331     2702589 :          ipack = ipack + 1
   26332     2702589 :          pack_tmp = packed_data(ipack)
   26333     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   26334     2702589 :          pack_tmp = ISHFT(pack_tmp, -19)
   26335     2702589 :          idata = idata + 1
   26336     2702589 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26337     2702589 :          full_data(idata) = data_tmp
   26338     2702589 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26339     2702589 :          idata = idata + 1
   26340     2702589 :          data_tmp = ISHFT(pack_tmp, 25)
   26341     2702589 :          ipack = ipack + 1
   26342     2702589 :          pack_tmp = packed_data(ipack)
   26343     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   26344     2702589 :          pack_tmp = ISHFT(pack_tmp, -25)
   26345     2702589 :          idata = idata + 1
   26346     2702589 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26347     2702589 :          full_data(idata) = data_tmp
   26348     2702589 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26349     2702589 :          idata = idata + 1
   26350     2702589 :          data_tmp = ISHFT(pack_tmp, 31)
   26351     2702589 :          ipack = ipack + 1
   26352     2702589 :          pack_tmp = packed_data(ipack)
   26353     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   26354     2702589 :          pack_tmp = ISHFT(pack_tmp, -31)
   26355     2702589 :          idata = idata + 1
   26356     2702589 :          data_tmp = ISHFT(pack_tmp, 2)
   26357     2702589 :          ipack = ipack + 1
   26358     2702589 :          pack_tmp = packed_data(ipack)
   26359     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   26360     2702589 :          pack_tmp = ISHFT(pack_tmp, -2)
   26361     2702589 :          idata = idata + 1
   26362     2702589 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26363     2702589 :          full_data(idata) = data_tmp
   26364     2702589 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26365     2702589 :          idata = idata + 1
   26366     2702589 :          data_tmp = ISHFT(pack_tmp, 8)
   26367     2702589 :          ipack = ipack + 1
   26368     2702589 :          pack_tmp = packed_data(ipack)
   26369     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   26370     2702589 :          pack_tmp = ISHFT(pack_tmp, -8)
   26371     2702589 :          idata = idata + 1
   26372     2702589 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26373     2702589 :          full_data(idata) = data_tmp
   26374     2702589 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26375     2702589 :          idata = idata + 1
   26376     2702589 :          data_tmp = ISHFT(pack_tmp, 14)
   26377     2702589 :          ipack = ipack + 1
   26378     2702589 :          pack_tmp = packed_data(ipack)
   26379     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   26380     2702589 :          pack_tmp = ISHFT(pack_tmp, -14)
   26381     2702589 :          idata = idata + 1
   26382     2702589 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26383     2702589 :          full_data(idata) = data_tmp
   26384     2702589 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26385     2702589 :          idata = idata + 1
   26386     2702589 :          data_tmp = ISHFT(pack_tmp, 20)
   26387     2702589 :          ipack = ipack + 1
   26388     2702589 :          pack_tmp = packed_data(ipack)
   26389     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   26390     2702589 :          pack_tmp = ISHFT(pack_tmp, -20)
   26391     2702589 :          idata = idata + 1
   26392     2702589 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26393     2702589 :          full_data(idata) = data_tmp
   26394     2702589 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26395     2702589 :          idata = idata + 1
   26396     2702589 :          data_tmp = ISHFT(pack_tmp, 26)
   26397     2702589 :          ipack = ipack + 1
   26398     2702589 :          pack_tmp = packed_data(ipack)
   26399     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   26400     2702589 :          pack_tmp = ISHFT(pack_tmp, -26)
   26401     2702589 :          idata = idata + 1
   26402     2702589 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26403     2702589 :          full_data(idata) = data_tmp
   26404     2702589 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26405     2702589 :          idata = idata + 1
   26406     2702589 :          data_tmp = ISHFT(pack_tmp, 32)
   26407     2702589 :          ipack = ipack + 1
   26408     2702589 :          pack_tmp = packed_data(ipack)
   26409     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   26410     2702589 :          pack_tmp = ISHFT(pack_tmp, -32)
   26411     2702589 :          idata = idata + 1
   26412     2702589 :          data_tmp = ISHFT(pack_tmp, 3)
   26413     2702589 :          ipack = ipack + 1
   26414     2702589 :          pack_tmp = packed_data(ipack)
   26415     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   26416     2702589 :          pack_tmp = ISHFT(pack_tmp, -3)
   26417     2702589 :          idata = idata + 1
   26418     2702589 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26419     2702589 :          full_data(idata) = data_tmp
   26420     2702589 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26421     2702589 :          idata = idata + 1
   26422     2702589 :          data_tmp = ISHFT(pack_tmp, 9)
   26423     2702589 :          ipack = ipack + 1
   26424     2702589 :          pack_tmp = packed_data(ipack)
   26425     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   26426     2702589 :          pack_tmp = ISHFT(pack_tmp, -9)
   26427     2702589 :          idata = idata + 1
   26428     2702589 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26429     2702589 :          full_data(idata) = data_tmp
   26430     2702589 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26431     2702589 :          idata = idata + 1
   26432     2702589 :          data_tmp = ISHFT(pack_tmp, 15)
   26433     2702589 :          ipack = ipack + 1
   26434     2702589 :          pack_tmp = packed_data(ipack)
   26435     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   26436     2702589 :          pack_tmp = ISHFT(pack_tmp, -15)
   26437     2702589 :          idata = idata + 1
   26438     2702589 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26439     2702589 :          full_data(idata) = data_tmp
   26440     2702589 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26441     2702589 :          idata = idata + 1
   26442     2702589 :          data_tmp = ISHFT(pack_tmp, 21)
   26443     2702589 :          ipack = ipack + 1
   26444     2702589 :          pack_tmp = packed_data(ipack)
   26445     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   26446     2702589 :          pack_tmp = ISHFT(pack_tmp, -21)
   26447     2702589 :          idata = idata + 1
   26448     2702589 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26449     2702589 :          full_data(idata) = data_tmp
   26450     2702589 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26451     2702589 :          idata = idata + 1
   26452     2702589 :          data_tmp = ISHFT(pack_tmp, 27)
   26453     2702589 :          ipack = ipack + 1
   26454     2702589 :          pack_tmp = packed_data(ipack)
   26455     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   26456     2702589 :          pack_tmp = ISHFT(pack_tmp, -27)
   26457     2702589 :          idata = idata + 1
   26458     2702589 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26459     2702589 :          full_data(idata) = data_tmp
   26460     2702589 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26461     2702589 :          idata = idata + 1
   26462     2702589 :          data_tmp = ISHFT(pack_tmp, 33)
   26463     2702589 :          ipack = ipack + 1
   26464     2702589 :          pack_tmp = packed_data(ipack)
   26465     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   26466     2702589 :          pack_tmp = ISHFT(pack_tmp, -33)
   26467     2702589 :          idata = idata + 1
   26468     2702589 :          data_tmp = ISHFT(pack_tmp, 4)
   26469     2702589 :          ipack = ipack + 1
   26470     2702589 :          pack_tmp = packed_data(ipack)
   26471     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   26472     2702589 :          pack_tmp = ISHFT(pack_tmp, -4)
   26473     2702589 :          idata = idata + 1
   26474     2702589 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26475     2702589 :          full_data(idata) = data_tmp
   26476     2702589 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26477     2702589 :          idata = idata + 1
   26478     2702589 :          data_tmp = ISHFT(pack_tmp, 10)
   26479     2702589 :          ipack = ipack + 1
   26480     2702589 :          pack_tmp = packed_data(ipack)
   26481     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   26482     2702589 :          pack_tmp = ISHFT(pack_tmp, -10)
   26483     2702589 :          idata = idata + 1
   26484     2702589 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26485     2702589 :          full_data(idata) = data_tmp
   26486     2702589 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26487     2702589 :          idata = idata + 1
   26488     2702589 :          data_tmp = ISHFT(pack_tmp, 16)
   26489     2702589 :          ipack = ipack + 1
   26490     2702589 :          pack_tmp = packed_data(ipack)
   26491     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   26492     2702589 :          pack_tmp = ISHFT(pack_tmp, -16)
   26493     2702589 :          idata = idata + 1
   26494     2702589 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26495     2702589 :          full_data(idata) = data_tmp
   26496     2702589 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26497     2702589 :          idata = idata + 1
   26498     2702589 :          data_tmp = ISHFT(pack_tmp, 22)
   26499     2702589 :          ipack = ipack + 1
   26500     2702589 :          pack_tmp = packed_data(ipack)
   26501     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   26502     2702589 :          pack_tmp = ISHFT(pack_tmp, -22)
   26503     2702589 :          idata = idata + 1
   26504     2702589 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26505     2702589 :          full_data(idata) = data_tmp
   26506     2702589 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26507     2702589 :          idata = idata + 1
   26508     2702589 :          data_tmp = ISHFT(pack_tmp, 28)
   26509     2702589 :          ipack = ipack + 1
   26510     2702589 :          pack_tmp = packed_data(ipack)
   26511     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   26512     2702589 :          pack_tmp = ISHFT(pack_tmp, -28)
   26513     2702589 :          idata = idata + 1
   26514     2702589 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26515     2702589 :          full_data(idata) = data_tmp
   26516     2702589 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26517     2702589 :          idata = idata + 1
   26518     2702589 :          data_tmp = ISHFT(pack_tmp, 34)
   26519     2702589 :          ipack = ipack + 1
   26520     2702589 :          pack_tmp = packed_data(ipack)
   26521     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   26522     2702589 :          pack_tmp = ISHFT(pack_tmp, -34)
   26523     2702589 :          idata = idata + 1
   26524     2702589 :          data_tmp = ISHFT(pack_tmp, 5)
   26525     2702589 :          ipack = ipack + 1
   26526     2702589 :          pack_tmp = packed_data(ipack)
   26527     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   26528     2702589 :          pack_tmp = ISHFT(pack_tmp, -5)
   26529     2702589 :          idata = idata + 1
   26530     2702589 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26531     2702589 :          full_data(idata) = data_tmp
   26532     2702589 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26533     2702589 :          idata = idata + 1
   26534     2702589 :          data_tmp = ISHFT(pack_tmp, 11)
   26535     2702589 :          ipack = ipack + 1
   26536     2702589 :          pack_tmp = packed_data(ipack)
   26537     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   26538     2702589 :          pack_tmp = ISHFT(pack_tmp, -11)
   26539     2702589 :          idata = idata + 1
   26540     2702589 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26541     2702589 :          full_data(idata) = data_tmp
   26542     2702589 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26543     2702589 :          idata = idata + 1
   26544     2702589 :          data_tmp = ISHFT(pack_tmp, 17)
   26545     2702589 :          ipack = ipack + 1
   26546     2702589 :          pack_tmp = packed_data(ipack)
   26547     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   26548     2702589 :          pack_tmp = ISHFT(pack_tmp, -17)
   26549     2702589 :          idata = idata + 1
   26550     2702589 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26551     2702589 :          full_data(idata) = data_tmp
   26552     2702589 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26553     2702589 :          idata = idata + 1
   26554     2702589 :          data_tmp = ISHFT(pack_tmp, 23)
   26555     2702589 :          ipack = ipack + 1
   26556     2702589 :          pack_tmp = packed_data(ipack)
   26557     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   26558     2702589 :          pack_tmp = ISHFT(pack_tmp, -23)
   26559     2702589 :          idata = idata + 1
   26560     2702589 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26561     2702589 :          full_data(idata) = data_tmp
   26562     2702589 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26563     2702589 :          idata = idata + 1
   26564     2702589 :          data_tmp = ISHFT(pack_tmp, 29)
   26565     2702589 :          ipack = ipack + 1
   26566     2702589 :          pack_tmp = packed_data(ipack)
   26567     2702589 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   26568     2702589 :          pack_tmp = ISHFT(pack_tmp, -29)
   26569     2702589 :          idata = idata + 1
   26570     2702589 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26571     2702589 :          full_data(idata) = data_tmp
   26572     2704696 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26573             :       END DO
   26574      217516 :       IF (Ndata_rep < Ndata) THEN
   26575       90534 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   26576             :       END IF
   26577      217516 :    END SUBROUTINE bits2ints_35
   26578             : 
   26579             : ! **************************************************************************************************
   26580             : !> \brief ...
   26581             : !> \param Ndata ...
   26582             : !> \param packed_data ...
   26583             : !> \param full_data ...
   26584             : ! **************************************************************************************************
   26585       43769 :    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       43769 :       idata = 0
   26596       43769 :       ipack = 0
   26597       43769 :       Ndata_rep = (Ndata/64)*64
   26598       43769 :       DO kdata = 1, Ndata_rep, 64
   26599      568554 :          pack_tmp = 0
   26600      568554 :          idata = idata + 1
   26601      568554 :          data_tmp = full_data(idata)
   26602      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26603      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26604      568554 :          pack_tmp = ISHFT(pack_tmp, -28)
   26605      568554 :          idata = idata + 1
   26606      568554 :          data_tmp = full_data(idata)
   26607      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26608      568554 :          data_tmp = IAND(data_tmp, mask_left(28))
   26609      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26610      568554 :          ipack = ipack + 1
   26611      568554 :          packed_data(ipack) = pack_tmp
   26612      568554 :          data_tmp = full_data(idata)
   26613      568554 :          pack_tmp = ISHFT(data_tmp, 56)
   26614      568554 :          pack_tmp = ISHFT(pack_tmp, -36)
   26615      568554 :          idata = idata + 1
   26616      568554 :          data_tmp = full_data(idata)
   26617      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26618      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26619      568554 :          pack_tmp = ISHFT(pack_tmp, -20)
   26620      568554 :          idata = idata + 1
   26621      568554 :          data_tmp = full_data(idata)
   26622      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26623      568554 :          data_tmp = IAND(data_tmp, mask_left(20))
   26624      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26625      568554 :          ipack = ipack + 1
   26626      568554 :          packed_data(ipack) = pack_tmp
   26627      568554 :          data_tmp = full_data(idata)
   26628      568554 :          pack_tmp = ISHFT(data_tmp, 48)
   26629      568554 :          pack_tmp = ISHFT(pack_tmp, -36)
   26630      568554 :          idata = idata + 1
   26631      568554 :          data_tmp = full_data(idata)
   26632      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26633      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26634      568554 :          pack_tmp = ISHFT(pack_tmp, -12)
   26635      568554 :          idata = idata + 1
   26636      568554 :          data_tmp = full_data(idata)
   26637      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26638      568554 :          data_tmp = IAND(data_tmp, mask_left(12))
   26639      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26640      568554 :          ipack = ipack + 1
   26641      568554 :          packed_data(ipack) = pack_tmp
   26642      568554 :          data_tmp = full_data(idata)
   26643      568554 :          pack_tmp = ISHFT(data_tmp, 40)
   26644      568554 :          pack_tmp = ISHFT(pack_tmp, -36)
   26645      568554 :          idata = idata + 1
   26646      568554 :          data_tmp = full_data(idata)
   26647      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26648      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26649      568554 :          pack_tmp = ISHFT(pack_tmp, -4)
   26650      568554 :          idata = idata + 1
   26651      568554 :          data_tmp = full_data(idata)
   26652      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26653      568554 :          data_tmp = IAND(data_tmp, mask_left(4))
   26654      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26655      568554 :          ipack = ipack + 1
   26656      568554 :          packed_data(ipack) = pack_tmp
   26657      568554 :          data_tmp = full_data(idata)
   26658      568554 :          pack_tmp = ISHFT(data_tmp, 32)
   26659      568554 :          pack_tmp = ISHFT(pack_tmp, -32)
   26660      568554 :          idata = idata + 1
   26661      568554 :          data_tmp = full_data(idata)
   26662      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26663      568554 :          data_tmp = IAND(data_tmp, mask_left(32))
   26664      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26665      568554 :          ipack = ipack + 1
   26666      568554 :          packed_data(ipack) = pack_tmp
   26667      568554 :          data_tmp = full_data(idata)
   26668      568554 :          pack_tmp = ISHFT(data_tmp, 60)
   26669      568554 :          pack_tmp = ISHFT(pack_tmp, -36)
   26670      568554 :          idata = idata + 1
   26671      568554 :          data_tmp = full_data(idata)
   26672      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26673      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26674      568554 :          pack_tmp = ISHFT(pack_tmp, -24)
   26675      568554 :          idata = idata + 1
   26676      568554 :          data_tmp = full_data(idata)
   26677      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26678      568554 :          data_tmp = IAND(data_tmp, mask_left(24))
   26679      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26680      568554 :          ipack = ipack + 1
   26681      568554 :          packed_data(ipack) = pack_tmp
   26682      568554 :          data_tmp = full_data(idata)
   26683      568554 :          pack_tmp = ISHFT(data_tmp, 52)
   26684      568554 :          pack_tmp = ISHFT(pack_tmp, -36)
   26685      568554 :          idata = idata + 1
   26686      568554 :          data_tmp = full_data(idata)
   26687      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26688      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26689      568554 :          pack_tmp = ISHFT(pack_tmp, -16)
   26690      568554 :          idata = idata + 1
   26691      568554 :          data_tmp = full_data(idata)
   26692      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26693      568554 :          data_tmp = IAND(data_tmp, mask_left(16))
   26694      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26695      568554 :          ipack = ipack + 1
   26696      568554 :          packed_data(ipack) = pack_tmp
   26697      568554 :          data_tmp = full_data(idata)
   26698      568554 :          pack_tmp = ISHFT(data_tmp, 44)
   26699      568554 :          pack_tmp = ISHFT(pack_tmp, -36)
   26700      568554 :          idata = idata + 1
   26701      568554 :          data_tmp = full_data(idata)
   26702      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26703      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26704      568554 :          pack_tmp = ISHFT(pack_tmp, -8)
   26705      568554 :          idata = idata + 1
   26706      568554 :          data_tmp = full_data(idata)
   26707      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26708      568554 :          data_tmp = IAND(data_tmp, mask_left(8))
   26709      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26710      568554 :          ipack = ipack + 1
   26711      568554 :          packed_data(ipack) = pack_tmp
   26712      568554 :          data_tmp = full_data(idata)
   26713      568554 :          pack_tmp = ISHFT(data_tmp, 36)
   26714      568554 :          pack_tmp = ISHFT(pack_tmp, -36)
   26715      568554 :          idata = idata + 1
   26716      568554 :          data_tmp = full_data(idata)
   26717      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26718      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26719      568554 :          pack_tmp = ISHFT(pack_tmp, 0)
   26720      568554 :          idata = idata + 1
   26721      568554 :          data_tmp = full_data(idata)
   26722             :          data_tmp = ISHFT(data_tmp, 28)
   26723      568554 :          data_tmp = IAND(data_tmp, mask_left(0))
   26724      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26725      568554 :          ipack = ipack + 1
   26726      568554 :          packed_data(ipack) = pack_tmp
   26727      568554 :          data_tmp = full_data(idata)
   26728      568554 :          pack_tmp = ISHFT(data_tmp, 28)
   26729      568554 :          pack_tmp = ISHFT(pack_tmp, -28)
   26730      568554 :          idata = idata + 1
   26731      568554 :          data_tmp = full_data(idata)
   26732      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26733      568554 :          data_tmp = IAND(data_tmp, mask_left(28))
   26734      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26735      568554 :          ipack = ipack + 1
   26736      568554 :          packed_data(ipack) = pack_tmp
   26737      568554 :          data_tmp = full_data(idata)
   26738      568554 :          pack_tmp = ISHFT(data_tmp, 56)
   26739      568554 :          pack_tmp = ISHFT(pack_tmp, -36)
   26740      568554 :          idata = idata + 1
   26741      568554 :          data_tmp = full_data(idata)
   26742      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26743      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26744      568554 :          pack_tmp = ISHFT(pack_tmp, -20)
   26745      568554 :          idata = idata + 1
   26746      568554 :          data_tmp = full_data(idata)
   26747      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26748      568554 :          data_tmp = IAND(data_tmp, mask_left(20))
   26749      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26750      568554 :          ipack = ipack + 1
   26751      568554 :          packed_data(ipack) = pack_tmp
   26752      568554 :          data_tmp = full_data(idata)
   26753      568554 :          pack_tmp = ISHFT(data_tmp, 48)
   26754      568554 :          pack_tmp = ISHFT(pack_tmp, -36)
   26755      568554 :          idata = idata + 1
   26756      568554 :          data_tmp = full_data(idata)
   26757      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26758      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26759      568554 :          pack_tmp = ISHFT(pack_tmp, -12)
   26760      568554 :          idata = idata + 1
   26761      568554 :          data_tmp = full_data(idata)
   26762      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26763      568554 :          data_tmp = IAND(data_tmp, mask_left(12))
   26764      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26765      568554 :          ipack = ipack + 1
   26766      568554 :          packed_data(ipack) = pack_tmp
   26767      568554 :          data_tmp = full_data(idata)
   26768      568554 :          pack_tmp = ISHFT(data_tmp, 40)
   26769      568554 :          pack_tmp = ISHFT(pack_tmp, -36)
   26770      568554 :          idata = idata + 1
   26771      568554 :          data_tmp = full_data(idata)
   26772      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26773      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26774      568554 :          pack_tmp = ISHFT(pack_tmp, -4)
   26775      568554 :          idata = idata + 1
   26776      568554 :          data_tmp = full_data(idata)
   26777      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26778      568554 :          data_tmp = IAND(data_tmp, mask_left(4))
   26779      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26780      568554 :          ipack = ipack + 1
   26781      568554 :          packed_data(ipack) = pack_tmp
   26782      568554 :          data_tmp = full_data(idata)
   26783      568554 :          pack_tmp = ISHFT(data_tmp, 32)
   26784      568554 :          pack_tmp = ISHFT(pack_tmp, -32)
   26785      568554 :          idata = idata + 1
   26786      568554 :          data_tmp = full_data(idata)
   26787      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26788      568554 :          data_tmp = IAND(data_tmp, mask_left(32))
   26789      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26790      568554 :          ipack = ipack + 1
   26791      568554 :          packed_data(ipack) = pack_tmp
   26792      568554 :          data_tmp = full_data(idata)
   26793      568554 :          pack_tmp = ISHFT(data_tmp, 60)
   26794      568554 :          pack_tmp = ISHFT(pack_tmp, -36)
   26795      568554 :          idata = idata + 1
   26796      568554 :          data_tmp = full_data(idata)
   26797      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26798      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26799      568554 :          pack_tmp = ISHFT(pack_tmp, -24)
   26800      568554 :          idata = idata + 1
   26801      568554 :          data_tmp = full_data(idata)
   26802      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26803      568554 :          data_tmp = IAND(data_tmp, mask_left(24))
   26804      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26805      568554 :          ipack = ipack + 1
   26806      568554 :          packed_data(ipack) = pack_tmp
   26807      568554 :          data_tmp = full_data(idata)
   26808      568554 :          pack_tmp = ISHFT(data_tmp, 52)
   26809      568554 :          pack_tmp = ISHFT(pack_tmp, -36)
   26810      568554 :          idata = idata + 1
   26811      568554 :          data_tmp = full_data(idata)
   26812      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26813      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26814      568554 :          pack_tmp = ISHFT(pack_tmp, -16)
   26815      568554 :          idata = idata + 1
   26816      568554 :          data_tmp = full_data(idata)
   26817      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26818      568554 :          data_tmp = IAND(data_tmp, mask_left(16))
   26819      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26820      568554 :          ipack = ipack + 1
   26821      568554 :          packed_data(ipack) = pack_tmp
   26822      568554 :          data_tmp = full_data(idata)
   26823      568554 :          pack_tmp = ISHFT(data_tmp, 44)
   26824      568554 :          pack_tmp = ISHFT(pack_tmp, -36)
   26825      568554 :          idata = idata + 1
   26826      568554 :          data_tmp = full_data(idata)
   26827      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26828      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26829      568554 :          pack_tmp = ISHFT(pack_tmp, -8)
   26830      568554 :          idata = idata + 1
   26831      568554 :          data_tmp = full_data(idata)
   26832      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26833      568554 :          data_tmp = IAND(data_tmp, mask_left(8))
   26834      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26835      568554 :          ipack = ipack + 1
   26836      568554 :          packed_data(ipack) = pack_tmp
   26837      568554 :          data_tmp = full_data(idata)
   26838      568554 :          pack_tmp = ISHFT(data_tmp, 36)
   26839      568554 :          pack_tmp = ISHFT(pack_tmp, -36)
   26840      568554 :          idata = idata + 1
   26841      568554 :          data_tmp = full_data(idata)
   26842      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26843      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26844      568554 :          pack_tmp = ISHFT(pack_tmp, 0)
   26845      568554 :          idata = idata + 1
   26846      568554 :          data_tmp = full_data(idata)
   26847             :          data_tmp = ISHFT(data_tmp, 28)
   26848      568554 :          data_tmp = IAND(data_tmp, mask_left(0))
   26849      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26850      568554 :          ipack = ipack + 1
   26851      568554 :          packed_data(ipack) = pack_tmp
   26852      568554 :          data_tmp = full_data(idata)
   26853      568554 :          pack_tmp = ISHFT(data_tmp, 28)
   26854      568554 :          pack_tmp = ISHFT(pack_tmp, -28)
   26855      568554 :          idata = idata + 1
   26856      568554 :          data_tmp = full_data(idata)
   26857      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26858      568554 :          data_tmp = IAND(data_tmp, mask_left(28))
   26859      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26860      568554 :          ipack = ipack + 1
   26861      568554 :          packed_data(ipack) = pack_tmp
   26862      568554 :          data_tmp = full_data(idata)
   26863      568554 :          pack_tmp = ISHFT(data_tmp, 56)
   26864      568554 :          pack_tmp = ISHFT(pack_tmp, -36)
   26865      568554 :          idata = idata + 1
   26866      568554 :          data_tmp = full_data(idata)
   26867      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26868      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26869      568554 :          pack_tmp = ISHFT(pack_tmp, -20)
   26870      568554 :          idata = idata + 1
   26871      568554 :          data_tmp = full_data(idata)
   26872      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26873      568554 :          data_tmp = IAND(data_tmp, mask_left(20))
   26874      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26875      568554 :          ipack = ipack + 1
   26876      568554 :          packed_data(ipack) = pack_tmp
   26877      568554 :          data_tmp = full_data(idata)
   26878      568554 :          pack_tmp = ISHFT(data_tmp, 48)
   26879      568554 :          pack_tmp = ISHFT(pack_tmp, -36)
   26880      568554 :          idata = idata + 1
   26881      568554 :          data_tmp = full_data(idata)
   26882      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26883      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26884      568554 :          pack_tmp = ISHFT(pack_tmp, -12)
   26885      568554 :          idata = idata + 1
   26886      568554 :          data_tmp = full_data(idata)
   26887      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26888      568554 :          data_tmp = IAND(data_tmp, mask_left(12))
   26889      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26890      568554 :          ipack = ipack + 1
   26891      568554 :          packed_data(ipack) = pack_tmp
   26892      568554 :          data_tmp = full_data(idata)
   26893      568554 :          pack_tmp = ISHFT(data_tmp, 40)
   26894      568554 :          pack_tmp = ISHFT(pack_tmp, -36)
   26895      568554 :          idata = idata + 1
   26896      568554 :          data_tmp = full_data(idata)
   26897      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26898      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26899      568554 :          pack_tmp = ISHFT(pack_tmp, -4)
   26900      568554 :          idata = idata + 1
   26901      568554 :          data_tmp = full_data(idata)
   26902      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26903      568554 :          data_tmp = IAND(data_tmp, mask_left(4))
   26904      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26905      568554 :          ipack = ipack + 1
   26906      568554 :          packed_data(ipack) = pack_tmp
   26907      568554 :          data_tmp = full_data(idata)
   26908      568554 :          pack_tmp = ISHFT(data_tmp, 32)
   26909      568554 :          pack_tmp = ISHFT(pack_tmp, -32)
   26910      568554 :          idata = idata + 1
   26911      568554 :          data_tmp = full_data(idata)
   26912      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26913      568554 :          data_tmp = IAND(data_tmp, mask_left(32))
   26914      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26915      568554 :          ipack = ipack + 1
   26916      568554 :          packed_data(ipack) = pack_tmp
   26917      568554 :          data_tmp = full_data(idata)
   26918      568554 :          pack_tmp = ISHFT(data_tmp, 60)
   26919      568554 :          pack_tmp = ISHFT(pack_tmp, -36)
   26920      568554 :          idata = idata + 1
   26921      568554 :          data_tmp = full_data(idata)
   26922      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26923      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26924      568554 :          pack_tmp = ISHFT(pack_tmp, -24)
   26925      568554 :          idata = idata + 1
   26926      568554 :          data_tmp = full_data(idata)
   26927      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26928      568554 :          data_tmp = IAND(data_tmp, mask_left(24))
   26929      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26930      568554 :          ipack = ipack + 1
   26931      568554 :          packed_data(ipack) = pack_tmp
   26932      568554 :          data_tmp = full_data(idata)
   26933      568554 :          pack_tmp = ISHFT(data_tmp, 52)
   26934      568554 :          pack_tmp = ISHFT(pack_tmp, -36)
   26935      568554 :          idata = idata + 1
   26936      568554 :          data_tmp = full_data(idata)
   26937      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26938      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26939      568554 :          pack_tmp = ISHFT(pack_tmp, -16)
   26940      568554 :          idata = idata + 1
   26941      568554 :          data_tmp = full_data(idata)
   26942      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26943      568554 :          data_tmp = IAND(data_tmp, mask_left(16))
   26944      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26945      568554 :          ipack = ipack + 1
   26946      568554 :          packed_data(ipack) = pack_tmp
   26947      568554 :          data_tmp = full_data(idata)
   26948      568554 :          pack_tmp = ISHFT(data_tmp, 44)
   26949      568554 :          pack_tmp = ISHFT(pack_tmp, -36)
   26950      568554 :          idata = idata + 1
   26951      568554 :          data_tmp = full_data(idata)
   26952      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26953      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26954      568554 :          pack_tmp = ISHFT(pack_tmp, -8)
   26955      568554 :          idata = idata + 1
   26956      568554 :          data_tmp = full_data(idata)
   26957      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26958      568554 :          data_tmp = IAND(data_tmp, mask_left(8))
   26959      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26960      568554 :          ipack = ipack + 1
   26961      568554 :          packed_data(ipack) = pack_tmp
   26962      568554 :          data_tmp = full_data(idata)
   26963      568554 :          pack_tmp = ISHFT(data_tmp, 36)
   26964      568554 :          pack_tmp = ISHFT(pack_tmp, -36)
   26965      568554 :          idata = idata + 1
   26966      568554 :          data_tmp = full_data(idata)
   26967      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26968      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26969      568554 :          pack_tmp = ISHFT(pack_tmp, 0)
   26970      568554 :          idata = idata + 1
   26971      568554 :          data_tmp = full_data(idata)
   26972             :          data_tmp = ISHFT(data_tmp, 28)
   26973      568554 :          data_tmp = IAND(data_tmp, mask_left(0))
   26974      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26975      568554 :          ipack = ipack + 1
   26976      568554 :          packed_data(ipack) = pack_tmp
   26977      568554 :          data_tmp = full_data(idata)
   26978      568554 :          pack_tmp = ISHFT(data_tmp, 28)
   26979      568554 :          pack_tmp = ISHFT(pack_tmp, -28)
   26980      568554 :          idata = idata + 1
   26981      568554 :          data_tmp = full_data(idata)
   26982      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26983      568554 :          data_tmp = IAND(data_tmp, mask_left(28))
   26984      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26985      568554 :          ipack = ipack + 1
   26986      568554 :          packed_data(ipack) = pack_tmp
   26987      568554 :          data_tmp = full_data(idata)
   26988      568554 :          pack_tmp = ISHFT(data_tmp, 56)
   26989      568554 :          pack_tmp = ISHFT(pack_tmp, -36)
   26990      568554 :          idata = idata + 1
   26991      568554 :          data_tmp = full_data(idata)
   26992      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26993      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26994      568554 :          pack_tmp = ISHFT(pack_tmp, -20)
   26995      568554 :          idata = idata + 1
   26996      568554 :          data_tmp = full_data(idata)
   26997      568554 :          data_tmp = ISHFT(data_tmp, 28)
   26998      568554 :          data_tmp = IAND(data_tmp, mask_left(20))
   26999      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27000      568554 :          ipack = ipack + 1
   27001      568554 :          packed_data(ipack) = pack_tmp
   27002      568554 :          data_tmp = full_data(idata)
   27003      568554 :          pack_tmp = ISHFT(data_tmp, 48)
   27004      568554 :          pack_tmp = ISHFT(pack_tmp, -36)
   27005      568554 :          idata = idata + 1
   27006      568554 :          data_tmp = full_data(idata)
   27007      568554 :          data_tmp = ISHFT(data_tmp, 28)
   27008      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27009      568554 :          pack_tmp = ISHFT(pack_tmp, -12)
   27010      568554 :          idata = idata + 1
   27011      568554 :          data_tmp = full_data(idata)
   27012      568554 :          data_tmp = ISHFT(data_tmp, 28)
   27013      568554 :          data_tmp = IAND(data_tmp, mask_left(12))
   27014      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27015      568554 :          ipack = ipack + 1
   27016      568554 :          packed_data(ipack) = pack_tmp
   27017      568554 :          data_tmp = full_data(idata)
   27018      568554 :          pack_tmp = ISHFT(data_tmp, 40)
   27019      568554 :          pack_tmp = ISHFT(pack_tmp, -36)
   27020      568554 :          idata = idata + 1
   27021      568554 :          data_tmp = full_data(idata)
   27022      568554 :          data_tmp = ISHFT(data_tmp, 28)
   27023      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27024      568554 :          pack_tmp = ISHFT(pack_tmp, -4)
   27025      568554 :          idata = idata + 1
   27026      568554 :          data_tmp = full_data(idata)
   27027      568554 :          data_tmp = ISHFT(data_tmp, 28)
   27028      568554 :          data_tmp = IAND(data_tmp, mask_left(4))
   27029      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27030      568554 :          ipack = ipack + 1
   27031      568554 :          packed_data(ipack) = pack_tmp
   27032      568554 :          data_tmp = full_data(idata)
   27033      568554 :          pack_tmp = ISHFT(data_tmp, 32)
   27034      568554 :          pack_tmp = ISHFT(pack_tmp, -32)
   27035      568554 :          idata = idata + 1
   27036      568554 :          data_tmp = full_data(idata)
   27037      568554 :          data_tmp = ISHFT(data_tmp, 28)
   27038      568554 :          data_tmp = IAND(data_tmp, mask_left(32))
   27039      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27040      568554 :          ipack = ipack + 1
   27041      568554 :          packed_data(ipack) = pack_tmp
   27042      568554 :          data_tmp = full_data(idata)
   27043      568554 :          pack_tmp = ISHFT(data_tmp, 60)
   27044      568554 :          pack_tmp = ISHFT(pack_tmp, -36)
   27045      568554 :          idata = idata + 1
   27046      568554 :          data_tmp = full_data(idata)
   27047      568554 :          data_tmp = ISHFT(data_tmp, 28)
   27048      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27049      568554 :          pack_tmp = ISHFT(pack_tmp, -24)
   27050      568554 :          idata = idata + 1
   27051      568554 :          data_tmp = full_data(idata)
   27052      568554 :          data_tmp = ISHFT(data_tmp, 28)
   27053      568554 :          data_tmp = IAND(data_tmp, mask_left(24))
   27054      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27055      568554 :          ipack = ipack + 1
   27056      568554 :          packed_data(ipack) = pack_tmp
   27057      568554 :          data_tmp = full_data(idata)
   27058      568554 :          pack_tmp = ISHFT(data_tmp, 52)
   27059      568554 :          pack_tmp = ISHFT(pack_tmp, -36)
   27060      568554 :          idata = idata + 1
   27061      568554 :          data_tmp = full_data(idata)
   27062      568554 :          data_tmp = ISHFT(data_tmp, 28)
   27063      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27064      568554 :          pack_tmp = ISHFT(pack_tmp, -16)
   27065      568554 :          idata = idata + 1
   27066      568554 :          data_tmp = full_data(idata)
   27067      568554 :          data_tmp = ISHFT(data_tmp, 28)
   27068      568554 :          data_tmp = IAND(data_tmp, mask_left(16))
   27069      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27070      568554 :          ipack = ipack + 1
   27071      568554 :          packed_data(ipack) = pack_tmp
   27072      568554 :          data_tmp = full_data(idata)
   27073      568554 :          pack_tmp = ISHFT(data_tmp, 44)
   27074      568554 :          pack_tmp = ISHFT(pack_tmp, -36)
   27075      568554 :          idata = idata + 1
   27076      568554 :          data_tmp = full_data(idata)
   27077      568554 :          data_tmp = ISHFT(data_tmp, 28)
   27078      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27079      568554 :          pack_tmp = ISHFT(pack_tmp, -8)
   27080      568554 :          idata = idata + 1
   27081      568554 :          data_tmp = full_data(idata)
   27082      568554 :          data_tmp = ISHFT(data_tmp, 28)
   27083      568554 :          data_tmp = IAND(data_tmp, mask_left(8))
   27084      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27085      568554 :          ipack = ipack + 1
   27086      568554 :          packed_data(ipack) = pack_tmp
   27087      568554 :          data_tmp = full_data(idata)
   27088      568554 :          pack_tmp = ISHFT(data_tmp, 36)
   27089      568554 :          pack_tmp = ISHFT(pack_tmp, -36)
   27090      568554 :          idata = idata + 1
   27091      568554 :          data_tmp = full_data(idata)
   27092      568554 :          data_tmp = ISHFT(data_tmp, 28)
   27093      568554 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27094             :          pack_tmp = ISHFT(pack_tmp, 0)
   27095      568554 :          pack_tmp = ISHFT(pack_tmp, 0)
   27096      568554 :          ipack = ipack + 1
   27097      568849 :          packed_data(ipack) = pack_tmp
   27098             :       END DO
   27099       43769 :       IF (Ndata_rep < Ndata) THEN
   27100       15500 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   27101             :       END IF
   27102       43769 :    END SUBROUTINE ints2bits_36
   27103             : 
   27104             : ! **************************************************************************************************
   27105             : !> \brief ...
   27106             : !> \param Ndata ...
   27107             : !> \param packed_data ...
   27108             : !> \param full_data ...
   27109             : ! **************************************************************************************************
   27110      166565 :    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      166565 :       ipack = 0
   27121      166565 :       idata = 0
   27122      166565 :       pack_tmp = 0
   27123      166565 :       Ndata_rep = (Ndata/64)*64
   27124      166565 :       DO kdata = 1, Ndata_rep, 64
   27125     2204068 :          idata = idata + 1
   27126     2204068 :          data_tmp = ISHFT(pack_tmp, 36)
   27127     2204068 :          ipack = ipack + 1
   27128     2204068 :          pack_tmp = packed_data(ipack)
   27129     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   27130     2204068 :          pack_tmp = ISHFT(pack_tmp, -36)
   27131     2204068 :          idata = idata + 1
   27132     2204068 :          data_tmp = ISHFT(pack_tmp, 8)
   27133     2204068 :          ipack = ipack + 1
   27134     2204068 :          pack_tmp = packed_data(ipack)
   27135     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   27136     2204068 :          pack_tmp = ISHFT(pack_tmp, -8)
   27137     2204068 :          idata = idata + 1
   27138     2204068 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27139     2204068 :          full_data(idata) = data_tmp
   27140     2204068 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27141     2204068 :          idata = idata + 1
   27142     2204068 :          data_tmp = ISHFT(pack_tmp, 16)
   27143     2204068 :          ipack = ipack + 1
   27144     2204068 :          pack_tmp = packed_data(ipack)
   27145     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   27146     2204068 :          pack_tmp = ISHFT(pack_tmp, -16)
   27147     2204068 :          idata = idata + 1
   27148     2204068 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27149     2204068 :          full_data(idata) = data_tmp
   27150     2204068 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27151     2204068 :          idata = idata + 1
   27152     2204068 :          data_tmp = ISHFT(pack_tmp, 24)
   27153     2204068 :          ipack = ipack + 1
   27154     2204068 :          pack_tmp = packed_data(ipack)
   27155     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   27156     2204068 :          pack_tmp = ISHFT(pack_tmp, -24)
   27157     2204068 :          idata = idata + 1
   27158     2204068 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27159     2204068 :          full_data(idata) = data_tmp
   27160     2204068 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27161     2204068 :          idata = idata + 1
   27162     2204068 :          data_tmp = ISHFT(pack_tmp, 32)
   27163     2204068 :          ipack = ipack + 1
   27164     2204068 :          pack_tmp = packed_data(ipack)
   27165     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   27166     2204068 :          pack_tmp = ISHFT(pack_tmp, -32)
   27167     2204068 :          idata = idata + 1
   27168     2204068 :          data_tmp = ISHFT(pack_tmp, 4)
   27169     2204068 :          ipack = ipack + 1
   27170     2204068 :          pack_tmp = packed_data(ipack)
   27171     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   27172     2204068 :          pack_tmp = ISHFT(pack_tmp, -4)
   27173     2204068 :          idata = idata + 1
   27174     2204068 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27175     2204068 :          full_data(idata) = data_tmp
   27176     2204068 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27177     2204068 :          idata = idata + 1
   27178     2204068 :          data_tmp = ISHFT(pack_tmp, 12)
   27179     2204068 :          ipack = ipack + 1
   27180     2204068 :          pack_tmp = packed_data(ipack)
   27181     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   27182     2204068 :          pack_tmp = ISHFT(pack_tmp, -12)
   27183     2204068 :          idata = idata + 1
   27184     2204068 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27185     2204068 :          full_data(idata) = data_tmp
   27186     2204068 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27187     2204068 :          idata = idata + 1
   27188     2204068 :          data_tmp = ISHFT(pack_tmp, 20)
   27189     2204068 :          ipack = ipack + 1
   27190     2204068 :          pack_tmp = packed_data(ipack)
   27191     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   27192     2204068 :          pack_tmp = ISHFT(pack_tmp, -20)
   27193     2204068 :          idata = idata + 1
   27194     2204068 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27195     2204068 :          full_data(idata) = data_tmp
   27196     2204068 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27197     2204068 :          idata = idata + 1
   27198     2204068 :          data_tmp = ISHFT(pack_tmp, 28)
   27199     2204068 :          ipack = ipack + 1
   27200     2204068 :          pack_tmp = packed_data(ipack)
   27201     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   27202     2204068 :          pack_tmp = ISHFT(pack_tmp, -28)
   27203     2204068 :          idata = idata + 1
   27204     2204068 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27205     2204068 :          full_data(idata) = data_tmp
   27206     2204068 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27207     2204068 :          idata = idata + 1
   27208     2204068 :          data_tmp = ISHFT(pack_tmp, 36)
   27209     2204068 :          ipack = ipack + 1
   27210     2204068 :          pack_tmp = packed_data(ipack)
   27211     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   27212     2204068 :          pack_tmp = ISHFT(pack_tmp, -36)
   27213     2204068 :          idata = idata + 1
   27214     2204068 :          data_tmp = ISHFT(pack_tmp, 8)
   27215     2204068 :          ipack = ipack + 1
   27216     2204068 :          pack_tmp = packed_data(ipack)
   27217     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   27218     2204068 :          pack_tmp = ISHFT(pack_tmp, -8)
   27219     2204068 :          idata = idata + 1
   27220     2204068 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27221     2204068 :          full_data(idata) = data_tmp
   27222     2204068 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27223     2204068 :          idata = idata + 1
   27224     2204068 :          data_tmp = ISHFT(pack_tmp, 16)
   27225     2204068 :          ipack = ipack + 1
   27226     2204068 :          pack_tmp = packed_data(ipack)
   27227     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   27228     2204068 :          pack_tmp = ISHFT(pack_tmp, -16)
   27229     2204068 :          idata = idata + 1
   27230     2204068 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27231     2204068 :          full_data(idata) = data_tmp
   27232     2204068 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27233     2204068 :          idata = idata + 1
   27234     2204068 :          data_tmp = ISHFT(pack_tmp, 24)
   27235     2204068 :          ipack = ipack + 1
   27236     2204068 :          pack_tmp = packed_data(ipack)
   27237     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   27238     2204068 :          pack_tmp = ISHFT(pack_tmp, -24)
   27239     2204068 :          idata = idata + 1
   27240     2204068 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27241     2204068 :          full_data(idata) = data_tmp
   27242     2204068 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27243     2204068 :          idata = idata + 1
   27244     2204068 :          data_tmp = ISHFT(pack_tmp, 32)
   27245     2204068 :          ipack = ipack + 1
   27246     2204068 :          pack_tmp = packed_data(ipack)
   27247     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   27248     2204068 :          pack_tmp = ISHFT(pack_tmp, -32)
   27249     2204068 :          idata = idata + 1
   27250     2204068 :          data_tmp = ISHFT(pack_tmp, 4)
   27251     2204068 :          ipack = ipack + 1
   27252     2204068 :          pack_tmp = packed_data(ipack)
   27253     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   27254     2204068 :          pack_tmp = ISHFT(pack_tmp, -4)
   27255     2204068 :          idata = idata + 1
   27256     2204068 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27257     2204068 :          full_data(idata) = data_tmp
   27258     2204068 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27259     2204068 :          idata = idata + 1
   27260     2204068 :          data_tmp = ISHFT(pack_tmp, 12)
   27261     2204068 :          ipack = ipack + 1
   27262     2204068 :          pack_tmp = packed_data(ipack)
   27263     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   27264     2204068 :          pack_tmp = ISHFT(pack_tmp, -12)
   27265     2204068 :          idata = idata + 1
   27266     2204068 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27267     2204068 :          full_data(idata) = data_tmp
   27268     2204068 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27269     2204068 :          idata = idata + 1
   27270     2204068 :          data_tmp = ISHFT(pack_tmp, 20)
   27271     2204068 :          ipack = ipack + 1
   27272     2204068 :          pack_tmp = packed_data(ipack)
   27273     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   27274     2204068 :          pack_tmp = ISHFT(pack_tmp, -20)
   27275     2204068 :          idata = idata + 1
   27276     2204068 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27277     2204068 :          full_data(idata) = data_tmp
   27278     2204068 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27279     2204068 :          idata = idata + 1
   27280     2204068 :          data_tmp = ISHFT(pack_tmp, 28)
   27281     2204068 :          ipack = ipack + 1
   27282     2204068 :          pack_tmp = packed_data(ipack)
   27283     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   27284     2204068 :          pack_tmp = ISHFT(pack_tmp, -28)
   27285     2204068 :          idata = idata + 1
   27286     2204068 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27287     2204068 :          full_data(idata) = data_tmp
   27288     2204068 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27289     2204068 :          idata = idata + 1
   27290     2204068 :          data_tmp = ISHFT(pack_tmp, 36)
   27291     2204068 :          ipack = ipack + 1
   27292     2204068 :          pack_tmp = packed_data(ipack)
   27293     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   27294     2204068 :          pack_tmp = ISHFT(pack_tmp, -36)
   27295     2204068 :          idata = idata + 1
   27296     2204068 :          data_tmp = ISHFT(pack_tmp, 8)
   27297     2204068 :          ipack = ipack + 1
   27298     2204068 :          pack_tmp = packed_data(ipack)
   27299     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   27300     2204068 :          pack_tmp = ISHFT(pack_tmp, -8)
   27301     2204068 :          idata = idata + 1
   27302     2204068 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27303     2204068 :          full_data(idata) = data_tmp
   27304     2204068 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27305     2204068 :          idata = idata + 1
   27306     2204068 :          data_tmp = ISHFT(pack_tmp, 16)
   27307     2204068 :          ipack = ipack + 1
   27308     2204068 :          pack_tmp = packed_data(ipack)
   27309     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   27310     2204068 :          pack_tmp = ISHFT(pack_tmp, -16)
   27311     2204068 :          idata = idata + 1
   27312     2204068 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27313     2204068 :          full_data(idata) = data_tmp
   27314     2204068 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27315     2204068 :          idata = idata + 1
   27316     2204068 :          data_tmp = ISHFT(pack_tmp, 24)
   27317     2204068 :          ipack = ipack + 1
   27318     2204068 :          pack_tmp = packed_data(ipack)
   27319     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   27320     2204068 :          pack_tmp = ISHFT(pack_tmp, -24)
   27321     2204068 :          idata = idata + 1
   27322     2204068 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27323     2204068 :          full_data(idata) = data_tmp
   27324     2204068 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27325     2204068 :          idata = idata + 1
   27326     2204068 :          data_tmp = ISHFT(pack_tmp, 32)
   27327     2204068 :          ipack = ipack + 1
   27328     2204068 :          pack_tmp = packed_data(ipack)
   27329     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   27330     2204068 :          pack_tmp = ISHFT(pack_tmp, -32)
   27331     2204068 :          idata = idata + 1
   27332     2204068 :          data_tmp = ISHFT(pack_tmp, 4)
   27333     2204068 :          ipack = ipack + 1
   27334     2204068 :          pack_tmp = packed_data(ipack)
   27335     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   27336     2204068 :          pack_tmp = ISHFT(pack_tmp, -4)
   27337     2204068 :          idata = idata + 1
   27338     2204068 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27339     2204068 :          full_data(idata) = data_tmp
   27340     2204068 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27341     2204068 :          idata = idata + 1
   27342     2204068 :          data_tmp = ISHFT(pack_tmp, 12)
   27343     2204068 :          ipack = ipack + 1
   27344     2204068 :          pack_tmp = packed_data(ipack)
   27345     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   27346     2204068 :          pack_tmp = ISHFT(pack_tmp, -12)
   27347     2204068 :          idata = idata + 1
   27348     2204068 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27349     2204068 :          full_data(idata) = data_tmp
   27350     2204068 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27351     2204068 :          idata = idata + 1
   27352     2204068 :          data_tmp = ISHFT(pack_tmp, 20)
   27353     2204068 :          ipack = ipack + 1
   27354     2204068 :          pack_tmp = packed_data(ipack)
   27355     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   27356     2204068 :          pack_tmp = ISHFT(pack_tmp, -20)
   27357     2204068 :          idata = idata + 1
   27358     2204068 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27359     2204068 :          full_data(idata) = data_tmp
   27360     2204068 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27361     2204068 :          idata = idata + 1
   27362     2204068 :          data_tmp = ISHFT(pack_tmp, 28)
   27363     2204068 :          ipack = ipack + 1
   27364     2204068 :          pack_tmp = packed_data(ipack)
   27365     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   27366     2204068 :          pack_tmp = ISHFT(pack_tmp, -28)
   27367     2204068 :          idata = idata + 1
   27368     2204068 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27369     2204068 :          full_data(idata) = data_tmp
   27370     2204068 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27371     2204068 :          idata = idata + 1
   27372     2204068 :          data_tmp = ISHFT(pack_tmp, 36)
   27373     2204068 :          ipack = ipack + 1
   27374     2204068 :          pack_tmp = packed_data(ipack)
   27375     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   27376     2204068 :          pack_tmp = ISHFT(pack_tmp, -36)
   27377     2204068 :          idata = idata + 1
   27378     2204068 :          data_tmp = ISHFT(pack_tmp, 8)
   27379     2204068 :          ipack = ipack + 1
   27380     2204068 :          pack_tmp = packed_data(ipack)
   27381     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   27382     2204068 :          pack_tmp = ISHFT(pack_tmp, -8)
   27383     2204068 :          idata = idata + 1
   27384     2204068 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27385     2204068 :          full_data(idata) = data_tmp
   27386     2204068 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27387     2204068 :          idata = idata + 1
   27388     2204068 :          data_tmp = ISHFT(pack_tmp, 16)
   27389     2204068 :          ipack = ipack + 1
   27390     2204068 :          pack_tmp = packed_data(ipack)
   27391     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   27392     2204068 :          pack_tmp = ISHFT(pack_tmp, -16)
   27393     2204068 :          idata = idata + 1
   27394     2204068 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27395     2204068 :          full_data(idata) = data_tmp
   27396     2204068 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27397     2204068 :          idata = idata + 1
   27398     2204068 :          data_tmp = ISHFT(pack_tmp, 24)
   27399     2204068 :          ipack = ipack + 1
   27400     2204068 :          pack_tmp = packed_data(ipack)
   27401     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   27402     2204068 :          pack_tmp = ISHFT(pack_tmp, -24)
   27403     2204068 :          idata = idata + 1
   27404     2204068 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27405     2204068 :          full_data(idata) = data_tmp
   27406     2204068 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27407     2204068 :          idata = idata + 1
   27408     2204068 :          data_tmp = ISHFT(pack_tmp, 32)
   27409     2204068 :          ipack = ipack + 1
   27410     2204068 :          pack_tmp = packed_data(ipack)
   27411     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   27412     2204068 :          pack_tmp = ISHFT(pack_tmp, -32)
   27413     2204068 :          idata = idata + 1
   27414     2204068 :          data_tmp = ISHFT(pack_tmp, 4)
   27415     2204068 :          ipack = ipack + 1
   27416     2204068 :          pack_tmp = packed_data(ipack)
   27417     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   27418     2204068 :          pack_tmp = ISHFT(pack_tmp, -4)
   27419     2204068 :          idata = idata + 1
   27420     2204068 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27421     2204068 :          full_data(idata) = data_tmp
   27422     2204068 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27423     2204068 :          idata = idata + 1
   27424     2204068 :          data_tmp = ISHFT(pack_tmp, 12)
   27425     2204068 :          ipack = ipack + 1
   27426     2204068 :          pack_tmp = packed_data(ipack)
   27427     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   27428     2204068 :          pack_tmp = ISHFT(pack_tmp, -12)
   27429     2204068 :          idata = idata + 1
   27430     2204068 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27431     2204068 :          full_data(idata) = data_tmp
   27432     2204068 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27433     2204068 :          idata = idata + 1
   27434     2204068 :          data_tmp = ISHFT(pack_tmp, 20)
   27435     2204068 :          ipack = ipack + 1
   27436     2204068 :          pack_tmp = packed_data(ipack)
   27437     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   27438     2204068 :          pack_tmp = ISHFT(pack_tmp, -20)
   27439     2204068 :          idata = idata + 1
   27440     2204068 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27441     2204068 :          full_data(idata) = data_tmp
   27442     2204068 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27443     2204068 :          idata = idata + 1
   27444     2204068 :          data_tmp = ISHFT(pack_tmp, 28)
   27445     2204068 :          ipack = ipack + 1
   27446     2204068 :          pack_tmp = packed_data(ipack)
   27447     2204068 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   27448     2204068 :          pack_tmp = ISHFT(pack_tmp, -28)
   27449     2204068 :          idata = idata + 1
   27450     2204068 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27451     2204068 :          full_data(idata) = data_tmp
   27452     2205493 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27453             :       END DO
   27454      166565 :       IF (Ndata_rep < Ndata) THEN
   27455       54232 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   27456             :       END IF
   27457      166565 :    END SUBROUTINE bits2ints_36
   27458             : 
   27459             : ! **************************************************************************************************
   27460             : !> \brief ...
   27461             : !> \param Ndata ...
   27462             : !> \param packed_data ...
   27463             : !> \param full_data ...
   27464             : ! **************************************************************************************************
   27465       32563 :    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       32563 :       idata = 0
   27476       32563 :       ipack = 0
   27477       32563 :       Ndata_rep = (Ndata/64)*64
   27478       32563 :       DO kdata = 1, Ndata_rep, 64
   27479      458399 :          pack_tmp = 0
   27480      458399 :          idata = idata + 1
   27481      458399 :          data_tmp = full_data(idata)
   27482      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27483      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27484      458399 :          pack_tmp = ISHFT(pack_tmp, -27)
   27485      458399 :          idata = idata + 1
   27486      458399 :          data_tmp = full_data(idata)
   27487      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27488      458399 :          data_tmp = IAND(data_tmp, mask_left(27))
   27489      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27490      458399 :          ipack = ipack + 1
   27491      458399 :          packed_data(ipack) = pack_tmp
   27492      458399 :          data_tmp = full_data(idata)
   27493      458399 :          pack_tmp = ISHFT(data_tmp, 54)
   27494      458399 :          pack_tmp = ISHFT(pack_tmp, -37)
   27495      458399 :          idata = idata + 1
   27496      458399 :          data_tmp = full_data(idata)
   27497      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27498      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27499      458399 :          pack_tmp = ISHFT(pack_tmp, -17)
   27500      458399 :          idata = idata + 1
   27501      458399 :          data_tmp = full_data(idata)
   27502      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27503      458399 :          data_tmp = IAND(data_tmp, mask_left(17))
   27504      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27505      458399 :          ipack = ipack + 1
   27506      458399 :          packed_data(ipack) = pack_tmp
   27507      458399 :          data_tmp = full_data(idata)
   27508      458399 :          pack_tmp = ISHFT(data_tmp, 44)
   27509      458399 :          pack_tmp = ISHFT(pack_tmp, -37)
   27510      458399 :          idata = idata + 1
   27511      458399 :          data_tmp = full_data(idata)
   27512      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27513      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27514      458399 :          pack_tmp = ISHFT(pack_tmp, -7)
   27515      458399 :          idata = idata + 1
   27516      458399 :          data_tmp = full_data(idata)
   27517      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27518      458399 :          data_tmp = IAND(data_tmp, mask_left(7))
   27519      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27520      458399 :          ipack = ipack + 1
   27521      458399 :          packed_data(ipack) = pack_tmp
   27522      458399 :          data_tmp = full_data(idata)
   27523      458399 :          pack_tmp = ISHFT(data_tmp, 34)
   27524      458399 :          pack_tmp = ISHFT(pack_tmp, -34)
   27525      458399 :          idata = idata + 1
   27526      458399 :          data_tmp = full_data(idata)
   27527      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27528      458399 :          data_tmp = IAND(data_tmp, mask_left(34))
   27529      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27530      458399 :          ipack = ipack + 1
   27531      458399 :          packed_data(ipack) = pack_tmp
   27532      458399 :          data_tmp = full_data(idata)
   27533      458399 :          pack_tmp = ISHFT(data_tmp, 61)
   27534      458399 :          pack_tmp = ISHFT(pack_tmp, -37)
   27535      458399 :          idata = idata + 1
   27536      458399 :          data_tmp = full_data(idata)
   27537      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27538      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27539      458399 :          pack_tmp = ISHFT(pack_tmp, -24)
   27540      458399 :          idata = idata + 1
   27541      458399 :          data_tmp = full_data(idata)
   27542      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27543      458399 :          data_tmp = IAND(data_tmp, mask_left(24))
   27544      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27545      458399 :          ipack = ipack + 1
   27546      458399 :          packed_data(ipack) = pack_tmp
   27547      458399 :          data_tmp = full_data(idata)
   27548      458399 :          pack_tmp = ISHFT(data_tmp, 51)
   27549      458399 :          pack_tmp = ISHFT(pack_tmp, -37)
   27550      458399 :          idata = idata + 1
   27551      458399 :          data_tmp = full_data(idata)
   27552      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27553      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27554      458399 :          pack_tmp = ISHFT(pack_tmp, -14)
   27555      458399 :          idata = idata + 1
   27556      458399 :          data_tmp = full_data(idata)
   27557      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27558      458399 :          data_tmp = IAND(data_tmp, mask_left(14))
   27559      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27560      458399 :          ipack = ipack + 1
   27561      458399 :          packed_data(ipack) = pack_tmp
   27562      458399 :          data_tmp = full_data(idata)
   27563      458399 :          pack_tmp = ISHFT(data_tmp, 41)
   27564      458399 :          pack_tmp = ISHFT(pack_tmp, -37)
   27565      458399 :          idata = idata + 1
   27566      458399 :          data_tmp = full_data(idata)
   27567      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27568      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27569      458399 :          pack_tmp = ISHFT(pack_tmp, -4)
   27570      458399 :          idata = idata + 1
   27571      458399 :          data_tmp = full_data(idata)
   27572      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27573      458399 :          data_tmp = IAND(data_tmp, mask_left(4))
   27574      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27575      458399 :          ipack = ipack + 1
   27576      458399 :          packed_data(ipack) = pack_tmp
   27577      458399 :          data_tmp = full_data(idata)
   27578      458399 :          pack_tmp = ISHFT(data_tmp, 31)
   27579      458399 :          pack_tmp = ISHFT(pack_tmp, -31)
   27580      458399 :          idata = idata + 1
   27581      458399 :          data_tmp = full_data(idata)
   27582      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27583      458399 :          data_tmp = IAND(data_tmp, mask_left(31))
   27584      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27585      458399 :          ipack = ipack + 1
   27586      458399 :          packed_data(ipack) = pack_tmp
   27587      458399 :          data_tmp = full_data(idata)
   27588      458399 :          pack_tmp = ISHFT(data_tmp, 58)
   27589      458399 :          pack_tmp = ISHFT(pack_tmp, -37)
   27590      458399 :          idata = idata + 1
   27591      458399 :          data_tmp = full_data(idata)
   27592      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27593      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27594      458399 :          pack_tmp = ISHFT(pack_tmp, -21)
   27595      458399 :          idata = idata + 1
   27596      458399 :          data_tmp = full_data(idata)
   27597      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27598      458399 :          data_tmp = IAND(data_tmp, mask_left(21))
   27599      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27600      458399 :          ipack = ipack + 1
   27601      458399 :          packed_data(ipack) = pack_tmp
   27602      458399 :          data_tmp = full_data(idata)
   27603      458399 :          pack_tmp = ISHFT(data_tmp, 48)
   27604      458399 :          pack_tmp = ISHFT(pack_tmp, -37)
   27605      458399 :          idata = idata + 1
   27606      458399 :          data_tmp = full_data(idata)
   27607      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27608      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27609      458399 :          pack_tmp = ISHFT(pack_tmp, -11)
   27610      458399 :          idata = idata + 1
   27611      458399 :          data_tmp = full_data(idata)
   27612      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27613      458399 :          data_tmp = IAND(data_tmp, mask_left(11))
   27614      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27615      458399 :          ipack = ipack + 1
   27616      458399 :          packed_data(ipack) = pack_tmp
   27617      458399 :          data_tmp = full_data(idata)
   27618      458399 :          pack_tmp = ISHFT(data_tmp, 38)
   27619      458399 :          pack_tmp = ISHFT(pack_tmp, -37)
   27620      458399 :          idata = idata + 1
   27621      458399 :          data_tmp = full_data(idata)
   27622      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27623      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27624      458399 :          pack_tmp = ISHFT(pack_tmp, -1)
   27625      458399 :          idata = idata + 1
   27626      458399 :          data_tmp = full_data(idata)
   27627      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27628      458399 :          data_tmp = IAND(data_tmp, mask_left(1))
   27629      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27630      458399 :          ipack = ipack + 1
   27631      458399 :          packed_data(ipack) = pack_tmp
   27632      458399 :          data_tmp = full_data(idata)
   27633      458399 :          pack_tmp = ISHFT(data_tmp, 28)
   27634      458399 :          pack_tmp = ISHFT(pack_tmp, -28)
   27635      458399 :          idata = idata + 1
   27636      458399 :          data_tmp = full_data(idata)
   27637      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27638      458399 :          data_tmp = IAND(data_tmp, mask_left(28))
   27639      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27640      458399 :          ipack = ipack + 1
   27641      458399 :          packed_data(ipack) = pack_tmp
   27642      458399 :          data_tmp = full_data(idata)
   27643      458399 :          pack_tmp = ISHFT(data_tmp, 55)
   27644      458399 :          pack_tmp = ISHFT(pack_tmp, -37)
   27645      458399 :          idata = idata + 1
   27646      458399 :          data_tmp = full_data(idata)
   27647      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27648      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27649      458399 :          pack_tmp = ISHFT(pack_tmp, -18)
   27650      458399 :          idata = idata + 1
   27651      458399 :          data_tmp = full_data(idata)
   27652      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27653      458399 :          data_tmp = IAND(data_tmp, mask_left(18))
   27654      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27655      458399 :          ipack = ipack + 1
   27656      458399 :          packed_data(ipack) = pack_tmp
   27657      458399 :          data_tmp = full_data(idata)
   27658      458399 :          pack_tmp = ISHFT(data_tmp, 45)
   27659      458399 :          pack_tmp = ISHFT(pack_tmp, -37)
   27660      458399 :          idata = idata + 1
   27661      458399 :          data_tmp = full_data(idata)
   27662      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27663      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27664      458399 :          pack_tmp = ISHFT(pack_tmp, -8)
   27665      458399 :          idata = idata + 1
   27666      458399 :          data_tmp = full_data(idata)
   27667      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27668      458399 :          data_tmp = IAND(data_tmp, mask_left(8))
   27669      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27670      458399 :          ipack = ipack + 1
   27671      458399 :          packed_data(ipack) = pack_tmp
   27672      458399 :          data_tmp = full_data(idata)
   27673      458399 :          pack_tmp = ISHFT(data_tmp, 35)
   27674      458399 :          pack_tmp = ISHFT(pack_tmp, -35)
   27675      458399 :          idata = idata + 1
   27676      458399 :          data_tmp = full_data(idata)
   27677      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27678      458399 :          data_tmp = IAND(data_tmp, mask_left(35))
   27679      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27680      458399 :          ipack = ipack + 1
   27681      458399 :          packed_data(ipack) = pack_tmp
   27682      458399 :          data_tmp = full_data(idata)
   27683      458399 :          pack_tmp = ISHFT(data_tmp, 62)
   27684      458399 :          pack_tmp = ISHFT(pack_tmp, -37)
   27685      458399 :          idata = idata + 1
   27686      458399 :          data_tmp = full_data(idata)
   27687      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27688      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27689      458399 :          pack_tmp = ISHFT(pack_tmp, -25)
   27690      458399 :          idata = idata + 1
   27691      458399 :          data_tmp = full_data(idata)
   27692      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27693      458399 :          data_tmp = IAND(data_tmp, mask_left(25))
   27694      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27695      458399 :          ipack = ipack + 1
   27696      458399 :          packed_data(ipack) = pack_tmp
   27697      458399 :          data_tmp = full_data(idata)
   27698      458399 :          pack_tmp = ISHFT(data_tmp, 52)
   27699      458399 :          pack_tmp = ISHFT(pack_tmp, -37)
   27700      458399 :          idata = idata + 1
   27701      458399 :          data_tmp = full_data(idata)
   27702      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27703      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27704      458399 :          pack_tmp = ISHFT(pack_tmp, -15)
   27705      458399 :          idata = idata + 1
   27706      458399 :          data_tmp = full_data(idata)
   27707      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27708      458399 :          data_tmp = IAND(data_tmp, mask_left(15))
   27709      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27710      458399 :          ipack = ipack + 1
   27711      458399 :          packed_data(ipack) = pack_tmp
   27712      458399 :          data_tmp = full_data(idata)
   27713      458399 :          pack_tmp = ISHFT(data_tmp, 42)
   27714      458399 :          pack_tmp = ISHFT(pack_tmp, -37)
   27715      458399 :          idata = idata + 1
   27716      458399 :          data_tmp = full_data(idata)
   27717      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27718      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27719      458399 :          pack_tmp = ISHFT(pack_tmp, -5)
   27720      458399 :          idata = idata + 1
   27721      458399 :          data_tmp = full_data(idata)
   27722      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27723      458399 :          data_tmp = IAND(data_tmp, mask_left(5))
   27724      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27725      458399 :          ipack = ipack + 1
   27726      458399 :          packed_data(ipack) = pack_tmp
   27727      458399 :          data_tmp = full_data(idata)
   27728      458399 :          pack_tmp = ISHFT(data_tmp, 32)
   27729      458399 :          pack_tmp = ISHFT(pack_tmp, -32)
   27730      458399 :          idata = idata + 1
   27731      458399 :          data_tmp = full_data(idata)
   27732      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27733      458399 :          data_tmp = IAND(data_tmp, mask_left(32))
   27734      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27735      458399 :          ipack = ipack + 1
   27736      458399 :          packed_data(ipack) = pack_tmp
   27737      458399 :          data_tmp = full_data(idata)
   27738      458399 :          pack_tmp = ISHFT(data_tmp, 59)
   27739      458399 :          pack_tmp = ISHFT(pack_tmp, -37)
   27740      458399 :          idata = idata + 1
   27741      458399 :          data_tmp = full_data(idata)
   27742      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27743      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27744      458399 :          pack_tmp = ISHFT(pack_tmp, -22)
   27745      458399 :          idata = idata + 1
   27746      458399 :          data_tmp = full_data(idata)
   27747      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27748      458399 :          data_tmp = IAND(data_tmp, mask_left(22))
   27749      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27750      458399 :          ipack = ipack + 1
   27751      458399 :          packed_data(ipack) = pack_tmp
   27752      458399 :          data_tmp = full_data(idata)
   27753      458399 :          pack_tmp = ISHFT(data_tmp, 49)
   27754      458399 :          pack_tmp = ISHFT(pack_tmp, -37)
   27755      458399 :          idata = idata + 1
   27756      458399 :          data_tmp = full_data(idata)
   27757      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27758      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27759      458399 :          pack_tmp = ISHFT(pack_tmp, -12)
   27760      458399 :          idata = idata + 1
   27761      458399 :          data_tmp = full_data(idata)
   27762      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27763      458399 :          data_tmp = IAND(data_tmp, mask_left(12))
   27764      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27765      458399 :          ipack = ipack + 1
   27766      458399 :          packed_data(ipack) = pack_tmp
   27767      458399 :          data_tmp = full_data(idata)
   27768      458399 :          pack_tmp = ISHFT(data_tmp, 39)
   27769      458399 :          pack_tmp = ISHFT(pack_tmp, -37)
   27770      458399 :          idata = idata + 1
   27771      458399 :          data_tmp = full_data(idata)
   27772      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27773      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27774      458399 :          pack_tmp = ISHFT(pack_tmp, -2)
   27775      458399 :          idata = idata + 1
   27776      458399 :          data_tmp = full_data(idata)
   27777      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27778      458399 :          data_tmp = IAND(data_tmp, mask_left(2))
   27779      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27780      458399 :          ipack = ipack + 1
   27781      458399 :          packed_data(ipack) = pack_tmp
   27782      458399 :          data_tmp = full_data(idata)
   27783      458399 :          pack_tmp = ISHFT(data_tmp, 29)
   27784      458399 :          pack_tmp = ISHFT(pack_tmp, -29)
   27785      458399 :          idata = idata + 1
   27786      458399 :          data_tmp = full_data(idata)
   27787      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27788      458399 :          data_tmp = IAND(data_tmp, mask_left(29))
   27789      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27790      458399 :          ipack = ipack + 1
   27791      458399 :          packed_data(ipack) = pack_tmp
   27792      458399 :          data_tmp = full_data(idata)
   27793      458399 :          pack_tmp = ISHFT(data_tmp, 56)
   27794      458399 :          pack_tmp = ISHFT(pack_tmp, -37)
   27795      458399 :          idata = idata + 1
   27796      458399 :          data_tmp = full_data(idata)
   27797      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27798      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27799      458399 :          pack_tmp = ISHFT(pack_tmp, -19)
   27800      458399 :          idata = idata + 1
   27801      458399 :          data_tmp = full_data(idata)
   27802      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27803      458399 :          data_tmp = IAND(data_tmp, mask_left(19))
   27804      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27805      458399 :          ipack = ipack + 1
   27806      458399 :          packed_data(ipack) = pack_tmp
   27807      458399 :          data_tmp = full_data(idata)
   27808      458399 :          pack_tmp = ISHFT(data_tmp, 46)
   27809      458399 :          pack_tmp = ISHFT(pack_tmp, -37)
   27810      458399 :          idata = idata + 1
   27811      458399 :          data_tmp = full_data(idata)
   27812      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27813      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27814      458399 :          pack_tmp = ISHFT(pack_tmp, -9)
   27815      458399 :          idata = idata + 1
   27816      458399 :          data_tmp = full_data(idata)
   27817      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27818      458399 :          data_tmp = IAND(data_tmp, mask_left(9))
   27819      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27820      458399 :          ipack = ipack + 1
   27821      458399 :          packed_data(ipack) = pack_tmp
   27822      458399 :          data_tmp = full_data(idata)
   27823      458399 :          pack_tmp = ISHFT(data_tmp, 36)
   27824      458399 :          pack_tmp = ISHFT(pack_tmp, -36)
   27825      458399 :          idata = idata + 1
   27826      458399 :          data_tmp = full_data(idata)
   27827      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27828      458399 :          data_tmp = IAND(data_tmp, mask_left(36))
   27829      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27830      458399 :          ipack = ipack + 1
   27831      458399 :          packed_data(ipack) = pack_tmp
   27832      458399 :          data_tmp = full_data(idata)
   27833      458399 :          pack_tmp = ISHFT(data_tmp, 63)
   27834      458399 :          pack_tmp = ISHFT(pack_tmp, -37)
   27835      458399 :          idata = idata + 1
   27836      458399 :          data_tmp = full_data(idata)
   27837      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27838      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27839      458399 :          pack_tmp = ISHFT(pack_tmp, -26)
   27840      458399 :          idata = idata + 1
   27841      458399 :          data_tmp = full_data(idata)
   27842      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27843      458399 :          data_tmp = IAND(data_tmp, mask_left(26))
   27844      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27845      458399 :          ipack = ipack + 1
   27846      458399 :          packed_data(ipack) = pack_tmp
   27847      458399 :          data_tmp = full_data(idata)
   27848      458399 :          pack_tmp = ISHFT(data_tmp, 53)
   27849      458399 :          pack_tmp = ISHFT(pack_tmp, -37)
   27850      458399 :          idata = idata + 1
   27851      458399 :          data_tmp = full_data(idata)
   27852      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27853      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27854      458399 :          pack_tmp = ISHFT(pack_tmp, -16)
   27855      458399 :          idata = idata + 1
   27856      458399 :          data_tmp = full_data(idata)
   27857      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27858      458399 :          data_tmp = IAND(data_tmp, mask_left(16))
   27859      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27860      458399 :          ipack = ipack + 1
   27861      458399 :          packed_data(ipack) = pack_tmp
   27862      458399 :          data_tmp = full_data(idata)
   27863      458399 :          pack_tmp = ISHFT(data_tmp, 43)
   27864      458399 :          pack_tmp = ISHFT(pack_tmp, -37)
   27865      458399 :          idata = idata + 1
   27866      458399 :          data_tmp = full_data(idata)
   27867      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27868      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27869      458399 :          pack_tmp = ISHFT(pack_tmp, -6)
   27870      458399 :          idata = idata + 1
   27871      458399 :          data_tmp = full_data(idata)
   27872      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27873      458399 :          data_tmp = IAND(data_tmp, mask_left(6))
   27874      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27875      458399 :          ipack = ipack + 1
   27876      458399 :          packed_data(ipack) = pack_tmp
   27877      458399 :          data_tmp = full_data(idata)
   27878      458399 :          pack_tmp = ISHFT(data_tmp, 33)
   27879      458399 :          pack_tmp = ISHFT(pack_tmp, -33)
   27880      458399 :          idata = idata + 1
   27881      458399 :          data_tmp = full_data(idata)
   27882      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27883      458399 :          data_tmp = IAND(data_tmp, mask_left(33))
   27884      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27885      458399 :          ipack = ipack + 1
   27886      458399 :          packed_data(ipack) = pack_tmp
   27887      458399 :          data_tmp = full_data(idata)
   27888      458399 :          pack_tmp = ISHFT(data_tmp, 60)
   27889      458399 :          pack_tmp = ISHFT(pack_tmp, -37)
   27890      458399 :          idata = idata + 1
   27891      458399 :          data_tmp = full_data(idata)
   27892      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27893      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27894      458399 :          pack_tmp = ISHFT(pack_tmp, -23)
   27895      458399 :          idata = idata + 1
   27896      458399 :          data_tmp = full_data(idata)
   27897      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27898      458399 :          data_tmp = IAND(data_tmp, mask_left(23))
   27899      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27900      458399 :          ipack = ipack + 1
   27901      458399 :          packed_data(ipack) = pack_tmp
   27902      458399 :          data_tmp = full_data(idata)
   27903      458399 :          pack_tmp = ISHFT(data_tmp, 50)
   27904      458399 :          pack_tmp = ISHFT(pack_tmp, -37)
   27905      458399 :          idata = idata + 1
   27906      458399 :          data_tmp = full_data(idata)
   27907      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27908      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27909      458399 :          pack_tmp = ISHFT(pack_tmp, -13)
   27910      458399 :          idata = idata + 1
   27911      458399 :          data_tmp = full_data(idata)
   27912      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27913      458399 :          data_tmp = IAND(data_tmp, mask_left(13))
   27914      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27915      458399 :          ipack = ipack + 1
   27916      458399 :          packed_data(ipack) = pack_tmp
   27917      458399 :          data_tmp = full_data(idata)
   27918      458399 :          pack_tmp = ISHFT(data_tmp, 40)
   27919      458399 :          pack_tmp = ISHFT(pack_tmp, -37)
   27920      458399 :          idata = idata + 1
   27921      458399 :          data_tmp = full_data(idata)
   27922      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27923      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27924      458399 :          pack_tmp = ISHFT(pack_tmp, -3)
   27925      458399 :          idata = idata + 1
   27926      458399 :          data_tmp = full_data(idata)
   27927      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27928      458399 :          data_tmp = IAND(data_tmp, mask_left(3))
   27929      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27930      458399 :          ipack = ipack + 1
   27931      458399 :          packed_data(ipack) = pack_tmp
   27932      458399 :          data_tmp = full_data(idata)
   27933      458399 :          pack_tmp = ISHFT(data_tmp, 30)
   27934      458399 :          pack_tmp = ISHFT(pack_tmp, -30)
   27935      458399 :          idata = idata + 1
   27936      458399 :          data_tmp = full_data(idata)
   27937      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27938      458399 :          data_tmp = IAND(data_tmp, mask_left(30))
   27939      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27940      458399 :          ipack = ipack + 1
   27941      458399 :          packed_data(ipack) = pack_tmp
   27942      458399 :          data_tmp = full_data(idata)
   27943      458399 :          pack_tmp = ISHFT(data_tmp, 57)
   27944      458399 :          pack_tmp = ISHFT(pack_tmp, -37)
   27945      458399 :          idata = idata + 1
   27946      458399 :          data_tmp = full_data(idata)
   27947      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27948      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27949      458399 :          pack_tmp = ISHFT(pack_tmp, -20)
   27950      458399 :          idata = idata + 1
   27951      458399 :          data_tmp = full_data(idata)
   27952      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27953      458399 :          data_tmp = IAND(data_tmp, mask_left(20))
   27954      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27955      458399 :          ipack = ipack + 1
   27956      458399 :          packed_data(ipack) = pack_tmp
   27957      458399 :          data_tmp = full_data(idata)
   27958      458399 :          pack_tmp = ISHFT(data_tmp, 47)
   27959      458399 :          pack_tmp = ISHFT(pack_tmp, -37)
   27960      458399 :          idata = idata + 1
   27961      458399 :          data_tmp = full_data(idata)
   27962      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27963      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27964      458399 :          pack_tmp = ISHFT(pack_tmp, -10)
   27965      458399 :          idata = idata + 1
   27966      458399 :          data_tmp = full_data(idata)
   27967      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27968      458399 :          data_tmp = IAND(data_tmp, mask_left(10))
   27969      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27970      458399 :          ipack = ipack + 1
   27971      458399 :          packed_data(ipack) = pack_tmp
   27972      458399 :          data_tmp = full_data(idata)
   27973      458399 :          pack_tmp = ISHFT(data_tmp, 37)
   27974      458399 :          pack_tmp = ISHFT(pack_tmp, -37)
   27975      458399 :          idata = idata + 1
   27976      458399 :          data_tmp = full_data(idata)
   27977      458399 :          data_tmp = ISHFT(data_tmp, 27)
   27978      458399 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27979             :          pack_tmp = ISHFT(pack_tmp, 0)
   27980      458399 :          pack_tmp = ISHFT(pack_tmp, 0)
   27981      458399 :          ipack = ipack + 1
   27982      458414 :          packed_data(ipack) = pack_tmp
   27983             :       END DO
   27984       32563 :       IF (Ndata_rep < Ndata) THEN
   27985        7362 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   27986             :       END IF
   27987       32563 :    END SUBROUTINE ints2bits_37
   27988             : 
   27989             : ! **************************************************************************************************
   27990             : !> \brief ...
   27991             : !> \param Ndata ...
   27992             : !> \param packed_data ...
   27993             : !> \param full_data ...
   27994             : ! **************************************************************************************************
   27995      139840 :    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      139840 :       ipack = 0
   28006      139840 :       idata = 0
   28007      139840 :       pack_tmp = 0
   28008      139840 :       Ndata_rep = (Ndata/64)*64
   28009      139840 :       DO kdata = 1, Ndata_rep, 64
   28010     1929249 :          idata = idata + 1
   28011     1929249 :          data_tmp = ISHFT(pack_tmp, 37)
   28012     1929249 :          ipack = ipack + 1
   28013     1929249 :          pack_tmp = packed_data(ipack)
   28014     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   28015     1929249 :          pack_tmp = ISHFT(pack_tmp, -37)
   28016     1929249 :          idata = idata + 1
   28017     1929249 :          data_tmp = ISHFT(pack_tmp, 10)
   28018     1929249 :          ipack = ipack + 1
   28019     1929249 :          pack_tmp = packed_data(ipack)
   28020     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   28021     1929249 :          pack_tmp = ISHFT(pack_tmp, -10)
   28022     1929249 :          idata = idata + 1
   28023     1929249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28024     1929249 :          full_data(idata) = data_tmp
   28025     1929249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28026     1929249 :          idata = idata + 1
   28027     1929249 :          data_tmp = ISHFT(pack_tmp, 20)
   28028     1929249 :          ipack = ipack + 1
   28029     1929249 :          pack_tmp = packed_data(ipack)
   28030     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   28031     1929249 :          pack_tmp = ISHFT(pack_tmp, -20)
   28032     1929249 :          idata = idata + 1
   28033     1929249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28034     1929249 :          full_data(idata) = data_tmp
   28035     1929249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28036     1929249 :          idata = idata + 1
   28037     1929249 :          data_tmp = ISHFT(pack_tmp, 30)
   28038     1929249 :          ipack = ipack + 1
   28039     1929249 :          pack_tmp = packed_data(ipack)
   28040     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   28041     1929249 :          pack_tmp = ISHFT(pack_tmp, -30)
   28042     1929249 :          idata = idata + 1
   28043     1929249 :          data_tmp = ISHFT(pack_tmp, 3)
   28044     1929249 :          ipack = ipack + 1
   28045     1929249 :          pack_tmp = packed_data(ipack)
   28046     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   28047     1929249 :          pack_tmp = ISHFT(pack_tmp, -3)
   28048     1929249 :          idata = idata + 1
   28049     1929249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28050     1929249 :          full_data(idata) = data_tmp
   28051     1929249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28052     1929249 :          idata = idata + 1
   28053     1929249 :          data_tmp = ISHFT(pack_tmp, 13)
   28054     1929249 :          ipack = ipack + 1
   28055     1929249 :          pack_tmp = packed_data(ipack)
   28056     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   28057     1929249 :          pack_tmp = ISHFT(pack_tmp, -13)
   28058     1929249 :          idata = idata + 1
   28059     1929249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28060     1929249 :          full_data(idata) = data_tmp
   28061     1929249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28062     1929249 :          idata = idata + 1
   28063     1929249 :          data_tmp = ISHFT(pack_tmp, 23)
   28064     1929249 :          ipack = ipack + 1
   28065     1929249 :          pack_tmp = packed_data(ipack)
   28066     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   28067     1929249 :          pack_tmp = ISHFT(pack_tmp, -23)
   28068     1929249 :          idata = idata + 1
   28069     1929249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28070     1929249 :          full_data(idata) = data_tmp
   28071     1929249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28072     1929249 :          idata = idata + 1
   28073     1929249 :          data_tmp = ISHFT(pack_tmp, 33)
   28074     1929249 :          ipack = ipack + 1
   28075     1929249 :          pack_tmp = packed_data(ipack)
   28076     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   28077     1929249 :          pack_tmp = ISHFT(pack_tmp, -33)
   28078     1929249 :          idata = idata + 1
   28079     1929249 :          data_tmp = ISHFT(pack_tmp, 6)
   28080     1929249 :          ipack = ipack + 1
   28081     1929249 :          pack_tmp = packed_data(ipack)
   28082     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   28083     1929249 :          pack_tmp = ISHFT(pack_tmp, -6)
   28084     1929249 :          idata = idata + 1
   28085     1929249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28086     1929249 :          full_data(idata) = data_tmp
   28087     1929249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28088     1929249 :          idata = idata + 1
   28089     1929249 :          data_tmp = ISHFT(pack_tmp, 16)
   28090     1929249 :          ipack = ipack + 1
   28091     1929249 :          pack_tmp = packed_data(ipack)
   28092     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   28093     1929249 :          pack_tmp = ISHFT(pack_tmp, -16)
   28094     1929249 :          idata = idata + 1
   28095     1929249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28096     1929249 :          full_data(idata) = data_tmp
   28097     1929249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28098     1929249 :          idata = idata + 1
   28099     1929249 :          data_tmp = ISHFT(pack_tmp, 26)
   28100     1929249 :          ipack = ipack + 1
   28101     1929249 :          pack_tmp = packed_data(ipack)
   28102     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   28103     1929249 :          pack_tmp = ISHFT(pack_tmp, -26)
   28104     1929249 :          idata = idata + 1
   28105     1929249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28106     1929249 :          full_data(idata) = data_tmp
   28107     1929249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28108     1929249 :          idata = idata + 1
   28109     1929249 :          data_tmp = ISHFT(pack_tmp, 36)
   28110     1929249 :          ipack = ipack + 1
   28111     1929249 :          pack_tmp = packed_data(ipack)
   28112     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   28113     1929249 :          pack_tmp = ISHFT(pack_tmp, -36)
   28114     1929249 :          idata = idata + 1
   28115     1929249 :          data_tmp = ISHFT(pack_tmp, 9)
   28116     1929249 :          ipack = ipack + 1
   28117     1929249 :          pack_tmp = packed_data(ipack)
   28118     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   28119     1929249 :          pack_tmp = ISHFT(pack_tmp, -9)
   28120     1929249 :          idata = idata + 1
   28121     1929249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28122     1929249 :          full_data(idata) = data_tmp
   28123     1929249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28124     1929249 :          idata = idata + 1
   28125     1929249 :          data_tmp = ISHFT(pack_tmp, 19)
   28126     1929249 :          ipack = ipack + 1
   28127     1929249 :          pack_tmp = packed_data(ipack)
   28128     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   28129     1929249 :          pack_tmp = ISHFT(pack_tmp, -19)
   28130     1929249 :          idata = idata + 1
   28131     1929249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28132     1929249 :          full_data(idata) = data_tmp
   28133     1929249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28134     1929249 :          idata = idata + 1
   28135     1929249 :          data_tmp = ISHFT(pack_tmp, 29)
   28136     1929249 :          ipack = ipack + 1
   28137     1929249 :          pack_tmp = packed_data(ipack)
   28138     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   28139     1929249 :          pack_tmp = ISHFT(pack_tmp, -29)
   28140     1929249 :          idata = idata + 1
   28141     1929249 :          data_tmp = ISHFT(pack_tmp, 2)
   28142     1929249 :          ipack = ipack + 1
   28143     1929249 :          pack_tmp = packed_data(ipack)
   28144     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   28145     1929249 :          pack_tmp = ISHFT(pack_tmp, -2)
   28146     1929249 :          idata = idata + 1
   28147     1929249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28148     1929249 :          full_data(idata) = data_tmp
   28149     1929249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28150     1929249 :          idata = idata + 1
   28151     1929249 :          data_tmp = ISHFT(pack_tmp, 12)
   28152     1929249 :          ipack = ipack + 1
   28153     1929249 :          pack_tmp = packed_data(ipack)
   28154     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   28155     1929249 :          pack_tmp = ISHFT(pack_tmp, -12)
   28156     1929249 :          idata = idata + 1
   28157     1929249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28158     1929249 :          full_data(idata) = data_tmp
   28159     1929249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28160     1929249 :          idata = idata + 1
   28161     1929249 :          data_tmp = ISHFT(pack_tmp, 22)
   28162     1929249 :          ipack = ipack + 1
   28163     1929249 :          pack_tmp = packed_data(ipack)
   28164     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   28165     1929249 :          pack_tmp = ISHFT(pack_tmp, -22)
   28166     1929249 :          idata = idata + 1
   28167     1929249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28168     1929249 :          full_data(idata) = data_tmp
   28169     1929249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28170     1929249 :          idata = idata + 1
   28171     1929249 :          data_tmp = ISHFT(pack_tmp, 32)
   28172     1929249 :          ipack = ipack + 1
   28173     1929249 :          pack_tmp = packed_data(ipack)
   28174     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   28175     1929249 :          pack_tmp = ISHFT(pack_tmp, -32)
   28176     1929249 :          idata = idata + 1
   28177     1929249 :          data_tmp = ISHFT(pack_tmp, 5)
   28178     1929249 :          ipack = ipack + 1
   28179     1929249 :          pack_tmp = packed_data(ipack)
   28180     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   28181     1929249 :          pack_tmp = ISHFT(pack_tmp, -5)
   28182     1929249 :          idata = idata + 1
   28183     1929249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28184     1929249 :          full_data(idata) = data_tmp
   28185     1929249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28186     1929249 :          idata = idata + 1
   28187     1929249 :          data_tmp = ISHFT(pack_tmp, 15)
   28188     1929249 :          ipack = ipack + 1
   28189     1929249 :          pack_tmp = packed_data(ipack)
   28190     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   28191     1929249 :          pack_tmp = ISHFT(pack_tmp, -15)
   28192     1929249 :          idata = idata + 1
   28193     1929249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28194     1929249 :          full_data(idata) = data_tmp
   28195     1929249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28196     1929249 :          idata = idata + 1
   28197     1929249 :          data_tmp = ISHFT(pack_tmp, 25)
   28198     1929249 :          ipack = ipack + 1
   28199     1929249 :          pack_tmp = packed_data(ipack)
   28200     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   28201     1929249 :          pack_tmp = ISHFT(pack_tmp, -25)
   28202     1929249 :          idata = idata + 1
   28203     1929249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28204     1929249 :          full_data(idata) = data_tmp
   28205     1929249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28206     1929249 :          idata = idata + 1
   28207     1929249 :          data_tmp = ISHFT(pack_tmp, 35)
   28208     1929249 :          ipack = ipack + 1
   28209     1929249 :          pack_tmp = packed_data(ipack)
   28210     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   28211     1929249 :          pack_tmp = ISHFT(pack_tmp, -35)
   28212     1929249 :          idata = idata + 1
   28213     1929249 :          data_tmp = ISHFT(pack_tmp, 8)
   28214     1929249 :          ipack = ipack + 1
   28215     1929249 :          pack_tmp = packed_data(ipack)
   28216     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   28217     1929249 :          pack_tmp = ISHFT(pack_tmp, -8)
   28218     1929249 :          idata = idata + 1
   28219     1929249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28220     1929249 :          full_data(idata) = data_tmp
   28221     1929249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28222     1929249 :          idata = idata + 1
   28223     1929249 :          data_tmp = ISHFT(pack_tmp, 18)
   28224     1929249 :          ipack = ipack + 1
   28225     1929249 :          pack_tmp = packed_data(ipack)
   28226     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   28227     1929249 :          pack_tmp = ISHFT(pack_tmp, -18)
   28228     1929249 :          idata = idata + 1
   28229     1929249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28230     1929249 :          full_data(idata) = data_tmp
   28231     1929249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28232     1929249 :          idata = idata + 1
   28233     1929249 :          data_tmp = ISHFT(pack_tmp, 28)
   28234     1929249 :          ipack = ipack + 1
   28235     1929249 :          pack_tmp = packed_data(ipack)
   28236     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   28237     1929249 :          pack_tmp = ISHFT(pack_tmp, -28)
   28238     1929249 :          idata = idata + 1
   28239     1929249 :          data_tmp = ISHFT(pack_tmp, 1)
   28240     1929249 :          ipack = ipack + 1
   28241     1929249 :          pack_tmp = packed_data(ipack)
   28242     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   28243     1929249 :          pack_tmp = ISHFT(pack_tmp, -1)
   28244     1929249 :          idata = idata + 1
   28245     1929249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28246     1929249 :          full_data(idata) = data_tmp
   28247     1929249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28248     1929249 :          idata = idata + 1
   28249     1929249 :          data_tmp = ISHFT(pack_tmp, 11)
   28250     1929249 :          ipack = ipack + 1
   28251     1929249 :          pack_tmp = packed_data(ipack)
   28252     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   28253     1929249 :          pack_tmp = ISHFT(pack_tmp, -11)
   28254     1929249 :          idata = idata + 1
   28255     1929249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28256     1929249 :          full_data(idata) = data_tmp
   28257     1929249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28258     1929249 :          idata = idata + 1
   28259     1929249 :          data_tmp = ISHFT(pack_tmp, 21)
   28260     1929249 :          ipack = ipack + 1
   28261     1929249 :          pack_tmp = packed_data(ipack)
   28262     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   28263     1929249 :          pack_tmp = ISHFT(pack_tmp, -21)
   28264     1929249 :          idata = idata + 1
   28265     1929249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28266     1929249 :          full_data(idata) = data_tmp
   28267     1929249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28268     1929249 :          idata = idata + 1
   28269     1929249 :          data_tmp = ISHFT(pack_tmp, 31)
   28270     1929249 :          ipack = ipack + 1
   28271     1929249 :          pack_tmp = packed_data(ipack)
   28272     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   28273     1929249 :          pack_tmp = ISHFT(pack_tmp, -31)
   28274     1929249 :          idata = idata + 1
   28275     1929249 :          data_tmp = ISHFT(pack_tmp, 4)
   28276     1929249 :          ipack = ipack + 1
   28277     1929249 :          pack_tmp = packed_data(ipack)
   28278     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   28279     1929249 :          pack_tmp = ISHFT(pack_tmp, -4)
   28280     1929249 :          idata = idata + 1
   28281     1929249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28282     1929249 :          full_data(idata) = data_tmp
   28283     1929249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28284     1929249 :          idata = idata + 1
   28285     1929249 :          data_tmp = ISHFT(pack_tmp, 14)
   28286     1929249 :          ipack = ipack + 1
   28287     1929249 :          pack_tmp = packed_data(ipack)
   28288     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   28289     1929249 :          pack_tmp = ISHFT(pack_tmp, -14)
   28290     1929249 :          idata = idata + 1
   28291     1929249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28292     1929249 :          full_data(idata) = data_tmp
   28293     1929249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28294     1929249 :          idata = idata + 1
   28295     1929249 :          data_tmp = ISHFT(pack_tmp, 24)
   28296     1929249 :          ipack = ipack + 1
   28297     1929249 :          pack_tmp = packed_data(ipack)
   28298     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   28299     1929249 :          pack_tmp = ISHFT(pack_tmp, -24)
   28300     1929249 :          idata = idata + 1
   28301     1929249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28302     1929249 :          full_data(idata) = data_tmp
   28303     1929249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28304     1929249 :          idata = idata + 1
   28305     1929249 :          data_tmp = ISHFT(pack_tmp, 34)
   28306     1929249 :          ipack = ipack + 1
   28307     1929249 :          pack_tmp = packed_data(ipack)
   28308     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   28309     1929249 :          pack_tmp = ISHFT(pack_tmp, -34)
   28310     1929249 :          idata = idata + 1
   28311     1929249 :          data_tmp = ISHFT(pack_tmp, 7)
   28312     1929249 :          ipack = ipack + 1
   28313     1929249 :          pack_tmp = packed_data(ipack)
   28314     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   28315     1929249 :          pack_tmp = ISHFT(pack_tmp, -7)
   28316     1929249 :          idata = idata + 1
   28317     1929249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28318     1929249 :          full_data(idata) = data_tmp
   28319     1929249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28320     1929249 :          idata = idata + 1
   28321     1929249 :          data_tmp = ISHFT(pack_tmp, 17)
   28322     1929249 :          ipack = ipack + 1
   28323     1929249 :          pack_tmp = packed_data(ipack)
   28324     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   28325     1929249 :          pack_tmp = ISHFT(pack_tmp, -17)
   28326     1929249 :          idata = idata + 1
   28327     1929249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28328     1929249 :          full_data(idata) = data_tmp
   28329     1929249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28330     1929249 :          idata = idata + 1
   28331     1929249 :          data_tmp = ISHFT(pack_tmp, 27)
   28332     1929249 :          ipack = ipack + 1
   28333     1929249 :          pack_tmp = packed_data(ipack)
   28334     1929249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   28335     1929249 :          pack_tmp = ISHFT(pack_tmp, -27)
   28336     1929249 :          idata = idata + 1
   28337     1929249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28338     1929249 :          full_data(idata) = data_tmp
   28339     1929272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28340             :       END DO
   28341      139840 :       IF (Ndata_rep < Ndata) THEN
   28342       36254 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   28343             :       END IF
   28344      139840 :    END SUBROUTINE bits2ints_37
   28345             : 
   28346             : ! **************************************************************************************************
   28347             : !> \brief ...
   28348             : !> \param Ndata ...
   28349             : !> \param packed_data ...
   28350             : !> \param full_data ...
   28351             : ! **************************************************************************************************
   28352       31212 :    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       31212 :       idata = 0
   28363       31212 :       ipack = 0
   28364       31212 :       Ndata_rep = (Ndata/64)*64
   28365       31212 :       DO kdata = 1, Ndata_rep, 64
   28366      445685 :          pack_tmp = 0
   28367      445685 :          idata = idata + 1
   28368      445685 :          data_tmp = full_data(idata)
   28369      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28370      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28371      445685 :          pack_tmp = ISHFT(pack_tmp, -26)
   28372      445685 :          idata = idata + 1
   28373      445685 :          data_tmp = full_data(idata)
   28374      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28375      445685 :          data_tmp = IAND(data_tmp, mask_left(26))
   28376      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28377      445685 :          ipack = ipack + 1
   28378      445685 :          packed_data(ipack) = pack_tmp
   28379      445685 :          data_tmp = full_data(idata)
   28380      445685 :          pack_tmp = ISHFT(data_tmp, 52)
   28381      445685 :          pack_tmp = ISHFT(pack_tmp, -38)
   28382      445685 :          idata = idata + 1
   28383      445685 :          data_tmp = full_data(idata)
   28384      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28385      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28386      445685 :          pack_tmp = ISHFT(pack_tmp, -14)
   28387      445685 :          idata = idata + 1
   28388      445685 :          data_tmp = full_data(idata)
   28389      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28390      445685 :          data_tmp = IAND(data_tmp, mask_left(14))
   28391      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28392      445685 :          ipack = ipack + 1
   28393      445685 :          packed_data(ipack) = pack_tmp
   28394      445685 :          data_tmp = full_data(idata)
   28395      445685 :          pack_tmp = ISHFT(data_tmp, 40)
   28396      445685 :          pack_tmp = ISHFT(pack_tmp, -38)
   28397      445685 :          idata = idata + 1
   28398      445685 :          data_tmp = full_data(idata)
   28399      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28400      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28401      445685 :          pack_tmp = ISHFT(pack_tmp, -2)
   28402      445685 :          idata = idata + 1
   28403      445685 :          data_tmp = full_data(idata)
   28404      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28405      445685 :          data_tmp = IAND(data_tmp, mask_left(2))
   28406      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28407      445685 :          ipack = ipack + 1
   28408      445685 :          packed_data(ipack) = pack_tmp
   28409      445685 :          data_tmp = full_data(idata)
   28410      445685 :          pack_tmp = ISHFT(data_tmp, 28)
   28411      445685 :          pack_tmp = ISHFT(pack_tmp, -28)
   28412      445685 :          idata = idata + 1
   28413      445685 :          data_tmp = full_data(idata)
   28414      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28415      445685 :          data_tmp = IAND(data_tmp, mask_left(28))
   28416      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28417      445685 :          ipack = ipack + 1
   28418      445685 :          packed_data(ipack) = pack_tmp
   28419      445685 :          data_tmp = full_data(idata)
   28420      445685 :          pack_tmp = ISHFT(data_tmp, 54)
   28421      445685 :          pack_tmp = ISHFT(pack_tmp, -38)
   28422      445685 :          idata = idata + 1
   28423      445685 :          data_tmp = full_data(idata)
   28424      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28425      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28426      445685 :          pack_tmp = ISHFT(pack_tmp, -16)
   28427      445685 :          idata = idata + 1
   28428      445685 :          data_tmp = full_data(idata)
   28429      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28430      445685 :          data_tmp = IAND(data_tmp, mask_left(16))
   28431      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28432      445685 :          ipack = ipack + 1
   28433      445685 :          packed_data(ipack) = pack_tmp
   28434      445685 :          data_tmp = full_data(idata)
   28435      445685 :          pack_tmp = ISHFT(data_tmp, 42)
   28436      445685 :          pack_tmp = ISHFT(pack_tmp, -38)
   28437      445685 :          idata = idata + 1
   28438      445685 :          data_tmp = full_data(idata)
   28439      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28440      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28441      445685 :          pack_tmp = ISHFT(pack_tmp, -4)
   28442      445685 :          idata = idata + 1
   28443      445685 :          data_tmp = full_data(idata)
   28444      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28445      445685 :          data_tmp = IAND(data_tmp, mask_left(4))
   28446      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28447      445685 :          ipack = ipack + 1
   28448      445685 :          packed_data(ipack) = pack_tmp
   28449      445685 :          data_tmp = full_data(idata)
   28450      445685 :          pack_tmp = ISHFT(data_tmp, 30)
   28451      445685 :          pack_tmp = ISHFT(pack_tmp, -30)
   28452      445685 :          idata = idata + 1
   28453      445685 :          data_tmp = full_data(idata)
   28454      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28455      445685 :          data_tmp = IAND(data_tmp, mask_left(30))
   28456      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28457      445685 :          ipack = ipack + 1
   28458      445685 :          packed_data(ipack) = pack_tmp
   28459      445685 :          data_tmp = full_data(idata)
   28460      445685 :          pack_tmp = ISHFT(data_tmp, 56)
   28461      445685 :          pack_tmp = ISHFT(pack_tmp, -38)
   28462      445685 :          idata = idata + 1
   28463      445685 :          data_tmp = full_data(idata)
   28464      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28465      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28466      445685 :          pack_tmp = ISHFT(pack_tmp, -18)
   28467      445685 :          idata = idata + 1
   28468      445685 :          data_tmp = full_data(idata)
   28469      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28470      445685 :          data_tmp = IAND(data_tmp, mask_left(18))
   28471      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28472      445685 :          ipack = ipack + 1
   28473      445685 :          packed_data(ipack) = pack_tmp
   28474      445685 :          data_tmp = full_data(idata)
   28475      445685 :          pack_tmp = ISHFT(data_tmp, 44)
   28476      445685 :          pack_tmp = ISHFT(pack_tmp, -38)
   28477      445685 :          idata = idata + 1
   28478      445685 :          data_tmp = full_data(idata)
   28479      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28480      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28481      445685 :          pack_tmp = ISHFT(pack_tmp, -6)
   28482      445685 :          idata = idata + 1
   28483      445685 :          data_tmp = full_data(idata)
   28484      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28485      445685 :          data_tmp = IAND(data_tmp, mask_left(6))
   28486      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28487      445685 :          ipack = ipack + 1
   28488      445685 :          packed_data(ipack) = pack_tmp
   28489      445685 :          data_tmp = full_data(idata)
   28490      445685 :          pack_tmp = ISHFT(data_tmp, 32)
   28491      445685 :          pack_tmp = ISHFT(pack_tmp, -32)
   28492      445685 :          idata = idata + 1
   28493      445685 :          data_tmp = full_data(idata)
   28494      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28495      445685 :          data_tmp = IAND(data_tmp, mask_left(32))
   28496      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28497      445685 :          ipack = ipack + 1
   28498      445685 :          packed_data(ipack) = pack_tmp
   28499      445685 :          data_tmp = full_data(idata)
   28500      445685 :          pack_tmp = ISHFT(data_tmp, 58)
   28501      445685 :          pack_tmp = ISHFT(pack_tmp, -38)
   28502      445685 :          idata = idata + 1
   28503      445685 :          data_tmp = full_data(idata)
   28504      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28505      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28506      445685 :          pack_tmp = ISHFT(pack_tmp, -20)
   28507      445685 :          idata = idata + 1
   28508      445685 :          data_tmp = full_data(idata)
   28509      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28510      445685 :          data_tmp = IAND(data_tmp, mask_left(20))
   28511      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28512      445685 :          ipack = ipack + 1
   28513      445685 :          packed_data(ipack) = pack_tmp
   28514      445685 :          data_tmp = full_data(idata)
   28515      445685 :          pack_tmp = ISHFT(data_tmp, 46)
   28516      445685 :          pack_tmp = ISHFT(pack_tmp, -38)
   28517      445685 :          idata = idata + 1
   28518      445685 :          data_tmp = full_data(idata)
   28519      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28520      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28521      445685 :          pack_tmp = ISHFT(pack_tmp, -8)
   28522      445685 :          idata = idata + 1
   28523      445685 :          data_tmp = full_data(idata)
   28524      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28525      445685 :          data_tmp = IAND(data_tmp, mask_left(8))
   28526      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28527      445685 :          ipack = ipack + 1
   28528      445685 :          packed_data(ipack) = pack_tmp
   28529      445685 :          data_tmp = full_data(idata)
   28530      445685 :          pack_tmp = ISHFT(data_tmp, 34)
   28531      445685 :          pack_tmp = ISHFT(pack_tmp, -34)
   28532      445685 :          idata = idata + 1
   28533      445685 :          data_tmp = full_data(idata)
   28534      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28535      445685 :          data_tmp = IAND(data_tmp, mask_left(34))
   28536      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28537      445685 :          ipack = ipack + 1
   28538      445685 :          packed_data(ipack) = pack_tmp
   28539      445685 :          data_tmp = full_data(idata)
   28540      445685 :          pack_tmp = ISHFT(data_tmp, 60)
   28541      445685 :          pack_tmp = ISHFT(pack_tmp, -38)
   28542      445685 :          idata = idata + 1
   28543      445685 :          data_tmp = full_data(idata)
   28544      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28545      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28546      445685 :          pack_tmp = ISHFT(pack_tmp, -22)
   28547      445685 :          idata = idata + 1
   28548      445685 :          data_tmp = full_data(idata)
   28549      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28550      445685 :          data_tmp = IAND(data_tmp, mask_left(22))
   28551      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28552      445685 :          ipack = ipack + 1
   28553      445685 :          packed_data(ipack) = pack_tmp
   28554      445685 :          data_tmp = full_data(idata)
   28555      445685 :          pack_tmp = ISHFT(data_tmp, 48)
   28556      445685 :          pack_tmp = ISHFT(pack_tmp, -38)
   28557      445685 :          idata = idata + 1
   28558      445685 :          data_tmp = full_data(idata)
   28559      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28560      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28561      445685 :          pack_tmp = ISHFT(pack_tmp, -10)
   28562      445685 :          idata = idata + 1
   28563      445685 :          data_tmp = full_data(idata)
   28564      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28565      445685 :          data_tmp = IAND(data_tmp, mask_left(10))
   28566      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28567      445685 :          ipack = ipack + 1
   28568      445685 :          packed_data(ipack) = pack_tmp
   28569      445685 :          data_tmp = full_data(idata)
   28570      445685 :          pack_tmp = ISHFT(data_tmp, 36)
   28571      445685 :          pack_tmp = ISHFT(pack_tmp, -36)
   28572      445685 :          idata = idata + 1
   28573      445685 :          data_tmp = full_data(idata)
   28574      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28575      445685 :          data_tmp = IAND(data_tmp, mask_left(36))
   28576      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28577      445685 :          ipack = ipack + 1
   28578      445685 :          packed_data(ipack) = pack_tmp
   28579      445685 :          data_tmp = full_data(idata)
   28580      445685 :          pack_tmp = ISHFT(data_tmp, 62)
   28581      445685 :          pack_tmp = ISHFT(pack_tmp, -38)
   28582      445685 :          idata = idata + 1
   28583      445685 :          data_tmp = full_data(idata)
   28584      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28585      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28586      445685 :          pack_tmp = ISHFT(pack_tmp, -24)
   28587      445685 :          idata = idata + 1
   28588      445685 :          data_tmp = full_data(idata)
   28589      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28590      445685 :          data_tmp = IAND(data_tmp, mask_left(24))
   28591      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28592      445685 :          ipack = ipack + 1
   28593      445685 :          packed_data(ipack) = pack_tmp
   28594      445685 :          data_tmp = full_data(idata)
   28595      445685 :          pack_tmp = ISHFT(data_tmp, 50)
   28596      445685 :          pack_tmp = ISHFT(pack_tmp, -38)
   28597      445685 :          idata = idata + 1
   28598      445685 :          data_tmp = full_data(idata)
   28599      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28600      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28601      445685 :          pack_tmp = ISHFT(pack_tmp, -12)
   28602      445685 :          idata = idata + 1
   28603      445685 :          data_tmp = full_data(idata)
   28604      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28605      445685 :          data_tmp = IAND(data_tmp, mask_left(12))
   28606      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28607      445685 :          ipack = ipack + 1
   28608      445685 :          packed_data(ipack) = pack_tmp
   28609      445685 :          data_tmp = full_data(idata)
   28610      445685 :          pack_tmp = ISHFT(data_tmp, 38)
   28611      445685 :          pack_tmp = ISHFT(pack_tmp, -38)
   28612      445685 :          idata = idata + 1
   28613      445685 :          data_tmp = full_data(idata)
   28614      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28615      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28616      445685 :          pack_tmp = ISHFT(pack_tmp, 0)
   28617      445685 :          idata = idata + 1
   28618      445685 :          data_tmp = full_data(idata)
   28619             :          data_tmp = ISHFT(data_tmp, 26)
   28620      445685 :          data_tmp = IAND(data_tmp, mask_left(0))
   28621      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28622      445685 :          ipack = ipack + 1
   28623      445685 :          packed_data(ipack) = pack_tmp
   28624      445685 :          data_tmp = full_data(idata)
   28625      445685 :          pack_tmp = ISHFT(data_tmp, 26)
   28626      445685 :          pack_tmp = ISHFT(pack_tmp, -26)
   28627      445685 :          idata = idata + 1
   28628      445685 :          data_tmp = full_data(idata)
   28629      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28630      445685 :          data_tmp = IAND(data_tmp, mask_left(26))
   28631      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28632      445685 :          ipack = ipack + 1
   28633      445685 :          packed_data(ipack) = pack_tmp
   28634      445685 :          data_tmp = full_data(idata)
   28635      445685 :          pack_tmp = ISHFT(data_tmp, 52)
   28636      445685 :          pack_tmp = ISHFT(pack_tmp, -38)
   28637      445685 :          idata = idata + 1
   28638      445685 :          data_tmp = full_data(idata)
   28639      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28640      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28641      445685 :          pack_tmp = ISHFT(pack_tmp, -14)
   28642      445685 :          idata = idata + 1
   28643      445685 :          data_tmp = full_data(idata)
   28644      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28645      445685 :          data_tmp = IAND(data_tmp, mask_left(14))
   28646      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28647      445685 :          ipack = ipack + 1
   28648      445685 :          packed_data(ipack) = pack_tmp
   28649      445685 :          data_tmp = full_data(idata)
   28650      445685 :          pack_tmp = ISHFT(data_tmp, 40)
   28651      445685 :          pack_tmp = ISHFT(pack_tmp, -38)
   28652      445685 :          idata = idata + 1
   28653      445685 :          data_tmp = full_data(idata)
   28654      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28655      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28656      445685 :          pack_tmp = ISHFT(pack_tmp, -2)
   28657      445685 :          idata = idata + 1
   28658      445685 :          data_tmp = full_data(idata)
   28659      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28660      445685 :          data_tmp = IAND(data_tmp, mask_left(2))
   28661      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28662      445685 :          ipack = ipack + 1
   28663      445685 :          packed_data(ipack) = pack_tmp
   28664      445685 :          data_tmp = full_data(idata)
   28665      445685 :          pack_tmp = ISHFT(data_tmp, 28)
   28666      445685 :          pack_tmp = ISHFT(pack_tmp, -28)
   28667      445685 :          idata = idata + 1
   28668      445685 :          data_tmp = full_data(idata)
   28669      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28670      445685 :          data_tmp = IAND(data_tmp, mask_left(28))
   28671      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28672      445685 :          ipack = ipack + 1
   28673      445685 :          packed_data(ipack) = pack_tmp
   28674      445685 :          data_tmp = full_data(idata)
   28675      445685 :          pack_tmp = ISHFT(data_tmp, 54)
   28676      445685 :          pack_tmp = ISHFT(pack_tmp, -38)
   28677      445685 :          idata = idata + 1
   28678      445685 :          data_tmp = full_data(idata)
   28679      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28680      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28681      445685 :          pack_tmp = ISHFT(pack_tmp, -16)
   28682      445685 :          idata = idata + 1
   28683      445685 :          data_tmp = full_data(idata)
   28684      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28685      445685 :          data_tmp = IAND(data_tmp, mask_left(16))
   28686      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28687      445685 :          ipack = ipack + 1
   28688      445685 :          packed_data(ipack) = pack_tmp
   28689      445685 :          data_tmp = full_data(idata)
   28690      445685 :          pack_tmp = ISHFT(data_tmp, 42)
   28691      445685 :          pack_tmp = ISHFT(pack_tmp, -38)
   28692      445685 :          idata = idata + 1
   28693      445685 :          data_tmp = full_data(idata)
   28694      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28695      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28696      445685 :          pack_tmp = ISHFT(pack_tmp, -4)
   28697      445685 :          idata = idata + 1
   28698      445685 :          data_tmp = full_data(idata)
   28699      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28700      445685 :          data_tmp = IAND(data_tmp, mask_left(4))
   28701      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28702      445685 :          ipack = ipack + 1
   28703      445685 :          packed_data(ipack) = pack_tmp
   28704      445685 :          data_tmp = full_data(idata)
   28705      445685 :          pack_tmp = ISHFT(data_tmp, 30)
   28706      445685 :          pack_tmp = ISHFT(pack_tmp, -30)
   28707      445685 :          idata = idata + 1
   28708      445685 :          data_tmp = full_data(idata)
   28709      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28710      445685 :          data_tmp = IAND(data_tmp, mask_left(30))
   28711      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28712      445685 :          ipack = ipack + 1
   28713      445685 :          packed_data(ipack) = pack_tmp
   28714      445685 :          data_tmp = full_data(idata)
   28715      445685 :          pack_tmp = ISHFT(data_tmp, 56)
   28716      445685 :          pack_tmp = ISHFT(pack_tmp, -38)
   28717      445685 :          idata = idata + 1
   28718      445685 :          data_tmp = full_data(idata)
   28719      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28720      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28721      445685 :          pack_tmp = ISHFT(pack_tmp, -18)
   28722      445685 :          idata = idata + 1
   28723      445685 :          data_tmp = full_data(idata)
   28724      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28725      445685 :          data_tmp = IAND(data_tmp, mask_left(18))
   28726      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28727      445685 :          ipack = ipack + 1
   28728      445685 :          packed_data(ipack) = pack_tmp
   28729      445685 :          data_tmp = full_data(idata)
   28730      445685 :          pack_tmp = ISHFT(data_tmp, 44)
   28731      445685 :          pack_tmp = ISHFT(pack_tmp, -38)
   28732      445685 :          idata = idata + 1
   28733      445685 :          data_tmp = full_data(idata)
   28734      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28735      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28736      445685 :          pack_tmp = ISHFT(pack_tmp, -6)
   28737      445685 :          idata = idata + 1
   28738      445685 :          data_tmp = full_data(idata)
   28739      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28740      445685 :          data_tmp = IAND(data_tmp, mask_left(6))
   28741      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28742      445685 :          ipack = ipack + 1
   28743      445685 :          packed_data(ipack) = pack_tmp
   28744      445685 :          data_tmp = full_data(idata)
   28745      445685 :          pack_tmp = ISHFT(data_tmp, 32)
   28746      445685 :          pack_tmp = ISHFT(pack_tmp, -32)
   28747      445685 :          idata = idata + 1
   28748      445685 :          data_tmp = full_data(idata)
   28749      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28750      445685 :          data_tmp = IAND(data_tmp, mask_left(32))
   28751      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28752      445685 :          ipack = ipack + 1
   28753      445685 :          packed_data(ipack) = pack_tmp
   28754      445685 :          data_tmp = full_data(idata)
   28755      445685 :          pack_tmp = ISHFT(data_tmp, 58)
   28756      445685 :          pack_tmp = ISHFT(pack_tmp, -38)
   28757      445685 :          idata = idata + 1
   28758      445685 :          data_tmp = full_data(idata)
   28759      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28760      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28761      445685 :          pack_tmp = ISHFT(pack_tmp, -20)
   28762      445685 :          idata = idata + 1
   28763      445685 :          data_tmp = full_data(idata)
   28764      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28765      445685 :          data_tmp = IAND(data_tmp, mask_left(20))
   28766      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28767      445685 :          ipack = ipack + 1
   28768      445685 :          packed_data(ipack) = pack_tmp
   28769      445685 :          data_tmp = full_data(idata)
   28770      445685 :          pack_tmp = ISHFT(data_tmp, 46)
   28771      445685 :          pack_tmp = ISHFT(pack_tmp, -38)
   28772      445685 :          idata = idata + 1
   28773      445685 :          data_tmp = full_data(idata)
   28774      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28775      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28776      445685 :          pack_tmp = ISHFT(pack_tmp, -8)
   28777      445685 :          idata = idata + 1
   28778      445685 :          data_tmp = full_data(idata)
   28779      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28780      445685 :          data_tmp = IAND(data_tmp, mask_left(8))
   28781      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28782      445685 :          ipack = ipack + 1
   28783      445685 :          packed_data(ipack) = pack_tmp
   28784      445685 :          data_tmp = full_data(idata)
   28785      445685 :          pack_tmp = ISHFT(data_tmp, 34)
   28786      445685 :          pack_tmp = ISHFT(pack_tmp, -34)
   28787      445685 :          idata = idata + 1
   28788      445685 :          data_tmp = full_data(idata)
   28789      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28790      445685 :          data_tmp = IAND(data_tmp, mask_left(34))
   28791      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28792      445685 :          ipack = ipack + 1
   28793      445685 :          packed_data(ipack) = pack_tmp
   28794      445685 :          data_tmp = full_data(idata)
   28795      445685 :          pack_tmp = ISHFT(data_tmp, 60)
   28796      445685 :          pack_tmp = ISHFT(pack_tmp, -38)
   28797      445685 :          idata = idata + 1
   28798      445685 :          data_tmp = full_data(idata)
   28799      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28800      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28801      445685 :          pack_tmp = ISHFT(pack_tmp, -22)
   28802      445685 :          idata = idata + 1
   28803      445685 :          data_tmp = full_data(idata)
   28804      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28805      445685 :          data_tmp = IAND(data_tmp, mask_left(22))
   28806      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28807      445685 :          ipack = ipack + 1
   28808      445685 :          packed_data(ipack) = pack_tmp
   28809      445685 :          data_tmp = full_data(idata)
   28810      445685 :          pack_tmp = ISHFT(data_tmp, 48)
   28811      445685 :          pack_tmp = ISHFT(pack_tmp, -38)
   28812      445685 :          idata = idata + 1
   28813      445685 :          data_tmp = full_data(idata)
   28814      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28815      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28816      445685 :          pack_tmp = ISHFT(pack_tmp, -10)
   28817      445685 :          idata = idata + 1
   28818      445685 :          data_tmp = full_data(idata)
   28819      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28820      445685 :          data_tmp = IAND(data_tmp, mask_left(10))
   28821      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28822      445685 :          ipack = ipack + 1
   28823      445685 :          packed_data(ipack) = pack_tmp
   28824      445685 :          data_tmp = full_data(idata)
   28825      445685 :          pack_tmp = ISHFT(data_tmp, 36)
   28826      445685 :          pack_tmp = ISHFT(pack_tmp, -36)
   28827      445685 :          idata = idata + 1
   28828      445685 :          data_tmp = full_data(idata)
   28829      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28830      445685 :          data_tmp = IAND(data_tmp, mask_left(36))
   28831      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28832      445685 :          ipack = ipack + 1
   28833      445685 :          packed_data(ipack) = pack_tmp
   28834      445685 :          data_tmp = full_data(idata)
   28835      445685 :          pack_tmp = ISHFT(data_tmp, 62)
   28836      445685 :          pack_tmp = ISHFT(pack_tmp, -38)
   28837      445685 :          idata = idata + 1
   28838      445685 :          data_tmp = full_data(idata)
   28839      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28840      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28841      445685 :          pack_tmp = ISHFT(pack_tmp, -24)
   28842      445685 :          idata = idata + 1
   28843      445685 :          data_tmp = full_data(idata)
   28844      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28845      445685 :          data_tmp = IAND(data_tmp, mask_left(24))
   28846      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28847      445685 :          ipack = ipack + 1
   28848      445685 :          packed_data(ipack) = pack_tmp
   28849      445685 :          data_tmp = full_data(idata)
   28850      445685 :          pack_tmp = ISHFT(data_tmp, 50)
   28851      445685 :          pack_tmp = ISHFT(pack_tmp, -38)
   28852      445685 :          idata = idata + 1
   28853      445685 :          data_tmp = full_data(idata)
   28854      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28855      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28856      445685 :          pack_tmp = ISHFT(pack_tmp, -12)
   28857      445685 :          idata = idata + 1
   28858      445685 :          data_tmp = full_data(idata)
   28859      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28860      445685 :          data_tmp = IAND(data_tmp, mask_left(12))
   28861      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28862      445685 :          ipack = ipack + 1
   28863      445685 :          packed_data(ipack) = pack_tmp
   28864      445685 :          data_tmp = full_data(idata)
   28865      445685 :          pack_tmp = ISHFT(data_tmp, 38)
   28866      445685 :          pack_tmp = ISHFT(pack_tmp, -38)
   28867      445685 :          idata = idata + 1
   28868      445685 :          data_tmp = full_data(idata)
   28869      445685 :          data_tmp = ISHFT(data_tmp, 26)
   28870      445685 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28871             :          pack_tmp = ISHFT(pack_tmp, 0)
   28872      445685 :          pack_tmp = ISHFT(pack_tmp, 0)
   28873      445685 :          ipack = ipack + 1
   28874      445977 :          packed_data(ipack) = pack_tmp
   28875             :       END DO
   28876       31212 :       IF (Ndata_rep < Ndata) THEN
   28877        6294 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   28878             :       END IF
   28879       31212 :    END SUBROUTINE ints2bits_38
   28880             : 
   28881             : ! **************************************************************************************************
   28882             : !> \brief ...
   28883             : !> \param Ndata ...
   28884             : !> \param packed_data ...
   28885             : !> \param full_data ...
   28886             : ! **************************************************************************************************
   28887      153622 :    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      153622 :       ipack = 0
   28898      153622 :       idata = 0
   28899      153622 :       pack_tmp = 0
   28900      153622 :       Ndata_rep = (Ndata/64)*64
   28901      153622 :       DO kdata = 1, Ndata_rep, 64
   28902     2071951 :          idata = idata + 1
   28903     2071951 :          data_tmp = ISHFT(pack_tmp, 38)
   28904     2071951 :          ipack = ipack + 1
   28905     2071951 :          pack_tmp = packed_data(ipack)
   28906     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   28907     2071951 :          pack_tmp = ISHFT(pack_tmp, -38)
   28908     2071951 :          idata = idata + 1
   28909     2071951 :          data_tmp = ISHFT(pack_tmp, 12)
   28910     2071951 :          ipack = ipack + 1
   28911     2071951 :          pack_tmp = packed_data(ipack)
   28912     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   28913     2071951 :          pack_tmp = ISHFT(pack_tmp, -12)
   28914     2071951 :          idata = idata + 1
   28915     2071951 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28916     2071951 :          full_data(idata) = data_tmp
   28917     2071951 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28918     2071951 :          idata = idata + 1
   28919     2071951 :          data_tmp = ISHFT(pack_tmp, 24)
   28920     2071951 :          ipack = ipack + 1
   28921     2071951 :          pack_tmp = packed_data(ipack)
   28922     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   28923     2071951 :          pack_tmp = ISHFT(pack_tmp, -24)
   28924     2071951 :          idata = idata + 1
   28925     2071951 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28926     2071951 :          full_data(idata) = data_tmp
   28927     2071951 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28928     2071951 :          idata = idata + 1
   28929     2071951 :          data_tmp = ISHFT(pack_tmp, 36)
   28930     2071951 :          ipack = ipack + 1
   28931     2071951 :          pack_tmp = packed_data(ipack)
   28932     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   28933     2071951 :          pack_tmp = ISHFT(pack_tmp, -36)
   28934     2071951 :          idata = idata + 1
   28935     2071951 :          data_tmp = ISHFT(pack_tmp, 10)
   28936     2071951 :          ipack = ipack + 1
   28937     2071951 :          pack_tmp = packed_data(ipack)
   28938     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   28939     2071951 :          pack_tmp = ISHFT(pack_tmp, -10)
   28940     2071951 :          idata = idata + 1
   28941     2071951 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28942     2071951 :          full_data(idata) = data_tmp
   28943     2071951 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28944     2071951 :          idata = idata + 1
   28945     2071951 :          data_tmp = ISHFT(pack_tmp, 22)
   28946     2071951 :          ipack = ipack + 1
   28947     2071951 :          pack_tmp = packed_data(ipack)
   28948     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   28949     2071951 :          pack_tmp = ISHFT(pack_tmp, -22)
   28950     2071951 :          idata = idata + 1
   28951     2071951 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28952     2071951 :          full_data(idata) = data_tmp
   28953     2071951 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28954     2071951 :          idata = idata + 1
   28955     2071951 :          data_tmp = ISHFT(pack_tmp, 34)
   28956     2071951 :          ipack = ipack + 1
   28957     2071951 :          pack_tmp = packed_data(ipack)
   28958     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   28959     2071951 :          pack_tmp = ISHFT(pack_tmp, -34)
   28960     2071951 :          idata = idata + 1
   28961     2071951 :          data_tmp = ISHFT(pack_tmp, 8)
   28962     2071951 :          ipack = ipack + 1
   28963     2071951 :          pack_tmp = packed_data(ipack)
   28964     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   28965     2071951 :          pack_tmp = ISHFT(pack_tmp, -8)
   28966     2071951 :          idata = idata + 1
   28967     2071951 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28968     2071951 :          full_data(idata) = data_tmp
   28969     2071951 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28970     2071951 :          idata = idata + 1
   28971     2071951 :          data_tmp = ISHFT(pack_tmp, 20)
   28972     2071951 :          ipack = ipack + 1
   28973     2071951 :          pack_tmp = packed_data(ipack)
   28974     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   28975     2071951 :          pack_tmp = ISHFT(pack_tmp, -20)
   28976     2071951 :          idata = idata + 1
   28977     2071951 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28978     2071951 :          full_data(idata) = data_tmp
   28979     2071951 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28980     2071951 :          idata = idata + 1
   28981     2071951 :          data_tmp = ISHFT(pack_tmp, 32)
   28982     2071951 :          ipack = ipack + 1
   28983     2071951 :          pack_tmp = packed_data(ipack)
   28984     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   28985     2071951 :          pack_tmp = ISHFT(pack_tmp, -32)
   28986     2071951 :          idata = idata + 1
   28987     2071951 :          data_tmp = ISHFT(pack_tmp, 6)
   28988     2071951 :          ipack = ipack + 1
   28989     2071951 :          pack_tmp = packed_data(ipack)
   28990     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   28991     2071951 :          pack_tmp = ISHFT(pack_tmp, -6)
   28992     2071951 :          idata = idata + 1
   28993     2071951 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28994     2071951 :          full_data(idata) = data_tmp
   28995     2071951 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28996     2071951 :          idata = idata + 1
   28997     2071951 :          data_tmp = ISHFT(pack_tmp, 18)
   28998     2071951 :          ipack = ipack + 1
   28999     2071951 :          pack_tmp = packed_data(ipack)
   29000     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   29001     2071951 :          pack_tmp = ISHFT(pack_tmp, -18)
   29002     2071951 :          idata = idata + 1
   29003     2071951 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29004     2071951 :          full_data(idata) = data_tmp
   29005     2071951 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29006     2071951 :          idata = idata + 1
   29007     2071951 :          data_tmp = ISHFT(pack_tmp, 30)
   29008     2071951 :          ipack = ipack + 1
   29009     2071951 :          pack_tmp = packed_data(ipack)
   29010     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   29011     2071951 :          pack_tmp = ISHFT(pack_tmp, -30)
   29012     2071951 :          idata = idata + 1
   29013     2071951 :          data_tmp = ISHFT(pack_tmp, 4)
   29014     2071951 :          ipack = ipack + 1
   29015     2071951 :          pack_tmp = packed_data(ipack)
   29016     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   29017     2071951 :          pack_tmp = ISHFT(pack_tmp, -4)
   29018     2071951 :          idata = idata + 1
   29019     2071951 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29020     2071951 :          full_data(idata) = data_tmp
   29021     2071951 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29022     2071951 :          idata = idata + 1
   29023     2071951 :          data_tmp = ISHFT(pack_tmp, 16)
   29024     2071951 :          ipack = ipack + 1
   29025     2071951 :          pack_tmp = packed_data(ipack)
   29026     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   29027     2071951 :          pack_tmp = ISHFT(pack_tmp, -16)
   29028     2071951 :          idata = idata + 1
   29029     2071951 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29030     2071951 :          full_data(idata) = data_tmp
   29031     2071951 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29032     2071951 :          idata = idata + 1
   29033     2071951 :          data_tmp = ISHFT(pack_tmp, 28)
   29034     2071951 :          ipack = ipack + 1
   29035     2071951 :          pack_tmp = packed_data(ipack)
   29036     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   29037     2071951 :          pack_tmp = ISHFT(pack_tmp, -28)
   29038     2071951 :          idata = idata + 1
   29039     2071951 :          data_tmp = ISHFT(pack_tmp, 2)
   29040     2071951 :          ipack = ipack + 1
   29041     2071951 :          pack_tmp = packed_data(ipack)
   29042     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   29043     2071951 :          pack_tmp = ISHFT(pack_tmp, -2)
   29044     2071951 :          idata = idata + 1
   29045     2071951 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29046     2071951 :          full_data(idata) = data_tmp
   29047     2071951 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29048     2071951 :          idata = idata + 1
   29049     2071951 :          data_tmp = ISHFT(pack_tmp, 14)
   29050     2071951 :          ipack = ipack + 1
   29051     2071951 :          pack_tmp = packed_data(ipack)
   29052     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   29053     2071951 :          pack_tmp = ISHFT(pack_tmp, -14)
   29054     2071951 :          idata = idata + 1
   29055     2071951 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29056     2071951 :          full_data(idata) = data_tmp
   29057     2071951 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29058     2071951 :          idata = idata + 1
   29059     2071951 :          data_tmp = ISHFT(pack_tmp, 26)
   29060     2071951 :          ipack = ipack + 1
   29061     2071951 :          pack_tmp = packed_data(ipack)
   29062     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   29063     2071951 :          pack_tmp = ISHFT(pack_tmp, -26)
   29064     2071951 :          idata = idata + 1
   29065     2071951 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29066     2071951 :          full_data(idata) = data_tmp
   29067     2071951 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29068     2071951 :          idata = idata + 1
   29069     2071951 :          data_tmp = ISHFT(pack_tmp, 38)
   29070     2071951 :          ipack = ipack + 1
   29071     2071951 :          pack_tmp = packed_data(ipack)
   29072     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   29073     2071951 :          pack_tmp = ISHFT(pack_tmp, -38)
   29074     2071951 :          idata = idata + 1
   29075     2071951 :          data_tmp = ISHFT(pack_tmp, 12)
   29076     2071951 :          ipack = ipack + 1
   29077     2071951 :          pack_tmp = packed_data(ipack)
   29078     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   29079     2071951 :          pack_tmp = ISHFT(pack_tmp, -12)
   29080     2071951 :          idata = idata + 1
   29081     2071951 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29082     2071951 :          full_data(idata) = data_tmp
   29083     2071951 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29084     2071951 :          idata = idata + 1
   29085     2071951 :          data_tmp = ISHFT(pack_tmp, 24)
   29086     2071951 :          ipack = ipack + 1
   29087     2071951 :          pack_tmp = packed_data(ipack)
   29088     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   29089     2071951 :          pack_tmp = ISHFT(pack_tmp, -24)
   29090     2071951 :          idata = idata + 1
   29091     2071951 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29092     2071951 :          full_data(idata) = data_tmp
   29093     2071951 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29094     2071951 :          idata = idata + 1
   29095     2071951 :          data_tmp = ISHFT(pack_tmp, 36)
   29096     2071951 :          ipack = ipack + 1
   29097     2071951 :          pack_tmp = packed_data(ipack)
   29098     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   29099     2071951 :          pack_tmp = ISHFT(pack_tmp, -36)
   29100     2071951 :          idata = idata + 1
   29101     2071951 :          data_tmp = ISHFT(pack_tmp, 10)
   29102     2071951 :          ipack = ipack + 1
   29103     2071951 :          pack_tmp = packed_data(ipack)
   29104     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   29105     2071951 :          pack_tmp = ISHFT(pack_tmp, -10)
   29106     2071951 :          idata = idata + 1
   29107     2071951 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29108     2071951 :          full_data(idata) = data_tmp
   29109     2071951 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29110     2071951 :          idata = idata + 1
   29111     2071951 :          data_tmp = ISHFT(pack_tmp, 22)
   29112     2071951 :          ipack = ipack + 1
   29113     2071951 :          pack_tmp = packed_data(ipack)
   29114     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   29115     2071951 :          pack_tmp = ISHFT(pack_tmp, -22)
   29116     2071951 :          idata = idata + 1
   29117     2071951 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29118     2071951 :          full_data(idata) = data_tmp
   29119     2071951 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29120     2071951 :          idata = idata + 1
   29121     2071951 :          data_tmp = ISHFT(pack_tmp, 34)
   29122     2071951 :          ipack = ipack + 1
   29123     2071951 :          pack_tmp = packed_data(ipack)
   29124     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   29125     2071951 :          pack_tmp = ISHFT(pack_tmp, -34)
   29126     2071951 :          idata = idata + 1
   29127     2071951 :          data_tmp = ISHFT(pack_tmp, 8)
   29128     2071951 :          ipack = ipack + 1
   29129     2071951 :          pack_tmp = packed_data(ipack)
   29130     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   29131     2071951 :          pack_tmp = ISHFT(pack_tmp, -8)
   29132     2071951 :          idata = idata + 1
   29133     2071951 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29134     2071951 :          full_data(idata) = data_tmp
   29135     2071951 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29136     2071951 :          idata = idata + 1
   29137     2071951 :          data_tmp = ISHFT(pack_tmp, 20)
   29138     2071951 :          ipack = ipack + 1
   29139     2071951 :          pack_tmp = packed_data(ipack)
   29140     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   29141     2071951 :          pack_tmp = ISHFT(pack_tmp, -20)
   29142     2071951 :          idata = idata + 1
   29143     2071951 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29144     2071951 :          full_data(idata) = data_tmp
   29145     2071951 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29146     2071951 :          idata = idata + 1
   29147     2071951 :          data_tmp = ISHFT(pack_tmp, 32)
   29148     2071951 :          ipack = ipack + 1
   29149     2071951 :          pack_tmp = packed_data(ipack)
   29150     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   29151     2071951 :          pack_tmp = ISHFT(pack_tmp, -32)
   29152     2071951 :          idata = idata + 1
   29153     2071951 :          data_tmp = ISHFT(pack_tmp, 6)
   29154     2071951 :          ipack = ipack + 1
   29155     2071951 :          pack_tmp = packed_data(ipack)
   29156     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   29157     2071951 :          pack_tmp = ISHFT(pack_tmp, -6)
   29158     2071951 :          idata = idata + 1
   29159     2071951 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29160     2071951 :          full_data(idata) = data_tmp
   29161     2071951 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29162     2071951 :          idata = idata + 1
   29163     2071951 :          data_tmp = ISHFT(pack_tmp, 18)
   29164     2071951 :          ipack = ipack + 1
   29165     2071951 :          pack_tmp = packed_data(ipack)
   29166     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   29167     2071951 :          pack_tmp = ISHFT(pack_tmp, -18)
   29168     2071951 :          idata = idata + 1
   29169     2071951 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29170     2071951 :          full_data(idata) = data_tmp
   29171     2071951 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29172     2071951 :          idata = idata + 1
   29173     2071951 :          data_tmp = ISHFT(pack_tmp, 30)
   29174     2071951 :          ipack = ipack + 1
   29175     2071951 :          pack_tmp = packed_data(ipack)
   29176     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   29177     2071951 :          pack_tmp = ISHFT(pack_tmp, -30)
   29178     2071951 :          idata = idata + 1
   29179     2071951 :          data_tmp = ISHFT(pack_tmp, 4)
   29180     2071951 :          ipack = ipack + 1
   29181     2071951 :          pack_tmp = packed_data(ipack)
   29182     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   29183     2071951 :          pack_tmp = ISHFT(pack_tmp, -4)
   29184     2071951 :          idata = idata + 1
   29185     2071951 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29186     2071951 :          full_data(idata) = data_tmp
   29187     2071951 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29188     2071951 :          idata = idata + 1
   29189     2071951 :          data_tmp = ISHFT(pack_tmp, 16)
   29190     2071951 :          ipack = ipack + 1
   29191     2071951 :          pack_tmp = packed_data(ipack)
   29192     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   29193     2071951 :          pack_tmp = ISHFT(pack_tmp, -16)
   29194     2071951 :          idata = idata + 1
   29195     2071951 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29196     2071951 :          full_data(idata) = data_tmp
   29197     2071951 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29198     2071951 :          idata = idata + 1
   29199     2071951 :          data_tmp = ISHFT(pack_tmp, 28)
   29200     2071951 :          ipack = ipack + 1
   29201     2071951 :          pack_tmp = packed_data(ipack)
   29202     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   29203     2071951 :          pack_tmp = ISHFT(pack_tmp, -28)
   29204     2071951 :          idata = idata + 1
   29205     2071951 :          data_tmp = ISHFT(pack_tmp, 2)
   29206     2071951 :          ipack = ipack + 1
   29207     2071951 :          pack_tmp = packed_data(ipack)
   29208     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   29209     2071951 :          pack_tmp = ISHFT(pack_tmp, -2)
   29210     2071951 :          idata = idata + 1
   29211     2071951 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29212     2071951 :          full_data(idata) = data_tmp
   29213     2071951 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29214     2071951 :          idata = idata + 1
   29215     2071951 :          data_tmp = ISHFT(pack_tmp, 14)
   29216     2071951 :          ipack = ipack + 1
   29217     2071951 :          pack_tmp = packed_data(ipack)
   29218     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   29219     2071951 :          pack_tmp = ISHFT(pack_tmp, -14)
   29220     2071951 :          idata = idata + 1
   29221     2071951 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29222     2071951 :          full_data(idata) = data_tmp
   29223     2071951 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29224     2071951 :          idata = idata + 1
   29225     2071951 :          data_tmp = ISHFT(pack_tmp, 26)
   29226     2071951 :          ipack = ipack + 1
   29227     2071951 :          pack_tmp = packed_data(ipack)
   29228     2071951 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   29229     2071951 :          pack_tmp = ISHFT(pack_tmp, -26)
   29230     2071951 :          idata = idata + 1
   29231     2071951 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29232     2071951 :          full_data(idata) = data_tmp
   29233     2074435 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29234             :       END DO
   29235      153622 :       IF (Ndata_rep < Ndata) THEN
   29236       45154 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   29237             :       END IF
   29238      153622 :    END SUBROUTINE bits2ints_38
   29239             : 
   29240             : ! **************************************************************************************************
   29241             : !> \brief ...
   29242             : !> \param Ndata ...
   29243             : !> \param packed_data ...
   29244             : !> \param full_data ...
   29245             : ! **************************************************************************************************
   29246       27825 :    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       27825 :       idata = 0
   29257       27825 :       ipack = 0
   29258       27825 :       Ndata_rep = (Ndata/64)*64
   29259       27825 :       DO kdata = 1, Ndata_rep, 64
   29260      409687 :          pack_tmp = 0
   29261      409687 :          idata = idata + 1
   29262      409687 :          data_tmp = full_data(idata)
   29263      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29264      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29265      409687 :          pack_tmp = ISHFT(pack_tmp, -25)
   29266      409687 :          idata = idata + 1
   29267      409687 :          data_tmp = full_data(idata)
   29268      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29269      409687 :          data_tmp = IAND(data_tmp, mask_left(25))
   29270      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29271      409687 :          ipack = ipack + 1
   29272      409687 :          packed_data(ipack) = pack_tmp
   29273      409687 :          data_tmp = full_data(idata)
   29274      409687 :          pack_tmp = ISHFT(data_tmp, 50)
   29275      409687 :          pack_tmp = ISHFT(pack_tmp, -39)
   29276      409687 :          idata = idata + 1
   29277      409687 :          data_tmp = full_data(idata)
   29278      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29279      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29280      409687 :          pack_tmp = ISHFT(pack_tmp, -11)
   29281      409687 :          idata = idata + 1
   29282      409687 :          data_tmp = full_data(idata)
   29283      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29284      409687 :          data_tmp = IAND(data_tmp, mask_left(11))
   29285      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29286      409687 :          ipack = ipack + 1
   29287      409687 :          packed_data(ipack) = pack_tmp
   29288      409687 :          data_tmp = full_data(idata)
   29289      409687 :          pack_tmp = ISHFT(data_tmp, 36)
   29290      409687 :          pack_tmp = ISHFT(pack_tmp, -36)
   29291      409687 :          idata = idata + 1
   29292      409687 :          data_tmp = full_data(idata)
   29293      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29294      409687 :          data_tmp = IAND(data_tmp, mask_left(36))
   29295      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29296      409687 :          ipack = ipack + 1
   29297      409687 :          packed_data(ipack) = pack_tmp
   29298      409687 :          data_tmp = full_data(idata)
   29299      409687 :          pack_tmp = ISHFT(data_tmp, 61)
   29300      409687 :          pack_tmp = ISHFT(pack_tmp, -39)
   29301      409687 :          idata = idata + 1
   29302      409687 :          data_tmp = full_data(idata)
   29303      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29304      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29305      409687 :          pack_tmp = ISHFT(pack_tmp, -22)
   29306      409687 :          idata = idata + 1
   29307      409687 :          data_tmp = full_data(idata)
   29308      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29309      409687 :          data_tmp = IAND(data_tmp, mask_left(22))
   29310      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29311      409687 :          ipack = ipack + 1
   29312      409687 :          packed_data(ipack) = pack_tmp
   29313      409687 :          data_tmp = full_data(idata)
   29314      409687 :          pack_tmp = ISHFT(data_tmp, 47)
   29315      409687 :          pack_tmp = ISHFT(pack_tmp, -39)
   29316      409687 :          idata = idata + 1
   29317      409687 :          data_tmp = full_data(idata)
   29318      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29319      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29320      409687 :          pack_tmp = ISHFT(pack_tmp, -8)
   29321      409687 :          idata = idata + 1
   29322      409687 :          data_tmp = full_data(idata)
   29323      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29324      409687 :          data_tmp = IAND(data_tmp, mask_left(8))
   29325      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29326      409687 :          ipack = ipack + 1
   29327      409687 :          packed_data(ipack) = pack_tmp
   29328      409687 :          data_tmp = full_data(idata)
   29329      409687 :          pack_tmp = ISHFT(data_tmp, 33)
   29330      409687 :          pack_tmp = ISHFT(pack_tmp, -33)
   29331      409687 :          idata = idata + 1
   29332      409687 :          data_tmp = full_data(idata)
   29333      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29334      409687 :          data_tmp = IAND(data_tmp, mask_left(33))
   29335      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29336      409687 :          ipack = ipack + 1
   29337      409687 :          packed_data(ipack) = pack_tmp
   29338      409687 :          data_tmp = full_data(idata)
   29339      409687 :          pack_tmp = ISHFT(data_tmp, 58)
   29340      409687 :          pack_tmp = ISHFT(pack_tmp, -39)
   29341      409687 :          idata = idata + 1
   29342      409687 :          data_tmp = full_data(idata)
   29343      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29344      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29345      409687 :          pack_tmp = ISHFT(pack_tmp, -19)
   29346      409687 :          idata = idata + 1
   29347      409687 :          data_tmp = full_data(idata)
   29348      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29349      409687 :          data_tmp = IAND(data_tmp, mask_left(19))
   29350      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29351      409687 :          ipack = ipack + 1
   29352      409687 :          packed_data(ipack) = pack_tmp
   29353      409687 :          data_tmp = full_data(idata)
   29354      409687 :          pack_tmp = ISHFT(data_tmp, 44)
   29355      409687 :          pack_tmp = ISHFT(pack_tmp, -39)
   29356      409687 :          idata = idata + 1
   29357      409687 :          data_tmp = full_data(idata)
   29358      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29359      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29360      409687 :          pack_tmp = ISHFT(pack_tmp, -5)
   29361      409687 :          idata = idata + 1
   29362      409687 :          data_tmp = full_data(idata)
   29363      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29364      409687 :          data_tmp = IAND(data_tmp, mask_left(5))
   29365      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29366      409687 :          ipack = ipack + 1
   29367      409687 :          packed_data(ipack) = pack_tmp
   29368      409687 :          data_tmp = full_data(idata)
   29369      409687 :          pack_tmp = ISHFT(data_tmp, 30)
   29370      409687 :          pack_tmp = ISHFT(pack_tmp, -30)
   29371      409687 :          idata = idata + 1
   29372      409687 :          data_tmp = full_data(idata)
   29373      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29374      409687 :          data_tmp = IAND(data_tmp, mask_left(30))
   29375      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29376      409687 :          ipack = ipack + 1
   29377      409687 :          packed_data(ipack) = pack_tmp
   29378      409687 :          data_tmp = full_data(idata)
   29379      409687 :          pack_tmp = ISHFT(data_tmp, 55)
   29380      409687 :          pack_tmp = ISHFT(pack_tmp, -39)
   29381      409687 :          idata = idata + 1
   29382      409687 :          data_tmp = full_data(idata)
   29383      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29384      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29385      409687 :          pack_tmp = ISHFT(pack_tmp, -16)
   29386      409687 :          idata = idata + 1
   29387      409687 :          data_tmp = full_data(idata)
   29388      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29389      409687 :          data_tmp = IAND(data_tmp, mask_left(16))
   29390      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29391      409687 :          ipack = ipack + 1
   29392      409687 :          packed_data(ipack) = pack_tmp
   29393      409687 :          data_tmp = full_data(idata)
   29394      409687 :          pack_tmp = ISHFT(data_tmp, 41)
   29395      409687 :          pack_tmp = ISHFT(pack_tmp, -39)
   29396      409687 :          idata = idata + 1
   29397      409687 :          data_tmp = full_data(idata)
   29398      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29399      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29400      409687 :          pack_tmp = ISHFT(pack_tmp, -2)
   29401      409687 :          idata = idata + 1
   29402      409687 :          data_tmp = full_data(idata)
   29403      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29404      409687 :          data_tmp = IAND(data_tmp, mask_left(2))
   29405      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29406      409687 :          ipack = ipack + 1
   29407      409687 :          packed_data(ipack) = pack_tmp
   29408      409687 :          data_tmp = full_data(idata)
   29409      409687 :          pack_tmp = ISHFT(data_tmp, 27)
   29410      409687 :          pack_tmp = ISHFT(pack_tmp, -27)
   29411      409687 :          idata = idata + 1
   29412      409687 :          data_tmp = full_data(idata)
   29413      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29414      409687 :          data_tmp = IAND(data_tmp, mask_left(27))
   29415      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29416      409687 :          ipack = ipack + 1
   29417      409687 :          packed_data(ipack) = pack_tmp
   29418      409687 :          data_tmp = full_data(idata)
   29419      409687 :          pack_tmp = ISHFT(data_tmp, 52)
   29420      409687 :          pack_tmp = ISHFT(pack_tmp, -39)
   29421      409687 :          idata = idata + 1
   29422      409687 :          data_tmp = full_data(idata)
   29423      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29424      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29425      409687 :          pack_tmp = ISHFT(pack_tmp, -13)
   29426      409687 :          idata = idata + 1
   29427      409687 :          data_tmp = full_data(idata)
   29428      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29429      409687 :          data_tmp = IAND(data_tmp, mask_left(13))
   29430      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29431      409687 :          ipack = ipack + 1
   29432      409687 :          packed_data(ipack) = pack_tmp
   29433      409687 :          data_tmp = full_data(idata)
   29434      409687 :          pack_tmp = ISHFT(data_tmp, 38)
   29435      409687 :          pack_tmp = ISHFT(pack_tmp, -38)
   29436      409687 :          idata = idata + 1
   29437      409687 :          data_tmp = full_data(idata)
   29438      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29439      409687 :          data_tmp = IAND(data_tmp, mask_left(38))
   29440      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29441      409687 :          ipack = ipack + 1
   29442      409687 :          packed_data(ipack) = pack_tmp
   29443      409687 :          data_tmp = full_data(idata)
   29444      409687 :          pack_tmp = ISHFT(data_tmp, 63)
   29445      409687 :          pack_tmp = ISHFT(pack_tmp, -39)
   29446      409687 :          idata = idata + 1
   29447      409687 :          data_tmp = full_data(idata)
   29448      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29449      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29450      409687 :          pack_tmp = ISHFT(pack_tmp, -24)
   29451      409687 :          idata = idata + 1
   29452      409687 :          data_tmp = full_data(idata)
   29453      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29454      409687 :          data_tmp = IAND(data_tmp, mask_left(24))
   29455      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29456      409687 :          ipack = ipack + 1
   29457      409687 :          packed_data(ipack) = pack_tmp
   29458      409687 :          data_tmp = full_data(idata)
   29459      409687 :          pack_tmp = ISHFT(data_tmp, 49)
   29460      409687 :          pack_tmp = ISHFT(pack_tmp, -39)
   29461      409687 :          idata = idata + 1
   29462      409687 :          data_tmp = full_data(idata)
   29463      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29464      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29465      409687 :          pack_tmp = ISHFT(pack_tmp, -10)
   29466      409687 :          idata = idata + 1
   29467      409687 :          data_tmp = full_data(idata)
   29468      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29469      409687 :          data_tmp = IAND(data_tmp, mask_left(10))
   29470      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29471      409687 :          ipack = ipack + 1
   29472      409687 :          packed_data(ipack) = pack_tmp
   29473      409687 :          data_tmp = full_data(idata)
   29474      409687 :          pack_tmp = ISHFT(data_tmp, 35)
   29475      409687 :          pack_tmp = ISHFT(pack_tmp, -35)
   29476      409687 :          idata = idata + 1
   29477      409687 :          data_tmp = full_data(idata)
   29478      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29479      409687 :          data_tmp = IAND(data_tmp, mask_left(35))
   29480      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29481      409687 :          ipack = ipack + 1
   29482      409687 :          packed_data(ipack) = pack_tmp
   29483      409687 :          data_tmp = full_data(idata)
   29484      409687 :          pack_tmp = ISHFT(data_tmp, 60)
   29485      409687 :          pack_tmp = ISHFT(pack_tmp, -39)
   29486      409687 :          idata = idata + 1
   29487      409687 :          data_tmp = full_data(idata)
   29488      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29489      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29490      409687 :          pack_tmp = ISHFT(pack_tmp, -21)
   29491      409687 :          idata = idata + 1
   29492      409687 :          data_tmp = full_data(idata)
   29493      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29494      409687 :          data_tmp = IAND(data_tmp, mask_left(21))
   29495      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29496      409687 :          ipack = ipack + 1
   29497      409687 :          packed_data(ipack) = pack_tmp
   29498      409687 :          data_tmp = full_data(idata)
   29499      409687 :          pack_tmp = ISHFT(data_tmp, 46)
   29500      409687 :          pack_tmp = ISHFT(pack_tmp, -39)
   29501      409687 :          idata = idata + 1
   29502      409687 :          data_tmp = full_data(idata)
   29503      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29504      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29505      409687 :          pack_tmp = ISHFT(pack_tmp, -7)
   29506      409687 :          idata = idata + 1
   29507      409687 :          data_tmp = full_data(idata)
   29508      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29509      409687 :          data_tmp = IAND(data_tmp, mask_left(7))
   29510      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29511      409687 :          ipack = ipack + 1
   29512      409687 :          packed_data(ipack) = pack_tmp
   29513      409687 :          data_tmp = full_data(idata)
   29514      409687 :          pack_tmp = ISHFT(data_tmp, 32)
   29515      409687 :          pack_tmp = ISHFT(pack_tmp, -32)
   29516      409687 :          idata = idata + 1
   29517      409687 :          data_tmp = full_data(idata)
   29518      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29519      409687 :          data_tmp = IAND(data_tmp, mask_left(32))
   29520      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29521      409687 :          ipack = ipack + 1
   29522      409687 :          packed_data(ipack) = pack_tmp
   29523      409687 :          data_tmp = full_data(idata)
   29524      409687 :          pack_tmp = ISHFT(data_tmp, 57)
   29525      409687 :          pack_tmp = ISHFT(pack_tmp, -39)
   29526      409687 :          idata = idata + 1
   29527      409687 :          data_tmp = full_data(idata)
   29528      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29529      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29530      409687 :          pack_tmp = ISHFT(pack_tmp, -18)
   29531      409687 :          idata = idata + 1
   29532      409687 :          data_tmp = full_data(idata)
   29533      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29534      409687 :          data_tmp = IAND(data_tmp, mask_left(18))
   29535      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29536      409687 :          ipack = ipack + 1
   29537      409687 :          packed_data(ipack) = pack_tmp
   29538      409687 :          data_tmp = full_data(idata)
   29539      409687 :          pack_tmp = ISHFT(data_tmp, 43)
   29540      409687 :          pack_tmp = ISHFT(pack_tmp, -39)
   29541      409687 :          idata = idata + 1
   29542      409687 :          data_tmp = full_data(idata)
   29543      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29544      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29545      409687 :          pack_tmp = ISHFT(pack_tmp, -4)
   29546      409687 :          idata = idata + 1
   29547      409687 :          data_tmp = full_data(idata)
   29548      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29549      409687 :          data_tmp = IAND(data_tmp, mask_left(4))
   29550      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29551      409687 :          ipack = ipack + 1
   29552      409687 :          packed_data(ipack) = pack_tmp
   29553      409687 :          data_tmp = full_data(idata)
   29554      409687 :          pack_tmp = ISHFT(data_tmp, 29)
   29555      409687 :          pack_tmp = ISHFT(pack_tmp, -29)
   29556      409687 :          idata = idata + 1
   29557      409687 :          data_tmp = full_data(idata)
   29558      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29559      409687 :          data_tmp = IAND(data_tmp, mask_left(29))
   29560      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29561      409687 :          ipack = ipack + 1
   29562      409687 :          packed_data(ipack) = pack_tmp
   29563      409687 :          data_tmp = full_data(idata)
   29564      409687 :          pack_tmp = ISHFT(data_tmp, 54)
   29565      409687 :          pack_tmp = ISHFT(pack_tmp, -39)
   29566      409687 :          idata = idata + 1
   29567      409687 :          data_tmp = full_data(idata)
   29568      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29569      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29570      409687 :          pack_tmp = ISHFT(pack_tmp, -15)
   29571      409687 :          idata = idata + 1
   29572      409687 :          data_tmp = full_data(idata)
   29573      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29574      409687 :          data_tmp = IAND(data_tmp, mask_left(15))
   29575      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29576      409687 :          ipack = ipack + 1
   29577      409687 :          packed_data(ipack) = pack_tmp
   29578      409687 :          data_tmp = full_data(idata)
   29579      409687 :          pack_tmp = ISHFT(data_tmp, 40)
   29580      409687 :          pack_tmp = ISHFT(pack_tmp, -39)
   29581      409687 :          idata = idata + 1
   29582      409687 :          data_tmp = full_data(idata)
   29583      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29584      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29585      409687 :          pack_tmp = ISHFT(pack_tmp, -1)
   29586      409687 :          idata = idata + 1
   29587      409687 :          data_tmp = full_data(idata)
   29588      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29589      409687 :          data_tmp = IAND(data_tmp, mask_left(1))
   29590      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29591      409687 :          ipack = ipack + 1
   29592      409687 :          packed_data(ipack) = pack_tmp
   29593      409687 :          data_tmp = full_data(idata)
   29594      409687 :          pack_tmp = ISHFT(data_tmp, 26)
   29595      409687 :          pack_tmp = ISHFT(pack_tmp, -26)
   29596      409687 :          idata = idata + 1
   29597      409687 :          data_tmp = full_data(idata)
   29598      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29599      409687 :          data_tmp = IAND(data_tmp, mask_left(26))
   29600      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29601      409687 :          ipack = ipack + 1
   29602      409687 :          packed_data(ipack) = pack_tmp
   29603      409687 :          data_tmp = full_data(idata)
   29604      409687 :          pack_tmp = ISHFT(data_tmp, 51)
   29605      409687 :          pack_tmp = ISHFT(pack_tmp, -39)
   29606      409687 :          idata = idata + 1
   29607      409687 :          data_tmp = full_data(idata)
   29608      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29609      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29610      409687 :          pack_tmp = ISHFT(pack_tmp, -12)
   29611      409687 :          idata = idata + 1
   29612      409687 :          data_tmp = full_data(idata)
   29613      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29614      409687 :          data_tmp = IAND(data_tmp, mask_left(12))
   29615      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29616      409687 :          ipack = ipack + 1
   29617      409687 :          packed_data(ipack) = pack_tmp
   29618      409687 :          data_tmp = full_data(idata)
   29619      409687 :          pack_tmp = ISHFT(data_tmp, 37)
   29620      409687 :          pack_tmp = ISHFT(pack_tmp, -37)
   29621      409687 :          idata = idata + 1
   29622      409687 :          data_tmp = full_data(idata)
   29623      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29624      409687 :          data_tmp = IAND(data_tmp, mask_left(37))
   29625      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29626      409687 :          ipack = ipack + 1
   29627      409687 :          packed_data(ipack) = pack_tmp
   29628      409687 :          data_tmp = full_data(idata)
   29629      409687 :          pack_tmp = ISHFT(data_tmp, 62)
   29630      409687 :          pack_tmp = ISHFT(pack_tmp, -39)
   29631      409687 :          idata = idata + 1
   29632      409687 :          data_tmp = full_data(idata)
   29633      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29634      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29635      409687 :          pack_tmp = ISHFT(pack_tmp, -23)
   29636      409687 :          idata = idata + 1
   29637      409687 :          data_tmp = full_data(idata)
   29638      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29639      409687 :          data_tmp = IAND(data_tmp, mask_left(23))
   29640      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29641      409687 :          ipack = ipack + 1
   29642      409687 :          packed_data(ipack) = pack_tmp
   29643      409687 :          data_tmp = full_data(idata)
   29644      409687 :          pack_tmp = ISHFT(data_tmp, 48)
   29645      409687 :          pack_tmp = ISHFT(pack_tmp, -39)
   29646      409687 :          idata = idata + 1
   29647      409687 :          data_tmp = full_data(idata)
   29648      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29649      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29650      409687 :          pack_tmp = ISHFT(pack_tmp, -9)
   29651      409687 :          idata = idata + 1
   29652      409687 :          data_tmp = full_data(idata)
   29653      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29654      409687 :          data_tmp = IAND(data_tmp, mask_left(9))
   29655      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29656      409687 :          ipack = ipack + 1
   29657      409687 :          packed_data(ipack) = pack_tmp
   29658      409687 :          data_tmp = full_data(idata)
   29659      409687 :          pack_tmp = ISHFT(data_tmp, 34)
   29660      409687 :          pack_tmp = ISHFT(pack_tmp, -34)
   29661      409687 :          idata = idata + 1
   29662      409687 :          data_tmp = full_data(idata)
   29663      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29664      409687 :          data_tmp = IAND(data_tmp, mask_left(34))
   29665      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29666      409687 :          ipack = ipack + 1
   29667      409687 :          packed_data(ipack) = pack_tmp
   29668      409687 :          data_tmp = full_data(idata)
   29669      409687 :          pack_tmp = ISHFT(data_tmp, 59)
   29670      409687 :          pack_tmp = ISHFT(pack_tmp, -39)
   29671      409687 :          idata = idata + 1
   29672      409687 :          data_tmp = full_data(idata)
   29673      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29674      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29675      409687 :          pack_tmp = ISHFT(pack_tmp, -20)
   29676      409687 :          idata = idata + 1
   29677      409687 :          data_tmp = full_data(idata)
   29678      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29679      409687 :          data_tmp = IAND(data_tmp, mask_left(20))
   29680      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29681      409687 :          ipack = ipack + 1
   29682      409687 :          packed_data(ipack) = pack_tmp
   29683      409687 :          data_tmp = full_data(idata)
   29684      409687 :          pack_tmp = ISHFT(data_tmp, 45)
   29685      409687 :          pack_tmp = ISHFT(pack_tmp, -39)
   29686      409687 :          idata = idata + 1
   29687      409687 :          data_tmp = full_data(idata)
   29688      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29689      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29690      409687 :          pack_tmp = ISHFT(pack_tmp, -6)
   29691      409687 :          idata = idata + 1
   29692      409687 :          data_tmp = full_data(idata)
   29693      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29694      409687 :          data_tmp = IAND(data_tmp, mask_left(6))
   29695      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29696      409687 :          ipack = ipack + 1
   29697      409687 :          packed_data(ipack) = pack_tmp
   29698      409687 :          data_tmp = full_data(idata)
   29699      409687 :          pack_tmp = ISHFT(data_tmp, 31)
   29700      409687 :          pack_tmp = ISHFT(pack_tmp, -31)
   29701      409687 :          idata = idata + 1
   29702      409687 :          data_tmp = full_data(idata)
   29703      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29704      409687 :          data_tmp = IAND(data_tmp, mask_left(31))
   29705      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29706      409687 :          ipack = ipack + 1
   29707      409687 :          packed_data(ipack) = pack_tmp
   29708      409687 :          data_tmp = full_data(idata)
   29709      409687 :          pack_tmp = ISHFT(data_tmp, 56)
   29710      409687 :          pack_tmp = ISHFT(pack_tmp, -39)
   29711      409687 :          idata = idata + 1
   29712      409687 :          data_tmp = full_data(idata)
   29713      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29714      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29715      409687 :          pack_tmp = ISHFT(pack_tmp, -17)
   29716      409687 :          idata = idata + 1
   29717      409687 :          data_tmp = full_data(idata)
   29718      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29719      409687 :          data_tmp = IAND(data_tmp, mask_left(17))
   29720      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29721      409687 :          ipack = ipack + 1
   29722      409687 :          packed_data(ipack) = pack_tmp
   29723      409687 :          data_tmp = full_data(idata)
   29724      409687 :          pack_tmp = ISHFT(data_tmp, 42)
   29725      409687 :          pack_tmp = ISHFT(pack_tmp, -39)
   29726      409687 :          idata = idata + 1
   29727      409687 :          data_tmp = full_data(idata)
   29728      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29729      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29730      409687 :          pack_tmp = ISHFT(pack_tmp, -3)
   29731      409687 :          idata = idata + 1
   29732      409687 :          data_tmp = full_data(idata)
   29733      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29734      409687 :          data_tmp = IAND(data_tmp, mask_left(3))
   29735      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29736      409687 :          ipack = ipack + 1
   29737      409687 :          packed_data(ipack) = pack_tmp
   29738      409687 :          data_tmp = full_data(idata)
   29739      409687 :          pack_tmp = ISHFT(data_tmp, 28)
   29740      409687 :          pack_tmp = ISHFT(pack_tmp, -28)
   29741      409687 :          idata = idata + 1
   29742      409687 :          data_tmp = full_data(idata)
   29743      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29744      409687 :          data_tmp = IAND(data_tmp, mask_left(28))
   29745      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29746      409687 :          ipack = ipack + 1
   29747      409687 :          packed_data(ipack) = pack_tmp
   29748      409687 :          data_tmp = full_data(idata)
   29749      409687 :          pack_tmp = ISHFT(data_tmp, 53)
   29750      409687 :          pack_tmp = ISHFT(pack_tmp, -39)
   29751      409687 :          idata = idata + 1
   29752      409687 :          data_tmp = full_data(idata)
   29753      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29754      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29755      409687 :          pack_tmp = ISHFT(pack_tmp, -14)
   29756      409687 :          idata = idata + 1
   29757      409687 :          data_tmp = full_data(idata)
   29758      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29759      409687 :          data_tmp = IAND(data_tmp, mask_left(14))
   29760      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29761      409687 :          ipack = ipack + 1
   29762      409687 :          packed_data(ipack) = pack_tmp
   29763      409687 :          data_tmp = full_data(idata)
   29764      409687 :          pack_tmp = ISHFT(data_tmp, 39)
   29765      409687 :          pack_tmp = ISHFT(pack_tmp, -39)
   29766      409687 :          idata = idata + 1
   29767      409687 :          data_tmp = full_data(idata)
   29768      409687 :          data_tmp = ISHFT(data_tmp, 25)
   29769      409687 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29770             :          pack_tmp = ISHFT(pack_tmp, 0)
   29771      409687 :          pack_tmp = ISHFT(pack_tmp, 0)
   29772      409687 :          ipack = ipack + 1
   29773      409691 :          packed_data(ipack) = pack_tmp
   29774             :       END DO
   29775       27825 :       IF (Ndata_rep < Ndata) THEN
   29776        4178 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   29777             :       END IF
   29778       27825 :    END SUBROUTINE ints2bits_39
   29779             : 
   29780             : ! **************************************************************************************************
   29781             : !> \brief ...
   29782             : !> \param Ndata ...
   29783             : !> \param packed_data ...
   29784             : !> \param full_data ...
   29785             : ! **************************************************************************************************
   29786      123413 :    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      123413 :       ipack = 0
   29797      123413 :       idata = 0
   29798      123413 :       pack_tmp = 0
   29799      123413 :       Ndata_rep = (Ndata/64)*64
   29800      123413 :       DO kdata = 1, Ndata_rep, 64
   29801     1761853 :          idata = idata + 1
   29802     1761853 :          data_tmp = ISHFT(pack_tmp, 39)
   29803     1761853 :          ipack = ipack + 1
   29804     1761853 :          pack_tmp = packed_data(ipack)
   29805     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   29806     1761853 :          pack_tmp = ISHFT(pack_tmp, -39)
   29807     1761853 :          idata = idata + 1
   29808     1761853 :          data_tmp = ISHFT(pack_tmp, 14)
   29809     1761853 :          ipack = ipack + 1
   29810     1761853 :          pack_tmp = packed_data(ipack)
   29811     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   29812     1761853 :          pack_tmp = ISHFT(pack_tmp, -14)
   29813     1761853 :          idata = idata + 1
   29814     1761853 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29815     1761853 :          full_data(idata) = data_tmp
   29816     1761853 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29817     1761853 :          idata = idata + 1
   29818     1761853 :          data_tmp = ISHFT(pack_tmp, 28)
   29819     1761853 :          ipack = ipack + 1
   29820     1761853 :          pack_tmp = packed_data(ipack)
   29821     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   29822     1761853 :          pack_tmp = ISHFT(pack_tmp, -28)
   29823     1761853 :          idata = idata + 1
   29824     1761853 :          data_tmp = ISHFT(pack_tmp, 3)
   29825     1761853 :          ipack = ipack + 1
   29826     1761853 :          pack_tmp = packed_data(ipack)
   29827     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   29828     1761853 :          pack_tmp = ISHFT(pack_tmp, -3)
   29829     1761853 :          idata = idata + 1
   29830     1761853 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29831     1761853 :          full_data(idata) = data_tmp
   29832     1761853 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29833     1761853 :          idata = idata + 1
   29834     1761853 :          data_tmp = ISHFT(pack_tmp, 17)
   29835     1761853 :          ipack = ipack + 1
   29836     1761853 :          pack_tmp = packed_data(ipack)
   29837     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   29838     1761853 :          pack_tmp = ISHFT(pack_tmp, -17)
   29839     1761853 :          idata = idata + 1
   29840     1761853 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29841     1761853 :          full_data(idata) = data_tmp
   29842     1761853 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29843     1761853 :          idata = idata + 1
   29844     1761853 :          data_tmp = ISHFT(pack_tmp, 31)
   29845     1761853 :          ipack = ipack + 1
   29846     1761853 :          pack_tmp = packed_data(ipack)
   29847     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   29848     1761853 :          pack_tmp = ISHFT(pack_tmp, -31)
   29849     1761853 :          idata = idata + 1
   29850     1761853 :          data_tmp = ISHFT(pack_tmp, 6)
   29851     1761853 :          ipack = ipack + 1
   29852     1761853 :          pack_tmp = packed_data(ipack)
   29853     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   29854     1761853 :          pack_tmp = ISHFT(pack_tmp, -6)
   29855     1761853 :          idata = idata + 1
   29856     1761853 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29857     1761853 :          full_data(idata) = data_tmp
   29858     1761853 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29859     1761853 :          idata = idata + 1
   29860     1761853 :          data_tmp = ISHFT(pack_tmp, 20)
   29861     1761853 :          ipack = ipack + 1
   29862     1761853 :          pack_tmp = packed_data(ipack)
   29863     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   29864     1761853 :          pack_tmp = ISHFT(pack_tmp, -20)
   29865     1761853 :          idata = idata + 1
   29866     1761853 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29867     1761853 :          full_data(idata) = data_tmp
   29868     1761853 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29869     1761853 :          idata = idata + 1
   29870     1761853 :          data_tmp = ISHFT(pack_tmp, 34)
   29871     1761853 :          ipack = ipack + 1
   29872     1761853 :          pack_tmp = packed_data(ipack)
   29873     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   29874     1761853 :          pack_tmp = ISHFT(pack_tmp, -34)
   29875     1761853 :          idata = idata + 1
   29876     1761853 :          data_tmp = ISHFT(pack_tmp, 9)
   29877     1761853 :          ipack = ipack + 1
   29878     1761853 :          pack_tmp = packed_data(ipack)
   29879     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   29880     1761853 :          pack_tmp = ISHFT(pack_tmp, -9)
   29881     1761853 :          idata = idata + 1
   29882     1761853 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29883     1761853 :          full_data(idata) = data_tmp
   29884     1761853 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29885     1761853 :          idata = idata + 1
   29886     1761853 :          data_tmp = ISHFT(pack_tmp, 23)
   29887     1761853 :          ipack = ipack + 1
   29888     1761853 :          pack_tmp = packed_data(ipack)
   29889     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   29890     1761853 :          pack_tmp = ISHFT(pack_tmp, -23)
   29891     1761853 :          idata = idata + 1
   29892     1761853 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29893     1761853 :          full_data(idata) = data_tmp
   29894     1761853 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29895     1761853 :          idata = idata + 1
   29896     1761853 :          data_tmp = ISHFT(pack_tmp, 37)
   29897     1761853 :          ipack = ipack + 1
   29898     1761853 :          pack_tmp = packed_data(ipack)
   29899     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   29900     1761853 :          pack_tmp = ISHFT(pack_tmp, -37)
   29901     1761853 :          idata = idata + 1
   29902     1761853 :          data_tmp = ISHFT(pack_tmp, 12)
   29903     1761853 :          ipack = ipack + 1
   29904     1761853 :          pack_tmp = packed_data(ipack)
   29905     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   29906     1761853 :          pack_tmp = ISHFT(pack_tmp, -12)
   29907     1761853 :          idata = idata + 1
   29908     1761853 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29909     1761853 :          full_data(idata) = data_tmp
   29910     1761853 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29911     1761853 :          idata = idata + 1
   29912     1761853 :          data_tmp = ISHFT(pack_tmp, 26)
   29913     1761853 :          ipack = ipack + 1
   29914     1761853 :          pack_tmp = packed_data(ipack)
   29915     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   29916     1761853 :          pack_tmp = ISHFT(pack_tmp, -26)
   29917     1761853 :          idata = idata + 1
   29918     1761853 :          data_tmp = ISHFT(pack_tmp, 1)
   29919     1761853 :          ipack = ipack + 1
   29920     1761853 :          pack_tmp = packed_data(ipack)
   29921     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   29922     1761853 :          pack_tmp = ISHFT(pack_tmp, -1)
   29923     1761853 :          idata = idata + 1
   29924     1761853 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29925     1761853 :          full_data(idata) = data_tmp
   29926     1761853 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29927     1761853 :          idata = idata + 1
   29928     1761853 :          data_tmp = ISHFT(pack_tmp, 15)
   29929     1761853 :          ipack = ipack + 1
   29930     1761853 :          pack_tmp = packed_data(ipack)
   29931     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   29932     1761853 :          pack_tmp = ISHFT(pack_tmp, -15)
   29933     1761853 :          idata = idata + 1
   29934     1761853 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29935     1761853 :          full_data(idata) = data_tmp
   29936     1761853 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29937     1761853 :          idata = idata + 1
   29938     1761853 :          data_tmp = ISHFT(pack_tmp, 29)
   29939     1761853 :          ipack = ipack + 1
   29940     1761853 :          pack_tmp = packed_data(ipack)
   29941     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   29942     1761853 :          pack_tmp = ISHFT(pack_tmp, -29)
   29943     1761853 :          idata = idata + 1
   29944     1761853 :          data_tmp = ISHFT(pack_tmp, 4)
   29945     1761853 :          ipack = ipack + 1
   29946     1761853 :          pack_tmp = packed_data(ipack)
   29947     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   29948     1761853 :          pack_tmp = ISHFT(pack_tmp, -4)
   29949     1761853 :          idata = idata + 1
   29950     1761853 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29951     1761853 :          full_data(idata) = data_tmp
   29952     1761853 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29953     1761853 :          idata = idata + 1
   29954     1761853 :          data_tmp = ISHFT(pack_tmp, 18)
   29955     1761853 :          ipack = ipack + 1
   29956     1761853 :          pack_tmp = packed_data(ipack)
   29957     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   29958     1761853 :          pack_tmp = ISHFT(pack_tmp, -18)
   29959     1761853 :          idata = idata + 1
   29960     1761853 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29961     1761853 :          full_data(idata) = data_tmp
   29962     1761853 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29963     1761853 :          idata = idata + 1
   29964     1761853 :          data_tmp = ISHFT(pack_tmp, 32)
   29965     1761853 :          ipack = ipack + 1
   29966     1761853 :          pack_tmp = packed_data(ipack)
   29967     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   29968     1761853 :          pack_tmp = ISHFT(pack_tmp, -32)
   29969     1761853 :          idata = idata + 1
   29970     1761853 :          data_tmp = ISHFT(pack_tmp, 7)
   29971     1761853 :          ipack = ipack + 1
   29972     1761853 :          pack_tmp = packed_data(ipack)
   29973     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   29974     1761853 :          pack_tmp = ISHFT(pack_tmp, -7)
   29975     1761853 :          idata = idata + 1
   29976     1761853 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29977     1761853 :          full_data(idata) = data_tmp
   29978     1761853 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29979     1761853 :          idata = idata + 1
   29980     1761853 :          data_tmp = ISHFT(pack_tmp, 21)
   29981     1761853 :          ipack = ipack + 1
   29982     1761853 :          pack_tmp = packed_data(ipack)
   29983     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   29984     1761853 :          pack_tmp = ISHFT(pack_tmp, -21)
   29985     1761853 :          idata = idata + 1
   29986     1761853 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29987     1761853 :          full_data(idata) = data_tmp
   29988     1761853 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29989     1761853 :          idata = idata + 1
   29990     1761853 :          data_tmp = ISHFT(pack_tmp, 35)
   29991     1761853 :          ipack = ipack + 1
   29992     1761853 :          pack_tmp = packed_data(ipack)
   29993     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   29994     1761853 :          pack_tmp = ISHFT(pack_tmp, -35)
   29995     1761853 :          idata = idata + 1
   29996     1761853 :          data_tmp = ISHFT(pack_tmp, 10)
   29997     1761853 :          ipack = ipack + 1
   29998     1761853 :          pack_tmp = packed_data(ipack)
   29999     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   30000     1761853 :          pack_tmp = ISHFT(pack_tmp, -10)
   30001     1761853 :          idata = idata + 1
   30002     1761853 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30003     1761853 :          full_data(idata) = data_tmp
   30004     1761853 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30005     1761853 :          idata = idata + 1
   30006     1761853 :          data_tmp = ISHFT(pack_tmp, 24)
   30007     1761853 :          ipack = ipack + 1
   30008     1761853 :          pack_tmp = packed_data(ipack)
   30009     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30010     1761853 :          pack_tmp = ISHFT(pack_tmp, -24)
   30011     1761853 :          idata = idata + 1
   30012     1761853 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30013     1761853 :          full_data(idata) = data_tmp
   30014     1761853 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30015     1761853 :          idata = idata + 1
   30016     1761853 :          data_tmp = ISHFT(pack_tmp, 38)
   30017     1761853 :          ipack = ipack + 1
   30018     1761853 :          pack_tmp = packed_data(ipack)
   30019     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   30020     1761853 :          pack_tmp = ISHFT(pack_tmp, -38)
   30021     1761853 :          idata = idata + 1
   30022     1761853 :          data_tmp = ISHFT(pack_tmp, 13)
   30023     1761853 :          ipack = ipack + 1
   30024     1761853 :          pack_tmp = packed_data(ipack)
   30025     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   30026     1761853 :          pack_tmp = ISHFT(pack_tmp, -13)
   30027     1761853 :          idata = idata + 1
   30028     1761853 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30029     1761853 :          full_data(idata) = data_tmp
   30030     1761853 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30031     1761853 :          idata = idata + 1
   30032     1761853 :          data_tmp = ISHFT(pack_tmp, 27)
   30033     1761853 :          ipack = ipack + 1
   30034     1761853 :          pack_tmp = packed_data(ipack)
   30035     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   30036     1761853 :          pack_tmp = ISHFT(pack_tmp, -27)
   30037     1761853 :          idata = idata + 1
   30038     1761853 :          data_tmp = ISHFT(pack_tmp, 2)
   30039     1761853 :          ipack = ipack + 1
   30040     1761853 :          pack_tmp = packed_data(ipack)
   30041     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   30042     1761853 :          pack_tmp = ISHFT(pack_tmp, -2)
   30043     1761853 :          idata = idata + 1
   30044     1761853 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30045     1761853 :          full_data(idata) = data_tmp
   30046     1761853 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30047     1761853 :          idata = idata + 1
   30048     1761853 :          data_tmp = ISHFT(pack_tmp, 16)
   30049     1761853 :          ipack = ipack + 1
   30050     1761853 :          pack_tmp = packed_data(ipack)
   30051     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30052     1761853 :          pack_tmp = ISHFT(pack_tmp, -16)
   30053     1761853 :          idata = idata + 1
   30054     1761853 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30055     1761853 :          full_data(idata) = data_tmp
   30056     1761853 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30057     1761853 :          idata = idata + 1
   30058     1761853 :          data_tmp = ISHFT(pack_tmp, 30)
   30059     1761853 :          ipack = ipack + 1
   30060     1761853 :          pack_tmp = packed_data(ipack)
   30061     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   30062     1761853 :          pack_tmp = ISHFT(pack_tmp, -30)
   30063     1761853 :          idata = idata + 1
   30064     1761853 :          data_tmp = ISHFT(pack_tmp, 5)
   30065     1761853 :          ipack = ipack + 1
   30066     1761853 :          pack_tmp = packed_data(ipack)
   30067     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   30068     1761853 :          pack_tmp = ISHFT(pack_tmp, -5)
   30069     1761853 :          idata = idata + 1
   30070     1761853 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30071     1761853 :          full_data(idata) = data_tmp
   30072     1761853 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30073     1761853 :          idata = idata + 1
   30074     1761853 :          data_tmp = ISHFT(pack_tmp, 19)
   30075     1761853 :          ipack = ipack + 1
   30076     1761853 :          pack_tmp = packed_data(ipack)
   30077     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   30078     1761853 :          pack_tmp = ISHFT(pack_tmp, -19)
   30079     1761853 :          idata = idata + 1
   30080     1761853 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30081     1761853 :          full_data(idata) = data_tmp
   30082     1761853 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30083     1761853 :          idata = idata + 1
   30084     1761853 :          data_tmp = ISHFT(pack_tmp, 33)
   30085     1761853 :          ipack = ipack + 1
   30086     1761853 :          pack_tmp = packed_data(ipack)
   30087     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   30088     1761853 :          pack_tmp = ISHFT(pack_tmp, -33)
   30089     1761853 :          idata = idata + 1
   30090     1761853 :          data_tmp = ISHFT(pack_tmp, 8)
   30091     1761853 :          ipack = ipack + 1
   30092     1761853 :          pack_tmp = packed_data(ipack)
   30093     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30094     1761853 :          pack_tmp = ISHFT(pack_tmp, -8)
   30095     1761853 :          idata = idata + 1
   30096     1761853 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30097     1761853 :          full_data(idata) = data_tmp
   30098     1761853 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30099     1761853 :          idata = idata + 1
   30100     1761853 :          data_tmp = ISHFT(pack_tmp, 22)
   30101     1761853 :          ipack = ipack + 1
   30102     1761853 :          pack_tmp = packed_data(ipack)
   30103     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   30104     1761853 :          pack_tmp = ISHFT(pack_tmp, -22)
   30105     1761853 :          idata = idata + 1
   30106     1761853 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30107     1761853 :          full_data(idata) = data_tmp
   30108     1761853 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30109     1761853 :          idata = idata + 1
   30110     1761853 :          data_tmp = ISHFT(pack_tmp, 36)
   30111     1761853 :          ipack = ipack + 1
   30112     1761853 :          pack_tmp = packed_data(ipack)
   30113     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   30114     1761853 :          pack_tmp = ISHFT(pack_tmp, -36)
   30115     1761853 :          idata = idata + 1
   30116     1761853 :          data_tmp = ISHFT(pack_tmp, 11)
   30117     1761853 :          ipack = ipack + 1
   30118     1761853 :          pack_tmp = packed_data(ipack)
   30119     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   30120     1761853 :          pack_tmp = ISHFT(pack_tmp, -11)
   30121     1761853 :          idata = idata + 1
   30122     1761853 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30123     1761853 :          full_data(idata) = data_tmp
   30124     1761853 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30125     1761853 :          idata = idata + 1
   30126     1761853 :          data_tmp = ISHFT(pack_tmp, 25)
   30127     1761853 :          ipack = ipack + 1
   30128     1761853 :          pack_tmp = packed_data(ipack)
   30129     1761853 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   30130     1761853 :          pack_tmp = ISHFT(pack_tmp, -25)
   30131     1761853 :          idata = idata + 1
   30132     1761853 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30133     1761853 :          full_data(idata) = data_tmp
   30134     1761897 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30135             :       END DO
   30136      123413 :       IF (Ndata_rep < Ndata) THEN
   30137       25030 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   30138             :       END IF
   30139      123413 :    END SUBROUTINE bits2ints_39
   30140             : 
   30141             : ! **************************************************************************************************
   30142             : !> \brief ...
   30143             : !> \param Ndata ...
   30144             : !> \param packed_data ...
   30145             : !> \param full_data ...
   30146             : ! **************************************************************************************************
   30147       26693 :    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       26693 :       idata = 0
   30158       26693 :       ipack = 0
   30159       26693 :       Ndata_rep = (Ndata/64)*64
   30160       26693 :       DO kdata = 1, Ndata_rep, 64
   30161      400786 :          pack_tmp = 0
   30162      400786 :          idata = idata + 1
   30163      400786 :          data_tmp = full_data(idata)
   30164      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30165      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30166      400786 :          pack_tmp = ISHFT(pack_tmp, -24)
   30167      400786 :          idata = idata + 1
   30168      400786 :          data_tmp = full_data(idata)
   30169      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30170      400786 :          data_tmp = IAND(data_tmp, mask_left(24))
   30171      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30172      400786 :          ipack = ipack + 1
   30173      400786 :          packed_data(ipack) = pack_tmp
   30174      400786 :          data_tmp = full_data(idata)
   30175      400786 :          pack_tmp = ISHFT(data_tmp, 48)
   30176      400786 :          pack_tmp = ISHFT(pack_tmp, -40)
   30177      400786 :          idata = idata + 1
   30178      400786 :          data_tmp = full_data(idata)
   30179      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30180      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30181      400786 :          pack_tmp = ISHFT(pack_tmp, -8)
   30182      400786 :          idata = idata + 1
   30183      400786 :          data_tmp = full_data(idata)
   30184      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30185      400786 :          data_tmp = IAND(data_tmp, mask_left(8))
   30186      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30187      400786 :          ipack = ipack + 1
   30188      400786 :          packed_data(ipack) = pack_tmp
   30189      400786 :          data_tmp = full_data(idata)
   30190      400786 :          pack_tmp = ISHFT(data_tmp, 32)
   30191      400786 :          pack_tmp = ISHFT(pack_tmp, -32)
   30192      400786 :          idata = idata + 1
   30193      400786 :          data_tmp = full_data(idata)
   30194      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30195      400786 :          data_tmp = IAND(data_tmp, mask_left(32))
   30196      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30197      400786 :          ipack = ipack + 1
   30198      400786 :          packed_data(ipack) = pack_tmp
   30199      400786 :          data_tmp = full_data(idata)
   30200      400786 :          pack_tmp = ISHFT(data_tmp, 56)
   30201      400786 :          pack_tmp = ISHFT(pack_tmp, -40)
   30202      400786 :          idata = idata + 1
   30203      400786 :          data_tmp = full_data(idata)
   30204      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30205      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30206      400786 :          pack_tmp = ISHFT(pack_tmp, -16)
   30207      400786 :          idata = idata + 1
   30208      400786 :          data_tmp = full_data(idata)
   30209      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30210      400786 :          data_tmp = IAND(data_tmp, mask_left(16))
   30211      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30212      400786 :          ipack = ipack + 1
   30213      400786 :          packed_data(ipack) = pack_tmp
   30214      400786 :          data_tmp = full_data(idata)
   30215      400786 :          pack_tmp = ISHFT(data_tmp, 40)
   30216      400786 :          pack_tmp = ISHFT(pack_tmp, -40)
   30217      400786 :          idata = idata + 1
   30218      400786 :          data_tmp = full_data(idata)
   30219      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30220      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30221      400786 :          pack_tmp = ISHFT(pack_tmp, 0)
   30222      400786 :          idata = idata + 1
   30223      400786 :          data_tmp = full_data(idata)
   30224             :          data_tmp = ISHFT(data_tmp, 24)
   30225      400786 :          data_tmp = IAND(data_tmp, mask_left(0))
   30226      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30227      400786 :          ipack = ipack + 1
   30228      400786 :          packed_data(ipack) = pack_tmp
   30229      400786 :          data_tmp = full_data(idata)
   30230      400786 :          pack_tmp = ISHFT(data_tmp, 24)
   30231      400786 :          pack_tmp = ISHFT(pack_tmp, -24)
   30232      400786 :          idata = idata + 1
   30233      400786 :          data_tmp = full_data(idata)
   30234      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30235      400786 :          data_tmp = IAND(data_tmp, mask_left(24))
   30236      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30237      400786 :          ipack = ipack + 1
   30238      400786 :          packed_data(ipack) = pack_tmp
   30239      400786 :          data_tmp = full_data(idata)
   30240      400786 :          pack_tmp = ISHFT(data_tmp, 48)
   30241      400786 :          pack_tmp = ISHFT(pack_tmp, -40)
   30242      400786 :          idata = idata + 1
   30243      400786 :          data_tmp = full_data(idata)
   30244      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30245      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30246      400786 :          pack_tmp = ISHFT(pack_tmp, -8)
   30247      400786 :          idata = idata + 1
   30248      400786 :          data_tmp = full_data(idata)
   30249      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30250      400786 :          data_tmp = IAND(data_tmp, mask_left(8))
   30251      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30252      400786 :          ipack = ipack + 1
   30253      400786 :          packed_data(ipack) = pack_tmp
   30254      400786 :          data_tmp = full_data(idata)
   30255      400786 :          pack_tmp = ISHFT(data_tmp, 32)
   30256      400786 :          pack_tmp = ISHFT(pack_tmp, -32)
   30257      400786 :          idata = idata + 1
   30258      400786 :          data_tmp = full_data(idata)
   30259      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30260      400786 :          data_tmp = IAND(data_tmp, mask_left(32))
   30261      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30262      400786 :          ipack = ipack + 1
   30263      400786 :          packed_data(ipack) = pack_tmp
   30264      400786 :          data_tmp = full_data(idata)
   30265      400786 :          pack_tmp = ISHFT(data_tmp, 56)
   30266      400786 :          pack_tmp = ISHFT(pack_tmp, -40)
   30267      400786 :          idata = idata + 1
   30268      400786 :          data_tmp = full_data(idata)
   30269      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30270      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30271      400786 :          pack_tmp = ISHFT(pack_tmp, -16)
   30272      400786 :          idata = idata + 1
   30273      400786 :          data_tmp = full_data(idata)
   30274      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30275      400786 :          data_tmp = IAND(data_tmp, mask_left(16))
   30276      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30277      400786 :          ipack = ipack + 1
   30278      400786 :          packed_data(ipack) = pack_tmp
   30279      400786 :          data_tmp = full_data(idata)
   30280      400786 :          pack_tmp = ISHFT(data_tmp, 40)
   30281      400786 :          pack_tmp = ISHFT(pack_tmp, -40)
   30282      400786 :          idata = idata + 1
   30283      400786 :          data_tmp = full_data(idata)
   30284      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30285      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30286      400786 :          pack_tmp = ISHFT(pack_tmp, 0)
   30287      400786 :          idata = idata + 1
   30288      400786 :          data_tmp = full_data(idata)
   30289             :          data_tmp = ISHFT(data_tmp, 24)
   30290      400786 :          data_tmp = IAND(data_tmp, mask_left(0))
   30291      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30292      400786 :          ipack = ipack + 1
   30293      400786 :          packed_data(ipack) = pack_tmp
   30294      400786 :          data_tmp = full_data(idata)
   30295      400786 :          pack_tmp = ISHFT(data_tmp, 24)
   30296      400786 :          pack_tmp = ISHFT(pack_tmp, -24)
   30297      400786 :          idata = idata + 1
   30298      400786 :          data_tmp = full_data(idata)
   30299      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30300      400786 :          data_tmp = IAND(data_tmp, mask_left(24))
   30301      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30302      400786 :          ipack = ipack + 1
   30303      400786 :          packed_data(ipack) = pack_tmp
   30304      400786 :          data_tmp = full_data(idata)
   30305      400786 :          pack_tmp = ISHFT(data_tmp, 48)
   30306      400786 :          pack_tmp = ISHFT(pack_tmp, -40)
   30307      400786 :          idata = idata + 1
   30308      400786 :          data_tmp = full_data(idata)
   30309      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30310      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30311      400786 :          pack_tmp = ISHFT(pack_tmp, -8)
   30312      400786 :          idata = idata + 1
   30313      400786 :          data_tmp = full_data(idata)
   30314      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30315      400786 :          data_tmp = IAND(data_tmp, mask_left(8))
   30316      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30317      400786 :          ipack = ipack + 1
   30318      400786 :          packed_data(ipack) = pack_tmp
   30319      400786 :          data_tmp = full_data(idata)
   30320      400786 :          pack_tmp = ISHFT(data_tmp, 32)
   30321      400786 :          pack_tmp = ISHFT(pack_tmp, -32)
   30322      400786 :          idata = idata + 1
   30323      400786 :          data_tmp = full_data(idata)
   30324      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30325      400786 :          data_tmp = IAND(data_tmp, mask_left(32))
   30326      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30327      400786 :          ipack = ipack + 1
   30328      400786 :          packed_data(ipack) = pack_tmp
   30329      400786 :          data_tmp = full_data(idata)
   30330      400786 :          pack_tmp = ISHFT(data_tmp, 56)
   30331      400786 :          pack_tmp = ISHFT(pack_tmp, -40)
   30332      400786 :          idata = idata + 1
   30333      400786 :          data_tmp = full_data(idata)
   30334      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30335      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30336      400786 :          pack_tmp = ISHFT(pack_tmp, -16)
   30337      400786 :          idata = idata + 1
   30338      400786 :          data_tmp = full_data(idata)
   30339      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30340      400786 :          data_tmp = IAND(data_tmp, mask_left(16))
   30341      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30342      400786 :          ipack = ipack + 1
   30343      400786 :          packed_data(ipack) = pack_tmp
   30344      400786 :          data_tmp = full_data(idata)
   30345      400786 :          pack_tmp = ISHFT(data_tmp, 40)
   30346      400786 :          pack_tmp = ISHFT(pack_tmp, -40)
   30347      400786 :          idata = idata + 1
   30348      400786 :          data_tmp = full_data(idata)
   30349      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30350      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30351      400786 :          pack_tmp = ISHFT(pack_tmp, 0)
   30352      400786 :          idata = idata + 1
   30353      400786 :          data_tmp = full_data(idata)
   30354             :          data_tmp = ISHFT(data_tmp, 24)
   30355      400786 :          data_tmp = IAND(data_tmp, mask_left(0))
   30356      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30357      400786 :          ipack = ipack + 1
   30358      400786 :          packed_data(ipack) = pack_tmp
   30359      400786 :          data_tmp = full_data(idata)
   30360      400786 :          pack_tmp = ISHFT(data_tmp, 24)
   30361      400786 :          pack_tmp = ISHFT(pack_tmp, -24)
   30362      400786 :          idata = idata + 1
   30363      400786 :          data_tmp = full_data(idata)
   30364      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30365      400786 :          data_tmp = IAND(data_tmp, mask_left(24))
   30366      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30367      400786 :          ipack = ipack + 1
   30368      400786 :          packed_data(ipack) = pack_tmp
   30369      400786 :          data_tmp = full_data(idata)
   30370      400786 :          pack_tmp = ISHFT(data_tmp, 48)
   30371      400786 :          pack_tmp = ISHFT(pack_tmp, -40)
   30372      400786 :          idata = idata + 1
   30373      400786 :          data_tmp = full_data(idata)
   30374      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30375      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30376      400786 :          pack_tmp = ISHFT(pack_tmp, -8)
   30377      400786 :          idata = idata + 1
   30378      400786 :          data_tmp = full_data(idata)
   30379      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30380      400786 :          data_tmp = IAND(data_tmp, mask_left(8))
   30381      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30382      400786 :          ipack = ipack + 1
   30383      400786 :          packed_data(ipack) = pack_tmp
   30384      400786 :          data_tmp = full_data(idata)
   30385      400786 :          pack_tmp = ISHFT(data_tmp, 32)
   30386      400786 :          pack_tmp = ISHFT(pack_tmp, -32)
   30387      400786 :          idata = idata + 1
   30388      400786 :          data_tmp = full_data(idata)
   30389      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30390      400786 :          data_tmp = IAND(data_tmp, mask_left(32))
   30391      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30392      400786 :          ipack = ipack + 1
   30393      400786 :          packed_data(ipack) = pack_tmp
   30394      400786 :          data_tmp = full_data(idata)
   30395      400786 :          pack_tmp = ISHFT(data_tmp, 56)
   30396      400786 :          pack_tmp = ISHFT(pack_tmp, -40)
   30397      400786 :          idata = idata + 1
   30398      400786 :          data_tmp = full_data(idata)
   30399      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30400      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30401      400786 :          pack_tmp = ISHFT(pack_tmp, -16)
   30402      400786 :          idata = idata + 1
   30403      400786 :          data_tmp = full_data(idata)
   30404      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30405      400786 :          data_tmp = IAND(data_tmp, mask_left(16))
   30406      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30407      400786 :          ipack = ipack + 1
   30408      400786 :          packed_data(ipack) = pack_tmp
   30409      400786 :          data_tmp = full_data(idata)
   30410      400786 :          pack_tmp = ISHFT(data_tmp, 40)
   30411      400786 :          pack_tmp = ISHFT(pack_tmp, -40)
   30412      400786 :          idata = idata + 1
   30413      400786 :          data_tmp = full_data(idata)
   30414      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30415      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30416      400786 :          pack_tmp = ISHFT(pack_tmp, 0)
   30417      400786 :          idata = idata + 1
   30418      400786 :          data_tmp = full_data(idata)
   30419             :          data_tmp = ISHFT(data_tmp, 24)
   30420      400786 :          data_tmp = IAND(data_tmp, mask_left(0))
   30421      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30422      400786 :          ipack = ipack + 1
   30423      400786 :          packed_data(ipack) = pack_tmp
   30424      400786 :          data_tmp = full_data(idata)
   30425      400786 :          pack_tmp = ISHFT(data_tmp, 24)
   30426      400786 :          pack_tmp = ISHFT(pack_tmp, -24)
   30427      400786 :          idata = idata + 1
   30428      400786 :          data_tmp = full_data(idata)
   30429      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30430      400786 :          data_tmp = IAND(data_tmp, mask_left(24))
   30431      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30432      400786 :          ipack = ipack + 1
   30433      400786 :          packed_data(ipack) = pack_tmp
   30434      400786 :          data_tmp = full_data(idata)
   30435      400786 :          pack_tmp = ISHFT(data_tmp, 48)
   30436      400786 :          pack_tmp = ISHFT(pack_tmp, -40)
   30437      400786 :          idata = idata + 1
   30438      400786 :          data_tmp = full_data(idata)
   30439      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30440      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30441      400786 :          pack_tmp = ISHFT(pack_tmp, -8)
   30442      400786 :          idata = idata + 1
   30443      400786 :          data_tmp = full_data(idata)
   30444      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30445      400786 :          data_tmp = IAND(data_tmp, mask_left(8))
   30446      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30447      400786 :          ipack = ipack + 1
   30448      400786 :          packed_data(ipack) = pack_tmp
   30449      400786 :          data_tmp = full_data(idata)
   30450      400786 :          pack_tmp = ISHFT(data_tmp, 32)
   30451      400786 :          pack_tmp = ISHFT(pack_tmp, -32)
   30452      400786 :          idata = idata + 1
   30453      400786 :          data_tmp = full_data(idata)
   30454      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30455      400786 :          data_tmp = IAND(data_tmp, mask_left(32))
   30456      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30457      400786 :          ipack = ipack + 1
   30458      400786 :          packed_data(ipack) = pack_tmp
   30459      400786 :          data_tmp = full_data(idata)
   30460      400786 :          pack_tmp = ISHFT(data_tmp, 56)
   30461      400786 :          pack_tmp = ISHFT(pack_tmp, -40)
   30462      400786 :          idata = idata + 1
   30463      400786 :          data_tmp = full_data(idata)
   30464      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30465      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30466      400786 :          pack_tmp = ISHFT(pack_tmp, -16)
   30467      400786 :          idata = idata + 1
   30468      400786 :          data_tmp = full_data(idata)
   30469      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30470      400786 :          data_tmp = IAND(data_tmp, mask_left(16))
   30471      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30472      400786 :          ipack = ipack + 1
   30473      400786 :          packed_data(ipack) = pack_tmp
   30474      400786 :          data_tmp = full_data(idata)
   30475      400786 :          pack_tmp = ISHFT(data_tmp, 40)
   30476      400786 :          pack_tmp = ISHFT(pack_tmp, -40)
   30477      400786 :          idata = idata + 1
   30478      400786 :          data_tmp = full_data(idata)
   30479      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30480      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30481      400786 :          pack_tmp = ISHFT(pack_tmp, 0)
   30482      400786 :          idata = idata + 1
   30483      400786 :          data_tmp = full_data(idata)
   30484             :          data_tmp = ISHFT(data_tmp, 24)
   30485      400786 :          data_tmp = IAND(data_tmp, mask_left(0))
   30486      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30487      400786 :          ipack = ipack + 1
   30488      400786 :          packed_data(ipack) = pack_tmp
   30489      400786 :          data_tmp = full_data(idata)
   30490      400786 :          pack_tmp = ISHFT(data_tmp, 24)
   30491      400786 :          pack_tmp = ISHFT(pack_tmp, -24)
   30492      400786 :          idata = idata + 1
   30493      400786 :          data_tmp = full_data(idata)
   30494      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30495      400786 :          data_tmp = IAND(data_tmp, mask_left(24))
   30496      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30497      400786 :          ipack = ipack + 1
   30498      400786 :          packed_data(ipack) = pack_tmp
   30499      400786 :          data_tmp = full_data(idata)
   30500      400786 :          pack_tmp = ISHFT(data_tmp, 48)
   30501      400786 :          pack_tmp = ISHFT(pack_tmp, -40)
   30502      400786 :          idata = idata + 1
   30503      400786 :          data_tmp = full_data(idata)
   30504      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30505      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30506      400786 :          pack_tmp = ISHFT(pack_tmp, -8)
   30507      400786 :          idata = idata + 1
   30508      400786 :          data_tmp = full_data(idata)
   30509      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30510      400786 :          data_tmp = IAND(data_tmp, mask_left(8))
   30511      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30512      400786 :          ipack = ipack + 1
   30513      400786 :          packed_data(ipack) = pack_tmp
   30514      400786 :          data_tmp = full_data(idata)
   30515      400786 :          pack_tmp = ISHFT(data_tmp, 32)
   30516      400786 :          pack_tmp = ISHFT(pack_tmp, -32)
   30517      400786 :          idata = idata + 1
   30518      400786 :          data_tmp = full_data(idata)
   30519      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30520      400786 :          data_tmp = IAND(data_tmp, mask_left(32))
   30521      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30522      400786 :          ipack = ipack + 1
   30523      400786 :          packed_data(ipack) = pack_tmp
   30524      400786 :          data_tmp = full_data(idata)
   30525      400786 :          pack_tmp = ISHFT(data_tmp, 56)
   30526      400786 :          pack_tmp = ISHFT(pack_tmp, -40)
   30527      400786 :          idata = idata + 1
   30528      400786 :          data_tmp = full_data(idata)
   30529      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30530      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30531      400786 :          pack_tmp = ISHFT(pack_tmp, -16)
   30532      400786 :          idata = idata + 1
   30533      400786 :          data_tmp = full_data(idata)
   30534      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30535      400786 :          data_tmp = IAND(data_tmp, mask_left(16))
   30536      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30537      400786 :          ipack = ipack + 1
   30538      400786 :          packed_data(ipack) = pack_tmp
   30539      400786 :          data_tmp = full_data(idata)
   30540      400786 :          pack_tmp = ISHFT(data_tmp, 40)
   30541      400786 :          pack_tmp = ISHFT(pack_tmp, -40)
   30542      400786 :          idata = idata + 1
   30543      400786 :          data_tmp = full_data(idata)
   30544      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30545      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30546      400786 :          pack_tmp = ISHFT(pack_tmp, 0)
   30547      400786 :          idata = idata + 1
   30548      400786 :          data_tmp = full_data(idata)
   30549             :          data_tmp = ISHFT(data_tmp, 24)
   30550      400786 :          data_tmp = IAND(data_tmp, mask_left(0))
   30551      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30552      400786 :          ipack = ipack + 1
   30553      400786 :          packed_data(ipack) = pack_tmp
   30554      400786 :          data_tmp = full_data(idata)
   30555      400786 :          pack_tmp = ISHFT(data_tmp, 24)
   30556      400786 :          pack_tmp = ISHFT(pack_tmp, -24)
   30557      400786 :          idata = idata + 1
   30558      400786 :          data_tmp = full_data(idata)
   30559      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30560      400786 :          data_tmp = IAND(data_tmp, mask_left(24))
   30561      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30562      400786 :          ipack = ipack + 1
   30563      400786 :          packed_data(ipack) = pack_tmp
   30564      400786 :          data_tmp = full_data(idata)
   30565      400786 :          pack_tmp = ISHFT(data_tmp, 48)
   30566      400786 :          pack_tmp = ISHFT(pack_tmp, -40)
   30567      400786 :          idata = idata + 1
   30568      400786 :          data_tmp = full_data(idata)
   30569      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30570      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30571      400786 :          pack_tmp = ISHFT(pack_tmp, -8)
   30572      400786 :          idata = idata + 1
   30573      400786 :          data_tmp = full_data(idata)
   30574      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30575      400786 :          data_tmp = IAND(data_tmp, mask_left(8))
   30576      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30577      400786 :          ipack = ipack + 1
   30578      400786 :          packed_data(ipack) = pack_tmp
   30579      400786 :          data_tmp = full_data(idata)
   30580      400786 :          pack_tmp = ISHFT(data_tmp, 32)
   30581      400786 :          pack_tmp = ISHFT(pack_tmp, -32)
   30582      400786 :          idata = idata + 1
   30583      400786 :          data_tmp = full_data(idata)
   30584      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30585      400786 :          data_tmp = IAND(data_tmp, mask_left(32))
   30586      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30587      400786 :          ipack = ipack + 1
   30588      400786 :          packed_data(ipack) = pack_tmp
   30589      400786 :          data_tmp = full_data(idata)
   30590      400786 :          pack_tmp = ISHFT(data_tmp, 56)
   30591      400786 :          pack_tmp = ISHFT(pack_tmp, -40)
   30592      400786 :          idata = idata + 1
   30593      400786 :          data_tmp = full_data(idata)
   30594      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30595      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30596      400786 :          pack_tmp = ISHFT(pack_tmp, -16)
   30597      400786 :          idata = idata + 1
   30598      400786 :          data_tmp = full_data(idata)
   30599      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30600      400786 :          data_tmp = IAND(data_tmp, mask_left(16))
   30601      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30602      400786 :          ipack = ipack + 1
   30603      400786 :          packed_data(ipack) = pack_tmp
   30604      400786 :          data_tmp = full_data(idata)
   30605      400786 :          pack_tmp = ISHFT(data_tmp, 40)
   30606      400786 :          pack_tmp = ISHFT(pack_tmp, -40)
   30607      400786 :          idata = idata + 1
   30608      400786 :          data_tmp = full_data(idata)
   30609      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30610      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30611      400786 :          pack_tmp = ISHFT(pack_tmp, 0)
   30612      400786 :          idata = idata + 1
   30613      400786 :          data_tmp = full_data(idata)
   30614             :          data_tmp = ISHFT(data_tmp, 24)
   30615      400786 :          data_tmp = IAND(data_tmp, mask_left(0))
   30616      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30617      400786 :          ipack = ipack + 1
   30618      400786 :          packed_data(ipack) = pack_tmp
   30619      400786 :          data_tmp = full_data(idata)
   30620      400786 :          pack_tmp = ISHFT(data_tmp, 24)
   30621      400786 :          pack_tmp = ISHFT(pack_tmp, -24)
   30622      400786 :          idata = idata + 1
   30623      400786 :          data_tmp = full_data(idata)
   30624      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30625      400786 :          data_tmp = IAND(data_tmp, mask_left(24))
   30626      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30627      400786 :          ipack = ipack + 1
   30628      400786 :          packed_data(ipack) = pack_tmp
   30629      400786 :          data_tmp = full_data(idata)
   30630      400786 :          pack_tmp = ISHFT(data_tmp, 48)
   30631      400786 :          pack_tmp = ISHFT(pack_tmp, -40)
   30632      400786 :          idata = idata + 1
   30633      400786 :          data_tmp = full_data(idata)
   30634      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30635      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30636      400786 :          pack_tmp = ISHFT(pack_tmp, -8)
   30637      400786 :          idata = idata + 1
   30638      400786 :          data_tmp = full_data(idata)
   30639      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30640      400786 :          data_tmp = IAND(data_tmp, mask_left(8))
   30641      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30642      400786 :          ipack = ipack + 1
   30643      400786 :          packed_data(ipack) = pack_tmp
   30644      400786 :          data_tmp = full_data(idata)
   30645      400786 :          pack_tmp = ISHFT(data_tmp, 32)
   30646      400786 :          pack_tmp = ISHFT(pack_tmp, -32)
   30647      400786 :          idata = idata + 1
   30648      400786 :          data_tmp = full_data(idata)
   30649      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30650      400786 :          data_tmp = IAND(data_tmp, mask_left(32))
   30651      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30652      400786 :          ipack = ipack + 1
   30653      400786 :          packed_data(ipack) = pack_tmp
   30654      400786 :          data_tmp = full_data(idata)
   30655      400786 :          pack_tmp = ISHFT(data_tmp, 56)
   30656      400786 :          pack_tmp = ISHFT(pack_tmp, -40)
   30657      400786 :          idata = idata + 1
   30658      400786 :          data_tmp = full_data(idata)
   30659      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30660      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30661      400786 :          pack_tmp = ISHFT(pack_tmp, -16)
   30662      400786 :          idata = idata + 1
   30663      400786 :          data_tmp = full_data(idata)
   30664      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30665      400786 :          data_tmp = IAND(data_tmp, mask_left(16))
   30666      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30667      400786 :          ipack = ipack + 1
   30668      400786 :          packed_data(ipack) = pack_tmp
   30669      400786 :          data_tmp = full_data(idata)
   30670      400786 :          pack_tmp = ISHFT(data_tmp, 40)
   30671      400786 :          pack_tmp = ISHFT(pack_tmp, -40)
   30672      400786 :          idata = idata + 1
   30673      400786 :          data_tmp = full_data(idata)
   30674      400786 :          data_tmp = ISHFT(data_tmp, 24)
   30675      400786 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30676             :          pack_tmp = ISHFT(pack_tmp, 0)
   30677      400786 :          pack_tmp = ISHFT(pack_tmp, 0)
   30678      400786 :          ipack = ipack + 1
   30679      400829 :          packed_data(ipack) = pack_tmp
   30680             :       END DO
   30681       26693 :       IF (Ndata_rep < Ndata) THEN
   30682        3068 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   30683             :       END IF
   30684       26693 :    END SUBROUTINE ints2bits_40
   30685             : 
   30686             : ! **************************************************************************************************
   30687             : !> \brief ...
   30688             : !> \param Ndata ...
   30689             : !> \param packed_data ...
   30690             : !> \param full_data ...
   30691             : ! **************************************************************************************************
   30692      125185 :    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      125185 :       ipack = 0
   30703      125185 :       idata = 0
   30704      125185 :       pack_tmp = 0
   30705      125185 :       Ndata_rep = (Ndata/64)*64
   30706      125185 :       DO kdata = 1, Ndata_rep, 64
   30707     1785468 :          idata = idata + 1
   30708     1785468 :          data_tmp = ISHFT(pack_tmp, 40)
   30709     1785468 :          ipack = ipack + 1
   30710     1785468 :          pack_tmp = packed_data(ipack)
   30711     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30712     1785468 :          pack_tmp = ISHFT(pack_tmp, -40)
   30713     1785468 :          idata = idata + 1
   30714     1785468 :          data_tmp = ISHFT(pack_tmp, 16)
   30715     1785468 :          ipack = ipack + 1
   30716     1785468 :          pack_tmp = packed_data(ipack)
   30717     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30718     1785468 :          pack_tmp = ISHFT(pack_tmp, -16)
   30719     1785468 :          idata = idata + 1
   30720     1785468 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30721     1785468 :          full_data(idata) = data_tmp
   30722     1785468 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30723     1785468 :          idata = idata + 1
   30724     1785468 :          data_tmp = ISHFT(pack_tmp, 32)
   30725     1785468 :          ipack = ipack + 1
   30726     1785468 :          pack_tmp = packed_data(ipack)
   30727     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30728     1785468 :          pack_tmp = ISHFT(pack_tmp, -32)
   30729     1785468 :          idata = idata + 1
   30730     1785468 :          data_tmp = ISHFT(pack_tmp, 8)
   30731     1785468 :          ipack = ipack + 1
   30732     1785468 :          pack_tmp = packed_data(ipack)
   30733     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30734     1785468 :          pack_tmp = ISHFT(pack_tmp, -8)
   30735     1785468 :          idata = idata + 1
   30736     1785468 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30737     1785468 :          full_data(idata) = data_tmp
   30738     1785468 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30739     1785468 :          idata = idata + 1
   30740     1785468 :          data_tmp = ISHFT(pack_tmp, 24)
   30741     1785468 :          ipack = ipack + 1
   30742     1785468 :          pack_tmp = packed_data(ipack)
   30743     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30744     1785468 :          pack_tmp = ISHFT(pack_tmp, -24)
   30745     1785468 :          idata = idata + 1
   30746     1785468 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30747     1785468 :          full_data(idata) = data_tmp
   30748     1785468 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30749     1785468 :          idata = idata + 1
   30750     1785468 :          data_tmp = ISHFT(pack_tmp, 40)
   30751     1785468 :          ipack = ipack + 1
   30752     1785468 :          pack_tmp = packed_data(ipack)
   30753     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30754     1785468 :          pack_tmp = ISHFT(pack_tmp, -40)
   30755     1785468 :          idata = idata + 1
   30756     1785468 :          data_tmp = ISHFT(pack_tmp, 16)
   30757     1785468 :          ipack = ipack + 1
   30758     1785468 :          pack_tmp = packed_data(ipack)
   30759     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30760     1785468 :          pack_tmp = ISHFT(pack_tmp, -16)
   30761     1785468 :          idata = idata + 1
   30762     1785468 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30763     1785468 :          full_data(idata) = data_tmp
   30764     1785468 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30765     1785468 :          idata = idata + 1
   30766     1785468 :          data_tmp = ISHFT(pack_tmp, 32)
   30767     1785468 :          ipack = ipack + 1
   30768     1785468 :          pack_tmp = packed_data(ipack)
   30769     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30770     1785468 :          pack_tmp = ISHFT(pack_tmp, -32)
   30771     1785468 :          idata = idata + 1
   30772     1785468 :          data_tmp = ISHFT(pack_tmp, 8)
   30773     1785468 :          ipack = ipack + 1
   30774     1785468 :          pack_tmp = packed_data(ipack)
   30775     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30776     1785468 :          pack_tmp = ISHFT(pack_tmp, -8)
   30777     1785468 :          idata = idata + 1
   30778     1785468 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30779     1785468 :          full_data(idata) = data_tmp
   30780     1785468 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30781     1785468 :          idata = idata + 1
   30782     1785468 :          data_tmp = ISHFT(pack_tmp, 24)
   30783     1785468 :          ipack = ipack + 1
   30784     1785468 :          pack_tmp = packed_data(ipack)
   30785     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30786     1785468 :          pack_tmp = ISHFT(pack_tmp, -24)
   30787     1785468 :          idata = idata + 1
   30788     1785468 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30789     1785468 :          full_data(idata) = data_tmp
   30790     1785468 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30791     1785468 :          idata = idata + 1
   30792     1785468 :          data_tmp = ISHFT(pack_tmp, 40)
   30793     1785468 :          ipack = ipack + 1
   30794     1785468 :          pack_tmp = packed_data(ipack)
   30795     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30796     1785468 :          pack_tmp = ISHFT(pack_tmp, -40)
   30797     1785468 :          idata = idata + 1
   30798     1785468 :          data_tmp = ISHFT(pack_tmp, 16)
   30799     1785468 :          ipack = ipack + 1
   30800     1785468 :          pack_tmp = packed_data(ipack)
   30801     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30802     1785468 :          pack_tmp = ISHFT(pack_tmp, -16)
   30803     1785468 :          idata = idata + 1
   30804     1785468 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30805     1785468 :          full_data(idata) = data_tmp
   30806     1785468 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30807     1785468 :          idata = idata + 1
   30808     1785468 :          data_tmp = ISHFT(pack_tmp, 32)
   30809     1785468 :          ipack = ipack + 1
   30810     1785468 :          pack_tmp = packed_data(ipack)
   30811     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30812     1785468 :          pack_tmp = ISHFT(pack_tmp, -32)
   30813     1785468 :          idata = idata + 1
   30814     1785468 :          data_tmp = ISHFT(pack_tmp, 8)
   30815     1785468 :          ipack = ipack + 1
   30816     1785468 :          pack_tmp = packed_data(ipack)
   30817     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30818     1785468 :          pack_tmp = ISHFT(pack_tmp, -8)
   30819     1785468 :          idata = idata + 1
   30820     1785468 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30821     1785468 :          full_data(idata) = data_tmp
   30822     1785468 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30823     1785468 :          idata = idata + 1
   30824     1785468 :          data_tmp = ISHFT(pack_tmp, 24)
   30825     1785468 :          ipack = ipack + 1
   30826     1785468 :          pack_tmp = packed_data(ipack)
   30827     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30828     1785468 :          pack_tmp = ISHFT(pack_tmp, -24)
   30829     1785468 :          idata = idata + 1
   30830     1785468 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30831     1785468 :          full_data(idata) = data_tmp
   30832     1785468 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30833     1785468 :          idata = idata + 1
   30834     1785468 :          data_tmp = ISHFT(pack_tmp, 40)
   30835     1785468 :          ipack = ipack + 1
   30836     1785468 :          pack_tmp = packed_data(ipack)
   30837     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30838     1785468 :          pack_tmp = ISHFT(pack_tmp, -40)
   30839     1785468 :          idata = idata + 1
   30840     1785468 :          data_tmp = ISHFT(pack_tmp, 16)
   30841     1785468 :          ipack = ipack + 1
   30842     1785468 :          pack_tmp = packed_data(ipack)
   30843     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30844     1785468 :          pack_tmp = ISHFT(pack_tmp, -16)
   30845     1785468 :          idata = idata + 1
   30846     1785468 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30847     1785468 :          full_data(idata) = data_tmp
   30848     1785468 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30849     1785468 :          idata = idata + 1
   30850     1785468 :          data_tmp = ISHFT(pack_tmp, 32)
   30851     1785468 :          ipack = ipack + 1
   30852     1785468 :          pack_tmp = packed_data(ipack)
   30853     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30854     1785468 :          pack_tmp = ISHFT(pack_tmp, -32)
   30855     1785468 :          idata = idata + 1
   30856     1785468 :          data_tmp = ISHFT(pack_tmp, 8)
   30857     1785468 :          ipack = ipack + 1
   30858     1785468 :          pack_tmp = packed_data(ipack)
   30859     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30860     1785468 :          pack_tmp = ISHFT(pack_tmp, -8)
   30861     1785468 :          idata = idata + 1
   30862     1785468 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30863     1785468 :          full_data(idata) = data_tmp
   30864     1785468 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30865     1785468 :          idata = idata + 1
   30866     1785468 :          data_tmp = ISHFT(pack_tmp, 24)
   30867     1785468 :          ipack = ipack + 1
   30868     1785468 :          pack_tmp = packed_data(ipack)
   30869     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30870     1785468 :          pack_tmp = ISHFT(pack_tmp, -24)
   30871     1785468 :          idata = idata + 1
   30872     1785468 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30873     1785468 :          full_data(idata) = data_tmp
   30874     1785468 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30875     1785468 :          idata = idata + 1
   30876     1785468 :          data_tmp = ISHFT(pack_tmp, 40)
   30877     1785468 :          ipack = ipack + 1
   30878     1785468 :          pack_tmp = packed_data(ipack)
   30879     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30880     1785468 :          pack_tmp = ISHFT(pack_tmp, -40)
   30881     1785468 :          idata = idata + 1
   30882     1785468 :          data_tmp = ISHFT(pack_tmp, 16)
   30883     1785468 :          ipack = ipack + 1
   30884     1785468 :          pack_tmp = packed_data(ipack)
   30885     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30886     1785468 :          pack_tmp = ISHFT(pack_tmp, -16)
   30887     1785468 :          idata = idata + 1
   30888     1785468 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30889     1785468 :          full_data(idata) = data_tmp
   30890     1785468 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30891     1785468 :          idata = idata + 1
   30892     1785468 :          data_tmp = ISHFT(pack_tmp, 32)
   30893     1785468 :          ipack = ipack + 1
   30894     1785468 :          pack_tmp = packed_data(ipack)
   30895     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30896     1785468 :          pack_tmp = ISHFT(pack_tmp, -32)
   30897     1785468 :          idata = idata + 1
   30898     1785468 :          data_tmp = ISHFT(pack_tmp, 8)
   30899     1785468 :          ipack = ipack + 1
   30900     1785468 :          pack_tmp = packed_data(ipack)
   30901     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30902     1785468 :          pack_tmp = ISHFT(pack_tmp, -8)
   30903     1785468 :          idata = idata + 1
   30904     1785468 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30905     1785468 :          full_data(idata) = data_tmp
   30906     1785468 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30907     1785468 :          idata = idata + 1
   30908     1785468 :          data_tmp = ISHFT(pack_tmp, 24)
   30909     1785468 :          ipack = ipack + 1
   30910     1785468 :          pack_tmp = packed_data(ipack)
   30911     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30912     1785468 :          pack_tmp = ISHFT(pack_tmp, -24)
   30913     1785468 :          idata = idata + 1
   30914     1785468 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30915     1785468 :          full_data(idata) = data_tmp
   30916     1785468 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30917     1785468 :          idata = idata + 1
   30918     1785468 :          data_tmp = ISHFT(pack_tmp, 40)
   30919     1785468 :          ipack = ipack + 1
   30920     1785468 :          pack_tmp = packed_data(ipack)
   30921     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30922     1785468 :          pack_tmp = ISHFT(pack_tmp, -40)
   30923     1785468 :          idata = idata + 1
   30924     1785468 :          data_tmp = ISHFT(pack_tmp, 16)
   30925     1785468 :          ipack = ipack + 1
   30926     1785468 :          pack_tmp = packed_data(ipack)
   30927     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30928     1785468 :          pack_tmp = ISHFT(pack_tmp, -16)
   30929     1785468 :          idata = idata + 1
   30930     1785468 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30931     1785468 :          full_data(idata) = data_tmp
   30932     1785468 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30933     1785468 :          idata = idata + 1
   30934     1785468 :          data_tmp = ISHFT(pack_tmp, 32)
   30935     1785468 :          ipack = ipack + 1
   30936     1785468 :          pack_tmp = packed_data(ipack)
   30937     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30938     1785468 :          pack_tmp = ISHFT(pack_tmp, -32)
   30939     1785468 :          idata = idata + 1
   30940     1785468 :          data_tmp = ISHFT(pack_tmp, 8)
   30941     1785468 :          ipack = ipack + 1
   30942     1785468 :          pack_tmp = packed_data(ipack)
   30943     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30944     1785468 :          pack_tmp = ISHFT(pack_tmp, -8)
   30945     1785468 :          idata = idata + 1
   30946     1785468 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30947     1785468 :          full_data(idata) = data_tmp
   30948     1785468 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30949     1785468 :          idata = idata + 1
   30950     1785468 :          data_tmp = ISHFT(pack_tmp, 24)
   30951     1785468 :          ipack = ipack + 1
   30952     1785468 :          pack_tmp = packed_data(ipack)
   30953     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30954     1785468 :          pack_tmp = ISHFT(pack_tmp, -24)
   30955     1785468 :          idata = idata + 1
   30956     1785468 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30957     1785468 :          full_data(idata) = data_tmp
   30958     1785468 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30959     1785468 :          idata = idata + 1
   30960     1785468 :          data_tmp = ISHFT(pack_tmp, 40)
   30961     1785468 :          ipack = ipack + 1
   30962     1785468 :          pack_tmp = packed_data(ipack)
   30963     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30964     1785468 :          pack_tmp = ISHFT(pack_tmp, -40)
   30965     1785468 :          idata = idata + 1
   30966     1785468 :          data_tmp = ISHFT(pack_tmp, 16)
   30967     1785468 :          ipack = ipack + 1
   30968     1785468 :          pack_tmp = packed_data(ipack)
   30969     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30970     1785468 :          pack_tmp = ISHFT(pack_tmp, -16)
   30971     1785468 :          idata = idata + 1
   30972     1785468 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30973     1785468 :          full_data(idata) = data_tmp
   30974     1785468 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30975     1785468 :          idata = idata + 1
   30976     1785468 :          data_tmp = ISHFT(pack_tmp, 32)
   30977     1785468 :          ipack = ipack + 1
   30978     1785468 :          pack_tmp = packed_data(ipack)
   30979     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30980     1785468 :          pack_tmp = ISHFT(pack_tmp, -32)
   30981     1785468 :          idata = idata + 1
   30982     1785468 :          data_tmp = ISHFT(pack_tmp, 8)
   30983     1785468 :          ipack = ipack + 1
   30984     1785468 :          pack_tmp = packed_data(ipack)
   30985     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30986     1785468 :          pack_tmp = ISHFT(pack_tmp, -8)
   30987     1785468 :          idata = idata + 1
   30988     1785468 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30989     1785468 :          full_data(idata) = data_tmp
   30990     1785468 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30991     1785468 :          idata = idata + 1
   30992     1785468 :          data_tmp = ISHFT(pack_tmp, 24)
   30993     1785468 :          ipack = ipack + 1
   30994     1785468 :          pack_tmp = packed_data(ipack)
   30995     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30996     1785468 :          pack_tmp = ISHFT(pack_tmp, -24)
   30997     1785468 :          idata = idata + 1
   30998     1785468 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30999     1785468 :          full_data(idata) = data_tmp
   31000     1785468 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31001     1785468 :          idata = idata + 1
   31002     1785468 :          data_tmp = ISHFT(pack_tmp, 40)
   31003     1785468 :          ipack = ipack + 1
   31004     1785468 :          pack_tmp = packed_data(ipack)
   31005     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   31006     1785468 :          pack_tmp = ISHFT(pack_tmp, -40)
   31007     1785468 :          idata = idata + 1
   31008     1785468 :          data_tmp = ISHFT(pack_tmp, 16)
   31009     1785468 :          ipack = ipack + 1
   31010     1785468 :          pack_tmp = packed_data(ipack)
   31011     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   31012     1785468 :          pack_tmp = ISHFT(pack_tmp, -16)
   31013     1785468 :          idata = idata + 1
   31014     1785468 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31015     1785468 :          full_data(idata) = data_tmp
   31016     1785468 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31017     1785468 :          idata = idata + 1
   31018     1785468 :          data_tmp = ISHFT(pack_tmp, 32)
   31019     1785468 :          ipack = ipack + 1
   31020     1785468 :          pack_tmp = packed_data(ipack)
   31021     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   31022     1785468 :          pack_tmp = ISHFT(pack_tmp, -32)
   31023     1785468 :          idata = idata + 1
   31024     1785468 :          data_tmp = ISHFT(pack_tmp, 8)
   31025     1785468 :          ipack = ipack + 1
   31026     1785468 :          pack_tmp = packed_data(ipack)
   31027     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   31028     1785468 :          pack_tmp = ISHFT(pack_tmp, -8)
   31029     1785468 :          idata = idata + 1
   31030     1785468 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31031     1785468 :          full_data(idata) = data_tmp
   31032     1785468 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31033     1785468 :          idata = idata + 1
   31034     1785468 :          data_tmp = ISHFT(pack_tmp, 24)
   31035     1785468 :          ipack = ipack + 1
   31036     1785468 :          pack_tmp = packed_data(ipack)
   31037     1785468 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   31038     1785468 :          pack_tmp = ISHFT(pack_tmp, -24)
   31039     1785468 :          idata = idata + 1
   31040     1785468 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31041     1785468 :          full_data(idata) = data_tmp
   31042     1785788 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31043             :       END DO
   31044      125185 :       IF (Ndata_rep < Ndata) THEN
   31045       25448 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   31046             :       END IF
   31047      125185 :    END SUBROUTINE bits2ints_40
   31048             : 
   31049             : ! **************************************************************************************************
   31050             : !> \brief ...
   31051             : !> \param Ndata ...
   31052             : !> \param packed_data ...
   31053             : !> \param full_data ...
   31054             : ! **************************************************************************************************
   31055       25907 :    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       25907 :       idata = 0
   31066       25907 :       ipack = 0
   31067       25907 :       Ndata_rep = (Ndata/64)*64
   31068       25907 :       DO kdata = 1, Ndata_rep, 64
   31069      393499 :          pack_tmp = 0
   31070      393499 :          idata = idata + 1
   31071      393499 :          data_tmp = full_data(idata)
   31072      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31073      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31074      393499 :          pack_tmp = ISHFT(pack_tmp, -23)
   31075      393499 :          idata = idata + 1
   31076      393499 :          data_tmp = full_data(idata)
   31077      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31078      393499 :          data_tmp = IAND(data_tmp, mask_left(23))
   31079      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31080      393499 :          ipack = ipack + 1
   31081      393499 :          packed_data(ipack) = pack_tmp
   31082      393499 :          data_tmp = full_data(idata)
   31083      393499 :          pack_tmp = ISHFT(data_tmp, 46)
   31084      393499 :          pack_tmp = ISHFT(pack_tmp, -41)
   31085      393499 :          idata = idata + 1
   31086      393499 :          data_tmp = full_data(idata)
   31087      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31088      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31089      393499 :          pack_tmp = ISHFT(pack_tmp, -5)
   31090      393499 :          idata = idata + 1
   31091      393499 :          data_tmp = full_data(idata)
   31092      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31093      393499 :          data_tmp = IAND(data_tmp, mask_left(5))
   31094      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31095      393499 :          ipack = ipack + 1
   31096      393499 :          packed_data(ipack) = pack_tmp
   31097      393499 :          data_tmp = full_data(idata)
   31098      393499 :          pack_tmp = ISHFT(data_tmp, 28)
   31099      393499 :          pack_tmp = ISHFT(pack_tmp, -28)
   31100      393499 :          idata = idata + 1
   31101      393499 :          data_tmp = full_data(idata)
   31102      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31103      393499 :          data_tmp = IAND(data_tmp, mask_left(28))
   31104      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31105      393499 :          ipack = ipack + 1
   31106      393499 :          packed_data(ipack) = pack_tmp
   31107      393499 :          data_tmp = full_data(idata)
   31108      393499 :          pack_tmp = ISHFT(data_tmp, 51)
   31109      393499 :          pack_tmp = ISHFT(pack_tmp, -41)
   31110      393499 :          idata = idata + 1
   31111      393499 :          data_tmp = full_data(idata)
   31112      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31113      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31114      393499 :          pack_tmp = ISHFT(pack_tmp, -10)
   31115      393499 :          idata = idata + 1
   31116      393499 :          data_tmp = full_data(idata)
   31117      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31118      393499 :          data_tmp = IAND(data_tmp, mask_left(10))
   31119      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31120      393499 :          ipack = ipack + 1
   31121      393499 :          packed_data(ipack) = pack_tmp
   31122      393499 :          data_tmp = full_data(idata)
   31123      393499 :          pack_tmp = ISHFT(data_tmp, 33)
   31124      393499 :          pack_tmp = ISHFT(pack_tmp, -33)
   31125      393499 :          idata = idata + 1
   31126      393499 :          data_tmp = full_data(idata)
   31127      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31128      393499 :          data_tmp = IAND(data_tmp, mask_left(33))
   31129      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31130      393499 :          ipack = ipack + 1
   31131      393499 :          packed_data(ipack) = pack_tmp
   31132      393499 :          data_tmp = full_data(idata)
   31133      393499 :          pack_tmp = ISHFT(data_tmp, 56)
   31134      393499 :          pack_tmp = ISHFT(pack_tmp, -41)
   31135      393499 :          idata = idata + 1
   31136      393499 :          data_tmp = full_data(idata)
   31137      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31138      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31139      393499 :          pack_tmp = ISHFT(pack_tmp, -15)
   31140      393499 :          idata = idata + 1
   31141      393499 :          data_tmp = full_data(idata)
   31142      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31143      393499 :          data_tmp = IAND(data_tmp, mask_left(15))
   31144      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31145      393499 :          ipack = ipack + 1
   31146      393499 :          packed_data(ipack) = pack_tmp
   31147      393499 :          data_tmp = full_data(idata)
   31148      393499 :          pack_tmp = ISHFT(data_tmp, 38)
   31149      393499 :          pack_tmp = ISHFT(pack_tmp, -38)
   31150      393499 :          idata = idata + 1
   31151      393499 :          data_tmp = full_data(idata)
   31152      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31153      393499 :          data_tmp = IAND(data_tmp, mask_left(38))
   31154      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31155      393499 :          ipack = ipack + 1
   31156      393499 :          packed_data(ipack) = pack_tmp
   31157      393499 :          data_tmp = full_data(idata)
   31158      393499 :          pack_tmp = ISHFT(data_tmp, 61)
   31159      393499 :          pack_tmp = ISHFT(pack_tmp, -41)
   31160      393499 :          idata = idata + 1
   31161      393499 :          data_tmp = full_data(idata)
   31162      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31163      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31164      393499 :          pack_tmp = ISHFT(pack_tmp, -20)
   31165      393499 :          idata = idata + 1
   31166      393499 :          data_tmp = full_data(idata)
   31167      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31168      393499 :          data_tmp = IAND(data_tmp, mask_left(20))
   31169      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31170      393499 :          ipack = ipack + 1
   31171      393499 :          packed_data(ipack) = pack_tmp
   31172      393499 :          data_tmp = full_data(idata)
   31173      393499 :          pack_tmp = ISHFT(data_tmp, 43)
   31174      393499 :          pack_tmp = ISHFT(pack_tmp, -41)
   31175      393499 :          idata = idata + 1
   31176      393499 :          data_tmp = full_data(idata)
   31177      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31178      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31179      393499 :          pack_tmp = ISHFT(pack_tmp, -2)
   31180      393499 :          idata = idata + 1
   31181      393499 :          data_tmp = full_data(idata)
   31182      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31183      393499 :          data_tmp = IAND(data_tmp, mask_left(2))
   31184      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31185      393499 :          ipack = ipack + 1
   31186      393499 :          packed_data(ipack) = pack_tmp
   31187      393499 :          data_tmp = full_data(idata)
   31188      393499 :          pack_tmp = ISHFT(data_tmp, 25)
   31189      393499 :          pack_tmp = ISHFT(pack_tmp, -25)
   31190      393499 :          idata = idata + 1
   31191      393499 :          data_tmp = full_data(idata)
   31192      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31193      393499 :          data_tmp = IAND(data_tmp, mask_left(25))
   31194      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31195      393499 :          ipack = ipack + 1
   31196      393499 :          packed_data(ipack) = pack_tmp
   31197      393499 :          data_tmp = full_data(idata)
   31198      393499 :          pack_tmp = ISHFT(data_tmp, 48)
   31199      393499 :          pack_tmp = ISHFT(pack_tmp, -41)
   31200      393499 :          idata = idata + 1
   31201      393499 :          data_tmp = full_data(idata)
   31202      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31203      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31204      393499 :          pack_tmp = ISHFT(pack_tmp, -7)
   31205      393499 :          idata = idata + 1
   31206      393499 :          data_tmp = full_data(idata)
   31207      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31208      393499 :          data_tmp = IAND(data_tmp, mask_left(7))
   31209      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31210      393499 :          ipack = ipack + 1
   31211      393499 :          packed_data(ipack) = pack_tmp
   31212      393499 :          data_tmp = full_data(idata)
   31213      393499 :          pack_tmp = ISHFT(data_tmp, 30)
   31214      393499 :          pack_tmp = ISHFT(pack_tmp, -30)
   31215      393499 :          idata = idata + 1
   31216      393499 :          data_tmp = full_data(idata)
   31217      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31218      393499 :          data_tmp = IAND(data_tmp, mask_left(30))
   31219      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31220      393499 :          ipack = ipack + 1
   31221      393499 :          packed_data(ipack) = pack_tmp
   31222      393499 :          data_tmp = full_data(idata)
   31223      393499 :          pack_tmp = ISHFT(data_tmp, 53)
   31224      393499 :          pack_tmp = ISHFT(pack_tmp, -41)
   31225      393499 :          idata = idata + 1
   31226      393499 :          data_tmp = full_data(idata)
   31227      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31228      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31229      393499 :          pack_tmp = ISHFT(pack_tmp, -12)
   31230      393499 :          idata = idata + 1
   31231      393499 :          data_tmp = full_data(idata)
   31232      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31233      393499 :          data_tmp = IAND(data_tmp, mask_left(12))
   31234      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31235      393499 :          ipack = ipack + 1
   31236      393499 :          packed_data(ipack) = pack_tmp
   31237      393499 :          data_tmp = full_data(idata)
   31238      393499 :          pack_tmp = ISHFT(data_tmp, 35)
   31239      393499 :          pack_tmp = ISHFT(pack_tmp, -35)
   31240      393499 :          idata = idata + 1
   31241      393499 :          data_tmp = full_data(idata)
   31242      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31243      393499 :          data_tmp = IAND(data_tmp, mask_left(35))
   31244      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31245      393499 :          ipack = ipack + 1
   31246      393499 :          packed_data(ipack) = pack_tmp
   31247      393499 :          data_tmp = full_data(idata)
   31248      393499 :          pack_tmp = ISHFT(data_tmp, 58)
   31249      393499 :          pack_tmp = ISHFT(pack_tmp, -41)
   31250      393499 :          idata = idata + 1
   31251      393499 :          data_tmp = full_data(idata)
   31252      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31253      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31254      393499 :          pack_tmp = ISHFT(pack_tmp, -17)
   31255      393499 :          idata = idata + 1
   31256      393499 :          data_tmp = full_data(idata)
   31257      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31258      393499 :          data_tmp = IAND(data_tmp, mask_left(17))
   31259      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31260      393499 :          ipack = ipack + 1
   31261      393499 :          packed_data(ipack) = pack_tmp
   31262      393499 :          data_tmp = full_data(idata)
   31263      393499 :          pack_tmp = ISHFT(data_tmp, 40)
   31264      393499 :          pack_tmp = ISHFT(pack_tmp, -40)
   31265      393499 :          idata = idata + 1
   31266      393499 :          data_tmp = full_data(idata)
   31267      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31268      393499 :          data_tmp = IAND(data_tmp, mask_left(40))
   31269      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31270      393499 :          ipack = ipack + 1
   31271      393499 :          packed_data(ipack) = pack_tmp
   31272      393499 :          data_tmp = full_data(idata)
   31273      393499 :          pack_tmp = ISHFT(data_tmp, 63)
   31274      393499 :          pack_tmp = ISHFT(pack_tmp, -41)
   31275      393499 :          idata = idata + 1
   31276      393499 :          data_tmp = full_data(idata)
   31277      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31278      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31279      393499 :          pack_tmp = ISHFT(pack_tmp, -22)
   31280      393499 :          idata = idata + 1
   31281      393499 :          data_tmp = full_data(idata)
   31282      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31283      393499 :          data_tmp = IAND(data_tmp, mask_left(22))
   31284      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31285      393499 :          ipack = ipack + 1
   31286      393499 :          packed_data(ipack) = pack_tmp
   31287      393499 :          data_tmp = full_data(idata)
   31288      393499 :          pack_tmp = ISHFT(data_tmp, 45)
   31289      393499 :          pack_tmp = ISHFT(pack_tmp, -41)
   31290      393499 :          idata = idata + 1
   31291      393499 :          data_tmp = full_data(idata)
   31292      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31293      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31294      393499 :          pack_tmp = ISHFT(pack_tmp, -4)
   31295      393499 :          idata = idata + 1
   31296      393499 :          data_tmp = full_data(idata)
   31297      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31298      393499 :          data_tmp = IAND(data_tmp, mask_left(4))
   31299      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31300      393499 :          ipack = ipack + 1
   31301      393499 :          packed_data(ipack) = pack_tmp
   31302      393499 :          data_tmp = full_data(idata)
   31303      393499 :          pack_tmp = ISHFT(data_tmp, 27)
   31304      393499 :          pack_tmp = ISHFT(pack_tmp, -27)
   31305      393499 :          idata = idata + 1
   31306      393499 :          data_tmp = full_data(idata)
   31307      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31308      393499 :          data_tmp = IAND(data_tmp, mask_left(27))
   31309      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31310      393499 :          ipack = ipack + 1
   31311      393499 :          packed_data(ipack) = pack_tmp
   31312      393499 :          data_tmp = full_data(idata)
   31313      393499 :          pack_tmp = ISHFT(data_tmp, 50)
   31314      393499 :          pack_tmp = ISHFT(pack_tmp, -41)
   31315      393499 :          idata = idata + 1
   31316      393499 :          data_tmp = full_data(idata)
   31317      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31318      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31319      393499 :          pack_tmp = ISHFT(pack_tmp, -9)
   31320      393499 :          idata = idata + 1
   31321      393499 :          data_tmp = full_data(idata)
   31322      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31323      393499 :          data_tmp = IAND(data_tmp, mask_left(9))
   31324      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31325      393499 :          ipack = ipack + 1
   31326      393499 :          packed_data(ipack) = pack_tmp
   31327      393499 :          data_tmp = full_data(idata)
   31328      393499 :          pack_tmp = ISHFT(data_tmp, 32)
   31329      393499 :          pack_tmp = ISHFT(pack_tmp, -32)
   31330      393499 :          idata = idata + 1
   31331      393499 :          data_tmp = full_data(idata)
   31332      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31333      393499 :          data_tmp = IAND(data_tmp, mask_left(32))
   31334      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31335      393499 :          ipack = ipack + 1
   31336      393499 :          packed_data(ipack) = pack_tmp
   31337      393499 :          data_tmp = full_data(idata)
   31338      393499 :          pack_tmp = ISHFT(data_tmp, 55)
   31339      393499 :          pack_tmp = ISHFT(pack_tmp, -41)
   31340      393499 :          idata = idata + 1
   31341      393499 :          data_tmp = full_data(idata)
   31342      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31343      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31344      393499 :          pack_tmp = ISHFT(pack_tmp, -14)
   31345      393499 :          idata = idata + 1
   31346      393499 :          data_tmp = full_data(idata)
   31347      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31348      393499 :          data_tmp = IAND(data_tmp, mask_left(14))
   31349      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31350      393499 :          ipack = ipack + 1
   31351      393499 :          packed_data(ipack) = pack_tmp
   31352      393499 :          data_tmp = full_data(idata)
   31353      393499 :          pack_tmp = ISHFT(data_tmp, 37)
   31354      393499 :          pack_tmp = ISHFT(pack_tmp, -37)
   31355      393499 :          idata = idata + 1
   31356      393499 :          data_tmp = full_data(idata)
   31357      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31358      393499 :          data_tmp = IAND(data_tmp, mask_left(37))
   31359      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31360      393499 :          ipack = ipack + 1
   31361      393499 :          packed_data(ipack) = pack_tmp
   31362      393499 :          data_tmp = full_data(idata)
   31363      393499 :          pack_tmp = ISHFT(data_tmp, 60)
   31364      393499 :          pack_tmp = ISHFT(pack_tmp, -41)
   31365      393499 :          idata = idata + 1
   31366      393499 :          data_tmp = full_data(idata)
   31367      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31368      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31369      393499 :          pack_tmp = ISHFT(pack_tmp, -19)
   31370      393499 :          idata = idata + 1
   31371      393499 :          data_tmp = full_data(idata)
   31372      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31373      393499 :          data_tmp = IAND(data_tmp, mask_left(19))
   31374      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31375      393499 :          ipack = ipack + 1
   31376      393499 :          packed_data(ipack) = pack_tmp
   31377      393499 :          data_tmp = full_data(idata)
   31378      393499 :          pack_tmp = ISHFT(data_tmp, 42)
   31379      393499 :          pack_tmp = ISHFT(pack_tmp, -41)
   31380      393499 :          idata = idata + 1
   31381      393499 :          data_tmp = full_data(idata)
   31382      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31383      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31384      393499 :          pack_tmp = ISHFT(pack_tmp, -1)
   31385      393499 :          idata = idata + 1
   31386      393499 :          data_tmp = full_data(idata)
   31387      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31388      393499 :          data_tmp = IAND(data_tmp, mask_left(1))
   31389      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31390      393499 :          ipack = ipack + 1
   31391      393499 :          packed_data(ipack) = pack_tmp
   31392      393499 :          data_tmp = full_data(idata)
   31393      393499 :          pack_tmp = ISHFT(data_tmp, 24)
   31394      393499 :          pack_tmp = ISHFT(pack_tmp, -24)
   31395      393499 :          idata = idata + 1
   31396      393499 :          data_tmp = full_data(idata)
   31397      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31398      393499 :          data_tmp = IAND(data_tmp, mask_left(24))
   31399      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31400      393499 :          ipack = ipack + 1
   31401      393499 :          packed_data(ipack) = pack_tmp
   31402      393499 :          data_tmp = full_data(idata)
   31403      393499 :          pack_tmp = ISHFT(data_tmp, 47)
   31404      393499 :          pack_tmp = ISHFT(pack_tmp, -41)
   31405      393499 :          idata = idata + 1
   31406      393499 :          data_tmp = full_data(idata)
   31407      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31408      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31409      393499 :          pack_tmp = ISHFT(pack_tmp, -6)
   31410      393499 :          idata = idata + 1
   31411      393499 :          data_tmp = full_data(idata)
   31412      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31413      393499 :          data_tmp = IAND(data_tmp, mask_left(6))
   31414      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31415      393499 :          ipack = ipack + 1
   31416      393499 :          packed_data(ipack) = pack_tmp
   31417      393499 :          data_tmp = full_data(idata)
   31418      393499 :          pack_tmp = ISHFT(data_tmp, 29)
   31419      393499 :          pack_tmp = ISHFT(pack_tmp, -29)
   31420      393499 :          idata = idata + 1
   31421      393499 :          data_tmp = full_data(idata)
   31422      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31423      393499 :          data_tmp = IAND(data_tmp, mask_left(29))
   31424      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31425      393499 :          ipack = ipack + 1
   31426      393499 :          packed_data(ipack) = pack_tmp
   31427      393499 :          data_tmp = full_data(idata)
   31428      393499 :          pack_tmp = ISHFT(data_tmp, 52)
   31429      393499 :          pack_tmp = ISHFT(pack_tmp, -41)
   31430      393499 :          idata = idata + 1
   31431      393499 :          data_tmp = full_data(idata)
   31432      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31433      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31434      393499 :          pack_tmp = ISHFT(pack_tmp, -11)
   31435      393499 :          idata = idata + 1
   31436      393499 :          data_tmp = full_data(idata)
   31437      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31438      393499 :          data_tmp = IAND(data_tmp, mask_left(11))
   31439      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31440      393499 :          ipack = ipack + 1
   31441      393499 :          packed_data(ipack) = pack_tmp
   31442      393499 :          data_tmp = full_data(idata)
   31443      393499 :          pack_tmp = ISHFT(data_tmp, 34)
   31444      393499 :          pack_tmp = ISHFT(pack_tmp, -34)
   31445      393499 :          idata = idata + 1
   31446      393499 :          data_tmp = full_data(idata)
   31447      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31448      393499 :          data_tmp = IAND(data_tmp, mask_left(34))
   31449      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31450      393499 :          ipack = ipack + 1
   31451      393499 :          packed_data(ipack) = pack_tmp
   31452      393499 :          data_tmp = full_data(idata)
   31453      393499 :          pack_tmp = ISHFT(data_tmp, 57)
   31454      393499 :          pack_tmp = ISHFT(pack_tmp, -41)
   31455      393499 :          idata = idata + 1
   31456      393499 :          data_tmp = full_data(idata)
   31457      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31458      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31459      393499 :          pack_tmp = ISHFT(pack_tmp, -16)
   31460      393499 :          idata = idata + 1
   31461      393499 :          data_tmp = full_data(idata)
   31462      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31463      393499 :          data_tmp = IAND(data_tmp, mask_left(16))
   31464      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31465      393499 :          ipack = ipack + 1
   31466      393499 :          packed_data(ipack) = pack_tmp
   31467      393499 :          data_tmp = full_data(idata)
   31468      393499 :          pack_tmp = ISHFT(data_tmp, 39)
   31469      393499 :          pack_tmp = ISHFT(pack_tmp, -39)
   31470      393499 :          idata = idata + 1
   31471      393499 :          data_tmp = full_data(idata)
   31472      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31473      393499 :          data_tmp = IAND(data_tmp, mask_left(39))
   31474      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31475      393499 :          ipack = ipack + 1
   31476      393499 :          packed_data(ipack) = pack_tmp
   31477      393499 :          data_tmp = full_data(idata)
   31478      393499 :          pack_tmp = ISHFT(data_tmp, 62)
   31479      393499 :          pack_tmp = ISHFT(pack_tmp, -41)
   31480      393499 :          idata = idata + 1
   31481      393499 :          data_tmp = full_data(idata)
   31482      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31483      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31484      393499 :          pack_tmp = ISHFT(pack_tmp, -21)
   31485      393499 :          idata = idata + 1
   31486      393499 :          data_tmp = full_data(idata)
   31487      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31488      393499 :          data_tmp = IAND(data_tmp, mask_left(21))
   31489      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31490      393499 :          ipack = ipack + 1
   31491      393499 :          packed_data(ipack) = pack_tmp
   31492      393499 :          data_tmp = full_data(idata)
   31493      393499 :          pack_tmp = ISHFT(data_tmp, 44)
   31494      393499 :          pack_tmp = ISHFT(pack_tmp, -41)
   31495      393499 :          idata = idata + 1
   31496      393499 :          data_tmp = full_data(idata)
   31497      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31498      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31499      393499 :          pack_tmp = ISHFT(pack_tmp, -3)
   31500      393499 :          idata = idata + 1
   31501      393499 :          data_tmp = full_data(idata)
   31502      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31503      393499 :          data_tmp = IAND(data_tmp, mask_left(3))
   31504      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31505      393499 :          ipack = ipack + 1
   31506      393499 :          packed_data(ipack) = pack_tmp
   31507      393499 :          data_tmp = full_data(idata)
   31508      393499 :          pack_tmp = ISHFT(data_tmp, 26)
   31509      393499 :          pack_tmp = ISHFT(pack_tmp, -26)
   31510      393499 :          idata = idata + 1
   31511      393499 :          data_tmp = full_data(idata)
   31512      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31513      393499 :          data_tmp = IAND(data_tmp, mask_left(26))
   31514      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31515      393499 :          ipack = ipack + 1
   31516      393499 :          packed_data(ipack) = pack_tmp
   31517      393499 :          data_tmp = full_data(idata)
   31518      393499 :          pack_tmp = ISHFT(data_tmp, 49)
   31519      393499 :          pack_tmp = ISHFT(pack_tmp, -41)
   31520      393499 :          idata = idata + 1
   31521      393499 :          data_tmp = full_data(idata)
   31522      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31523      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31524      393499 :          pack_tmp = ISHFT(pack_tmp, -8)
   31525      393499 :          idata = idata + 1
   31526      393499 :          data_tmp = full_data(idata)
   31527      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31528      393499 :          data_tmp = IAND(data_tmp, mask_left(8))
   31529      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31530      393499 :          ipack = ipack + 1
   31531      393499 :          packed_data(ipack) = pack_tmp
   31532      393499 :          data_tmp = full_data(idata)
   31533      393499 :          pack_tmp = ISHFT(data_tmp, 31)
   31534      393499 :          pack_tmp = ISHFT(pack_tmp, -31)
   31535      393499 :          idata = idata + 1
   31536      393499 :          data_tmp = full_data(idata)
   31537      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31538      393499 :          data_tmp = IAND(data_tmp, mask_left(31))
   31539      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31540      393499 :          ipack = ipack + 1
   31541      393499 :          packed_data(ipack) = pack_tmp
   31542      393499 :          data_tmp = full_data(idata)
   31543      393499 :          pack_tmp = ISHFT(data_tmp, 54)
   31544      393499 :          pack_tmp = ISHFT(pack_tmp, -41)
   31545      393499 :          idata = idata + 1
   31546      393499 :          data_tmp = full_data(idata)
   31547      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31548      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31549      393499 :          pack_tmp = ISHFT(pack_tmp, -13)
   31550      393499 :          idata = idata + 1
   31551      393499 :          data_tmp = full_data(idata)
   31552      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31553      393499 :          data_tmp = IAND(data_tmp, mask_left(13))
   31554      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31555      393499 :          ipack = ipack + 1
   31556      393499 :          packed_data(ipack) = pack_tmp
   31557      393499 :          data_tmp = full_data(idata)
   31558      393499 :          pack_tmp = ISHFT(data_tmp, 36)
   31559      393499 :          pack_tmp = ISHFT(pack_tmp, -36)
   31560      393499 :          idata = idata + 1
   31561      393499 :          data_tmp = full_data(idata)
   31562      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31563      393499 :          data_tmp = IAND(data_tmp, mask_left(36))
   31564      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31565      393499 :          ipack = ipack + 1
   31566      393499 :          packed_data(ipack) = pack_tmp
   31567      393499 :          data_tmp = full_data(idata)
   31568      393499 :          pack_tmp = ISHFT(data_tmp, 59)
   31569      393499 :          pack_tmp = ISHFT(pack_tmp, -41)
   31570      393499 :          idata = idata + 1
   31571      393499 :          data_tmp = full_data(idata)
   31572      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31573      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31574      393499 :          pack_tmp = ISHFT(pack_tmp, -18)
   31575      393499 :          idata = idata + 1
   31576      393499 :          data_tmp = full_data(idata)
   31577      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31578      393499 :          data_tmp = IAND(data_tmp, mask_left(18))
   31579      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31580      393499 :          ipack = ipack + 1
   31581      393499 :          packed_data(ipack) = pack_tmp
   31582      393499 :          data_tmp = full_data(idata)
   31583      393499 :          pack_tmp = ISHFT(data_tmp, 41)
   31584      393499 :          pack_tmp = ISHFT(pack_tmp, -41)
   31585      393499 :          idata = idata + 1
   31586      393499 :          data_tmp = full_data(idata)
   31587      393499 :          data_tmp = ISHFT(data_tmp, 23)
   31588      393499 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31589             :          pack_tmp = ISHFT(pack_tmp, 0)
   31590      393499 :          pack_tmp = ISHFT(pack_tmp, 0)
   31591      393499 :          ipack = ipack + 1
   31592      393547 :          packed_data(ipack) = pack_tmp
   31593             :       END DO
   31594       25907 :       IF (Ndata_rep < Ndata) THEN
   31595        2442 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   31596             :       END IF
   31597       25907 :    END SUBROUTINE ints2bits_41
   31598             : 
   31599             : ! **************************************************************************************************
   31600             : !> \brief ...
   31601             : !> \param Ndata ...
   31602             : !> \param packed_data ...
   31603             : !> \param full_data ...
   31604             : ! **************************************************************************************************
   31605      125567 :    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      125567 :       ipack = 0
   31616      125567 :       idata = 0
   31617      125567 :       pack_tmp = 0
   31618      125567 :       Ndata_rep = (Ndata/64)*64
   31619      125567 :       DO kdata = 1, Ndata_rep, 64
   31620     1786723 :          idata = idata + 1
   31621     1786723 :          data_tmp = ISHFT(pack_tmp, 41)
   31622     1786723 :          ipack = ipack + 1
   31623     1786723 :          pack_tmp = packed_data(ipack)
   31624     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   31625     1786723 :          pack_tmp = ISHFT(pack_tmp, -41)
   31626     1786723 :          idata = idata + 1
   31627     1786723 :          data_tmp = ISHFT(pack_tmp, 18)
   31628     1786723 :          ipack = ipack + 1
   31629     1786723 :          pack_tmp = packed_data(ipack)
   31630     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   31631     1786723 :          pack_tmp = ISHFT(pack_tmp, -18)
   31632     1786723 :          idata = idata + 1
   31633     1786723 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31634     1786723 :          full_data(idata) = data_tmp
   31635     1786723 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31636     1786723 :          idata = idata + 1
   31637     1786723 :          data_tmp = ISHFT(pack_tmp, 36)
   31638     1786723 :          ipack = ipack + 1
   31639     1786723 :          pack_tmp = packed_data(ipack)
   31640     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   31641     1786723 :          pack_tmp = ISHFT(pack_tmp, -36)
   31642     1786723 :          idata = idata + 1
   31643     1786723 :          data_tmp = ISHFT(pack_tmp, 13)
   31644     1786723 :          ipack = ipack + 1
   31645     1786723 :          pack_tmp = packed_data(ipack)
   31646     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   31647     1786723 :          pack_tmp = ISHFT(pack_tmp, -13)
   31648     1786723 :          idata = idata + 1
   31649     1786723 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31650     1786723 :          full_data(idata) = data_tmp
   31651     1786723 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31652     1786723 :          idata = idata + 1
   31653     1786723 :          data_tmp = ISHFT(pack_tmp, 31)
   31654     1786723 :          ipack = ipack + 1
   31655     1786723 :          pack_tmp = packed_data(ipack)
   31656     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   31657     1786723 :          pack_tmp = ISHFT(pack_tmp, -31)
   31658     1786723 :          idata = idata + 1
   31659     1786723 :          data_tmp = ISHFT(pack_tmp, 8)
   31660     1786723 :          ipack = ipack + 1
   31661     1786723 :          pack_tmp = packed_data(ipack)
   31662     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   31663     1786723 :          pack_tmp = ISHFT(pack_tmp, -8)
   31664     1786723 :          idata = idata + 1
   31665     1786723 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31666     1786723 :          full_data(idata) = data_tmp
   31667     1786723 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31668     1786723 :          idata = idata + 1
   31669     1786723 :          data_tmp = ISHFT(pack_tmp, 26)
   31670     1786723 :          ipack = ipack + 1
   31671     1786723 :          pack_tmp = packed_data(ipack)
   31672     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   31673     1786723 :          pack_tmp = ISHFT(pack_tmp, -26)
   31674     1786723 :          idata = idata + 1
   31675     1786723 :          data_tmp = ISHFT(pack_tmp, 3)
   31676     1786723 :          ipack = ipack + 1
   31677     1786723 :          pack_tmp = packed_data(ipack)
   31678     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   31679     1786723 :          pack_tmp = ISHFT(pack_tmp, -3)
   31680     1786723 :          idata = idata + 1
   31681     1786723 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31682     1786723 :          full_data(idata) = data_tmp
   31683     1786723 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31684     1786723 :          idata = idata + 1
   31685     1786723 :          data_tmp = ISHFT(pack_tmp, 21)
   31686     1786723 :          ipack = ipack + 1
   31687     1786723 :          pack_tmp = packed_data(ipack)
   31688     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   31689     1786723 :          pack_tmp = ISHFT(pack_tmp, -21)
   31690     1786723 :          idata = idata + 1
   31691     1786723 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31692     1786723 :          full_data(idata) = data_tmp
   31693     1786723 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31694     1786723 :          idata = idata + 1
   31695     1786723 :          data_tmp = ISHFT(pack_tmp, 39)
   31696     1786723 :          ipack = ipack + 1
   31697     1786723 :          pack_tmp = packed_data(ipack)
   31698     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   31699     1786723 :          pack_tmp = ISHFT(pack_tmp, -39)
   31700     1786723 :          idata = idata + 1
   31701     1786723 :          data_tmp = ISHFT(pack_tmp, 16)
   31702     1786723 :          ipack = ipack + 1
   31703     1786723 :          pack_tmp = packed_data(ipack)
   31704     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   31705     1786723 :          pack_tmp = ISHFT(pack_tmp, -16)
   31706     1786723 :          idata = idata + 1
   31707     1786723 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31708     1786723 :          full_data(idata) = data_tmp
   31709     1786723 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31710     1786723 :          idata = idata + 1
   31711     1786723 :          data_tmp = ISHFT(pack_tmp, 34)
   31712     1786723 :          ipack = ipack + 1
   31713     1786723 :          pack_tmp = packed_data(ipack)
   31714     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   31715     1786723 :          pack_tmp = ISHFT(pack_tmp, -34)
   31716     1786723 :          idata = idata + 1
   31717     1786723 :          data_tmp = ISHFT(pack_tmp, 11)
   31718     1786723 :          ipack = ipack + 1
   31719     1786723 :          pack_tmp = packed_data(ipack)
   31720     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   31721     1786723 :          pack_tmp = ISHFT(pack_tmp, -11)
   31722     1786723 :          idata = idata + 1
   31723     1786723 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31724     1786723 :          full_data(idata) = data_tmp
   31725     1786723 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31726     1786723 :          idata = idata + 1
   31727     1786723 :          data_tmp = ISHFT(pack_tmp, 29)
   31728     1786723 :          ipack = ipack + 1
   31729     1786723 :          pack_tmp = packed_data(ipack)
   31730     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   31731     1786723 :          pack_tmp = ISHFT(pack_tmp, -29)
   31732     1786723 :          idata = idata + 1
   31733     1786723 :          data_tmp = ISHFT(pack_tmp, 6)
   31734     1786723 :          ipack = ipack + 1
   31735     1786723 :          pack_tmp = packed_data(ipack)
   31736     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   31737     1786723 :          pack_tmp = ISHFT(pack_tmp, -6)
   31738     1786723 :          idata = idata + 1
   31739     1786723 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31740     1786723 :          full_data(idata) = data_tmp
   31741     1786723 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31742     1786723 :          idata = idata + 1
   31743     1786723 :          data_tmp = ISHFT(pack_tmp, 24)
   31744     1786723 :          ipack = ipack + 1
   31745     1786723 :          pack_tmp = packed_data(ipack)
   31746     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   31747     1786723 :          pack_tmp = ISHFT(pack_tmp, -24)
   31748     1786723 :          idata = idata + 1
   31749     1786723 :          data_tmp = ISHFT(pack_tmp, 1)
   31750     1786723 :          ipack = ipack + 1
   31751     1786723 :          pack_tmp = packed_data(ipack)
   31752     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   31753     1786723 :          pack_tmp = ISHFT(pack_tmp, -1)
   31754     1786723 :          idata = idata + 1
   31755     1786723 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31756     1786723 :          full_data(idata) = data_tmp
   31757     1786723 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31758     1786723 :          idata = idata + 1
   31759     1786723 :          data_tmp = ISHFT(pack_tmp, 19)
   31760     1786723 :          ipack = ipack + 1
   31761     1786723 :          pack_tmp = packed_data(ipack)
   31762     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   31763     1786723 :          pack_tmp = ISHFT(pack_tmp, -19)
   31764     1786723 :          idata = idata + 1
   31765     1786723 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31766     1786723 :          full_data(idata) = data_tmp
   31767     1786723 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31768     1786723 :          idata = idata + 1
   31769     1786723 :          data_tmp = ISHFT(pack_tmp, 37)
   31770     1786723 :          ipack = ipack + 1
   31771     1786723 :          pack_tmp = packed_data(ipack)
   31772     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   31773     1786723 :          pack_tmp = ISHFT(pack_tmp, -37)
   31774     1786723 :          idata = idata + 1
   31775     1786723 :          data_tmp = ISHFT(pack_tmp, 14)
   31776     1786723 :          ipack = ipack + 1
   31777     1786723 :          pack_tmp = packed_data(ipack)
   31778     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   31779     1786723 :          pack_tmp = ISHFT(pack_tmp, -14)
   31780     1786723 :          idata = idata + 1
   31781     1786723 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31782     1786723 :          full_data(idata) = data_tmp
   31783     1786723 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31784     1786723 :          idata = idata + 1
   31785     1786723 :          data_tmp = ISHFT(pack_tmp, 32)
   31786     1786723 :          ipack = ipack + 1
   31787     1786723 :          pack_tmp = packed_data(ipack)
   31788     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   31789     1786723 :          pack_tmp = ISHFT(pack_tmp, -32)
   31790     1786723 :          idata = idata + 1
   31791     1786723 :          data_tmp = ISHFT(pack_tmp, 9)
   31792     1786723 :          ipack = ipack + 1
   31793     1786723 :          pack_tmp = packed_data(ipack)
   31794     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   31795     1786723 :          pack_tmp = ISHFT(pack_tmp, -9)
   31796     1786723 :          idata = idata + 1
   31797     1786723 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31798     1786723 :          full_data(idata) = data_tmp
   31799     1786723 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31800     1786723 :          idata = idata + 1
   31801     1786723 :          data_tmp = ISHFT(pack_tmp, 27)
   31802     1786723 :          ipack = ipack + 1
   31803     1786723 :          pack_tmp = packed_data(ipack)
   31804     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   31805     1786723 :          pack_tmp = ISHFT(pack_tmp, -27)
   31806     1786723 :          idata = idata + 1
   31807     1786723 :          data_tmp = ISHFT(pack_tmp, 4)
   31808     1786723 :          ipack = ipack + 1
   31809     1786723 :          pack_tmp = packed_data(ipack)
   31810     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   31811     1786723 :          pack_tmp = ISHFT(pack_tmp, -4)
   31812     1786723 :          idata = idata + 1
   31813     1786723 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31814     1786723 :          full_data(idata) = data_tmp
   31815     1786723 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31816     1786723 :          idata = idata + 1
   31817     1786723 :          data_tmp = ISHFT(pack_tmp, 22)
   31818     1786723 :          ipack = ipack + 1
   31819     1786723 :          pack_tmp = packed_data(ipack)
   31820     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   31821     1786723 :          pack_tmp = ISHFT(pack_tmp, -22)
   31822     1786723 :          idata = idata + 1
   31823     1786723 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31824     1786723 :          full_data(idata) = data_tmp
   31825     1786723 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31826     1786723 :          idata = idata + 1
   31827     1786723 :          data_tmp = ISHFT(pack_tmp, 40)
   31828     1786723 :          ipack = ipack + 1
   31829     1786723 :          pack_tmp = packed_data(ipack)
   31830     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   31831     1786723 :          pack_tmp = ISHFT(pack_tmp, -40)
   31832     1786723 :          idata = idata + 1
   31833     1786723 :          data_tmp = ISHFT(pack_tmp, 17)
   31834     1786723 :          ipack = ipack + 1
   31835     1786723 :          pack_tmp = packed_data(ipack)
   31836     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   31837     1786723 :          pack_tmp = ISHFT(pack_tmp, -17)
   31838     1786723 :          idata = idata + 1
   31839     1786723 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31840     1786723 :          full_data(idata) = data_tmp
   31841     1786723 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31842     1786723 :          idata = idata + 1
   31843     1786723 :          data_tmp = ISHFT(pack_tmp, 35)
   31844     1786723 :          ipack = ipack + 1
   31845     1786723 :          pack_tmp = packed_data(ipack)
   31846     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   31847     1786723 :          pack_tmp = ISHFT(pack_tmp, -35)
   31848     1786723 :          idata = idata + 1
   31849     1786723 :          data_tmp = ISHFT(pack_tmp, 12)
   31850     1786723 :          ipack = ipack + 1
   31851     1786723 :          pack_tmp = packed_data(ipack)
   31852     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   31853     1786723 :          pack_tmp = ISHFT(pack_tmp, -12)
   31854     1786723 :          idata = idata + 1
   31855     1786723 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31856     1786723 :          full_data(idata) = data_tmp
   31857     1786723 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31858     1786723 :          idata = idata + 1
   31859     1786723 :          data_tmp = ISHFT(pack_tmp, 30)
   31860     1786723 :          ipack = ipack + 1
   31861     1786723 :          pack_tmp = packed_data(ipack)
   31862     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   31863     1786723 :          pack_tmp = ISHFT(pack_tmp, -30)
   31864     1786723 :          idata = idata + 1
   31865     1786723 :          data_tmp = ISHFT(pack_tmp, 7)
   31866     1786723 :          ipack = ipack + 1
   31867     1786723 :          pack_tmp = packed_data(ipack)
   31868     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   31869     1786723 :          pack_tmp = ISHFT(pack_tmp, -7)
   31870     1786723 :          idata = idata + 1
   31871     1786723 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31872     1786723 :          full_data(idata) = data_tmp
   31873     1786723 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31874     1786723 :          idata = idata + 1
   31875     1786723 :          data_tmp = ISHFT(pack_tmp, 25)
   31876     1786723 :          ipack = ipack + 1
   31877     1786723 :          pack_tmp = packed_data(ipack)
   31878     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   31879     1786723 :          pack_tmp = ISHFT(pack_tmp, -25)
   31880     1786723 :          idata = idata + 1
   31881     1786723 :          data_tmp = ISHFT(pack_tmp, 2)
   31882     1786723 :          ipack = ipack + 1
   31883     1786723 :          pack_tmp = packed_data(ipack)
   31884     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   31885     1786723 :          pack_tmp = ISHFT(pack_tmp, -2)
   31886     1786723 :          idata = idata + 1
   31887     1786723 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31888     1786723 :          full_data(idata) = data_tmp
   31889     1786723 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31890     1786723 :          idata = idata + 1
   31891     1786723 :          data_tmp = ISHFT(pack_tmp, 20)
   31892     1786723 :          ipack = ipack + 1
   31893     1786723 :          pack_tmp = packed_data(ipack)
   31894     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   31895     1786723 :          pack_tmp = ISHFT(pack_tmp, -20)
   31896     1786723 :          idata = idata + 1
   31897     1786723 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31898     1786723 :          full_data(idata) = data_tmp
   31899     1786723 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31900     1786723 :          idata = idata + 1
   31901     1786723 :          data_tmp = ISHFT(pack_tmp, 38)
   31902     1786723 :          ipack = ipack + 1
   31903     1786723 :          pack_tmp = packed_data(ipack)
   31904     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   31905     1786723 :          pack_tmp = ISHFT(pack_tmp, -38)
   31906     1786723 :          idata = idata + 1
   31907     1786723 :          data_tmp = ISHFT(pack_tmp, 15)
   31908     1786723 :          ipack = ipack + 1
   31909     1786723 :          pack_tmp = packed_data(ipack)
   31910     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   31911     1786723 :          pack_tmp = ISHFT(pack_tmp, -15)
   31912     1786723 :          idata = idata + 1
   31913     1786723 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31914     1786723 :          full_data(idata) = data_tmp
   31915     1786723 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31916     1786723 :          idata = idata + 1
   31917     1786723 :          data_tmp = ISHFT(pack_tmp, 33)
   31918     1786723 :          ipack = ipack + 1
   31919     1786723 :          pack_tmp = packed_data(ipack)
   31920     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   31921     1786723 :          pack_tmp = ISHFT(pack_tmp, -33)
   31922     1786723 :          idata = idata + 1
   31923     1786723 :          data_tmp = ISHFT(pack_tmp, 10)
   31924     1786723 :          ipack = ipack + 1
   31925     1786723 :          pack_tmp = packed_data(ipack)
   31926     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   31927     1786723 :          pack_tmp = ISHFT(pack_tmp, -10)
   31928     1786723 :          idata = idata + 1
   31929     1786723 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31930     1786723 :          full_data(idata) = data_tmp
   31931     1786723 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31932     1786723 :          idata = idata + 1
   31933     1786723 :          data_tmp = ISHFT(pack_tmp, 28)
   31934     1786723 :          ipack = ipack + 1
   31935     1786723 :          pack_tmp = packed_data(ipack)
   31936     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   31937     1786723 :          pack_tmp = ISHFT(pack_tmp, -28)
   31938     1786723 :          idata = idata + 1
   31939     1786723 :          data_tmp = ISHFT(pack_tmp, 5)
   31940     1786723 :          ipack = ipack + 1
   31941     1786723 :          pack_tmp = packed_data(ipack)
   31942     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   31943     1786723 :          pack_tmp = ISHFT(pack_tmp, -5)
   31944     1786723 :          idata = idata + 1
   31945     1786723 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31946     1786723 :          full_data(idata) = data_tmp
   31947     1786723 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31948     1786723 :          idata = idata + 1
   31949     1786723 :          data_tmp = ISHFT(pack_tmp, 23)
   31950     1786723 :          ipack = ipack + 1
   31951     1786723 :          pack_tmp = packed_data(ipack)
   31952     1786723 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   31953     1786723 :          pack_tmp = ISHFT(pack_tmp, -23)
   31954     1786723 :          idata = idata + 1
   31955     1786723 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31956     1786723 :          full_data(idata) = data_tmp
   31957     1787113 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31958             :       END DO
   31959      125567 :       IF (Ndata_rep < Ndata) THEN
   31960       25914 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   31961             :       END IF
   31962      125567 :    END SUBROUTINE bits2ints_41
   31963             : 
   31964             : ! **************************************************************************************************
   31965             : !> \brief ...
   31966             : !> \param Ndata ...
   31967             : !> \param packed_data ...
   31968             : !> \param full_data ...
   31969             : ! **************************************************************************************************
   31970       24697 :    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       24697 :       idata = 0
   31981       24697 :       ipack = 0
   31982       24697 :       Ndata_rep = (Ndata/64)*64
   31983       24697 :       DO kdata = 1, Ndata_rep, 64
   31984      382164 :          pack_tmp = 0
   31985      382164 :          idata = idata + 1
   31986      382164 :          data_tmp = full_data(idata)
   31987      382164 :          data_tmp = ISHFT(data_tmp, 22)
   31988      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31989      382164 :          pack_tmp = ISHFT(pack_tmp, -22)
   31990      382164 :          idata = idata + 1
   31991      382164 :          data_tmp = full_data(idata)
   31992      382164 :          data_tmp = ISHFT(data_tmp, 22)
   31993      382164 :          data_tmp = IAND(data_tmp, mask_left(22))
   31994      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31995      382164 :          ipack = ipack + 1
   31996      382164 :          packed_data(ipack) = pack_tmp
   31997      382164 :          data_tmp = full_data(idata)
   31998      382164 :          pack_tmp = ISHFT(data_tmp, 44)
   31999      382164 :          pack_tmp = ISHFT(pack_tmp, -42)
   32000      382164 :          idata = idata + 1
   32001      382164 :          data_tmp = full_data(idata)
   32002      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32003      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32004      382164 :          pack_tmp = ISHFT(pack_tmp, -2)
   32005      382164 :          idata = idata + 1
   32006      382164 :          data_tmp = full_data(idata)
   32007      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32008      382164 :          data_tmp = IAND(data_tmp, mask_left(2))
   32009      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32010      382164 :          ipack = ipack + 1
   32011      382164 :          packed_data(ipack) = pack_tmp
   32012      382164 :          data_tmp = full_data(idata)
   32013      382164 :          pack_tmp = ISHFT(data_tmp, 24)
   32014      382164 :          pack_tmp = ISHFT(pack_tmp, -24)
   32015      382164 :          idata = idata + 1
   32016      382164 :          data_tmp = full_data(idata)
   32017      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32018      382164 :          data_tmp = IAND(data_tmp, mask_left(24))
   32019      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32020      382164 :          ipack = ipack + 1
   32021      382164 :          packed_data(ipack) = pack_tmp
   32022      382164 :          data_tmp = full_data(idata)
   32023      382164 :          pack_tmp = ISHFT(data_tmp, 46)
   32024      382164 :          pack_tmp = ISHFT(pack_tmp, -42)
   32025      382164 :          idata = idata + 1
   32026      382164 :          data_tmp = full_data(idata)
   32027      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32028      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32029      382164 :          pack_tmp = ISHFT(pack_tmp, -4)
   32030      382164 :          idata = idata + 1
   32031      382164 :          data_tmp = full_data(idata)
   32032      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32033      382164 :          data_tmp = IAND(data_tmp, mask_left(4))
   32034      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32035      382164 :          ipack = ipack + 1
   32036      382164 :          packed_data(ipack) = pack_tmp
   32037      382164 :          data_tmp = full_data(idata)
   32038      382164 :          pack_tmp = ISHFT(data_tmp, 26)
   32039      382164 :          pack_tmp = ISHFT(pack_tmp, -26)
   32040      382164 :          idata = idata + 1
   32041      382164 :          data_tmp = full_data(idata)
   32042      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32043      382164 :          data_tmp = IAND(data_tmp, mask_left(26))
   32044      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32045      382164 :          ipack = ipack + 1
   32046      382164 :          packed_data(ipack) = pack_tmp
   32047      382164 :          data_tmp = full_data(idata)
   32048      382164 :          pack_tmp = ISHFT(data_tmp, 48)
   32049      382164 :          pack_tmp = ISHFT(pack_tmp, -42)
   32050      382164 :          idata = idata + 1
   32051      382164 :          data_tmp = full_data(idata)
   32052      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32053      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32054      382164 :          pack_tmp = ISHFT(pack_tmp, -6)
   32055      382164 :          idata = idata + 1
   32056      382164 :          data_tmp = full_data(idata)
   32057      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32058      382164 :          data_tmp = IAND(data_tmp, mask_left(6))
   32059      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32060      382164 :          ipack = ipack + 1
   32061      382164 :          packed_data(ipack) = pack_tmp
   32062      382164 :          data_tmp = full_data(idata)
   32063      382164 :          pack_tmp = ISHFT(data_tmp, 28)
   32064      382164 :          pack_tmp = ISHFT(pack_tmp, -28)
   32065      382164 :          idata = idata + 1
   32066      382164 :          data_tmp = full_data(idata)
   32067      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32068      382164 :          data_tmp = IAND(data_tmp, mask_left(28))
   32069      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32070      382164 :          ipack = ipack + 1
   32071      382164 :          packed_data(ipack) = pack_tmp
   32072      382164 :          data_tmp = full_data(idata)
   32073      382164 :          pack_tmp = ISHFT(data_tmp, 50)
   32074      382164 :          pack_tmp = ISHFT(pack_tmp, -42)
   32075      382164 :          idata = idata + 1
   32076      382164 :          data_tmp = full_data(idata)
   32077      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32078      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32079      382164 :          pack_tmp = ISHFT(pack_tmp, -8)
   32080      382164 :          idata = idata + 1
   32081      382164 :          data_tmp = full_data(idata)
   32082      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32083      382164 :          data_tmp = IAND(data_tmp, mask_left(8))
   32084      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32085      382164 :          ipack = ipack + 1
   32086      382164 :          packed_data(ipack) = pack_tmp
   32087      382164 :          data_tmp = full_data(idata)
   32088      382164 :          pack_tmp = ISHFT(data_tmp, 30)
   32089      382164 :          pack_tmp = ISHFT(pack_tmp, -30)
   32090      382164 :          idata = idata + 1
   32091      382164 :          data_tmp = full_data(idata)
   32092      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32093      382164 :          data_tmp = IAND(data_tmp, mask_left(30))
   32094      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32095      382164 :          ipack = ipack + 1
   32096      382164 :          packed_data(ipack) = pack_tmp
   32097      382164 :          data_tmp = full_data(idata)
   32098      382164 :          pack_tmp = ISHFT(data_tmp, 52)
   32099      382164 :          pack_tmp = ISHFT(pack_tmp, -42)
   32100      382164 :          idata = idata + 1
   32101      382164 :          data_tmp = full_data(idata)
   32102      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32103      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32104      382164 :          pack_tmp = ISHFT(pack_tmp, -10)
   32105      382164 :          idata = idata + 1
   32106      382164 :          data_tmp = full_data(idata)
   32107      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32108      382164 :          data_tmp = IAND(data_tmp, mask_left(10))
   32109      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32110      382164 :          ipack = ipack + 1
   32111      382164 :          packed_data(ipack) = pack_tmp
   32112      382164 :          data_tmp = full_data(idata)
   32113      382164 :          pack_tmp = ISHFT(data_tmp, 32)
   32114      382164 :          pack_tmp = ISHFT(pack_tmp, -32)
   32115      382164 :          idata = idata + 1
   32116      382164 :          data_tmp = full_data(idata)
   32117      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32118      382164 :          data_tmp = IAND(data_tmp, mask_left(32))
   32119      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32120      382164 :          ipack = ipack + 1
   32121      382164 :          packed_data(ipack) = pack_tmp
   32122      382164 :          data_tmp = full_data(idata)
   32123      382164 :          pack_tmp = ISHFT(data_tmp, 54)
   32124      382164 :          pack_tmp = ISHFT(pack_tmp, -42)
   32125      382164 :          idata = idata + 1
   32126      382164 :          data_tmp = full_data(idata)
   32127      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32128      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32129      382164 :          pack_tmp = ISHFT(pack_tmp, -12)
   32130      382164 :          idata = idata + 1
   32131      382164 :          data_tmp = full_data(idata)
   32132      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32133      382164 :          data_tmp = IAND(data_tmp, mask_left(12))
   32134      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32135      382164 :          ipack = ipack + 1
   32136      382164 :          packed_data(ipack) = pack_tmp
   32137      382164 :          data_tmp = full_data(idata)
   32138      382164 :          pack_tmp = ISHFT(data_tmp, 34)
   32139      382164 :          pack_tmp = ISHFT(pack_tmp, -34)
   32140      382164 :          idata = idata + 1
   32141      382164 :          data_tmp = full_data(idata)
   32142      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32143      382164 :          data_tmp = IAND(data_tmp, mask_left(34))
   32144      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32145      382164 :          ipack = ipack + 1
   32146      382164 :          packed_data(ipack) = pack_tmp
   32147      382164 :          data_tmp = full_data(idata)
   32148      382164 :          pack_tmp = ISHFT(data_tmp, 56)
   32149      382164 :          pack_tmp = ISHFT(pack_tmp, -42)
   32150      382164 :          idata = idata + 1
   32151      382164 :          data_tmp = full_data(idata)
   32152      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32153      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32154      382164 :          pack_tmp = ISHFT(pack_tmp, -14)
   32155      382164 :          idata = idata + 1
   32156      382164 :          data_tmp = full_data(idata)
   32157      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32158      382164 :          data_tmp = IAND(data_tmp, mask_left(14))
   32159      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32160      382164 :          ipack = ipack + 1
   32161      382164 :          packed_data(ipack) = pack_tmp
   32162      382164 :          data_tmp = full_data(idata)
   32163      382164 :          pack_tmp = ISHFT(data_tmp, 36)
   32164      382164 :          pack_tmp = ISHFT(pack_tmp, -36)
   32165      382164 :          idata = idata + 1
   32166      382164 :          data_tmp = full_data(idata)
   32167      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32168      382164 :          data_tmp = IAND(data_tmp, mask_left(36))
   32169      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32170      382164 :          ipack = ipack + 1
   32171      382164 :          packed_data(ipack) = pack_tmp
   32172      382164 :          data_tmp = full_data(idata)
   32173      382164 :          pack_tmp = ISHFT(data_tmp, 58)
   32174      382164 :          pack_tmp = ISHFT(pack_tmp, -42)
   32175      382164 :          idata = idata + 1
   32176      382164 :          data_tmp = full_data(idata)
   32177      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32178      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32179      382164 :          pack_tmp = ISHFT(pack_tmp, -16)
   32180      382164 :          idata = idata + 1
   32181      382164 :          data_tmp = full_data(idata)
   32182      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32183      382164 :          data_tmp = IAND(data_tmp, mask_left(16))
   32184      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32185      382164 :          ipack = ipack + 1
   32186      382164 :          packed_data(ipack) = pack_tmp
   32187      382164 :          data_tmp = full_data(idata)
   32188      382164 :          pack_tmp = ISHFT(data_tmp, 38)
   32189      382164 :          pack_tmp = ISHFT(pack_tmp, -38)
   32190      382164 :          idata = idata + 1
   32191      382164 :          data_tmp = full_data(idata)
   32192      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32193      382164 :          data_tmp = IAND(data_tmp, mask_left(38))
   32194      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32195      382164 :          ipack = ipack + 1
   32196      382164 :          packed_data(ipack) = pack_tmp
   32197      382164 :          data_tmp = full_data(idata)
   32198      382164 :          pack_tmp = ISHFT(data_tmp, 60)
   32199      382164 :          pack_tmp = ISHFT(pack_tmp, -42)
   32200      382164 :          idata = idata + 1
   32201      382164 :          data_tmp = full_data(idata)
   32202      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32203      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32204      382164 :          pack_tmp = ISHFT(pack_tmp, -18)
   32205      382164 :          idata = idata + 1
   32206      382164 :          data_tmp = full_data(idata)
   32207      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32208      382164 :          data_tmp = IAND(data_tmp, mask_left(18))
   32209      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32210      382164 :          ipack = ipack + 1
   32211      382164 :          packed_data(ipack) = pack_tmp
   32212      382164 :          data_tmp = full_data(idata)
   32213      382164 :          pack_tmp = ISHFT(data_tmp, 40)
   32214      382164 :          pack_tmp = ISHFT(pack_tmp, -40)
   32215      382164 :          idata = idata + 1
   32216      382164 :          data_tmp = full_data(idata)
   32217      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32218      382164 :          data_tmp = IAND(data_tmp, mask_left(40))
   32219      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32220      382164 :          ipack = ipack + 1
   32221      382164 :          packed_data(ipack) = pack_tmp
   32222      382164 :          data_tmp = full_data(idata)
   32223      382164 :          pack_tmp = ISHFT(data_tmp, 62)
   32224      382164 :          pack_tmp = ISHFT(pack_tmp, -42)
   32225      382164 :          idata = idata + 1
   32226      382164 :          data_tmp = full_data(idata)
   32227      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32228      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32229      382164 :          pack_tmp = ISHFT(pack_tmp, -20)
   32230      382164 :          idata = idata + 1
   32231      382164 :          data_tmp = full_data(idata)
   32232      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32233      382164 :          data_tmp = IAND(data_tmp, mask_left(20))
   32234      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32235      382164 :          ipack = ipack + 1
   32236      382164 :          packed_data(ipack) = pack_tmp
   32237      382164 :          data_tmp = full_data(idata)
   32238      382164 :          pack_tmp = ISHFT(data_tmp, 42)
   32239      382164 :          pack_tmp = ISHFT(pack_tmp, -42)
   32240      382164 :          idata = idata + 1
   32241      382164 :          data_tmp = full_data(idata)
   32242      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32243      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32244      382164 :          pack_tmp = ISHFT(pack_tmp, 0)
   32245      382164 :          idata = idata + 1
   32246      382164 :          data_tmp = full_data(idata)
   32247             :          data_tmp = ISHFT(data_tmp, 22)
   32248      382164 :          data_tmp = IAND(data_tmp, mask_left(0))
   32249      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32250      382164 :          ipack = ipack + 1
   32251      382164 :          packed_data(ipack) = pack_tmp
   32252      382164 :          data_tmp = full_data(idata)
   32253      382164 :          pack_tmp = ISHFT(data_tmp, 22)
   32254      382164 :          pack_tmp = ISHFT(pack_tmp, -22)
   32255      382164 :          idata = idata + 1
   32256      382164 :          data_tmp = full_data(idata)
   32257      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32258      382164 :          data_tmp = IAND(data_tmp, mask_left(22))
   32259      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32260      382164 :          ipack = ipack + 1
   32261      382164 :          packed_data(ipack) = pack_tmp
   32262      382164 :          data_tmp = full_data(idata)
   32263      382164 :          pack_tmp = ISHFT(data_tmp, 44)
   32264      382164 :          pack_tmp = ISHFT(pack_tmp, -42)
   32265      382164 :          idata = idata + 1
   32266      382164 :          data_tmp = full_data(idata)
   32267      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32268      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32269      382164 :          pack_tmp = ISHFT(pack_tmp, -2)
   32270      382164 :          idata = idata + 1
   32271      382164 :          data_tmp = full_data(idata)
   32272      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32273      382164 :          data_tmp = IAND(data_tmp, mask_left(2))
   32274      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32275      382164 :          ipack = ipack + 1
   32276      382164 :          packed_data(ipack) = pack_tmp
   32277      382164 :          data_tmp = full_data(idata)
   32278      382164 :          pack_tmp = ISHFT(data_tmp, 24)
   32279      382164 :          pack_tmp = ISHFT(pack_tmp, -24)
   32280      382164 :          idata = idata + 1
   32281      382164 :          data_tmp = full_data(idata)
   32282      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32283      382164 :          data_tmp = IAND(data_tmp, mask_left(24))
   32284      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32285      382164 :          ipack = ipack + 1
   32286      382164 :          packed_data(ipack) = pack_tmp
   32287      382164 :          data_tmp = full_data(idata)
   32288      382164 :          pack_tmp = ISHFT(data_tmp, 46)
   32289      382164 :          pack_tmp = ISHFT(pack_tmp, -42)
   32290      382164 :          idata = idata + 1
   32291      382164 :          data_tmp = full_data(idata)
   32292      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32293      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32294      382164 :          pack_tmp = ISHFT(pack_tmp, -4)
   32295      382164 :          idata = idata + 1
   32296      382164 :          data_tmp = full_data(idata)
   32297      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32298      382164 :          data_tmp = IAND(data_tmp, mask_left(4))
   32299      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32300      382164 :          ipack = ipack + 1
   32301      382164 :          packed_data(ipack) = pack_tmp
   32302      382164 :          data_tmp = full_data(idata)
   32303      382164 :          pack_tmp = ISHFT(data_tmp, 26)
   32304      382164 :          pack_tmp = ISHFT(pack_tmp, -26)
   32305      382164 :          idata = idata + 1
   32306      382164 :          data_tmp = full_data(idata)
   32307      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32308      382164 :          data_tmp = IAND(data_tmp, mask_left(26))
   32309      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32310      382164 :          ipack = ipack + 1
   32311      382164 :          packed_data(ipack) = pack_tmp
   32312      382164 :          data_tmp = full_data(idata)
   32313      382164 :          pack_tmp = ISHFT(data_tmp, 48)
   32314      382164 :          pack_tmp = ISHFT(pack_tmp, -42)
   32315      382164 :          idata = idata + 1
   32316      382164 :          data_tmp = full_data(idata)
   32317      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32318      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32319      382164 :          pack_tmp = ISHFT(pack_tmp, -6)
   32320      382164 :          idata = idata + 1
   32321      382164 :          data_tmp = full_data(idata)
   32322      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32323      382164 :          data_tmp = IAND(data_tmp, mask_left(6))
   32324      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32325      382164 :          ipack = ipack + 1
   32326      382164 :          packed_data(ipack) = pack_tmp
   32327      382164 :          data_tmp = full_data(idata)
   32328      382164 :          pack_tmp = ISHFT(data_tmp, 28)
   32329      382164 :          pack_tmp = ISHFT(pack_tmp, -28)
   32330      382164 :          idata = idata + 1
   32331      382164 :          data_tmp = full_data(idata)
   32332      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32333      382164 :          data_tmp = IAND(data_tmp, mask_left(28))
   32334      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32335      382164 :          ipack = ipack + 1
   32336      382164 :          packed_data(ipack) = pack_tmp
   32337      382164 :          data_tmp = full_data(idata)
   32338      382164 :          pack_tmp = ISHFT(data_tmp, 50)
   32339      382164 :          pack_tmp = ISHFT(pack_tmp, -42)
   32340      382164 :          idata = idata + 1
   32341      382164 :          data_tmp = full_data(idata)
   32342      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32343      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32344      382164 :          pack_tmp = ISHFT(pack_tmp, -8)
   32345      382164 :          idata = idata + 1
   32346      382164 :          data_tmp = full_data(idata)
   32347      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32348      382164 :          data_tmp = IAND(data_tmp, mask_left(8))
   32349      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32350      382164 :          ipack = ipack + 1
   32351      382164 :          packed_data(ipack) = pack_tmp
   32352      382164 :          data_tmp = full_data(idata)
   32353      382164 :          pack_tmp = ISHFT(data_tmp, 30)
   32354      382164 :          pack_tmp = ISHFT(pack_tmp, -30)
   32355      382164 :          idata = idata + 1
   32356      382164 :          data_tmp = full_data(idata)
   32357      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32358      382164 :          data_tmp = IAND(data_tmp, mask_left(30))
   32359      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32360      382164 :          ipack = ipack + 1
   32361      382164 :          packed_data(ipack) = pack_tmp
   32362      382164 :          data_tmp = full_data(idata)
   32363      382164 :          pack_tmp = ISHFT(data_tmp, 52)
   32364      382164 :          pack_tmp = ISHFT(pack_tmp, -42)
   32365      382164 :          idata = idata + 1
   32366      382164 :          data_tmp = full_data(idata)
   32367      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32368      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32369      382164 :          pack_tmp = ISHFT(pack_tmp, -10)
   32370      382164 :          idata = idata + 1
   32371      382164 :          data_tmp = full_data(idata)
   32372      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32373      382164 :          data_tmp = IAND(data_tmp, mask_left(10))
   32374      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32375      382164 :          ipack = ipack + 1
   32376      382164 :          packed_data(ipack) = pack_tmp
   32377      382164 :          data_tmp = full_data(idata)
   32378      382164 :          pack_tmp = ISHFT(data_tmp, 32)
   32379      382164 :          pack_tmp = ISHFT(pack_tmp, -32)
   32380      382164 :          idata = idata + 1
   32381      382164 :          data_tmp = full_data(idata)
   32382      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32383      382164 :          data_tmp = IAND(data_tmp, mask_left(32))
   32384      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32385      382164 :          ipack = ipack + 1
   32386      382164 :          packed_data(ipack) = pack_tmp
   32387      382164 :          data_tmp = full_data(idata)
   32388      382164 :          pack_tmp = ISHFT(data_tmp, 54)
   32389      382164 :          pack_tmp = ISHFT(pack_tmp, -42)
   32390      382164 :          idata = idata + 1
   32391      382164 :          data_tmp = full_data(idata)
   32392      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32393      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32394      382164 :          pack_tmp = ISHFT(pack_tmp, -12)
   32395      382164 :          idata = idata + 1
   32396      382164 :          data_tmp = full_data(idata)
   32397      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32398      382164 :          data_tmp = IAND(data_tmp, mask_left(12))
   32399      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32400      382164 :          ipack = ipack + 1
   32401      382164 :          packed_data(ipack) = pack_tmp
   32402      382164 :          data_tmp = full_data(idata)
   32403      382164 :          pack_tmp = ISHFT(data_tmp, 34)
   32404      382164 :          pack_tmp = ISHFT(pack_tmp, -34)
   32405      382164 :          idata = idata + 1
   32406      382164 :          data_tmp = full_data(idata)
   32407      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32408      382164 :          data_tmp = IAND(data_tmp, mask_left(34))
   32409      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32410      382164 :          ipack = ipack + 1
   32411      382164 :          packed_data(ipack) = pack_tmp
   32412      382164 :          data_tmp = full_data(idata)
   32413      382164 :          pack_tmp = ISHFT(data_tmp, 56)
   32414      382164 :          pack_tmp = ISHFT(pack_tmp, -42)
   32415      382164 :          idata = idata + 1
   32416      382164 :          data_tmp = full_data(idata)
   32417      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32418      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32419      382164 :          pack_tmp = ISHFT(pack_tmp, -14)
   32420      382164 :          idata = idata + 1
   32421      382164 :          data_tmp = full_data(idata)
   32422      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32423      382164 :          data_tmp = IAND(data_tmp, mask_left(14))
   32424      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32425      382164 :          ipack = ipack + 1
   32426      382164 :          packed_data(ipack) = pack_tmp
   32427      382164 :          data_tmp = full_data(idata)
   32428      382164 :          pack_tmp = ISHFT(data_tmp, 36)
   32429      382164 :          pack_tmp = ISHFT(pack_tmp, -36)
   32430      382164 :          idata = idata + 1
   32431      382164 :          data_tmp = full_data(idata)
   32432      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32433      382164 :          data_tmp = IAND(data_tmp, mask_left(36))
   32434      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32435      382164 :          ipack = ipack + 1
   32436      382164 :          packed_data(ipack) = pack_tmp
   32437      382164 :          data_tmp = full_data(idata)
   32438      382164 :          pack_tmp = ISHFT(data_tmp, 58)
   32439      382164 :          pack_tmp = ISHFT(pack_tmp, -42)
   32440      382164 :          idata = idata + 1
   32441      382164 :          data_tmp = full_data(idata)
   32442      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32443      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32444      382164 :          pack_tmp = ISHFT(pack_tmp, -16)
   32445      382164 :          idata = idata + 1
   32446      382164 :          data_tmp = full_data(idata)
   32447      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32448      382164 :          data_tmp = IAND(data_tmp, mask_left(16))
   32449      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32450      382164 :          ipack = ipack + 1
   32451      382164 :          packed_data(ipack) = pack_tmp
   32452      382164 :          data_tmp = full_data(idata)
   32453      382164 :          pack_tmp = ISHFT(data_tmp, 38)
   32454      382164 :          pack_tmp = ISHFT(pack_tmp, -38)
   32455      382164 :          idata = idata + 1
   32456      382164 :          data_tmp = full_data(idata)
   32457      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32458      382164 :          data_tmp = IAND(data_tmp, mask_left(38))
   32459      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32460      382164 :          ipack = ipack + 1
   32461      382164 :          packed_data(ipack) = pack_tmp
   32462      382164 :          data_tmp = full_data(idata)
   32463      382164 :          pack_tmp = ISHFT(data_tmp, 60)
   32464      382164 :          pack_tmp = ISHFT(pack_tmp, -42)
   32465      382164 :          idata = idata + 1
   32466      382164 :          data_tmp = full_data(idata)
   32467      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32468      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32469      382164 :          pack_tmp = ISHFT(pack_tmp, -18)
   32470      382164 :          idata = idata + 1
   32471      382164 :          data_tmp = full_data(idata)
   32472      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32473      382164 :          data_tmp = IAND(data_tmp, mask_left(18))
   32474      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32475      382164 :          ipack = ipack + 1
   32476      382164 :          packed_data(ipack) = pack_tmp
   32477      382164 :          data_tmp = full_data(idata)
   32478      382164 :          pack_tmp = ISHFT(data_tmp, 40)
   32479      382164 :          pack_tmp = ISHFT(pack_tmp, -40)
   32480      382164 :          idata = idata + 1
   32481      382164 :          data_tmp = full_data(idata)
   32482      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32483      382164 :          data_tmp = IAND(data_tmp, mask_left(40))
   32484      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32485      382164 :          ipack = ipack + 1
   32486      382164 :          packed_data(ipack) = pack_tmp
   32487      382164 :          data_tmp = full_data(idata)
   32488      382164 :          pack_tmp = ISHFT(data_tmp, 62)
   32489      382164 :          pack_tmp = ISHFT(pack_tmp, -42)
   32490      382164 :          idata = idata + 1
   32491      382164 :          data_tmp = full_data(idata)
   32492      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32493      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32494      382164 :          pack_tmp = ISHFT(pack_tmp, -20)
   32495      382164 :          idata = idata + 1
   32496      382164 :          data_tmp = full_data(idata)
   32497      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32498      382164 :          data_tmp = IAND(data_tmp, mask_left(20))
   32499      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32500      382164 :          ipack = ipack + 1
   32501      382164 :          packed_data(ipack) = pack_tmp
   32502      382164 :          data_tmp = full_data(idata)
   32503      382164 :          pack_tmp = ISHFT(data_tmp, 42)
   32504      382164 :          pack_tmp = ISHFT(pack_tmp, -42)
   32505      382164 :          idata = idata + 1
   32506      382164 :          data_tmp = full_data(idata)
   32507      382164 :          data_tmp = ISHFT(data_tmp, 22)
   32508      382164 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32509             :          pack_tmp = ISHFT(pack_tmp, 0)
   32510      382164 :          pack_tmp = ISHFT(pack_tmp, 0)
   32511      382164 :          ipack = ipack + 1
   32512      382266 :          packed_data(ipack) = pack_tmp
   32513             :       END DO
   32514       24697 :       IF (Ndata_rep < Ndata) THEN
   32515        1528 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   32516             :       END IF
   32517       24697 :    END SUBROUTINE ints2bits_42
   32518             : 
   32519             : ! **************************************************************************************************
   32520             : !> \brief ...
   32521             : !> \param Ndata ...
   32522             : !> \param packed_data ...
   32523             : !> \param full_data ...
   32524             : ! **************************************************************************************************
   32525      114777 :    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      114777 :       ipack = 0
   32536      114777 :       idata = 0
   32537      114777 :       pack_tmp = 0
   32538      114777 :       Ndata_rep = (Ndata/64)*64
   32539      114777 :       DO kdata = 1, Ndata_rep, 64
   32540     1690385 :          idata = idata + 1
   32541     1690385 :          data_tmp = ISHFT(pack_tmp, 42)
   32542     1690385 :          ipack = ipack + 1
   32543     1690385 :          pack_tmp = packed_data(ipack)
   32544     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   32545     1690385 :          pack_tmp = ISHFT(pack_tmp, -42)
   32546     1690385 :          idata = idata + 1
   32547     1690385 :          data_tmp = ISHFT(pack_tmp, 20)
   32548     1690385 :          ipack = ipack + 1
   32549     1690385 :          pack_tmp = packed_data(ipack)
   32550     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   32551     1690385 :          pack_tmp = ISHFT(pack_tmp, -20)
   32552     1690385 :          idata = idata + 1
   32553     1690385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32554     1690385 :          full_data(idata) = data_tmp
   32555     1690385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32556     1690385 :          idata = idata + 1
   32557     1690385 :          data_tmp = ISHFT(pack_tmp, 40)
   32558     1690385 :          ipack = ipack + 1
   32559     1690385 :          pack_tmp = packed_data(ipack)
   32560     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   32561     1690385 :          pack_tmp = ISHFT(pack_tmp, -40)
   32562     1690385 :          idata = idata + 1
   32563     1690385 :          data_tmp = ISHFT(pack_tmp, 18)
   32564     1690385 :          ipack = ipack + 1
   32565     1690385 :          pack_tmp = packed_data(ipack)
   32566     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   32567     1690385 :          pack_tmp = ISHFT(pack_tmp, -18)
   32568     1690385 :          idata = idata + 1
   32569     1690385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32570     1690385 :          full_data(idata) = data_tmp
   32571     1690385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32572     1690385 :          idata = idata + 1
   32573     1690385 :          data_tmp = ISHFT(pack_tmp, 38)
   32574     1690385 :          ipack = ipack + 1
   32575     1690385 :          pack_tmp = packed_data(ipack)
   32576     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   32577     1690385 :          pack_tmp = ISHFT(pack_tmp, -38)
   32578     1690385 :          idata = idata + 1
   32579     1690385 :          data_tmp = ISHFT(pack_tmp, 16)
   32580     1690385 :          ipack = ipack + 1
   32581     1690385 :          pack_tmp = packed_data(ipack)
   32582     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   32583     1690385 :          pack_tmp = ISHFT(pack_tmp, -16)
   32584     1690385 :          idata = idata + 1
   32585     1690385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32586     1690385 :          full_data(idata) = data_tmp
   32587     1690385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32588     1690385 :          idata = idata + 1
   32589     1690385 :          data_tmp = ISHFT(pack_tmp, 36)
   32590     1690385 :          ipack = ipack + 1
   32591     1690385 :          pack_tmp = packed_data(ipack)
   32592     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   32593     1690385 :          pack_tmp = ISHFT(pack_tmp, -36)
   32594     1690385 :          idata = idata + 1
   32595     1690385 :          data_tmp = ISHFT(pack_tmp, 14)
   32596     1690385 :          ipack = ipack + 1
   32597     1690385 :          pack_tmp = packed_data(ipack)
   32598     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   32599     1690385 :          pack_tmp = ISHFT(pack_tmp, -14)
   32600     1690385 :          idata = idata + 1
   32601     1690385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32602     1690385 :          full_data(idata) = data_tmp
   32603     1690385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32604     1690385 :          idata = idata + 1
   32605     1690385 :          data_tmp = ISHFT(pack_tmp, 34)
   32606     1690385 :          ipack = ipack + 1
   32607     1690385 :          pack_tmp = packed_data(ipack)
   32608     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   32609     1690385 :          pack_tmp = ISHFT(pack_tmp, -34)
   32610     1690385 :          idata = idata + 1
   32611     1690385 :          data_tmp = ISHFT(pack_tmp, 12)
   32612     1690385 :          ipack = ipack + 1
   32613     1690385 :          pack_tmp = packed_data(ipack)
   32614     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   32615     1690385 :          pack_tmp = ISHFT(pack_tmp, -12)
   32616     1690385 :          idata = idata + 1
   32617     1690385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32618     1690385 :          full_data(idata) = data_tmp
   32619     1690385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32620     1690385 :          idata = idata + 1
   32621     1690385 :          data_tmp = ISHFT(pack_tmp, 32)
   32622     1690385 :          ipack = ipack + 1
   32623     1690385 :          pack_tmp = packed_data(ipack)
   32624     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   32625     1690385 :          pack_tmp = ISHFT(pack_tmp, -32)
   32626     1690385 :          idata = idata + 1
   32627     1690385 :          data_tmp = ISHFT(pack_tmp, 10)
   32628     1690385 :          ipack = ipack + 1
   32629     1690385 :          pack_tmp = packed_data(ipack)
   32630     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   32631     1690385 :          pack_tmp = ISHFT(pack_tmp, -10)
   32632     1690385 :          idata = idata + 1
   32633     1690385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32634     1690385 :          full_data(idata) = data_tmp
   32635     1690385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32636     1690385 :          idata = idata + 1
   32637     1690385 :          data_tmp = ISHFT(pack_tmp, 30)
   32638     1690385 :          ipack = ipack + 1
   32639     1690385 :          pack_tmp = packed_data(ipack)
   32640     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   32641     1690385 :          pack_tmp = ISHFT(pack_tmp, -30)
   32642     1690385 :          idata = idata + 1
   32643     1690385 :          data_tmp = ISHFT(pack_tmp, 8)
   32644     1690385 :          ipack = ipack + 1
   32645     1690385 :          pack_tmp = packed_data(ipack)
   32646     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   32647     1690385 :          pack_tmp = ISHFT(pack_tmp, -8)
   32648     1690385 :          idata = idata + 1
   32649     1690385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32650     1690385 :          full_data(idata) = data_tmp
   32651     1690385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32652     1690385 :          idata = idata + 1
   32653     1690385 :          data_tmp = ISHFT(pack_tmp, 28)
   32654     1690385 :          ipack = ipack + 1
   32655     1690385 :          pack_tmp = packed_data(ipack)
   32656     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   32657     1690385 :          pack_tmp = ISHFT(pack_tmp, -28)
   32658     1690385 :          idata = idata + 1
   32659     1690385 :          data_tmp = ISHFT(pack_tmp, 6)
   32660     1690385 :          ipack = ipack + 1
   32661     1690385 :          pack_tmp = packed_data(ipack)
   32662     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   32663     1690385 :          pack_tmp = ISHFT(pack_tmp, -6)
   32664     1690385 :          idata = idata + 1
   32665     1690385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32666     1690385 :          full_data(idata) = data_tmp
   32667     1690385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32668     1690385 :          idata = idata + 1
   32669     1690385 :          data_tmp = ISHFT(pack_tmp, 26)
   32670     1690385 :          ipack = ipack + 1
   32671     1690385 :          pack_tmp = packed_data(ipack)
   32672     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   32673     1690385 :          pack_tmp = ISHFT(pack_tmp, -26)
   32674     1690385 :          idata = idata + 1
   32675     1690385 :          data_tmp = ISHFT(pack_tmp, 4)
   32676     1690385 :          ipack = ipack + 1
   32677     1690385 :          pack_tmp = packed_data(ipack)
   32678     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   32679     1690385 :          pack_tmp = ISHFT(pack_tmp, -4)
   32680     1690385 :          idata = idata + 1
   32681     1690385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32682     1690385 :          full_data(idata) = data_tmp
   32683     1690385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32684     1690385 :          idata = idata + 1
   32685     1690385 :          data_tmp = ISHFT(pack_tmp, 24)
   32686     1690385 :          ipack = ipack + 1
   32687     1690385 :          pack_tmp = packed_data(ipack)
   32688     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   32689     1690385 :          pack_tmp = ISHFT(pack_tmp, -24)
   32690     1690385 :          idata = idata + 1
   32691     1690385 :          data_tmp = ISHFT(pack_tmp, 2)
   32692     1690385 :          ipack = ipack + 1
   32693     1690385 :          pack_tmp = packed_data(ipack)
   32694     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   32695     1690385 :          pack_tmp = ISHFT(pack_tmp, -2)
   32696     1690385 :          idata = idata + 1
   32697     1690385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32698     1690385 :          full_data(idata) = data_tmp
   32699     1690385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32700     1690385 :          idata = idata + 1
   32701     1690385 :          data_tmp = ISHFT(pack_tmp, 22)
   32702     1690385 :          ipack = ipack + 1
   32703     1690385 :          pack_tmp = packed_data(ipack)
   32704     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   32705     1690385 :          pack_tmp = ISHFT(pack_tmp, -22)
   32706     1690385 :          idata = idata + 1
   32707     1690385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32708     1690385 :          full_data(idata) = data_tmp
   32709     1690385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32710     1690385 :          idata = idata + 1
   32711     1690385 :          data_tmp = ISHFT(pack_tmp, 42)
   32712     1690385 :          ipack = ipack + 1
   32713     1690385 :          pack_tmp = packed_data(ipack)
   32714     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   32715     1690385 :          pack_tmp = ISHFT(pack_tmp, -42)
   32716     1690385 :          idata = idata + 1
   32717     1690385 :          data_tmp = ISHFT(pack_tmp, 20)
   32718     1690385 :          ipack = ipack + 1
   32719     1690385 :          pack_tmp = packed_data(ipack)
   32720     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   32721     1690385 :          pack_tmp = ISHFT(pack_tmp, -20)
   32722     1690385 :          idata = idata + 1
   32723     1690385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32724     1690385 :          full_data(idata) = data_tmp
   32725     1690385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32726     1690385 :          idata = idata + 1
   32727     1690385 :          data_tmp = ISHFT(pack_tmp, 40)
   32728     1690385 :          ipack = ipack + 1
   32729     1690385 :          pack_tmp = packed_data(ipack)
   32730     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   32731     1690385 :          pack_tmp = ISHFT(pack_tmp, -40)
   32732     1690385 :          idata = idata + 1
   32733     1690385 :          data_tmp = ISHFT(pack_tmp, 18)
   32734     1690385 :          ipack = ipack + 1
   32735     1690385 :          pack_tmp = packed_data(ipack)
   32736     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   32737     1690385 :          pack_tmp = ISHFT(pack_tmp, -18)
   32738     1690385 :          idata = idata + 1
   32739     1690385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32740     1690385 :          full_data(idata) = data_tmp
   32741     1690385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32742     1690385 :          idata = idata + 1
   32743     1690385 :          data_tmp = ISHFT(pack_tmp, 38)
   32744     1690385 :          ipack = ipack + 1
   32745     1690385 :          pack_tmp = packed_data(ipack)
   32746     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   32747     1690385 :          pack_tmp = ISHFT(pack_tmp, -38)
   32748     1690385 :          idata = idata + 1
   32749     1690385 :          data_tmp = ISHFT(pack_tmp, 16)
   32750     1690385 :          ipack = ipack + 1
   32751     1690385 :          pack_tmp = packed_data(ipack)
   32752     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   32753     1690385 :          pack_tmp = ISHFT(pack_tmp, -16)
   32754     1690385 :          idata = idata + 1
   32755     1690385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32756     1690385 :          full_data(idata) = data_tmp
   32757     1690385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32758     1690385 :          idata = idata + 1
   32759     1690385 :          data_tmp = ISHFT(pack_tmp, 36)
   32760     1690385 :          ipack = ipack + 1
   32761     1690385 :          pack_tmp = packed_data(ipack)
   32762     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   32763     1690385 :          pack_tmp = ISHFT(pack_tmp, -36)
   32764     1690385 :          idata = idata + 1
   32765     1690385 :          data_tmp = ISHFT(pack_tmp, 14)
   32766     1690385 :          ipack = ipack + 1
   32767     1690385 :          pack_tmp = packed_data(ipack)
   32768     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   32769     1690385 :          pack_tmp = ISHFT(pack_tmp, -14)
   32770     1690385 :          idata = idata + 1
   32771     1690385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32772     1690385 :          full_data(idata) = data_tmp
   32773     1690385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32774     1690385 :          idata = idata + 1
   32775     1690385 :          data_tmp = ISHFT(pack_tmp, 34)
   32776     1690385 :          ipack = ipack + 1
   32777     1690385 :          pack_tmp = packed_data(ipack)
   32778     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   32779     1690385 :          pack_tmp = ISHFT(pack_tmp, -34)
   32780     1690385 :          idata = idata + 1
   32781     1690385 :          data_tmp = ISHFT(pack_tmp, 12)
   32782     1690385 :          ipack = ipack + 1
   32783     1690385 :          pack_tmp = packed_data(ipack)
   32784     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   32785     1690385 :          pack_tmp = ISHFT(pack_tmp, -12)
   32786     1690385 :          idata = idata + 1
   32787     1690385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32788     1690385 :          full_data(idata) = data_tmp
   32789     1690385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32790     1690385 :          idata = idata + 1
   32791     1690385 :          data_tmp = ISHFT(pack_tmp, 32)
   32792     1690385 :          ipack = ipack + 1
   32793     1690385 :          pack_tmp = packed_data(ipack)
   32794     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   32795     1690385 :          pack_tmp = ISHFT(pack_tmp, -32)
   32796     1690385 :          idata = idata + 1
   32797     1690385 :          data_tmp = ISHFT(pack_tmp, 10)
   32798     1690385 :          ipack = ipack + 1
   32799     1690385 :          pack_tmp = packed_data(ipack)
   32800     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   32801     1690385 :          pack_tmp = ISHFT(pack_tmp, -10)
   32802     1690385 :          idata = idata + 1
   32803     1690385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32804     1690385 :          full_data(idata) = data_tmp
   32805     1690385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32806     1690385 :          idata = idata + 1
   32807     1690385 :          data_tmp = ISHFT(pack_tmp, 30)
   32808     1690385 :          ipack = ipack + 1
   32809     1690385 :          pack_tmp = packed_data(ipack)
   32810     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   32811     1690385 :          pack_tmp = ISHFT(pack_tmp, -30)
   32812     1690385 :          idata = idata + 1
   32813     1690385 :          data_tmp = ISHFT(pack_tmp, 8)
   32814     1690385 :          ipack = ipack + 1
   32815     1690385 :          pack_tmp = packed_data(ipack)
   32816     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   32817     1690385 :          pack_tmp = ISHFT(pack_tmp, -8)
   32818     1690385 :          idata = idata + 1
   32819     1690385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32820     1690385 :          full_data(idata) = data_tmp
   32821     1690385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32822     1690385 :          idata = idata + 1
   32823     1690385 :          data_tmp = ISHFT(pack_tmp, 28)
   32824     1690385 :          ipack = ipack + 1
   32825     1690385 :          pack_tmp = packed_data(ipack)
   32826     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   32827     1690385 :          pack_tmp = ISHFT(pack_tmp, -28)
   32828     1690385 :          idata = idata + 1
   32829     1690385 :          data_tmp = ISHFT(pack_tmp, 6)
   32830     1690385 :          ipack = ipack + 1
   32831     1690385 :          pack_tmp = packed_data(ipack)
   32832     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   32833     1690385 :          pack_tmp = ISHFT(pack_tmp, -6)
   32834     1690385 :          idata = idata + 1
   32835     1690385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32836     1690385 :          full_data(idata) = data_tmp
   32837     1690385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32838     1690385 :          idata = idata + 1
   32839     1690385 :          data_tmp = ISHFT(pack_tmp, 26)
   32840     1690385 :          ipack = ipack + 1
   32841     1690385 :          pack_tmp = packed_data(ipack)
   32842     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   32843     1690385 :          pack_tmp = ISHFT(pack_tmp, -26)
   32844     1690385 :          idata = idata + 1
   32845     1690385 :          data_tmp = ISHFT(pack_tmp, 4)
   32846     1690385 :          ipack = ipack + 1
   32847     1690385 :          pack_tmp = packed_data(ipack)
   32848     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   32849     1690385 :          pack_tmp = ISHFT(pack_tmp, -4)
   32850     1690385 :          idata = idata + 1
   32851     1690385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32852     1690385 :          full_data(idata) = data_tmp
   32853     1690385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32854     1690385 :          idata = idata + 1
   32855     1690385 :          data_tmp = ISHFT(pack_tmp, 24)
   32856     1690385 :          ipack = ipack + 1
   32857     1690385 :          pack_tmp = packed_data(ipack)
   32858     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   32859     1690385 :          pack_tmp = ISHFT(pack_tmp, -24)
   32860     1690385 :          idata = idata + 1
   32861     1690385 :          data_tmp = ISHFT(pack_tmp, 2)
   32862     1690385 :          ipack = ipack + 1
   32863     1690385 :          pack_tmp = packed_data(ipack)
   32864     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   32865     1690385 :          pack_tmp = ISHFT(pack_tmp, -2)
   32866     1690385 :          idata = idata + 1
   32867     1690385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32868     1690385 :          full_data(idata) = data_tmp
   32869     1690385 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32870     1690385 :          idata = idata + 1
   32871     1690385 :          data_tmp = ISHFT(pack_tmp, 22)
   32872     1690385 :          ipack = ipack + 1
   32873     1690385 :          pack_tmp = packed_data(ipack)
   32874     1690385 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   32875     1690385 :          pack_tmp = ISHFT(pack_tmp, -22)
   32876     1690385 :          idata = idata + 1
   32877     1690385 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32878     1690385 :          full_data(idata) = data_tmp
   32879     1691959 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32880             :       END DO
   32881      114777 :       IF (Ndata_rep < Ndata) THEN
   32882       17182 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   32883             :       END IF
   32884      114777 :    END SUBROUTINE bits2ints_42
   32885             : 
   32886             : ! **************************************************************************************************
   32887             : !> \brief ...
   32888             : !> \param Ndata ...
   32889             : !> \param packed_data ...
   32890             : !> \param full_data ...
   32891             : ! **************************************************************************************************
   32892       25391 :    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       25391 :       idata = 0
   32903       25391 :       ipack = 0
   32904       25391 :       Ndata_rep = (Ndata/64)*64
   32905       25391 :       DO kdata = 1, Ndata_rep, 64
   32906      386961 :          pack_tmp = 0
   32907      386961 :          idata = idata + 1
   32908      386961 :          data_tmp = full_data(idata)
   32909      386961 :          data_tmp = ISHFT(data_tmp, 21)
   32910      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32911      386961 :          pack_tmp = ISHFT(pack_tmp, -21)
   32912      386961 :          idata = idata + 1
   32913      386961 :          data_tmp = full_data(idata)
   32914      386961 :          data_tmp = ISHFT(data_tmp, 21)
   32915      386961 :          data_tmp = IAND(data_tmp, mask_left(21))
   32916      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32917      386961 :          ipack = ipack + 1
   32918      386961 :          packed_data(ipack) = pack_tmp
   32919      386961 :          data_tmp = full_data(idata)
   32920      386961 :          pack_tmp = ISHFT(data_tmp, 42)
   32921      386961 :          pack_tmp = ISHFT(pack_tmp, -42)
   32922      386961 :          idata = idata + 1
   32923      386961 :          data_tmp = full_data(idata)
   32924      386961 :          data_tmp = ISHFT(data_tmp, 21)
   32925      386961 :          data_tmp = IAND(data_tmp, mask_left(42))
   32926      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32927      386961 :          ipack = ipack + 1
   32928      386961 :          packed_data(ipack) = pack_tmp
   32929      386961 :          data_tmp = full_data(idata)
   32930      386961 :          pack_tmp = ISHFT(data_tmp, 63)
   32931      386961 :          pack_tmp = ISHFT(pack_tmp, -43)
   32932      386961 :          idata = idata + 1
   32933      386961 :          data_tmp = full_data(idata)
   32934      386961 :          data_tmp = ISHFT(data_tmp, 21)
   32935      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32936      386961 :          pack_tmp = ISHFT(pack_tmp, -20)
   32937      386961 :          idata = idata + 1
   32938      386961 :          data_tmp = full_data(idata)
   32939      386961 :          data_tmp = ISHFT(data_tmp, 21)
   32940      386961 :          data_tmp = IAND(data_tmp, mask_left(20))
   32941      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32942      386961 :          ipack = ipack + 1
   32943      386961 :          packed_data(ipack) = pack_tmp
   32944      386961 :          data_tmp = full_data(idata)
   32945      386961 :          pack_tmp = ISHFT(data_tmp, 41)
   32946      386961 :          pack_tmp = ISHFT(pack_tmp, -41)
   32947      386961 :          idata = idata + 1
   32948      386961 :          data_tmp = full_data(idata)
   32949      386961 :          data_tmp = ISHFT(data_tmp, 21)
   32950      386961 :          data_tmp = IAND(data_tmp, mask_left(41))
   32951      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32952      386961 :          ipack = ipack + 1
   32953      386961 :          packed_data(ipack) = pack_tmp
   32954      386961 :          data_tmp = full_data(idata)
   32955      386961 :          pack_tmp = ISHFT(data_tmp, 62)
   32956      386961 :          pack_tmp = ISHFT(pack_tmp, -43)
   32957      386961 :          idata = idata + 1
   32958      386961 :          data_tmp = full_data(idata)
   32959      386961 :          data_tmp = ISHFT(data_tmp, 21)
   32960      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32961      386961 :          pack_tmp = ISHFT(pack_tmp, -19)
   32962      386961 :          idata = idata + 1
   32963      386961 :          data_tmp = full_data(idata)
   32964      386961 :          data_tmp = ISHFT(data_tmp, 21)
   32965      386961 :          data_tmp = IAND(data_tmp, mask_left(19))
   32966      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32967      386961 :          ipack = ipack + 1
   32968      386961 :          packed_data(ipack) = pack_tmp
   32969      386961 :          data_tmp = full_data(idata)
   32970      386961 :          pack_tmp = ISHFT(data_tmp, 40)
   32971      386961 :          pack_tmp = ISHFT(pack_tmp, -40)
   32972      386961 :          idata = idata + 1
   32973      386961 :          data_tmp = full_data(idata)
   32974      386961 :          data_tmp = ISHFT(data_tmp, 21)
   32975      386961 :          data_tmp = IAND(data_tmp, mask_left(40))
   32976      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32977      386961 :          ipack = ipack + 1
   32978      386961 :          packed_data(ipack) = pack_tmp
   32979      386961 :          data_tmp = full_data(idata)
   32980      386961 :          pack_tmp = ISHFT(data_tmp, 61)
   32981      386961 :          pack_tmp = ISHFT(pack_tmp, -43)
   32982      386961 :          idata = idata + 1
   32983      386961 :          data_tmp = full_data(idata)
   32984      386961 :          data_tmp = ISHFT(data_tmp, 21)
   32985      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32986      386961 :          pack_tmp = ISHFT(pack_tmp, -18)
   32987      386961 :          idata = idata + 1
   32988      386961 :          data_tmp = full_data(idata)
   32989      386961 :          data_tmp = ISHFT(data_tmp, 21)
   32990      386961 :          data_tmp = IAND(data_tmp, mask_left(18))
   32991      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32992      386961 :          ipack = ipack + 1
   32993      386961 :          packed_data(ipack) = pack_tmp
   32994      386961 :          data_tmp = full_data(idata)
   32995      386961 :          pack_tmp = ISHFT(data_tmp, 39)
   32996      386961 :          pack_tmp = ISHFT(pack_tmp, -39)
   32997      386961 :          idata = idata + 1
   32998      386961 :          data_tmp = full_data(idata)
   32999      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33000      386961 :          data_tmp = IAND(data_tmp, mask_left(39))
   33001      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33002      386961 :          ipack = ipack + 1
   33003      386961 :          packed_data(ipack) = pack_tmp
   33004      386961 :          data_tmp = full_data(idata)
   33005      386961 :          pack_tmp = ISHFT(data_tmp, 60)
   33006      386961 :          pack_tmp = ISHFT(pack_tmp, -43)
   33007      386961 :          idata = idata + 1
   33008      386961 :          data_tmp = full_data(idata)
   33009      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33010      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33011      386961 :          pack_tmp = ISHFT(pack_tmp, -17)
   33012      386961 :          idata = idata + 1
   33013      386961 :          data_tmp = full_data(idata)
   33014      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33015      386961 :          data_tmp = IAND(data_tmp, mask_left(17))
   33016      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33017      386961 :          ipack = ipack + 1
   33018      386961 :          packed_data(ipack) = pack_tmp
   33019      386961 :          data_tmp = full_data(idata)
   33020      386961 :          pack_tmp = ISHFT(data_tmp, 38)
   33021      386961 :          pack_tmp = ISHFT(pack_tmp, -38)
   33022      386961 :          idata = idata + 1
   33023      386961 :          data_tmp = full_data(idata)
   33024      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33025      386961 :          data_tmp = IAND(data_tmp, mask_left(38))
   33026      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33027      386961 :          ipack = ipack + 1
   33028      386961 :          packed_data(ipack) = pack_tmp
   33029      386961 :          data_tmp = full_data(idata)
   33030      386961 :          pack_tmp = ISHFT(data_tmp, 59)
   33031      386961 :          pack_tmp = ISHFT(pack_tmp, -43)
   33032      386961 :          idata = idata + 1
   33033      386961 :          data_tmp = full_data(idata)
   33034      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33035      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33036      386961 :          pack_tmp = ISHFT(pack_tmp, -16)
   33037      386961 :          idata = idata + 1
   33038      386961 :          data_tmp = full_data(idata)
   33039      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33040      386961 :          data_tmp = IAND(data_tmp, mask_left(16))
   33041      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33042      386961 :          ipack = ipack + 1
   33043      386961 :          packed_data(ipack) = pack_tmp
   33044      386961 :          data_tmp = full_data(idata)
   33045      386961 :          pack_tmp = ISHFT(data_tmp, 37)
   33046      386961 :          pack_tmp = ISHFT(pack_tmp, -37)
   33047      386961 :          idata = idata + 1
   33048      386961 :          data_tmp = full_data(idata)
   33049      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33050      386961 :          data_tmp = IAND(data_tmp, mask_left(37))
   33051      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33052      386961 :          ipack = ipack + 1
   33053      386961 :          packed_data(ipack) = pack_tmp
   33054      386961 :          data_tmp = full_data(idata)
   33055      386961 :          pack_tmp = ISHFT(data_tmp, 58)
   33056      386961 :          pack_tmp = ISHFT(pack_tmp, -43)
   33057      386961 :          idata = idata + 1
   33058      386961 :          data_tmp = full_data(idata)
   33059      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33060      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33061      386961 :          pack_tmp = ISHFT(pack_tmp, -15)
   33062      386961 :          idata = idata + 1
   33063      386961 :          data_tmp = full_data(idata)
   33064      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33065      386961 :          data_tmp = IAND(data_tmp, mask_left(15))
   33066      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33067      386961 :          ipack = ipack + 1
   33068      386961 :          packed_data(ipack) = pack_tmp
   33069      386961 :          data_tmp = full_data(idata)
   33070      386961 :          pack_tmp = ISHFT(data_tmp, 36)
   33071      386961 :          pack_tmp = ISHFT(pack_tmp, -36)
   33072      386961 :          idata = idata + 1
   33073      386961 :          data_tmp = full_data(idata)
   33074      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33075      386961 :          data_tmp = IAND(data_tmp, mask_left(36))
   33076      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33077      386961 :          ipack = ipack + 1
   33078      386961 :          packed_data(ipack) = pack_tmp
   33079      386961 :          data_tmp = full_data(idata)
   33080      386961 :          pack_tmp = ISHFT(data_tmp, 57)
   33081      386961 :          pack_tmp = ISHFT(pack_tmp, -43)
   33082      386961 :          idata = idata + 1
   33083      386961 :          data_tmp = full_data(idata)
   33084      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33085      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33086      386961 :          pack_tmp = ISHFT(pack_tmp, -14)
   33087      386961 :          idata = idata + 1
   33088      386961 :          data_tmp = full_data(idata)
   33089      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33090      386961 :          data_tmp = IAND(data_tmp, mask_left(14))
   33091      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33092      386961 :          ipack = ipack + 1
   33093      386961 :          packed_data(ipack) = pack_tmp
   33094      386961 :          data_tmp = full_data(idata)
   33095      386961 :          pack_tmp = ISHFT(data_tmp, 35)
   33096      386961 :          pack_tmp = ISHFT(pack_tmp, -35)
   33097      386961 :          idata = idata + 1
   33098      386961 :          data_tmp = full_data(idata)
   33099      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33100      386961 :          data_tmp = IAND(data_tmp, mask_left(35))
   33101      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33102      386961 :          ipack = ipack + 1
   33103      386961 :          packed_data(ipack) = pack_tmp
   33104      386961 :          data_tmp = full_data(idata)
   33105      386961 :          pack_tmp = ISHFT(data_tmp, 56)
   33106      386961 :          pack_tmp = ISHFT(pack_tmp, -43)
   33107      386961 :          idata = idata + 1
   33108      386961 :          data_tmp = full_data(idata)
   33109      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33110      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33111      386961 :          pack_tmp = ISHFT(pack_tmp, -13)
   33112      386961 :          idata = idata + 1
   33113      386961 :          data_tmp = full_data(idata)
   33114      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33115      386961 :          data_tmp = IAND(data_tmp, mask_left(13))
   33116      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33117      386961 :          ipack = ipack + 1
   33118      386961 :          packed_data(ipack) = pack_tmp
   33119      386961 :          data_tmp = full_data(idata)
   33120      386961 :          pack_tmp = ISHFT(data_tmp, 34)
   33121      386961 :          pack_tmp = ISHFT(pack_tmp, -34)
   33122      386961 :          idata = idata + 1
   33123      386961 :          data_tmp = full_data(idata)
   33124      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33125      386961 :          data_tmp = IAND(data_tmp, mask_left(34))
   33126      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33127      386961 :          ipack = ipack + 1
   33128      386961 :          packed_data(ipack) = pack_tmp
   33129      386961 :          data_tmp = full_data(idata)
   33130      386961 :          pack_tmp = ISHFT(data_tmp, 55)
   33131      386961 :          pack_tmp = ISHFT(pack_tmp, -43)
   33132      386961 :          idata = idata + 1
   33133      386961 :          data_tmp = full_data(idata)
   33134      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33135      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33136      386961 :          pack_tmp = ISHFT(pack_tmp, -12)
   33137      386961 :          idata = idata + 1
   33138      386961 :          data_tmp = full_data(idata)
   33139      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33140      386961 :          data_tmp = IAND(data_tmp, mask_left(12))
   33141      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33142      386961 :          ipack = ipack + 1
   33143      386961 :          packed_data(ipack) = pack_tmp
   33144      386961 :          data_tmp = full_data(idata)
   33145      386961 :          pack_tmp = ISHFT(data_tmp, 33)
   33146      386961 :          pack_tmp = ISHFT(pack_tmp, -33)
   33147      386961 :          idata = idata + 1
   33148      386961 :          data_tmp = full_data(idata)
   33149      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33150      386961 :          data_tmp = IAND(data_tmp, mask_left(33))
   33151      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33152      386961 :          ipack = ipack + 1
   33153      386961 :          packed_data(ipack) = pack_tmp
   33154      386961 :          data_tmp = full_data(idata)
   33155      386961 :          pack_tmp = ISHFT(data_tmp, 54)
   33156      386961 :          pack_tmp = ISHFT(pack_tmp, -43)
   33157      386961 :          idata = idata + 1
   33158      386961 :          data_tmp = full_data(idata)
   33159      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33160      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33161      386961 :          pack_tmp = ISHFT(pack_tmp, -11)
   33162      386961 :          idata = idata + 1
   33163      386961 :          data_tmp = full_data(idata)
   33164      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33165      386961 :          data_tmp = IAND(data_tmp, mask_left(11))
   33166      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33167      386961 :          ipack = ipack + 1
   33168      386961 :          packed_data(ipack) = pack_tmp
   33169      386961 :          data_tmp = full_data(idata)
   33170      386961 :          pack_tmp = ISHFT(data_tmp, 32)
   33171      386961 :          pack_tmp = ISHFT(pack_tmp, -32)
   33172      386961 :          idata = idata + 1
   33173      386961 :          data_tmp = full_data(idata)
   33174      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33175      386961 :          data_tmp = IAND(data_tmp, mask_left(32))
   33176      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33177      386961 :          ipack = ipack + 1
   33178      386961 :          packed_data(ipack) = pack_tmp
   33179      386961 :          data_tmp = full_data(idata)
   33180      386961 :          pack_tmp = ISHFT(data_tmp, 53)
   33181      386961 :          pack_tmp = ISHFT(pack_tmp, -43)
   33182      386961 :          idata = idata + 1
   33183      386961 :          data_tmp = full_data(idata)
   33184      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33185      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33186      386961 :          pack_tmp = ISHFT(pack_tmp, -10)
   33187      386961 :          idata = idata + 1
   33188      386961 :          data_tmp = full_data(idata)
   33189      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33190      386961 :          data_tmp = IAND(data_tmp, mask_left(10))
   33191      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33192      386961 :          ipack = ipack + 1
   33193      386961 :          packed_data(ipack) = pack_tmp
   33194      386961 :          data_tmp = full_data(idata)
   33195      386961 :          pack_tmp = ISHFT(data_tmp, 31)
   33196      386961 :          pack_tmp = ISHFT(pack_tmp, -31)
   33197      386961 :          idata = idata + 1
   33198      386961 :          data_tmp = full_data(idata)
   33199      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33200      386961 :          data_tmp = IAND(data_tmp, mask_left(31))
   33201      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33202      386961 :          ipack = ipack + 1
   33203      386961 :          packed_data(ipack) = pack_tmp
   33204      386961 :          data_tmp = full_data(idata)
   33205      386961 :          pack_tmp = ISHFT(data_tmp, 52)
   33206      386961 :          pack_tmp = ISHFT(pack_tmp, -43)
   33207      386961 :          idata = idata + 1
   33208      386961 :          data_tmp = full_data(idata)
   33209      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33210      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33211      386961 :          pack_tmp = ISHFT(pack_tmp, -9)
   33212      386961 :          idata = idata + 1
   33213      386961 :          data_tmp = full_data(idata)
   33214      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33215      386961 :          data_tmp = IAND(data_tmp, mask_left(9))
   33216      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33217      386961 :          ipack = ipack + 1
   33218      386961 :          packed_data(ipack) = pack_tmp
   33219      386961 :          data_tmp = full_data(idata)
   33220      386961 :          pack_tmp = ISHFT(data_tmp, 30)
   33221      386961 :          pack_tmp = ISHFT(pack_tmp, -30)
   33222      386961 :          idata = idata + 1
   33223      386961 :          data_tmp = full_data(idata)
   33224      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33225      386961 :          data_tmp = IAND(data_tmp, mask_left(30))
   33226      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33227      386961 :          ipack = ipack + 1
   33228      386961 :          packed_data(ipack) = pack_tmp
   33229      386961 :          data_tmp = full_data(idata)
   33230      386961 :          pack_tmp = ISHFT(data_tmp, 51)
   33231      386961 :          pack_tmp = ISHFT(pack_tmp, -43)
   33232      386961 :          idata = idata + 1
   33233      386961 :          data_tmp = full_data(idata)
   33234      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33235      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33236      386961 :          pack_tmp = ISHFT(pack_tmp, -8)
   33237      386961 :          idata = idata + 1
   33238      386961 :          data_tmp = full_data(idata)
   33239      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33240      386961 :          data_tmp = IAND(data_tmp, mask_left(8))
   33241      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33242      386961 :          ipack = ipack + 1
   33243      386961 :          packed_data(ipack) = pack_tmp
   33244      386961 :          data_tmp = full_data(idata)
   33245      386961 :          pack_tmp = ISHFT(data_tmp, 29)
   33246      386961 :          pack_tmp = ISHFT(pack_tmp, -29)
   33247      386961 :          idata = idata + 1
   33248      386961 :          data_tmp = full_data(idata)
   33249      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33250      386961 :          data_tmp = IAND(data_tmp, mask_left(29))
   33251      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33252      386961 :          ipack = ipack + 1
   33253      386961 :          packed_data(ipack) = pack_tmp
   33254      386961 :          data_tmp = full_data(idata)
   33255      386961 :          pack_tmp = ISHFT(data_tmp, 50)
   33256      386961 :          pack_tmp = ISHFT(pack_tmp, -43)
   33257      386961 :          idata = idata + 1
   33258      386961 :          data_tmp = full_data(idata)
   33259      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33260      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33261      386961 :          pack_tmp = ISHFT(pack_tmp, -7)
   33262      386961 :          idata = idata + 1
   33263      386961 :          data_tmp = full_data(idata)
   33264      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33265      386961 :          data_tmp = IAND(data_tmp, mask_left(7))
   33266      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33267      386961 :          ipack = ipack + 1
   33268      386961 :          packed_data(ipack) = pack_tmp
   33269      386961 :          data_tmp = full_data(idata)
   33270      386961 :          pack_tmp = ISHFT(data_tmp, 28)
   33271      386961 :          pack_tmp = ISHFT(pack_tmp, -28)
   33272      386961 :          idata = idata + 1
   33273      386961 :          data_tmp = full_data(idata)
   33274      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33275      386961 :          data_tmp = IAND(data_tmp, mask_left(28))
   33276      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33277      386961 :          ipack = ipack + 1
   33278      386961 :          packed_data(ipack) = pack_tmp
   33279      386961 :          data_tmp = full_data(idata)
   33280      386961 :          pack_tmp = ISHFT(data_tmp, 49)
   33281      386961 :          pack_tmp = ISHFT(pack_tmp, -43)
   33282      386961 :          idata = idata + 1
   33283      386961 :          data_tmp = full_data(idata)
   33284      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33285      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33286      386961 :          pack_tmp = ISHFT(pack_tmp, -6)
   33287      386961 :          idata = idata + 1
   33288      386961 :          data_tmp = full_data(idata)
   33289      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33290      386961 :          data_tmp = IAND(data_tmp, mask_left(6))
   33291      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33292      386961 :          ipack = ipack + 1
   33293      386961 :          packed_data(ipack) = pack_tmp
   33294      386961 :          data_tmp = full_data(idata)
   33295      386961 :          pack_tmp = ISHFT(data_tmp, 27)
   33296      386961 :          pack_tmp = ISHFT(pack_tmp, -27)
   33297      386961 :          idata = idata + 1
   33298      386961 :          data_tmp = full_data(idata)
   33299      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33300      386961 :          data_tmp = IAND(data_tmp, mask_left(27))
   33301      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33302      386961 :          ipack = ipack + 1
   33303      386961 :          packed_data(ipack) = pack_tmp
   33304      386961 :          data_tmp = full_data(idata)
   33305      386961 :          pack_tmp = ISHFT(data_tmp, 48)
   33306      386961 :          pack_tmp = ISHFT(pack_tmp, -43)
   33307      386961 :          idata = idata + 1
   33308      386961 :          data_tmp = full_data(idata)
   33309      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33310      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33311      386961 :          pack_tmp = ISHFT(pack_tmp, -5)
   33312      386961 :          idata = idata + 1
   33313      386961 :          data_tmp = full_data(idata)
   33314      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33315      386961 :          data_tmp = IAND(data_tmp, mask_left(5))
   33316      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33317      386961 :          ipack = ipack + 1
   33318      386961 :          packed_data(ipack) = pack_tmp
   33319      386961 :          data_tmp = full_data(idata)
   33320      386961 :          pack_tmp = ISHFT(data_tmp, 26)
   33321      386961 :          pack_tmp = ISHFT(pack_tmp, -26)
   33322      386961 :          idata = idata + 1
   33323      386961 :          data_tmp = full_data(idata)
   33324      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33325      386961 :          data_tmp = IAND(data_tmp, mask_left(26))
   33326      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33327      386961 :          ipack = ipack + 1
   33328      386961 :          packed_data(ipack) = pack_tmp
   33329      386961 :          data_tmp = full_data(idata)
   33330      386961 :          pack_tmp = ISHFT(data_tmp, 47)
   33331      386961 :          pack_tmp = ISHFT(pack_tmp, -43)
   33332      386961 :          idata = idata + 1
   33333      386961 :          data_tmp = full_data(idata)
   33334      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33335      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33336      386961 :          pack_tmp = ISHFT(pack_tmp, -4)
   33337      386961 :          idata = idata + 1
   33338      386961 :          data_tmp = full_data(idata)
   33339      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33340      386961 :          data_tmp = IAND(data_tmp, mask_left(4))
   33341      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33342      386961 :          ipack = ipack + 1
   33343      386961 :          packed_data(ipack) = pack_tmp
   33344      386961 :          data_tmp = full_data(idata)
   33345      386961 :          pack_tmp = ISHFT(data_tmp, 25)
   33346      386961 :          pack_tmp = ISHFT(pack_tmp, -25)
   33347      386961 :          idata = idata + 1
   33348      386961 :          data_tmp = full_data(idata)
   33349      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33350      386961 :          data_tmp = IAND(data_tmp, mask_left(25))
   33351      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33352      386961 :          ipack = ipack + 1
   33353      386961 :          packed_data(ipack) = pack_tmp
   33354      386961 :          data_tmp = full_data(idata)
   33355      386961 :          pack_tmp = ISHFT(data_tmp, 46)
   33356      386961 :          pack_tmp = ISHFT(pack_tmp, -43)
   33357      386961 :          idata = idata + 1
   33358      386961 :          data_tmp = full_data(idata)
   33359      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33360      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33361      386961 :          pack_tmp = ISHFT(pack_tmp, -3)
   33362      386961 :          idata = idata + 1
   33363      386961 :          data_tmp = full_data(idata)
   33364      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33365      386961 :          data_tmp = IAND(data_tmp, mask_left(3))
   33366      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33367      386961 :          ipack = ipack + 1
   33368      386961 :          packed_data(ipack) = pack_tmp
   33369      386961 :          data_tmp = full_data(idata)
   33370      386961 :          pack_tmp = ISHFT(data_tmp, 24)
   33371      386961 :          pack_tmp = ISHFT(pack_tmp, -24)
   33372      386961 :          idata = idata + 1
   33373      386961 :          data_tmp = full_data(idata)
   33374      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33375      386961 :          data_tmp = IAND(data_tmp, mask_left(24))
   33376      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33377      386961 :          ipack = ipack + 1
   33378      386961 :          packed_data(ipack) = pack_tmp
   33379      386961 :          data_tmp = full_data(idata)
   33380      386961 :          pack_tmp = ISHFT(data_tmp, 45)
   33381      386961 :          pack_tmp = ISHFT(pack_tmp, -43)
   33382      386961 :          idata = idata + 1
   33383      386961 :          data_tmp = full_data(idata)
   33384      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33385      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33386      386961 :          pack_tmp = ISHFT(pack_tmp, -2)
   33387      386961 :          idata = idata + 1
   33388      386961 :          data_tmp = full_data(idata)
   33389      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33390      386961 :          data_tmp = IAND(data_tmp, mask_left(2))
   33391      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33392      386961 :          ipack = ipack + 1
   33393      386961 :          packed_data(ipack) = pack_tmp
   33394      386961 :          data_tmp = full_data(idata)
   33395      386961 :          pack_tmp = ISHFT(data_tmp, 23)
   33396      386961 :          pack_tmp = ISHFT(pack_tmp, -23)
   33397      386961 :          idata = idata + 1
   33398      386961 :          data_tmp = full_data(idata)
   33399      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33400      386961 :          data_tmp = IAND(data_tmp, mask_left(23))
   33401      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33402      386961 :          ipack = ipack + 1
   33403      386961 :          packed_data(ipack) = pack_tmp
   33404      386961 :          data_tmp = full_data(idata)
   33405      386961 :          pack_tmp = ISHFT(data_tmp, 44)
   33406      386961 :          pack_tmp = ISHFT(pack_tmp, -43)
   33407      386961 :          idata = idata + 1
   33408      386961 :          data_tmp = full_data(idata)
   33409      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33410      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33411      386961 :          pack_tmp = ISHFT(pack_tmp, -1)
   33412      386961 :          idata = idata + 1
   33413      386961 :          data_tmp = full_data(idata)
   33414      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33415      386961 :          data_tmp = IAND(data_tmp, mask_left(1))
   33416      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33417      386961 :          ipack = ipack + 1
   33418      386961 :          packed_data(ipack) = pack_tmp
   33419      386961 :          data_tmp = full_data(idata)
   33420      386961 :          pack_tmp = ISHFT(data_tmp, 22)
   33421      386961 :          pack_tmp = ISHFT(pack_tmp, -22)
   33422      386961 :          idata = idata + 1
   33423      386961 :          data_tmp = full_data(idata)
   33424      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33425      386961 :          data_tmp = IAND(data_tmp, mask_left(22))
   33426      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33427      386961 :          ipack = ipack + 1
   33428      386961 :          packed_data(ipack) = pack_tmp
   33429      386961 :          data_tmp = full_data(idata)
   33430      386961 :          pack_tmp = ISHFT(data_tmp, 43)
   33431      386961 :          pack_tmp = ISHFT(pack_tmp, -43)
   33432      386961 :          idata = idata + 1
   33433      386961 :          data_tmp = full_data(idata)
   33434      386961 :          data_tmp = ISHFT(data_tmp, 21)
   33435      386961 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33436             :          pack_tmp = ISHFT(pack_tmp, 0)
   33437      386961 :          pack_tmp = ISHFT(pack_tmp, 0)
   33438      386961 :          ipack = ipack + 1
   33439      387226 :          packed_data(ipack) = pack_tmp
   33440             :       END DO
   33441       25391 :       IF (Ndata_rep < Ndata) THEN
   33442        2270 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   33443             :       END IF
   33444       25391 :    END SUBROUTINE ints2bits_43
   33445             : 
   33446             : ! **************************************************************************************************
   33447             : !> \brief ...
   33448             : !> \param Ndata ...
   33449             : !> \param packed_data ...
   33450             : !> \param full_data ...
   33451             : ! **************************************************************************************************
   33452      113784 :    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      113784 :       ipack = 0
   33463      113784 :       idata = 0
   33464      113784 :       pack_tmp = 0
   33465      113784 :       Ndata_rep = (Ndata/64)*64
   33466      113784 :       DO kdata = 1, Ndata_rep, 64
   33467     1668564 :          idata = idata + 1
   33468     1668564 :          data_tmp = ISHFT(pack_tmp, 43)
   33469     1668564 :          ipack = ipack + 1
   33470     1668564 :          pack_tmp = packed_data(ipack)
   33471     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   33472     1668564 :          pack_tmp = ISHFT(pack_tmp, -43)
   33473     1668564 :          idata = idata + 1
   33474     1668564 :          data_tmp = ISHFT(pack_tmp, 22)
   33475     1668564 :          ipack = ipack + 1
   33476     1668564 :          pack_tmp = packed_data(ipack)
   33477     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   33478     1668564 :          pack_tmp = ISHFT(pack_tmp, -22)
   33479     1668564 :          idata = idata + 1
   33480     1668564 :          data_tmp = ISHFT(pack_tmp, 1)
   33481     1668564 :          ipack = ipack + 1
   33482     1668564 :          pack_tmp = packed_data(ipack)
   33483     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   33484     1668564 :          pack_tmp = ISHFT(pack_tmp, -1)
   33485     1668564 :          idata = idata + 1
   33486     1668564 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33487     1668564 :          full_data(idata) = data_tmp
   33488     1668564 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33489     1668564 :          idata = idata + 1
   33490     1668564 :          data_tmp = ISHFT(pack_tmp, 23)
   33491     1668564 :          ipack = ipack + 1
   33492     1668564 :          pack_tmp = packed_data(ipack)
   33493     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   33494     1668564 :          pack_tmp = ISHFT(pack_tmp, -23)
   33495     1668564 :          idata = idata + 1
   33496     1668564 :          data_tmp = ISHFT(pack_tmp, 2)
   33497     1668564 :          ipack = ipack + 1
   33498     1668564 :          pack_tmp = packed_data(ipack)
   33499     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   33500     1668564 :          pack_tmp = ISHFT(pack_tmp, -2)
   33501     1668564 :          idata = idata + 1
   33502     1668564 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33503     1668564 :          full_data(idata) = data_tmp
   33504     1668564 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33505     1668564 :          idata = idata + 1
   33506     1668564 :          data_tmp = ISHFT(pack_tmp, 24)
   33507     1668564 :          ipack = ipack + 1
   33508     1668564 :          pack_tmp = packed_data(ipack)
   33509     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   33510     1668564 :          pack_tmp = ISHFT(pack_tmp, -24)
   33511     1668564 :          idata = idata + 1
   33512     1668564 :          data_tmp = ISHFT(pack_tmp, 3)
   33513     1668564 :          ipack = ipack + 1
   33514     1668564 :          pack_tmp = packed_data(ipack)
   33515     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   33516     1668564 :          pack_tmp = ISHFT(pack_tmp, -3)
   33517     1668564 :          idata = idata + 1
   33518     1668564 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33519     1668564 :          full_data(idata) = data_tmp
   33520     1668564 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33521     1668564 :          idata = idata + 1
   33522     1668564 :          data_tmp = ISHFT(pack_tmp, 25)
   33523     1668564 :          ipack = ipack + 1
   33524     1668564 :          pack_tmp = packed_data(ipack)
   33525     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   33526     1668564 :          pack_tmp = ISHFT(pack_tmp, -25)
   33527     1668564 :          idata = idata + 1
   33528     1668564 :          data_tmp = ISHFT(pack_tmp, 4)
   33529     1668564 :          ipack = ipack + 1
   33530     1668564 :          pack_tmp = packed_data(ipack)
   33531     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   33532     1668564 :          pack_tmp = ISHFT(pack_tmp, -4)
   33533     1668564 :          idata = idata + 1
   33534     1668564 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33535     1668564 :          full_data(idata) = data_tmp
   33536     1668564 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33537     1668564 :          idata = idata + 1
   33538     1668564 :          data_tmp = ISHFT(pack_tmp, 26)
   33539     1668564 :          ipack = ipack + 1
   33540     1668564 :          pack_tmp = packed_data(ipack)
   33541     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   33542     1668564 :          pack_tmp = ISHFT(pack_tmp, -26)
   33543     1668564 :          idata = idata + 1
   33544     1668564 :          data_tmp = ISHFT(pack_tmp, 5)
   33545     1668564 :          ipack = ipack + 1
   33546     1668564 :          pack_tmp = packed_data(ipack)
   33547     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   33548     1668564 :          pack_tmp = ISHFT(pack_tmp, -5)
   33549     1668564 :          idata = idata + 1
   33550     1668564 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33551     1668564 :          full_data(idata) = data_tmp
   33552     1668564 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33553     1668564 :          idata = idata + 1
   33554     1668564 :          data_tmp = ISHFT(pack_tmp, 27)
   33555     1668564 :          ipack = ipack + 1
   33556     1668564 :          pack_tmp = packed_data(ipack)
   33557     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   33558     1668564 :          pack_tmp = ISHFT(pack_tmp, -27)
   33559     1668564 :          idata = idata + 1
   33560     1668564 :          data_tmp = ISHFT(pack_tmp, 6)
   33561     1668564 :          ipack = ipack + 1
   33562     1668564 :          pack_tmp = packed_data(ipack)
   33563     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   33564     1668564 :          pack_tmp = ISHFT(pack_tmp, -6)
   33565     1668564 :          idata = idata + 1
   33566     1668564 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33567     1668564 :          full_data(idata) = data_tmp
   33568     1668564 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33569     1668564 :          idata = idata + 1
   33570     1668564 :          data_tmp = ISHFT(pack_tmp, 28)
   33571     1668564 :          ipack = ipack + 1
   33572     1668564 :          pack_tmp = packed_data(ipack)
   33573     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   33574     1668564 :          pack_tmp = ISHFT(pack_tmp, -28)
   33575     1668564 :          idata = idata + 1
   33576     1668564 :          data_tmp = ISHFT(pack_tmp, 7)
   33577     1668564 :          ipack = ipack + 1
   33578     1668564 :          pack_tmp = packed_data(ipack)
   33579     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   33580     1668564 :          pack_tmp = ISHFT(pack_tmp, -7)
   33581     1668564 :          idata = idata + 1
   33582     1668564 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33583     1668564 :          full_data(idata) = data_tmp
   33584     1668564 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33585     1668564 :          idata = idata + 1
   33586     1668564 :          data_tmp = ISHFT(pack_tmp, 29)
   33587     1668564 :          ipack = ipack + 1
   33588     1668564 :          pack_tmp = packed_data(ipack)
   33589     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   33590     1668564 :          pack_tmp = ISHFT(pack_tmp, -29)
   33591     1668564 :          idata = idata + 1
   33592     1668564 :          data_tmp = ISHFT(pack_tmp, 8)
   33593     1668564 :          ipack = ipack + 1
   33594     1668564 :          pack_tmp = packed_data(ipack)
   33595     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   33596     1668564 :          pack_tmp = ISHFT(pack_tmp, -8)
   33597     1668564 :          idata = idata + 1
   33598     1668564 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33599     1668564 :          full_data(idata) = data_tmp
   33600     1668564 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33601     1668564 :          idata = idata + 1
   33602     1668564 :          data_tmp = ISHFT(pack_tmp, 30)
   33603     1668564 :          ipack = ipack + 1
   33604     1668564 :          pack_tmp = packed_data(ipack)
   33605     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   33606     1668564 :          pack_tmp = ISHFT(pack_tmp, -30)
   33607     1668564 :          idata = idata + 1
   33608     1668564 :          data_tmp = ISHFT(pack_tmp, 9)
   33609     1668564 :          ipack = ipack + 1
   33610     1668564 :          pack_tmp = packed_data(ipack)
   33611     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   33612     1668564 :          pack_tmp = ISHFT(pack_tmp, -9)
   33613     1668564 :          idata = idata + 1
   33614     1668564 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33615     1668564 :          full_data(idata) = data_tmp
   33616     1668564 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33617     1668564 :          idata = idata + 1
   33618     1668564 :          data_tmp = ISHFT(pack_tmp, 31)
   33619     1668564 :          ipack = ipack + 1
   33620     1668564 :          pack_tmp = packed_data(ipack)
   33621     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   33622     1668564 :          pack_tmp = ISHFT(pack_tmp, -31)
   33623     1668564 :          idata = idata + 1
   33624     1668564 :          data_tmp = ISHFT(pack_tmp, 10)
   33625     1668564 :          ipack = ipack + 1
   33626     1668564 :          pack_tmp = packed_data(ipack)
   33627     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   33628     1668564 :          pack_tmp = ISHFT(pack_tmp, -10)
   33629     1668564 :          idata = idata + 1
   33630     1668564 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33631     1668564 :          full_data(idata) = data_tmp
   33632     1668564 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33633     1668564 :          idata = idata + 1
   33634     1668564 :          data_tmp = ISHFT(pack_tmp, 32)
   33635     1668564 :          ipack = ipack + 1
   33636     1668564 :          pack_tmp = packed_data(ipack)
   33637     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   33638     1668564 :          pack_tmp = ISHFT(pack_tmp, -32)
   33639     1668564 :          idata = idata + 1
   33640     1668564 :          data_tmp = ISHFT(pack_tmp, 11)
   33641     1668564 :          ipack = ipack + 1
   33642     1668564 :          pack_tmp = packed_data(ipack)
   33643     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   33644     1668564 :          pack_tmp = ISHFT(pack_tmp, -11)
   33645     1668564 :          idata = idata + 1
   33646     1668564 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33647     1668564 :          full_data(idata) = data_tmp
   33648     1668564 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33649     1668564 :          idata = idata + 1
   33650     1668564 :          data_tmp = ISHFT(pack_tmp, 33)
   33651     1668564 :          ipack = ipack + 1
   33652     1668564 :          pack_tmp = packed_data(ipack)
   33653     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   33654     1668564 :          pack_tmp = ISHFT(pack_tmp, -33)
   33655     1668564 :          idata = idata + 1
   33656     1668564 :          data_tmp = ISHFT(pack_tmp, 12)
   33657     1668564 :          ipack = ipack + 1
   33658     1668564 :          pack_tmp = packed_data(ipack)
   33659     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   33660     1668564 :          pack_tmp = ISHFT(pack_tmp, -12)
   33661     1668564 :          idata = idata + 1
   33662     1668564 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33663     1668564 :          full_data(idata) = data_tmp
   33664     1668564 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33665     1668564 :          idata = idata + 1
   33666     1668564 :          data_tmp = ISHFT(pack_tmp, 34)
   33667     1668564 :          ipack = ipack + 1
   33668     1668564 :          pack_tmp = packed_data(ipack)
   33669     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   33670     1668564 :          pack_tmp = ISHFT(pack_tmp, -34)
   33671     1668564 :          idata = idata + 1
   33672     1668564 :          data_tmp = ISHFT(pack_tmp, 13)
   33673     1668564 :          ipack = ipack + 1
   33674     1668564 :          pack_tmp = packed_data(ipack)
   33675     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   33676     1668564 :          pack_tmp = ISHFT(pack_tmp, -13)
   33677     1668564 :          idata = idata + 1
   33678     1668564 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33679     1668564 :          full_data(idata) = data_tmp
   33680     1668564 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33681     1668564 :          idata = idata + 1
   33682     1668564 :          data_tmp = ISHFT(pack_tmp, 35)
   33683     1668564 :          ipack = ipack + 1
   33684     1668564 :          pack_tmp = packed_data(ipack)
   33685     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   33686     1668564 :          pack_tmp = ISHFT(pack_tmp, -35)
   33687     1668564 :          idata = idata + 1
   33688     1668564 :          data_tmp = ISHFT(pack_tmp, 14)
   33689     1668564 :          ipack = ipack + 1
   33690     1668564 :          pack_tmp = packed_data(ipack)
   33691     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   33692     1668564 :          pack_tmp = ISHFT(pack_tmp, -14)
   33693     1668564 :          idata = idata + 1
   33694     1668564 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33695     1668564 :          full_data(idata) = data_tmp
   33696     1668564 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33697     1668564 :          idata = idata + 1
   33698     1668564 :          data_tmp = ISHFT(pack_tmp, 36)
   33699     1668564 :          ipack = ipack + 1
   33700     1668564 :          pack_tmp = packed_data(ipack)
   33701     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   33702     1668564 :          pack_tmp = ISHFT(pack_tmp, -36)
   33703     1668564 :          idata = idata + 1
   33704     1668564 :          data_tmp = ISHFT(pack_tmp, 15)
   33705     1668564 :          ipack = ipack + 1
   33706     1668564 :          pack_tmp = packed_data(ipack)
   33707     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   33708     1668564 :          pack_tmp = ISHFT(pack_tmp, -15)
   33709     1668564 :          idata = idata + 1
   33710     1668564 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33711     1668564 :          full_data(idata) = data_tmp
   33712     1668564 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33713     1668564 :          idata = idata + 1
   33714     1668564 :          data_tmp = ISHFT(pack_tmp, 37)
   33715     1668564 :          ipack = ipack + 1
   33716     1668564 :          pack_tmp = packed_data(ipack)
   33717     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   33718     1668564 :          pack_tmp = ISHFT(pack_tmp, -37)
   33719     1668564 :          idata = idata + 1
   33720     1668564 :          data_tmp = ISHFT(pack_tmp, 16)
   33721     1668564 :          ipack = ipack + 1
   33722     1668564 :          pack_tmp = packed_data(ipack)
   33723     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   33724     1668564 :          pack_tmp = ISHFT(pack_tmp, -16)
   33725     1668564 :          idata = idata + 1
   33726     1668564 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33727     1668564 :          full_data(idata) = data_tmp
   33728     1668564 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33729     1668564 :          idata = idata + 1
   33730     1668564 :          data_tmp = ISHFT(pack_tmp, 38)
   33731     1668564 :          ipack = ipack + 1
   33732     1668564 :          pack_tmp = packed_data(ipack)
   33733     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   33734     1668564 :          pack_tmp = ISHFT(pack_tmp, -38)
   33735     1668564 :          idata = idata + 1
   33736     1668564 :          data_tmp = ISHFT(pack_tmp, 17)
   33737     1668564 :          ipack = ipack + 1
   33738     1668564 :          pack_tmp = packed_data(ipack)
   33739     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   33740     1668564 :          pack_tmp = ISHFT(pack_tmp, -17)
   33741     1668564 :          idata = idata + 1
   33742     1668564 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33743     1668564 :          full_data(idata) = data_tmp
   33744     1668564 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33745     1668564 :          idata = idata + 1
   33746     1668564 :          data_tmp = ISHFT(pack_tmp, 39)
   33747     1668564 :          ipack = ipack + 1
   33748     1668564 :          pack_tmp = packed_data(ipack)
   33749     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   33750     1668564 :          pack_tmp = ISHFT(pack_tmp, -39)
   33751     1668564 :          idata = idata + 1
   33752     1668564 :          data_tmp = ISHFT(pack_tmp, 18)
   33753     1668564 :          ipack = ipack + 1
   33754     1668564 :          pack_tmp = packed_data(ipack)
   33755     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   33756     1668564 :          pack_tmp = ISHFT(pack_tmp, -18)
   33757     1668564 :          idata = idata + 1
   33758     1668564 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33759     1668564 :          full_data(idata) = data_tmp
   33760     1668564 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33761     1668564 :          idata = idata + 1
   33762     1668564 :          data_tmp = ISHFT(pack_tmp, 40)
   33763     1668564 :          ipack = ipack + 1
   33764     1668564 :          pack_tmp = packed_data(ipack)
   33765     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   33766     1668564 :          pack_tmp = ISHFT(pack_tmp, -40)
   33767     1668564 :          idata = idata + 1
   33768     1668564 :          data_tmp = ISHFT(pack_tmp, 19)
   33769     1668564 :          ipack = ipack + 1
   33770     1668564 :          pack_tmp = packed_data(ipack)
   33771     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   33772     1668564 :          pack_tmp = ISHFT(pack_tmp, -19)
   33773     1668564 :          idata = idata + 1
   33774     1668564 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33775     1668564 :          full_data(idata) = data_tmp
   33776     1668564 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33777     1668564 :          idata = idata + 1
   33778     1668564 :          data_tmp = ISHFT(pack_tmp, 41)
   33779     1668564 :          ipack = ipack + 1
   33780     1668564 :          pack_tmp = packed_data(ipack)
   33781     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   33782     1668564 :          pack_tmp = ISHFT(pack_tmp, -41)
   33783     1668564 :          idata = idata + 1
   33784     1668564 :          data_tmp = ISHFT(pack_tmp, 20)
   33785     1668564 :          ipack = ipack + 1
   33786     1668564 :          pack_tmp = packed_data(ipack)
   33787     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   33788     1668564 :          pack_tmp = ISHFT(pack_tmp, -20)
   33789     1668564 :          idata = idata + 1
   33790     1668564 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33791     1668564 :          full_data(idata) = data_tmp
   33792     1668564 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33793     1668564 :          idata = idata + 1
   33794     1668564 :          data_tmp = ISHFT(pack_tmp, 42)
   33795     1668564 :          ipack = ipack + 1
   33796     1668564 :          pack_tmp = packed_data(ipack)
   33797     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   33798     1668564 :          pack_tmp = ISHFT(pack_tmp, -42)
   33799     1668564 :          idata = idata + 1
   33800     1668564 :          data_tmp = ISHFT(pack_tmp, 21)
   33801     1668564 :          ipack = ipack + 1
   33802     1668564 :          pack_tmp = packed_data(ipack)
   33803     1668564 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   33804     1668564 :          pack_tmp = ISHFT(pack_tmp, -21)
   33805     1668564 :          idata = idata + 1
   33806     1668564 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33807     1668564 :          full_data(idata) = data_tmp
   33808     1670933 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33809             :       END DO
   33810      113784 :       IF (Ndata_rep < Ndata) THEN
   33811       17880 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   33812             :       END IF
   33813      113784 :    END SUBROUTINE bits2ints_43
   33814             : 
   33815             : ! **************************************************************************************************
   33816             : !> \brief ...
   33817             : !> \param Ndata ...
   33818             : !> \param packed_data ...
   33819             : !> \param full_data ...
   33820             : ! **************************************************************************************************
   33821       26915 :    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       26915 :       idata = 0
   33832       26915 :       ipack = 0
   33833       26915 :       Ndata_rep = (Ndata/64)*64
   33834       26915 :       DO kdata = 1, Ndata_rep, 64
   33835      399309 :          pack_tmp = 0
   33836      399309 :          idata = idata + 1
   33837      399309 :          data_tmp = full_data(idata)
   33838      399309 :          data_tmp = ISHFT(data_tmp, 20)
   33839      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33840      399309 :          pack_tmp = ISHFT(pack_tmp, -20)
   33841      399309 :          idata = idata + 1
   33842      399309 :          data_tmp = full_data(idata)
   33843      399309 :          data_tmp = ISHFT(data_tmp, 20)
   33844      399309 :          data_tmp = IAND(data_tmp, mask_left(20))
   33845      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33846      399309 :          ipack = ipack + 1
   33847      399309 :          packed_data(ipack) = pack_tmp
   33848      399309 :          data_tmp = full_data(idata)
   33849      399309 :          pack_tmp = ISHFT(data_tmp, 40)
   33850      399309 :          pack_tmp = ISHFT(pack_tmp, -40)
   33851      399309 :          idata = idata + 1
   33852      399309 :          data_tmp = full_data(idata)
   33853      399309 :          data_tmp = ISHFT(data_tmp, 20)
   33854      399309 :          data_tmp = IAND(data_tmp, mask_left(40))
   33855      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33856      399309 :          ipack = ipack + 1
   33857      399309 :          packed_data(ipack) = pack_tmp
   33858      399309 :          data_tmp = full_data(idata)
   33859      399309 :          pack_tmp = ISHFT(data_tmp, 60)
   33860      399309 :          pack_tmp = ISHFT(pack_tmp, -44)
   33861      399309 :          idata = idata + 1
   33862      399309 :          data_tmp = full_data(idata)
   33863      399309 :          data_tmp = ISHFT(data_tmp, 20)
   33864      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33865      399309 :          pack_tmp = ISHFT(pack_tmp, -16)
   33866      399309 :          idata = idata + 1
   33867      399309 :          data_tmp = full_data(idata)
   33868      399309 :          data_tmp = ISHFT(data_tmp, 20)
   33869      399309 :          data_tmp = IAND(data_tmp, mask_left(16))
   33870      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33871      399309 :          ipack = ipack + 1
   33872      399309 :          packed_data(ipack) = pack_tmp
   33873      399309 :          data_tmp = full_data(idata)
   33874      399309 :          pack_tmp = ISHFT(data_tmp, 36)
   33875      399309 :          pack_tmp = ISHFT(pack_tmp, -36)
   33876      399309 :          idata = idata + 1
   33877      399309 :          data_tmp = full_data(idata)
   33878      399309 :          data_tmp = ISHFT(data_tmp, 20)
   33879      399309 :          data_tmp = IAND(data_tmp, mask_left(36))
   33880      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33881      399309 :          ipack = ipack + 1
   33882      399309 :          packed_data(ipack) = pack_tmp
   33883      399309 :          data_tmp = full_data(idata)
   33884      399309 :          pack_tmp = ISHFT(data_tmp, 56)
   33885      399309 :          pack_tmp = ISHFT(pack_tmp, -44)
   33886      399309 :          idata = idata + 1
   33887      399309 :          data_tmp = full_data(idata)
   33888      399309 :          data_tmp = ISHFT(data_tmp, 20)
   33889      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33890      399309 :          pack_tmp = ISHFT(pack_tmp, -12)
   33891      399309 :          idata = idata + 1
   33892      399309 :          data_tmp = full_data(idata)
   33893      399309 :          data_tmp = ISHFT(data_tmp, 20)
   33894      399309 :          data_tmp = IAND(data_tmp, mask_left(12))
   33895      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33896      399309 :          ipack = ipack + 1
   33897      399309 :          packed_data(ipack) = pack_tmp
   33898      399309 :          data_tmp = full_data(idata)
   33899      399309 :          pack_tmp = ISHFT(data_tmp, 32)
   33900      399309 :          pack_tmp = ISHFT(pack_tmp, -32)
   33901      399309 :          idata = idata + 1
   33902      399309 :          data_tmp = full_data(idata)
   33903      399309 :          data_tmp = ISHFT(data_tmp, 20)
   33904      399309 :          data_tmp = IAND(data_tmp, mask_left(32))
   33905      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33906      399309 :          ipack = ipack + 1
   33907      399309 :          packed_data(ipack) = pack_tmp
   33908      399309 :          data_tmp = full_data(idata)
   33909      399309 :          pack_tmp = ISHFT(data_tmp, 52)
   33910      399309 :          pack_tmp = ISHFT(pack_tmp, -44)
   33911      399309 :          idata = idata + 1
   33912      399309 :          data_tmp = full_data(idata)
   33913      399309 :          data_tmp = ISHFT(data_tmp, 20)
   33914      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33915      399309 :          pack_tmp = ISHFT(pack_tmp, -8)
   33916      399309 :          idata = idata + 1
   33917      399309 :          data_tmp = full_data(idata)
   33918      399309 :          data_tmp = ISHFT(data_tmp, 20)
   33919      399309 :          data_tmp = IAND(data_tmp, mask_left(8))
   33920      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33921      399309 :          ipack = ipack + 1
   33922      399309 :          packed_data(ipack) = pack_tmp
   33923      399309 :          data_tmp = full_data(idata)
   33924      399309 :          pack_tmp = ISHFT(data_tmp, 28)
   33925      399309 :          pack_tmp = ISHFT(pack_tmp, -28)
   33926      399309 :          idata = idata + 1
   33927      399309 :          data_tmp = full_data(idata)
   33928      399309 :          data_tmp = ISHFT(data_tmp, 20)
   33929      399309 :          data_tmp = IAND(data_tmp, mask_left(28))
   33930      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33931      399309 :          ipack = ipack + 1
   33932      399309 :          packed_data(ipack) = pack_tmp
   33933      399309 :          data_tmp = full_data(idata)
   33934      399309 :          pack_tmp = ISHFT(data_tmp, 48)
   33935      399309 :          pack_tmp = ISHFT(pack_tmp, -44)
   33936      399309 :          idata = idata + 1
   33937      399309 :          data_tmp = full_data(idata)
   33938      399309 :          data_tmp = ISHFT(data_tmp, 20)
   33939      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33940      399309 :          pack_tmp = ISHFT(pack_tmp, -4)
   33941      399309 :          idata = idata + 1
   33942      399309 :          data_tmp = full_data(idata)
   33943      399309 :          data_tmp = ISHFT(data_tmp, 20)
   33944      399309 :          data_tmp = IAND(data_tmp, mask_left(4))
   33945      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33946      399309 :          ipack = ipack + 1
   33947      399309 :          packed_data(ipack) = pack_tmp
   33948      399309 :          data_tmp = full_data(idata)
   33949      399309 :          pack_tmp = ISHFT(data_tmp, 24)
   33950      399309 :          pack_tmp = ISHFT(pack_tmp, -24)
   33951      399309 :          idata = idata + 1
   33952      399309 :          data_tmp = full_data(idata)
   33953      399309 :          data_tmp = ISHFT(data_tmp, 20)
   33954      399309 :          data_tmp = IAND(data_tmp, mask_left(24))
   33955      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33956      399309 :          ipack = ipack + 1
   33957      399309 :          packed_data(ipack) = pack_tmp
   33958      399309 :          data_tmp = full_data(idata)
   33959      399309 :          pack_tmp = ISHFT(data_tmp, 44)
   33960      399309 :          pack_tmp = ISHFT(pack_tmp, -44)
   33961      399309 :          idata = idata + 1
   33962      399309 :          data_tmp = full_data(idata)
   33963      399309 :          data_tmp = ISHFT(data_tmp, 20)
   33964      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33965      399309 :          pack_tmp = ISHFT(pack_tmp, 0)
   33966      399309 :          idata = idata + 1
   33967      399309 :          data_tmp = full_data(idata)
   33968             :          data_tmp = ISHFT(data_tmp, 20)
   33969      399309 :          data_tmp = IAND(data_tmp, mask_left(0))
   33970      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33971      399309 :          ipack = ipack + 1
   33972      399309 :          packed_data(ipack) = pack_tmp
   33973      399309 :          data_tmp = full_data(idata)
   33974      399309 :          pack_tmp = ISHFT(data_tmp, 20)
   33975      399309 :          pack_tmp = ISHFT(pack_tmp, -20)
   33976      399309 :          idata = idata + 1
   33977      399309 :          data_tmp = full_data(idata)
   33978      399309 :          data_tmp = ISHFT(data_tmp, 20)
   33979      399309 :          data_tmp = IAND(data_tmp, mask_left(20))
   33980      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33981      399309 :          ipack = ipack + 1
   33982      399309 :          packed_data(ipack) = pack_tmp
   33983      399309 :          data_tmp = full_data(idata)
   33984      399309 :          pack_tmp = ISHFT(data_tmp, 40)
   33985      399309 :          pack_tmp = ISHFT(pack_tmp, -40)
   33986      399309 :          idata = idata + 1
   33987      399309 :          data_tmp = full_data(idata)
   33988      399309 :          data_tmp = ISHFT(data_tmp, 20)
   33989      399309 :          data_tmp = IAND(data_tmp, mask_left(40))
   33990      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33991      399309 :          ipack = ipack + 1
   33992      399309 :          packed_data(ipack) = pack_tmp
   33993      399309 :          data_tmp = full_data(idata)
   33994      399309 :          pack_tmp = ISHFT(data_tmp, 60)
   33995      399309 :          pack_tmp = ISHFT(pack_tmp, -44)
   33996      399309 :          idata = idata + 1
   33997      399309 :          data_tmp = full_data(idata)
   33998      399309 :          data_tmp = ISHFT(data_tmp, 20)
   33999      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34000      399309 :          pack_tmp = ISHFT(pack_tmp, -16)
   34001      399309 :          idata = idata + 1
   34002      399309 :          data_tmp = full_data(idata)
   34003      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34004      399309 :          data_tmp = IAND(data_tmp, mask_left(16))
   34005      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34006      399309 :          ipack = ipack + 1
   34007      399309 :          packed_data(ipack) = pack_tmp
   34008      399309 :          data_tmp = full_data(idata)
   34009      399309 :          pack_tmp = ISHFT(data_tmp, 36)
   34010      399309 :          pack_tmp = ISHFT(pack_tmp, -36)
   34011      399309 :          idata = idata + 1
   34012      399309 :          data_tmp = full_data(idata)
   34013      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34014      399309 :          data_tmp = IAND(data_tmp, mask_left(36))
   34015      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34016      399309 :          ipack = ipack + 1
   34017      399309 :          packed_data(ipack) = pack_tmp
   34018      399309 :          data_tmp = full_data(idata)
   34019      399309 :          pack_tmp = ISHFT(data_tmp, 56)
   34020      399309 :          pack_tmp = ISHFT(pack_tmp, -44)
   34021      399309 :          idata = idata + 1
   34022      399309 :          data_tmp = full_data(idata)
   34023      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34024      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34025      399309 :          pack_tmp = ISHFT(pack_tmp, -12)
   34026      399309 :          idata = idata + 1
   34027      399309 :          data_tmp = full_data(idata)
   34028      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34029      399309 :          data_tmp = IAND(data_tmp, mask_left(12))
   34030      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34031      399309 :          ipack = ipack + 1
   34032      399309 :          packed_data(ipack) = pack_tmp
   34033      399309 :          data_tmp = full_data(idata)
   34034      399309 :          pack_tmp = ISHFT(data_tmp, 32)
   34035      399309 :          pack_tmp = ISHFT(pack_tmp, -32)
   34036      399309 :          idata = idata + 1
   34037      399309 :          data_tmp = full_data(idata)
   34038      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34039      399309 :          data_tmp = IAND(data_tmp, mask_left(32))
   34040      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34041      399309 :          ipack = ipack + 1
   34042      399309 :          packed_data(ipack) = pack_tmp
   34043      399309 :          data_tmp = full_data(idata)
   34044      399309 :          pack_tmp = ISHFT(data_tmp, 52)
   34045      399309 :          pack_tmp = ISHFT(pack_tmp, -44)
   34046      399309 :          idata = idata + 1
   34047      399309 :          data_tmp = full_data(idata)
   34048      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34049      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34050      399309 :          pack_tmp = ISHFT(pack_tmp, -8)
   34051      399309 :          idata = idata + 1
   34052      399309 :          data_tmp = full_data(idata)
   34053      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34054      399309 :          data_tmp = IAND(data_tmp, mask_left(8))
   34055      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34056      399309 :          ipack = ipack + 1
   34057      399309 :          packed_data(ipack) = pack_tmp
   34058      399309 :          data_tmp = full_data(idata)
   34059      399309 :          pack_tmp = ISHFT(data_tmp, 28)
   34060      399309 :          pack_tmp = ISHFT(pack_tmp, -28)
   34061      399309 :          idata = idata + 1
   34062      399309 :          data_tmp = full_data(idata)
   34063      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34064      399309 :          data_tmp = IAND(data_tmp, mask_left(28))
   34065      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34066      399309 :          ipack = ipack + 1
   34067      399309 :          packed_data(ipack) = pack_tmp
   34068      399309 :          data_tmp = full_data(idata)
   34069      399309 :          pack_tmp = ISHFT(data_tmp, 48)
   34070      399309 :          pack_tmp = ISHFT(pack_tmp, -44)
   34071      399309 :          idata = idata + 1
   34072      399309 :          data_tmp = full_data(idata)
   34073      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34074      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34075      399309 :          pack_tmp = ISHFT(pack_tmp, -4)
   34076      399309 :          idata = idata + 1
   34077      399309 :          data_tmp = full_data(idata)
   34078      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34079      399309 :          data_tmp = IAND(data_tmp, mask_left(4))
   34080      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34081      399309 :          ipack = ipack + 1
   34082      399309 :          packed_data(ipack) = pack_tmp
   34083      399309 :          data_tmp = full_data(idata)
   34084      399309 :          pack_tmp = ISHFT(data_tmp, 24)
   34085      399309 :          pack_tmp = ISHFT(pack_tmp, -24)
   34086      399309 :          idata = idata + 1
   34087      399309 :          data_tmp = full_data(idata)
   34088      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34089      399309 :          data_tmp = IAND(data_tmp, mask_left(24))
   34090      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34091      399309 :          ipack = ipack + 1
   34092      399309 :          packed_data(ipack) = pack_tmp
   34093      399309 :          data_tmp = full_data(idata)
   34094      399309 :          pack_tmp = ISHFT(data_tmp, 44)
   34095      399309 :          pack_tmp = ISHFT(pack_tmp, -44)
   34096      399309 :          idata = idata + 1
   34097      399309 :          data_tmp = full_data(idata)
   34098      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34099      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34100      399309 :          pack_tmp = ISHFT(pack_tmp, 0)
   34101      399309 :          idata = idata + 1
   34102      399309 :          data_tmp = full_data(idata)
   34103             :          data_tmp = ISHFT(data_tmp, 20)
   34104      399309 :          data_tmp = IAND(data_tmp, mask_left(0))
   34105      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34106      399309 :          ipack = ipack + 1
   34107      399309 :          packed_data(ipack) = pack_tmp
   34108      399309 :          data_tmp = full_data(idata)
   34109      399309 :          pack_tmp = ISHFT(data_tmp, 20)
   34110      399309 :          pack_tmp = ISHFT(pack_tmp, -20)
   34111      399309 :          idata = idata + 1
   34112      399309 :          data_tmp = full_data(idata)
   34113      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34114      399309 :          data_tmp = IAND(data_tmp, mask_left(20))
   34115      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34116      399309 :          ipack = ipack + 1
   34117      399309 :          packed_data(ipack) = pack_tmp
   34118      399309 :          data_tmp = full_data(idata)
   34119      399309 :          pack_tmp = ISHFT(data_tmp, 40)
   34120      399309 :          pack_tmp = ISHFT(pack_tmp, -40)
   34121      399309 :          idata = idata + 1
   34122      399309 :          data_tmp = full_data(idata)
   34123      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34124      399309 :          data_tmp = IAND(data_tmp, mask_left(40))
   34125      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34126      399309 :          ipack = ipack + 1
   34127      399309 :          packed_data(ipack) = pack_tmp
   34128      399309 :          data_tmp = full_data(idata)
   34129      399309 :          pack_tmp = ISHFT(data_tmp, 60)
   34130      399309 :          pack_tmp = ISHFT(pack_tmp, -44)
   34131      399309 :          idata = idata + 1
   34132      399309 :          data_tmp = full_data(idata)
   34133      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34134      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34135      399309 :          pack_tmp = ISHFT(pack_tmp, -16)
   34136      399309 :          idata = idata + 1
   34137      399309 :          data_tmp = full_data(idata)
   34138      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34139      399309 :          data_tmp = IAND(data_tmp, mask_left(16))
   34140      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34141      399309 :          ipack = ipack + 1
   34142      399309 :          packed_data(ipack) = pack_tmp
   34143      399309 :          data_tmp = full_data(idata)
   34144      399309 :          pack_tmp = ISHFT(data_tmp, 36)
   34145      399309 :          pack_tmp = ISHFT(pack_tmp, -36)
   34146      399309 :          idata = idata + 1
   34147      399309 :          data_tmp = full_data(idata)
   34148      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34149      399309 :          data_tmp = IAND(data_tmp, mask_left(36))
   34150      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34151      399309 :          ipack = ipack + 1
   34152      399309 :          packed_data(ipack) = pack_tmp
   34153      399309 :          data_tmp = full_data(idata)
   34154      399309 :          pack_tmp = ISHFT(data_tmp, 56)
   34155      399309 :          pack_tmp = ISHFT(pack_tmp, -44)
   34156      399309 :          idata = idata + 1
   34157      399309 :          data_tmp = full_data(idata)
   34158      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34159      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34160      399309 :          pack_tmp = ISHFT(pack_tmp, -12)
   34161      399309 :          idata = idata + 1
   34162      399309 :          data_tmp = full_data(idata)
   34163      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34164      399309 :          data_tmp = IAND(data_tmp, mask_left(12))
   34165      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34166      399309 :          ipack = ipack + 1
   34167      399309 :          packed_data(ipack) = pack_tmp
   34168      399309 :          data_tmp = full_data(idata)
   34169      399309 :          pack_tmp = ISHFT(data_tmp, 32)
   34170      399309 :          pack_tmp = ISHFT(pack_tmp, -32)
   34171      399309 :          idata = idata + 1
   34172      399309 :          data_tmp = full_data(idata)
   34173      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34174      399309 :          data_tmp = IAND(data_tmp, mask_left(32))
   34175      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34176      399309 :          ipack = ipack + 1
   34177      399309 :          packed_data(ipack) = pack_tmp
   34178      399309 :          data_tmp = full_data(idata)
   34179      399309 :          pack_tmp = ISHFT(data_tmp, 52)
   34180      399309 :          pack_tmp = ISHFT(pack_tmp, -44)
   34181      399309 :          idata = idata + 1
   34182      399309 :          data_tmp = full_data(idata)
   34183      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34184      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34185      399309 :          pack_tmp = ISHFT(pack_tmp, -8)
   34186      399309 :          idata = idata + 1
   34187      399309 :          data_tmp = full_data(idata)
   34188      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34189      399309 :          data_tmp = IAND(data_tmp, mask_left(8))
   34190      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34191      399309 :          ipack = ipack + 1
   34192      399309 :          packed_data(ipack) = pack_tmp
   34193      399309 :          data_tmp = full_data(idata)
   34194      399309 :          pack_tmp = ISHFT(data_tmp, 28)
   34195      399309 :          pack_tmp = ISHFT(pack_tmp, -28)
   34196      399309 :          idata = idata + 1
   34197      399309 :          data_tmp = full_data(idata)
   34198      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34199      399309 :          data_tmp = IAND(data_tmp, mask_left(28))
   34200      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34201      399309 :          ipack = ipack + 1
   34202      399309 :          packed_data(ipack) = pack_tmp
   34203      399309 :          data_tmp = full_data(idata)
   34204      399309 :          pack_tmp = ISHFT(data_tmp, 48)
   34205      399309 :          pack_tmp = ISHFT(pack_tmp, -44)
   34206      399309 :          idata = idata + 1
   34207      399309 :          data_tmp = full_data(idata)
   34208      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34209      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34210      399309 :          pack_tmp = ISHFT(pack_tmp, -4)
   34211      399309 :          idata = idata + 1
   34212      399309 :          data_tmp = full_data(idata)
   34213      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34214      399309 :          data_tmp = IAND(data_tmp, mask_left(4))
   34215      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34216      399309 :          ipack = ipack + 1
   34217      399309 :          packed_data(ipack) = pack_tmp
   34218      399309 :          data_tmp = full_data(idata)
   34219      399309 :          pack_tmp = ISHFT(data_tmp, 24)
   34220      399309 :          pack_tmp = ISHFT(pack_tmp, -24)
   34221      399309 :          idata = idata + 1
   34222      399309 :          data_tmp = full_data(idata)
   34223      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34224      399309 :          data_tmp = IAND(data_tmp, mask_left(24))
   34225      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34226      399309 :          ipack = ipack + 1
   34227      399309 :          packed_data(ipack) = pack_tmp
   34228      399309 :          data_tmp = full_data(idata)
   34229      399309 :          pack_tmp = ISHFT(data_tmp, 44)
   34230      399309 :          pack_tmp = ISHFT(pack_tmp, -44)
   34231      399309 :          idata = idata + 1
   34232      399309 :          data_tmp = full_data(idata)
   34233      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34234      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34235      399309 :          pack_tmp = ISHFT(pack_tmp, 0)
   34236      399309 :          idata = idata + 1
   34237      399309 :          data_tmp = full_data(idata)
   34238             :          data_tmp = ISHFT(data_tmp, 20)
   34239      399309 :          data_tmp = IAND(data_tmp, mask_left(0))
   34240      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34241      399309 :          ipack = ipack + 1
   34242      399309 :          packed_data(ipack) = pack_tmp
   34243      399309 :          data_tmp = full_data(idata)
   34244      399309 :          pack_tmp = ISHFT(data_tmp, 20)
   34245      399309 :          pack_tmp = ISHFT(pack_tmp, -20)
   34246      399309 :          idata = idata + 1
   34247      399309 :          data_tmp = full_data(idata)
   34248      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34249      399309 :          data_tmp = IAND(data_tmp, mask_left(20))
   34250      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34251      399309 :          ipack = ipack + 1
   34252      399309 :          packed_data(ipack) = pack_tmp
   34253      399309 :          data_tmp = full_data(idata)
   34254      399309 :          pack_tmp = ISHFT(data_tmp, 40)
   34255      399309 :          pack_tmp = ISHFT(pack_tmp, -40)
   34256      399309 :          idata = idata + 1
   34257      399309 :          data_tmp = full_data(idata)
   34258      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34259      399309 :          data_tmp = IAND(data_tmp, mask_left(40))
   34260      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34261      399309 :          ipack = ipack + 1
   34262      399309 :          packed_data(ipack) = pack_tmp
   34263      399309 :          data_tmp = full_data(idata)
   34264      399309 :          pack_tmp = ISHFT(data_tmp, 60)
   34265      399309 :          pack_tmp = ISHFT(pack_tmp, -44)
   34266      399309 :          idata = idata + 1
   34267      399309 :          data_tmp = full_data(idata)
   34268      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34269      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34270      399309 :          pack_tmp = ISHFT(pack_tmp, -16)
   34271      399309 :          idata = idata + 1
   34272      399309 :          data_tmp = full_data(idata)
   34273      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34274      399309 :          data_tmp = IAND(data_tmp, mask_left(16))
   34275      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34276      399309 :          ipack = ipack + 1
   34277      399309 :          packed_data(ipack) = pack_tmp
   34278      399309 :          data_tmp = full_data(idata)
   34279      399309 :          pack_tmp = ISHFT(data_tmp, 36)
   34280      399309 :          pack_tmp = ISHFT(pack_tmp, -36)
   34281      399309 :          idata = idata + 1
   34282      399309 :          data_tmp = full_data(idata)
   34283      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34284      399309 :          data_tmp = IAND(data_tmp, mask_left(36))
   34285      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34286      399309 :          ipack = ipack + 1
   34287      399309 :          packed_data(ipack) = pack_tmp
   34288      399309 :          data_tmp = full_data(idata)
   34289      399309 :          pack_tmp = ISHFT(data_tmp, 56)
   34290      399309 :          pack_tmp = ISHFT(pack_tmp, -44)
   34291      399309 :          idata = idata + 1
   34292      399309 :          data_tmp = full_data(idata)
   34293      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34294      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34295      399309 :          pack_tmp = ISHFT(pack_tmp, -12)
   34296      399309 :          idata = idata + 1
   34297      399309 :          data_tmp = full_data(idata)
   34298      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34299      399309 :          data_tmp = IAND(data_tmp, mask_left(12))
   34300      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34301      399309 :          ipack = ipack + 1
   34302      399309 :          packed_data(ipack) = pack_tmp
   34303      399309 :          data_tmp = full_data(idata)
   34304      399309 :          pack_tmp = ISHFT(data_tmp, 32)
   34305      399309 :          pack_tmp = ISHFT(pack_tmp, -32)
   34306      399309 :          idata = idata + 1
   34307      399309 :          data_tmp = full_data(idata)
   34308      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34309      399309 :          data_tmp = IAND(data_tmp, mask_left(32))
   34310      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34311      399309 :          ipack = ipack + 1
   34312      399309 :          packed_data(ipack) = pack_tmp
   34313      399309 :          data_tmp = full_data(idata)
   34314      399309 :          pack_tmp = ISHFT(data_tmp, 52)
   34315      399309 :          pack_tmp = ISHFT(pack_tmp, -44)
   34316      399309 :          idata = idata + 1
   34317      399309 :          data_tmp = full_data(idata)
   34318      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34319      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34320      399309 :          pack_tmp = ISHFT(pack_tmp, -8)
   34321      399309 :          idata = idata + 1
   34322      399309 :          data_tmp = full_data(idata)
   34323      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34324      399309 :          data_tmp = IAND(data_tmp, mask_left(8))
   34325      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34326      399309 :          ipack = ipack + 1
   34327      399309 :          packed_data(ipack) = pack_tmp
   34328      399309 :          data_tmp = full_data(idata)
   34329      399309 :          pack_tmp = ISHFT(data_tmp, 28)
   34330      399309 :          pack_tmp = ISHFT(pack_tmp, -28)
   34331      399309 :          idata = idata + 1
   34332      399309 :          data_tmp = full_data(idata)
   34333      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34334      399309 :          data_tmp = IAND(data_tmp, mask_left(28))
   34335      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34336      399309 :          ipack = ipack + 1
   34337      399309 :          packed_data(ipack) = pack_tmp
   34338      399309 :          data_tmp = full_data(idata)
   34339      399309 :          pack_tmp = ISHFT(data_tmp, 48)
   34340      399309 :          pack_tmp = ISHFT(pack_tmp, -44)
   34341      399309 :          idata = idata + 1
   34342      399309 :          data_tmp = full_data(idata)
   34343      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34344      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34345      399309 :          pack_tmp = ISHFT(pack_tmp, -4)
   34346      399309 :          idata = idata + 1
   34347      399309 :          data_tmp = full_data(idata)
   34348      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34349      399309 :          data_tmp = IAND(data_tmp, mask_left(4))
   34350      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34351      399309 :          ipack = ipack + 1
   34352      399309 :          packed_data(ipack) = pack_tmp
   34353      399309 :          data_tmp = full_data(idata)
   34354      399309 :          pack_tmp = ISHFT(data_tmp, 24)
   34355      399309 :          pack_tmp = ISHFT(pack_tmp, -24)
   34356      399309 :          idata = idata + 1
   34357      399309 :          data_tmp = full_data(idata)
   34358      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34359      399309 :          data_tmp = IAND(data_tmp, mask_left(24))
   34360      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34361      399309 :          ipack = ipack + 1
   34362      399309 :          packed_data(ipack) = pack_tmp
   34363      399309 :          data_tmp = full_data(idata)
   34364      399309 :          pack_tmp = ISHFT(data_tmp, 44)
   34365      399309 :          pack_tmp = ISHFT(pack_tmp, -44)
   34366      399309 :          idata = idata + 1
   34367      399309 :          data_tmp = full_data(idata)
   34368      399309 :          data_tmp = ISHFT(data_tmp, 20)
   34369      399309 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34370             :          pack_tmp = ISHFT(pack_tmp, 0)
   34371      399309 :          pack_tmp = ISHFT(pack_tmp, 0)
   34372      399309 :          ipack = ipack + 1
   34373      399323 :          packed_data(ipack) = pack_tmp
   34374             :       END DO
   34375       26915 :       IF (Ndata_rep < Ndata) THEN
   34376        3686 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   34377             :       END IF
   34378       26915 :    END SUBROUTINE ints2bits_44
   34379             : 
   34380             : ! **************************************************************************************************
   34381             : !> \brief ...
   34382             : !> \param Ndata ...
   34383             : !> \param packed_data ...
   34384             : !> \param full_data ...
   34385             : ! **************************************************************************************************
   34386      121727 :    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      121727 :       ipack = 0
   34397      121727 :       idata = 0
   34398      121727 :       pack_tmp = 0
   34399      121727 :       Ndata_rep = (Ndata/64)*64
   34400      121727 :       DO kdata = 1, Ndata_rep, 64
   34401     1739076 :          idata = idata + 1
   34402     1739076 :          data_tmp = ISHFT(pack_tmp, 44)
   34403     1739076 :          ipack = ipack + 1
   34404     1739076 :          pack_tmp = packed_data(ipack)
   34405     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   34406     1739076 :          pack_tmp = ISHFT(pack_tmp, -44)
   34407     1739076 :          idata = idata + 1
   34408     1739076 :          data_tmp = ISHFT(pack_tmp, 24)
   34409     1739076 :          ipack = ipack + 1
   34410     1739076 :          pack_tmp = packed_data(ipack)
   34411     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   34412     1739076 :          pack_tmp = ISHFT(pack_tmp, -24)
   34413     1739076 :          idata = idata + 1
   34414     1739076 :          data_tmp = ISHFT(pack_tmp, 4)
   34415     1739076 :          ipack = ipack + 1
   34416     1739076 :          pack_tmp = packed_data(ipack)
   34417     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   34418     1739076 :          pack_tmp = ISHFT(pack_tmp, -4)
   34419     1739076 :          idata = idata + 1
   34420     1739076 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34421     1739076 :          full_data(idata) = data_tmp
   34422     1739076 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34423     1739076 :          idata = idata + 1
   34424     1739076 :          data_tmp = ISHFT(pack_tmp, 28)
   34425     1739076 :          ipack = ipack + 1
   34426     1739076 :          pack_tmp = packed_data(ipack)
   34427     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   34428     1739076 :          pack_tmp = ISHFT(pack_tmp, -28)
   34429     1739076 :          idata = idata + 1
   34430     1739076 :          data_tmp = ISHFT(pack_tmp, 8)
   34431     1739076 :          ipack = ipack + 1
   34432     1739076 :          pack_tmp = packed_data(ipack)
   34433     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   34434     1739076 :          pack_tmp = ISHFT(pack_tmp, -8)
   34435     1739076 :          idata = idata + 1
   34436     1739076 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34437     1739076 :          full_data(idata) = data_tmp
   34438     1739076 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34439     1739076 :          idata = idata + 1
   34440     1739076 :          data_tmp = ISHFT(pack_tmp, 32)
   34441     1739076 :          ipack = ipack + 1
   34442     1739076 :          pack_tmp = packed_data(ipack)
   34443     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   34444     1739076 :          pack_tmp = ISHFT(pack_tmp, -32)
   34445     1739076 :          idata = idata + 1
   34446     1739076 :          data_tmp = ISHFT(pack_tmp, 12)
   34447     1739076 :          ipack = ipack + 1
   34448     1739076 :          pack_tmp = packed_data(ipack)
   34449     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   34450     1739076 :          pack_tmp = ISHFT(pack_tmp, -12)
   34451     1739076 :          idata = idata + 1
   34452     1739076 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34453     1739076 :          full_data(idata) = data_tmp
   34454     1739076 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34455     1739076 :          idata = idata + 1
   34456     1739076 :          data_tmp = ISHFT(pack_tmp, 36)
   34457     1739076 :          ipack = ipack + 1
   34458     1739076 :          pack_tmp = packed_data(ipack)
   34459     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   34460     1739076 :          pack_tmp = ISHFT(pack_tmp, -36)
   34461     1739076 :          idata = idata + 1
   34462     1739076 :          data_tmp = ISHFT(pack_tmp, 16)
   34463     1739076 :          ipack = ipack + 1
   34464     1739076 :          pack_tmp = packed_data(ipack)
   34465     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   34466     1739076 :          pack_tmp = ISHFT(pack_tmp, -16)
   34467     1739076 :          idata = idata + 1
   34468     1739076 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34469     1739076 :          full_data(idata) = data_tmp
   34470     1739076 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34471     1739076 :          idata = idata + 1
   34472     1739076 :          data_tmp = ISHFT(pack_tmp, 40)
   34473     1739076 :          ipack = ipack + 1
   34474     1739076 :          pack_tmp = packed_data(ipack)
   34475     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   34476     1739076 :          pack_tmp = ISHFT(pack_tmp, -40)
   34477     1739076 :          idata = idata + 1
   34478     1739076 :          data_tmp = ISHFT(pack_tmp, 20)
   34479     1739076 :          ipack = ipack + 1
   34480     1739076 :          pack_tmp = packed_data(ipack)
   34481     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   34482     1739076 :          pack_tmp = ISHFT(pack_tmp, -20)
   34483     1739076 :          idata = idata + 1
   34484     1739076 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34485     1739076 :          full_data(idata) = data_tmp
   34486     1739076 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34487     1739076 :          idata = idata + 1
   34488     1739076 :          data_tmp = ISHFT(pack_tmp, 44)
   34489     1739076 :          ipack = ipack + 1
   34490     1739076 :          pack_tmp = packed_data(ipack)
   34491     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   34492     1739076 :          pack_tmp = ISHFT(pack_tmp, -44)
   34493     1739076 :          idata = idata + 1
   34494     1739076 :          data_tmp = ISHFT(pack_tmp, 24)
   34495     1739076 :          ipack = ipack + 1
   34496     1739076 :          pack_tmp = packed_data(ipack)
   34497     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   34498     1739076 :          pack_tmp = ISHFT(pack_tmp, -24)
   34499     1739076 :          idata = idata + 1
   34500     1739076 :          data_tmp = ISHFT(pack_tmp, 4)
   34501     1739076 :          ipack = ipack + 1
   34502     1739076 :          pack_tmp = packed_data(ipack)
   34503     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   34504     1739076 :          pack_tmp = ISHFT(pack_tmp, -4)
   34505     1739076 :          idata = idata + 1
   34506     1739076 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34507     1739076 :          full_data(idata) = data_tmp
   34508     1739076 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34509     1739076 :          idata = idata + 1
   34510     1739076 :          data_tmp = ISHFT(pack_tmp, 28)
   34511     1739076 :          ipack = ipack + 1
   34512     1739076 :          pack_tmp = packed_data(ipack)
   34513     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   34514     1739076 :          pack_tmp = ISHFT(pack_tmp, -28)
   34515     1739076 :          idata = idata + 1
   34516     1739076 :          data_tmp = ISHFT(pack_tmp, 8)
   34517     1739076 :          ipack = ipack + 1
   34518     1739076 :          pack_tmp = packed_data(ipack)
   34519     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   34520     1739076 :          pack_tmp = ISHFT(pack_tmp, -8)
   34521     1739076 :          idata = idata + 1
   34522     1739076 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34523     1739076 :          full_data(idata) = data_tmp
   34524     1739076 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34525     1739076 :          idata = idata + 1
   34526     1739076 :          data_tmp = ISHFT(pack_tmp, 32)
   34527     1739076 :          ipack = ipack + 1
   34528     1739076 :          pack_tmp = packed_data(ipack)
   34529     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   34530     1739076 :          pack_tmp = ISHFT(pack_tmp, -32)
   34531     1739076 :          idata = idata + 1
   34532     1739076 :          data_tmp = ISHFT(pack_tmp, 12)
   34533     1739076 :          ipack = ipack + 1
   34534     1739076 :          pack_tmp = packed_data(ipack)
   34535     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   34536     1739076 :          pack_tmp = ISHFT(pack_tmp, -12)
   34537     1739076 :          idata = idata + 1
   34538     1739076 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34539     1739076 :          full_data(idata) = data_tmp
   34540     1739076 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34541     1739076 :          idata = idata + 1
   34542     1739076 :          data_tmp = ISHFT(pack_tmp, 36)
   34543     1739076 :          ipack = ipack + 1
   34544     1739076 :          pack_tmp = packed_data(ipack)
   34545     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   34546     1739076 :          pack_tmp = ISHFT(pack_tmp, -36)
   34547     1739076 :          idata = idata + 1
   34548     1739076 :          data_tmp = ISHFT(pack_tmp, 16)
   34549     1739076 :          ipack = ipack + 1
   34550     1739076 :          pack_tmp = packed_data(ipack)
   34551     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   34552     1739076 :          pack_tmp = ISHFT(pack_tmp, -16)
   34553     1739076 :          idata = idata + 1
   34554     1739076 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34555     1739076 :          full_data(idata) = data_tmp
   34556     1739076 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34557     1739076 :          idata = idata + 1
   34558     1739076 :          data_tmp = ISHFT(pack_tmp, 40)
   34559     1739076 :          ipack = ipack + 1
   34560     1739076 :          pack_tmp = packed_data(ipack)
   34561     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   34562     1739076 :          pack_tmp = ISHFT(pack_tmp, -40)
   34563     1739076 :          idata = idata + 1
   34564     1739076 :          data_tmp = ISHFT(pack_tmp, 20)
   34565     1739076 :          ipack = ipack + 1
   34566     1739076 :          pack_tmp = packed_data(ipack)
   34567     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   34568     1739076 :          pack_tmp = ISHFT(pack_tmp, -20)
   34569     1739076 :          idata = idata + 1
   34570     1739076 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34571     1739076 :          full_data(idata) = data_tmp
   34572     1739076 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34573     1739076 :          idata = idata + 1
   34574     1739076 :          data_tmp = ISHFT(pack_tmp, 44)
   34575     1739076 :          ipack = ipack + 1
   34576     1739076 :          pack_tmp = packed_data(ipack)
   34577     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   34578     1739076 :          pack_tmp = ISHFT(pack_tmp, -44)
   34579     1739076 :          idata = idata + 1
   34580     1739076 :          data_tmp = ISHFT(pack_tmp, 24)
   34581     1739076 :          ipack = ipack + 1
   34582     1739076 :          pack_tmp = packed_data(ipack)
   34583     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   34584     1739076 :          pack_tmp = ISHFT(pack_tmp, -24)
   34585     1739076 :          idata = idata + 1
   34586     1739076 :          data_tmp = ISHFT(pack_tmp, 4)
   34587     1739076 :          ipack = ipack + 1
   34588     1739076 :          pack_tmp = packed_data(ipack)
   34589     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   34590     1739076 :          pack_tmp = ISHFT(pack_tmp, -4)
   34591     1739076 :          idata = idata + 1
   34592     1739076 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34593     1739076 :          full_data(idata) = data_tmp
   34594     1739076 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34595     1739076 :          idata = idata + 1
   34596     1739076 :          data_tmp = ISHFT(pack_tmp, 28)
   34597     1739076 :          ipack = ipack + 1
   34598     1739076 :          pack_tmp = packed_data(ipack)
   34599     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   34600     1739076 :          pack_tmp = ISHFT(pack_tmp, -28)
   34601     1739076 :          idata = idata + 1
   34602     1739076 :          data_tmp = ISHFT(pack_tmp, 8)
   34603     1739076 :          ipack = ipack + 1
   34604     1739076 :          pack_tmp = packed_data(ipack)
   34605     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   34606     1739076 :          pack_tmp = ISHFT(pack_tmp, -8)
   34607     1739076 :          idata = idata + 1
   34608     1739076 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34609     1739076 :          full_data(idata) = data_tmp
   34610     1739076 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34611     1739076 :          idata = idata + 1
   34612     1739076 :          data_tmp = ISHFT(pack_tmp, 32)
   34613     1739076 :          ipack = ipack + 1
   34614     1739076 :          pack_tmp = packed_data(ipack)
   34615     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   34616     1739076 :          pack_tmp = ISHFT(pack_tmp, -32)
   34617     1739076 :          idata = idata + 1
   34618     1739076 :          data_tmp = ISHFT(pack_tmp, 12)
   34619     1739076 :          ipack = ipack + 1
   34620     1739076 :          pack_tmp = packed_data(ipack)
   34621     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   34622     1739076 :          pack_tmp = ISHFT(pack_tmp, -12)
   34623     1739076 :          idata = idata + 1
   34624     1739076 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34625     1739076 :          full_data(idata) = data_tmp
   34626     1739076 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34627     1739076 :          idata = idata + 1
   34628     1739076 :          data_tmp = ISHFT(pack_tmp, 36)
   34629     1739076 :          ipack = ipack + 1
   34630     1739076 :          pack_tmp = packed_data(ipack)
   34631     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   34632     1739076 :          pack_tmp = ISHFT(pack_tmp, -36)
   34633     1739076 :          idata = idata + 1
   34634     1739076 :          data_tmp = ISHFT(pack_tmp, 16)
   34635     1739076 :          ipack = ipack + 1
   34636     1739076 :          pack_tmp = packed_data(ipack)
   34637     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   34638     1739076 :          pack_tmp = ISHFT(pack_tmp, -16)
   34639     1739076 :          idata = idata + 1
   34640     1739076 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34641     1739076 :          full_data(idata) = data_tmp
   34642     1739076 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34643     1739076 :          idata = idata + 1
   34644     1739076 :          data_tmp = ISHFT(pack_tmp, 40)
   34645     1739076 :          ipack = ipack + 1
   34646     1739076 :          pack_tmp = packed_data(ipack)
   34647     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   34648     1739076 :          pack_tmp = ISHFT(pack_tmp, -40)
   34649     1739076 :          idata = idata + 1
   34650     1739076 :          data_tmp = ISHFT(pack_tmp, 20)
   34651     1739076 :          ipack = ipack + 1
   34652     1739076 :          pack_tmp = packed_data(ipack)
   34653     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   34654     1739076 :          pack_tmp = ISHFT(pack_tmp, -20)
   34655     1739076 :          idata = idata + 1
   34656     1739076 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34657     1739076 :          full_data(idata) = data_tmp
   34658     1739076 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34659     1739076 :          idata = idata + 1
   34660     1739076 :          data_tmp = ISHFT(pack_tmp, 44)
   34661     1739076 :          ipack = ipack + 1
   34662     1739076 :          pack_tmp = packed_data(ipack)
   34663     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   34664     1739076 :          pack_tmp = ISHFT(pack_tmp, -44)
   34665     1739076 :          idata = idata + 1
   34666     1739076 :          data_tmp = ISHFT(pack_tmp, 24)
   34667     1739076 :          ipack = ipack + 1
   34668     1739076 :          pack_tmp = packed_data(ipack)
   34669     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   34670     1739076 :          pack_tmp = ISHFT(pack_tmp, -24)
   34671     1739076 :          idata = idata + 1
   34672     1739076 :          data_tmp = ISHFT(pack_tmp, 4)
   34673     1739076 :          ipack = ipack + 1
   34674     1739076 :          pack_tmp = packed_data(ipack)
   34675     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   34676     1739076 :          pack_tmp = ISHFT(pack_tmp, -4)
   34677     1739076 :          idata = idata + 1
   34678     1739076 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34679     1739076 :          full_data(idata) = data_tmp
   34680     1739076 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34681     1739076 :          idata = idata + 1
   34682     1739076 :          data_tmp = ISHFT(pack_tmp, 28)
   34683     1739076 :          ipack = ipack + 1
   34684     1739076 :          pack_tmp = packed_data(ipack)
   34685     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   34686     1739076 :          pack_tmp = ISHFT(pack_tmp, -28)
   34687     1739076 :          idata = idata + 1
   34688     1739076 :          data_tmp = ISHFT(pack_tmp, 8)
   34689     1739076 :          ipack = ipack + 1
   34690     1739076 :          pack_tmp = packed_data(ipack)
   34691     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   34692     1739076 :          pack_tmp = ISHFT(pack_tmp, -8)
   34693     1739076 :          idata = idata + 1
   34694     1739076 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34695     1739076 :          full_data(idata) = data_tmp
   34696     1739076 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34697     1739076 :          idata = idata + 1
   34698     1739076 :          data_tmp = ISHFT(pack_tmp, 32)
   34699     1739076 :          ipack = ipack + 1
   34700     1739076 :          pack_tmp = packed_data(ipack)
   34701     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   34702     1739076 :          pack_tmp = ISHFT(pack_tmp, -32)
   34703     1739076 :          idata = idata + 1
   34704     1739076 :          data_tmp = ISHFT(pack_tmp, 12)
   34705     1739076 :          ipack = ipack + 1
   34706     1739076 :          pack_tmp = packed_data(ipack)
   34707     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   34708     1739076 :          pack_tmp = ISHFT(pack_tmp, -12)
   34709     1739076 :          idata = idata + 1
   34710     1739076 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34711     1739076 :          full_data(idata) = data_tmp
   34712     1739076 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34713     1739076 :          idata = idata + 1
   34714     1739076 :          data_tmp = ISHFT(pack_tmp, 36)
   34715     1739076 :          ipack = ipack + 1
   34716     1739076 :          pack_tmp = packed_data(ipack)
   34717     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   34718     1739076 :          pack_tmp = ISHFT(pack_tmp, -36)
   34719     1739076 :          idata = idata + 1
   34720     1739076 :          data_tmp = ISHFT(pack_tmp, 16)
   34721     1739076 :          ipack = ipack + 1
   34722     1739076 :          pack_tmp = packed_data(ipack)
   34723     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   34724     1739076 :          pack_tmp = ISHFT(pack_tmp, -16)
   34725     1739076 :          idata = idata + 1
   34726     1739076 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34727     1739076 :          full_data(idata) = data_tmp
   34728     1739076 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34729     1739076 :          idata = idata + 1
   34730     1739076 :          data_tmp = ISHFT(pack_tmp, 40)
   34731     1739076 :          ipack = ipack + 1
   34732     1739076 :          pack_tmp = packed_data(ipack)
   34733     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   34734     1739076 :          pack_tmp = ISHFT(pack_tmp, -40)
   34735     1739076 :          idata = idata + 1
   34736     1739076 :          data_tmp = ISHFT(pack_tmp, 20)
   34737     1739076 :          ipack = ipack + 1
   34738     1739076 :          pack_tmp = packed_data(ipack)
   34739     1739076 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   34740     1739076 :          pack_tmp = ISHFT(pack_tmp, -20)
   34741     1739076 :          idata = idata + 1
   34742     1739076 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34743     1739076 :          full_data(idata) = data_tmp
   34744     1739348 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34745             :       END DO
   34746      121727 :       IF (Ndata_rep < Ndata) THEN
   34747       24536 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   34748             :       END IF
   34749      121727 :    END SUBROUTINE bits2ints_44
   34750             : 
   34751             : ! **************************************************************************************************
   34752             : !> \brief ...
   34753             : !> \param Ndata ...
   34754             : !> \param packed_data ...
   34755             : !> \param full_data ...
   34756             : ! **************************************************************************************************
   34757       28529 :    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       28529 :       idata = 0
   34768       28529 :       ipack = 0
   34769       28529 :       Ndata_rep = (Ndata/64)*64
   34770       28529 :       DO kdata = 1, Ndata_rep, 64
   34771      413675 :          pack_tmp = 0
   34772      413675 :          idata = idata + 1
   34773      413675 :          data_tmp = full_data(idata)
   34774      413675 :          data_tmp = ISHFT(data_tmp, 19)
   34775      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34776      413675 :          pack_tmp = ISHFT(pack_tmp, -19)
   34777      413675 :          idata = idata + 1
   34778      413675 :          data_tmp = full_data(idata)
   34779      413675 :          data_tmp = ISHFT(data_tmp, 19)
   34780      413675 :          data_tmp = IAND(data_tmp, mask_left(19))
   34781      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34782      413675 :          ipack = ipack + 1
   34783      413675 :          packed_data(ipack) = pack_tmp
   34784      413675 :          data_tmp = full_data(idata)
   34785      413675 :          pack_tmp = ISHFT(data_tmp, 38)
   34786      413675 :          pack_tmp = ISHFT(pack_tmp, -38)
   34787      413675 :          idata = idata + 1
   34788      413675 :          data_tmp = full_data(idata)
   34789      413675 :          data_tmp = ISHFT(data_tmp, 19)
   34790      413675 :          data_tmp = IAND(data_tmp, mask_left(38))
   34791      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34792      413675 :          ipack = ipack + 1
   34793      413675 :          packed_data(ipack) = pack_tmp
   34794      413675 :          data_tmp = full_data(idata)
   34795      413675 :          pack_tmp = ISHFT(data_tmp, 57)
   34796      413675 :          pack_tmp = ISHFT(pack_tmp, -45)
   34797      413675 :          idata = idata + 1
   34798      413675 :          data_tmp = full_data(idata)
   34799      413675 :          data_tmp = ISHFT(data_tmp, 19)
   34800      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34801      413675 :          pack_tmp = ISHFT(pack_tmp, -12)
   34802      413675 :          idata = idata + 1
   34803      413675 :          data_tmp = full_data(idata)
   34804      413675 :          data_tmp = ISHFT(data_tmp, 19)
   34805      413675 :          data_tmp = IAND(data_tmp, mask_left(12))
   34806      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34807      413675 :          ipack = ipack + 1
   34808      413675 :          packed_data(ipack) = pack_tmp
   34809      413675 :          data_tmp = full_data(idata)
   34810      413675 :          pack_tmp = ISHFT(data_tmp, 31)
   34811      413675 :          pack_tmp = ISHFT(pack_tmp, -31)
   34812      413675 :          idata = idata + 1
   34813      413675 :          data_tmp = full_data(idata)
   34814      413675 :          data_tmp = ISHFT(data_tmp, 19)
   34815      413675 :          data_tmp = IAND(data_tmp, mask_left(31))
   34816      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34817      413675 :          ipack = ipack + 1
   34818      413675 :          packed_data(ipack) = pack_tmp
   34819      413675 :          data_tmp = full_data(idata)
   34820      413675 :          pack_tmp = ISHFT(data_tmp, 50)
   34821      413675 :          pack_tmp = ISHFT(pack_tmp, -45)
   34822      413675 :          idata = idata + 1
   34823      413675 :          data_tmp = full_data(idata)
   34824      413675 :          data_tmp = ISHFT(data_tmp, 19)
   34825      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34826      413675 :          pack_tmp = ISHFT(pack_tmp, -5)
   34827      413675 :          idata = idata + 1
   34828      413675 :          data_tmp = full_data(idata)
   34829      413675 :          data_tmp = ISHFT(data_tmp, 19)
   34830      413675 :          data_tmp = IAND(data_tmp, mask_left(5))
   34831      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34832      413675 :          ipack = ipack + 1
   34833      413675 :          packed_data(ipack) = pack_tmp
   34834      413675 :          data_tmp = full_data(idata)
   34835      413675 :          pack_tmp = ISHFT(data_tmp, 24)
   34836      413675 :          pack_tmp = ISHFT(pack_tmp, -24)
   34837      413675 :          idata = idata + 1
   34838      413675 :          data_tmp = full_data(idata)
   34839      413675 :          data_tmp = ISHFT(data_tmp, 19)
   34840      413675 :          data_tmp = IAND(data_tmp, mask_left(24))
   34841      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34842      413675 :          ipack = ipack + 1
   34843      413675 :          packed_data(ipack) = pack_tmp
   34844      413675 :          data_tmp = full_data(idata)
   34845      413675 :          pack_tmp = ISHFT(data_tmp, 43)
   34846      413675 :          pack_tmp = ISHFT(pack_tmp, -43)
   34847      413675 :          idata = idata + 1
   34848      413675 :          data_tmp = full_data(idata)
   34849      413675 :          data_tmp = ISHFT(data_tmp, 19)
   34850      413675 :          data_tmp = IAND(data_tmp, mask_left(43))
   34851      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34852      413675 :          ipack = ipack + 1
   34853      413675 :          packed_data(ipack) = pack_tmp
   34854      413675 :          data_tmp = full_data(idata)
   34855      413675 :          pack_tmp = ISHFT(data_tmp, 62)
   34856      413675 :          pack_tmp = ISHFT(pack_tmp, -45)
   34857      413675 :          idata = idata + 1
   34858      413675 :          data_tmp = full_data(idata)
   34859      413675 :          data_tmp = ISHFT(data_tmp, 19)
   34860      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34861      413675 :          pack_tmp = ISHFT(pack_tmp, -17)
   34862      413675 :          idata = idata + 1
   34863      413675 :          data_tmp = full_data(idata)
   34864      413675 :          data_tmp = ISHFT(data_tmp, 19)
   34865      413675 :          data_tmp = IAND(data_tmp, mask_left(17))
   34866      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34867      413675 :          ipack = ipack + 1
   34868      413675 :          packed_data(ipack) = pack_tmp
   34869      413675 :          data_tmp = full_data(idata)
   34870      413675 :          pack_tmp = ISHFT(data_tmp, 36)
   34871      413675 :          pack_tmp = ISHFT(pack_tmp, -36)
   34872      413675 :          idata = idata + 1
   34873      413675 :          data_tmp = full_data(idata)
   34874      413675 :          data_tmp = ISHFT(data_tmp, 19)
   34875      413675 :          data_tmp = IAND(data_tmp, mask_left(36))
   34876      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34877      413675 :          ipack = ipack + 1
   34878      413675 :          packed_data(ipack) = pack_tmp
   34879      413675 :          data_tmp = full_data(idata)
   34880      413675 :          pack_tmp = ISHFT(data_tmp, 55)
   34881      413675 :          pack_tmp = ISHFT(pack_tmp, -45)
   34882      413675 :          idata = idata + 1
   34883      413675 :          data_tmp = full_data(idata)
   34884      413675 :          data_tmp = ISHFT(data_tmp, 19)
   34885      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34886      413675 :          pack_tmp = ISHFT(pack_tmp, -10)
   34887      413675 :          idata = idata + 1
   34888      413675 :          data_tmp = full_data(idata)
   34889      413675 :          data_tmp = ISHFT(data_tmp, 19)
   34890      413675 :          data_tmp = IAND(data_tmp, mask_left(10))
   34891      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34892      413675 :          ipack = ipack + 1
   34893      413675 :          packed_data(ipack) = pack_tmp
   34894      413675 :          data_tmp = full_data(idata)
   34895      413675 :          pack_tmp = ISHFT(data_tmp, 29)
   34896      413675 :          pack_tmp = ISHFT(pack_tmp, -29)
   34897      413675 :          idata = idata + 1
   34898      413675 :          data_tmp = full_data(idata)
   34899      413675 :          data_tmp = ISHFT(data_tmp, 19)
   34900      413675 :          data_tmp = IAND(data_tmp, mask_left(29))
   34901      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34902      413675 :          ipack = ipack + 1
   34903      413675 :          packed_data(ipack) = pack_tmp
   34904      413675 :          data_tmp = full_data(idata)
   34905      413675 :          pack_tmp = ISHFT(data_tmp, 48)
   34906      413675 :          pack_tmp = ISHFT(pack_tmp, -45)
   34907      413675 :          idata = idata + 1
   34908      413675 :          data_tmp = full_data(idata)
   34909      413675 :          data_tmp = ISHFT(data_tmp, 19)
   34910      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34911      413675 :          pack_tmp = ISHFT(pack_tmp, -3)
   34912      413675 :          idata = idata + 1
   34913      413675 :          data_tmp = full_data(idata)
   34914      413675 :          data_tmp = ISHFT(data_tmp, 19)
   34915      413675 :          data_tmp = IAND(data_tmp, mask_left(3))
   34916      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34917      413675 :          ipack = ipack + 1
   34918      413675 :          packed_data(ipack) = pack_tmp
   34919      413675 :          data_tmp = full_data(idata)
   34920      413675 :          pack_tmp = ISHFT(data_tmp, 22)
   34921      413675 :          pack_tmp = ISHFT(pack_tmp, -22)
   34922      413675 :          idata = idata + 1
   34923      413675 :          data_tmp = full_data(idata)
   34924      413675 :          data_tmp = ISHFT(data_tmp, 19)
   34925      413675 :          data_tmp = IAND(data_tmp, mask_left(22))
   34926      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34927      413675 :          ipack = ipack + 1
   34928      413675 :          packed_data(ipack) = pack_tmp
   34929      413675 :          data_tmp = full_data(idata)
   34930      413675 :          pack_tmp = ISHFT(data_tmp, 41)
   34931      413675 :          pack_tmp = ISHFT(pack_tmp, -41)
   34932      413675 :          idata = idata + 1
   34933      413675 :          data_tmp = full_data(idata)
   34934      413675 :          data_tmp = ISHFT(data_tmp, 19)
   34935      413675 :          data_tmp = IAND(data_tmp, mask_left(41))
   34936      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34937      413675 :          ipack = ipack + 1
   34938      413675 :          packed_data(ipack) = pack_tmp
   34939      413675 :          data_tmp = full_data(idata)
   34940      413675 :          pack_tmp = ISHFT(data_tmp, 60)
   34941      413675 :          pack_tmp = ISHFT(pack_tmp, -45)
   34942      413675 :          idata = idata + 1
   34943      413675 :          data_tmp = full_data(idata)
   34944      413675 :          data_tmp = ISHFT(data_tmp, 19)
   34945      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34946      413675 :          pack_tmp = ISHFT(pack_tmp, -15)
   34947      413675 :          idata = idata + 1
   34948      413675 :          data_tmp = full_data(idata)
   34949      413675 :          data_tmp = ISHFT(data_tmp, 19)
   34950      413675 :          data_tmp = IAND(data_tmp, mask_left(15))
   34951      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34952      413675 :          ipack = ipack + 1
   34953      413675 :          packed_data(ipack) = pack_tmp
   34954      413675 :          data_tmp = full_data(idata)
   34955      413675 :          pack_tmp = ISHFT(data_tmp, 34)
   34956      413675 :          pack_tmp = ISHFT(pack_tmp, -34)
   34957      413675 :          idata = idata + 1
   34958      413675 :          data_tmp = full_data(idata)
   34959      413675 :          data_tmp = ISHFT(data_tmp, 19)
   34960      413675 :          data_tmp = IAND(data_tmp, mask_left(34))
   34961      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34962      413675 :          ipack = ipack + 1
   34963      413675 :          packed_data(ipack) = pack_tmp
   34964      413675 :          data_tmp = full_data(idata)
   34965      413675 :          pack_tmp = ISHFT(data_tmp, 53)
   34966      413675 :          pack_tmp = ISHFT(pack_tmp, -45)
   34967      413675 :          idata = idata + 1
   34968      413675 :          data_tmp = full_data(idata)
   34969      413675 :          data_tmp = ISHFT(data_tmp, 19)
   34970      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34971      413675 :          pack_tmp = ISHFT(pack_tmp, -8)
   34972      413675 :          idata = idata + 1
   34973      413675 :          data_tmp = full_data(idata)
   34974      413675 :          data_tmp = ISHFT(data_tmp, 19)
   34975      413675 :          data_tmp = IAND(data_tmp, mask_left(8))
   34976      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34977      413675 :          ipack = ipack + 1
   34978      413675 :          packed_data(ipack) = pack_tmp
   34979      413675 :          data_tmp = full_data(idata)
   34980      413675 :          pack_tmp = ISHFT(data_tmp, 27)
   34981      413675 :          pack_tmp = ISHFT(pack_tmp, -27)
   34982      413675 :          idata = idata + 1
   34983      413675 :          data_tmp = full_data(idata)
   34984      413675 :          data_tmp = ISHFT(data_tmp, 19)
   34985      413675 :          data_tmp = IAND(data_tmp, mask_left(27))
   34986      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34987      413675 :          ipack = ipack + 1
   34988      413675 :          packed_data(ipack) = pack_tmp
   34989      413675 :          data_tmp = full_data(idata)
   34990      413675 :          pack_tmp = ISHFT(data_tmp, 46)
   34991      413675 :          pack_tmp = ISHFT(pack_tmp, -45)
   34992      413675 :          idata = idata + 1
   34993      413675 :          data_tmp = full_data(idata)
   34994      413675 :          data_tmp = ISHFT(data_tmp, 19)
   34995      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34996      413675 :          pack_tmp = ISHFT(pack_tmp, -1)
   34997      413675 :          idata = idata + 1
   34998      413675 :          data_tmp = full_data(idata)
   34999      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35000      413675 :          data_tmp = IAND(data_tmp, mask_left(1))
   35001      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35002      413675 :          ipack = ipack + 1
   35003      413675 :          packed_data(ipack) = pack_tmp
   35004      413675 :          data_tmp = full_data(idata)
   35005      413675 :          pack_tmp = ISHFT(data_tmp, 20)
   35006      413675 :          pack_tmp = ISHFT(pack_tmp, -20)
   35007      413675 :          idata = idata + 1
   35008      413675 :          data_tmp = full_data(idata)
   35009      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35010      413675 :          data_tmp = IAND(data_tmp, mask_left(20))
   35011      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35012      413675 :          ipack = ipack + 1
   35013      413675 :          packed_data(ipack) = pack_tmp
   35014      413675 :          data_tmp = full_data(idata)
   35015      413675 :          pack_tmp = ISHFT(data_tmp, 39)
   35016      413675 :          pack_tmp = ISHFT(pack_tmp, -39)
   35017      413675 :          idata = idata + 1
   35018      413675 :          data_tmp = full_data(idata)
   35019      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35020      413675 :          data_tmp = IAND(data_tmp, mask_left(39))
   35021      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35022      413675 :          ipack = ipack + 1
   35023      413675 :          packed_data(ipack) = pack_tmp
   35024      413675 :          data_tmp = full_data(idata)
   35025      413675 :          pack_tmp = ISHFT(data_tmp, 58)
   35026      413675 :          pack_tmp = ISHFT(pack_tmp, -45)
   35027      413675 :          idata = idata + 1
   35028      413675 :          data_tmp = full_data(idata)
   35029      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35030      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35031      413675 :          pack_tmp = ISHFT(pack_tmp, -13)
   35032      413675 :          idata = idata + 1
   35033      413675 :          data_tmp = full_data(idata)
   35034      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35035      413675 :          data_tmp = IAND(data_tmp, mask_left(13))
   35036      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35037      413675 :          ipack = ipack + 1
   35038      413675 :          packed_data(ipack) = pack_tmp
   35039      413675 :          data_tmp = full_data(idata)
   35040      413675 :          pack_tmp = ISHFT(data_tmp, 32)
   35041      413675 :          pack_tmp = ISHFT(pack_tmp, -32)
   35042      413675 :          idata = idata + 1
   35043      413675 :          data_tmp = full_data(idata)
   35044      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35045      413675 :          data_tmp = IAND(data_tmp, mask_left(32))
   35046      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35047      413675 :          ipack = ipack + 1
   35048      413675 :          packed_data(ipack) = pack_tmp
   35049      413675 :          data_tmp = full_data(idata)
   35050      413675 :          pack_tmp = ISHFT(data_tmp, 51)
   35051      413675 :          pack_tmp = ISHFT(pack_tmp, -45)
   35052      413675 :          idata = idata + 1
   35053      413675 :          data_tmp = full_data(idata)
   35054      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35055      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35056      413675 :          pack_tmp = ISHFT(pack_tmp, -6)
   35057      413675 :          idata = idata + 1
   35058      413675 :          data_tmp = full_data(idata)
   35059      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35060      413675 :          data_tmp = IAND(data_tmp, mask_left(6))
   35061      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35062      413675 :          ipack = ipack + 1
   35063      413675 :          packed_data(ipack) = pack_tmp
   35064      413675 :          data_tmp = full_data(idata)
   35065      413675 :          pack_tmp = ISHFT(data_tmp, 25)
   35066      413675 :          pack_tmp = ISHFT(pack_tmp, -25)
   35067      413675 :          idata = idata + 1
   35068      413675 :          data_tmp = full_data(idata)
   35069      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35070      413675 :          data_tmp = IAND(data_tmp, mask_left(25))
   35071      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35072      413675 :          ipack = ipack + 1
   35073      413675 :          packed_data(ipack) = pack_tmp
   35074      413675 :          data_tmp = full_data(idata)
   35075      413675 :          pack_tmp = ISHFT(data_tmp, 44)
   35076      413675 :          pack_tmp = ISHFT(pack_tmp, -44)
   35077      413675 :          idata = idata + 1
   35078      413675 :          data_tmp = full_data(idata)
   35079      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35080      413675 :          data_tmp = IAND(data_tmp, mask_left(44))
   35081      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35082      413675 :          ipack = ipack + 1
   35083      413675 :          packed_data(ipack) = pack_tmp
   35084      413675 :          data_tmp = full_data(idata)
   35085      413675 :          pack_tmp = ISHFT(data_tmp, 63)
   35086      413675 :          pack_tmp = ISHFT(pack_tmp, -45)
   35087      413675 :          idata = idata + 1
   35088      413675 :          data_tmp = full_data(idata)
   35089      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35090      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35091      413675 :          pack_tmp = ISHFT(pack_tmp, -18)
   35092      413675 :          idata = idata + 1
   35093      413675 :          data_tmp = full_data(idata)
   35094      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35095      413675 :          data_tmp = IAND(data_tmp, mask_left(18))
   35096      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35097      413675 :          ipack = ipack + 1
   35098      413675 :          packed_data(ipack) = pack_tmp
   35099      413675 :          data_tmp = full_data(idata)
   35100      413675 :          pack_tmp = ISHFT(data_tmp, 37)
   35101      413675 :          pack_tmp = ISHFT(pack_tmp, -37)
   35102      413675 :          idata = idata + 1
   35103      413675 :          data_tmp = full_data(idata)
   35104      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35105      413675 :          data_tmp = IAND(data_tmp, mask_left(37))
   35106      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35107      413675 :          ipack = ipack + 1
   35108      413675 :          packed_data(ipack) = pack_tmp
   35109      413675 :          data_tmp = full_data(idata)
   35110      413675 :          pack_tmp = ISHFT(data_tmp, 56)
   35111      413675 :          pack_tmp = ISHFT(pack_tmp, -45)
   35112      413675 :          idata = idata + 1
   35113      413675 :          data_tmp = full_data(idata)
   35114      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35115      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35116      413675 :          pack_tmp = ISHFT(pack_tmp, -11)
   35117      413675 :          idata = idata + 1
   35118      413675 :          data_tmp = full_data(idata)
   35119      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35120      413675 :          data_tmp = IAND(data_tmp, mask_left(11))
   35121      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35122      413675 :          ipack = ipack + 1
   35123      413675 :          packed_data(ipack) = pack_tmp
   35124      413675 :          data_tmp = full_data(idata)
   35125      413675 :          pack_tmp = ISHFT(data_tmp, 30)
   35126      413675 :          pack_tmp = ISHFT(pack_tmp, -30)
   35127      413675 :          idata = idata + 1
   35128      413675 :          data_tmp = full_data(idata)
   35129      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35130      413675 :          data_tmp = IAND(data_tmp, mask_left(30))
   35131      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35132      413675 :          ipack = ipack + 1
   35133      413675 :          packed_data(ipack) = pack_tmp
   35134      413675 :          data_tmp = full_data(idata)
   35135      413675 :          pack_tmp = ISHFT(data_tmp, 49)
   35136      413675 :          pack_tmp = ISHFT(pack_tmp, -45)
   35137      413675 :          idata = idata + 1
   35138      413675 :          data_tmp = full_data(idata)
   35139      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35140      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35141      413675 :          pack_tmp = ISHFT(pack_tmp, -4)
   35142      413675 :          idata = idata + 1
   35143      413675 :          data_tmp = full_data(idata)
   35144      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35145      413675 :          data_tmp = IAND(data_tmp, mask_left(4))
   35146      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35147      413675 :          ipack = ipack + 1
   35148      413675 :          packed_data(ipack) = pack_tmp
   35149      413675 :          data_tmp = full_data(idata)
   35150      413675 :          pack_tmp = ISHFT(data_tmp, 23)
   35151      413675 :          pack_tmp = ISHFT(pack_tmp, -23)
   35152      413675 :          idata = idata + 1
   35153      413675 :          data_tmp = full_data(idata)
   35154      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35155      413675 :          data_tmp = IAND(data_tmp, mask_left(23))
   35156      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35157      413675 :          ipack = ipack + 1
   35158      413675 :          packed_data(ipack) = pack_tmp
   35159      413675 :          data_tmp = full_data(idata)
   35160      413675 :          pack_tmp = ISHFT(data_tmp, 42)
   35161      413675 :          pack_tmp = ISHFT(pack_tmp, -42)
   35162      413675 :          idata = idata + 1
   35163      413675 :          data_tmp = full_data(idata)
   35164      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35165      413675 :          data_tmp = IAND(data_tmp, mask_left(42))
   35166      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35167      413675 :          ipack = ipack + 1
   35168      413675 :          packed_data(ipack) = pack_tmp
   35169      413675 :          data_tmp = full_data(idata)
   35170      413675 :          pack_tmp = ISHFT(data_tmp, 61)
   35171      413675 :          pack_tmp = ISHFT(pack_tmp, -45)
   35172      413675 :          idata = idata + 1
   35173      413675 :          data_tmp = full_data(idata)
   35174      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35175      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35176      413675 :          pack_tmp = ISHFT(pack_tmp, -16)
   35177      413675 :          idata = idata + 1
   35178      413675 :          data_tmp = full_data(idata)
   35179      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35180      413675 :          data_tmp = IAND(data_tmp, mask_left(16))
   35181      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35182      413675 :          ipack = ipack + 1
   35183      413675 :          packed_data(ipack) = pack_tmp
   35184      413675 :          data_tmp = full_data(idata)
   35185      413675 :          pack_tmp = ISHFT(data_tmp, 35)
   35186      413675 :          pack_tmp = ISHFT(pack_tmp, -35)
   35187      413675 :          idata = idata + 1
   35188      413675 :          data_tmp = full_data(idata)
   35189      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35190      413675 :          data_tmp = IAND(data_tmp, mask_left(35))
   35191      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35192      413675 :          ipack = ipack + 1
   35193      413675 :          packed_data(ipack) = pack_tmp
   35194      413675 :          data_tmp = full_data(idata)
   35195      413675 :          pack_tmp = ISHFT(data_tmp, 54)
   35196      413675 :          pack_tmp = ISHFT(pack_tmp, -45)
   35197      413675 :          idata = idata + 1
   35198      413675 :          data_tmp = full_data(idata)
   35199      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35200      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35201      413675 :          pack_tmp = ISHFT(pack_tmp, -9)
   35202      413675 :          idata = idata + 1
   35203      413675 :          data_tmp = full_data(idata)
   35204      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35205      413675 :          data_tmp = IAND(data_tmp, mask_left(9))
   35206      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35207      413675 :          ipack = ipack + 1
   35208      413675 :          packed_data(ipack) = pack_tmp
   35209      413675 :          data_tmp = full_data(idata)
   35210      413675 :          pack_tmp = ISHFT(data_tmp, 28)
   35211      413675 :          pack_tmp = ISHFT(pack_tmp, -28)
   35212      413675 :          idata = idata + 1
   35213      413675 :          data_tmp = full_data(idata)
   35214      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35215      413675 :          data_tmp = IAND(data_tmp, mask_left(28))
   35216      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35217      413675 :          ipack = ipack + 1
   35218      413675 :          packed_data(ipack) = pack_tmp
   35219      413675 :          data_tmp = full_data(idata)
   35220      413675 :          pack_tmp = ISHFT(data_tmp, 47)
   35221      413675 :          pack_tmp = ISHFT(pack_tmp, -45)
   35222      413675 :          idata = idata + 1
   35223      413675 :          data_tmp = full_data(idata)
   35224      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35225      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35226      413675 :          pack_tmp = ISHFT(pack_tmp, -2)
   35227      413675 :          idata = idata + 1
   35228      413675 :          data_tmp = full_data(idata)
   35229      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35230      413675 :          data_tmp = IAND(data_tmp, mask_left(2))
   35231      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35232      413675 :          ipack = ipack + 1
   35233      413675 :          packed_data(ipack) = pack_tmp
   35234      413675 :          data_tmp = full_data(idata)
   35235      413675 :          pack_tmp = ISHFT(data_tmp, 21)
   35236      413675 :          pack_tmp = ISHFT(pack_tmp, -21)
   35237      413675 :          idata = idata + 1
   35238      413675 :          data_tmp = full_data(idata)
   35239      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35240      413675 :          data_tmp = IAND(data_tmp, mask_left(21))
   35241      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35242      413675 :          ipack = ipack + 1
   35243      413675 :          packed_data(ipack) = pack_tmp
   35244      413675 :          data_tmp = full_data(idata)
   35245      413675 :          pack_tmp = ISHFT(data_tmp, 40)
   35246      413675 :          pack_tmp = ISHFT(pack_tmp, -40)
   35247      413675 :          idata = idata + 1
   35248      413675 :          data_tmp = full_data(idata)
   35249      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35250      413675 :          data_tmp = IAND(data_tmp, mask_left(40))
   35251      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35252      413675 :          ipack = ipack + 1
   35253      413675 :          packed_data(ipack) = pack_tmp
   35254      413675 :          data_tmp = full_data(idata)
   35255      413675 :          pack_tmp = ISHFT(data_tmp, 59)
   35256      413675 :          pack_tmp = ISHFT(pack_tmp, -45)
   35257      413675 :          idata = idata + 1
   35258      413675 :          data_tmp = full_data(idata)
   35259      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35260      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35261      413675 :          pack_tmp = ISHFT(pack_tmp, -14)
   35262      413675 :          idata = idata + 1
   35263      413675 :          data_tmp = full_data(idata)
   35264      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35265      413675 :          data_tmp = IAND(data_tmp, mask_left(14))
   35266      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35267      413675 :          ipack = ipack + 1
   35268      413675 :          packed_data(ipack) = pack_tmp
   35269      413675 :          data_tmp = full_data(idata)
   35270      413675 :          pack_tmp = ISHFT(data_tmp, 33)
   35271      413675 :          pack_tmp = ISHFT(pack_tmp, -33)
   35272      413675 :          idata = idata + 1
   35273      413675 :          data_tmp = full_data(idata)
   35274      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35275      413675 :          data_tmp = IAND(data_tmp, mask_left(33))
   35276      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35277      413675 :          ipack = ipack + 1
   35278      413675 :          packed_data(ipack) = pack_tmp
   35279      413675 :          data_tmp = full_data(idata)
   35280      413675 :          pack_tmp = ISHFT(data_tmp, 52)
   35281      413675 :          pack_tmp = ISHFT(pack_tmp, -45)
   35282      413675 :          idata = idata + 1
   35283      413675 :          data_tmp = full_data(idata)
   35284      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35285      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35286      413675 :          pack_tmp = ISHFT(pack_tmp, -7)
   35287      413675 :          idata = idata + 1
   35288      413675 :          data_tmp = full_data(idata)
   35289      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35290      413675 :          data_tmp = IAND(data_tmp, mask_left(7))
   35291      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35292      413675 :          ipack = ipack + 1
   35293      413675 :          packed_data(ipack) = pack_tmp
   35294      413675 :          data_tmp = full_data(idata)
   35295      413675 :          pack_tmp = ISHFT(data_tmp, 26)
   35296      413675 :          pack_tmp = ISHFT(pack_tmp, -26)
   35297      413675 :          idata = idata + 1
   35298      413675 :          data_tmp = full_data(idata)
   35299      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35300      413675 :          data_tmp = IAND(data_tmp, mask_left(26))
   35301      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35302      413675 :          ipack = ipack + 1
   35303      413675 :          packed_data(ipack) = pack_tmp
   35304      413675 :          data_tmp = full_data(idata)
   35305      413675 :          pack_tmp = ISHFT(data_tmp, 45)
   35306      413675 :          pack_tmp = ISHFT(pack_tmp, -45)
   35307      413675 :          idata = idata + 1
   35308      413675 :          data_tmp = full_data(idata)
   35309      413675 :          data_tmp = ISHFT(data_tmp, 19)
   35310      413675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35311             :          pack_tmp = ISHFT(pack_tmp, 0)
   35312      413675 :          pack_tmp = ISHFT(pack_tmp, 0)
   35313      413675 :          ipack = ipack + 1
   35314      413725 :          packed_data(ipack) = pack_tmp
   35315             :       END DO
   35316       28529 :       IF (Ndata_rep < Ndata) THEN
   35317        5034 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   35318             :       END IF
   35319       28529 :    END SUBROUTINE ints2bits_45
   35320             : 
   35321             : ! **************************************************************************************************
   35322             : !> \brief ...
   35323             : !> \param Ndata ...
   35324             : !> \param packed_data ...
   35325             : !> \param full_data ...
   35326             : ! **************************************************************************************************
   35327      130781 :    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      130781 :       ipack = 0
   35338      130781 :       idata = 0
   35339      130781 :       pack_tmp = 0
   35340      130781 :       Ndata_rep = (Ndata/64)*64
   35341      130781 :       DO kdata = 1, Ndata_rep, 64
   35342     1822502 :          idata = idata + 1
   35343     1822502 :          data_tmp = ISHFT(pack_tmp, 45)
   35344     1822502 :          ipack = ipack + 1
   35345     1822502 :          pack_tmp = packed_data(ipack)
   35346     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   35347     1822502 :          pack_tmp = ISHFT(pack_tmp, -45)
   35348     1822502 :          idata = idata + 1
   35349     1822502 :          data_tmp = ISHFT(pack_tmp, 26)
   35350     1822502 :          ipack = ipack + 1
   35351     1822502 :          pack_tmp = packed_data(ipack)
   35352     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   35353     1822502 :          pack_tmp = ISHFT(pack_tmp, -26)
   35354     1822502 :          idata = idata + 1
   35355     1822502 :          data_tmp = ISHFT(pack_tmp, 7)
   35356     1822502 :          ipack = ipack + 1
   35357     1822502 :          pack_tmp = packed_data(ipack)
   35358     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   35359     1822502 :          pack_tmp = ISHFT(pack_tmp, -7)
   35360     1822502 :          idata = idata + 1
   35361     1822502 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35362     1822502 :          full_data(idata) = data_tmp
   35363     1822502 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35364     1822502 :          idata = idata + 1
   35365     1822502 :          data_tmp = ISHFT(pack_tmp, 33)
   35366     1822502 :          ipack = ipack + 1
   35367     1822502 :          pack_tmp = packed_data(ipack)
   35368     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   35369     1822502 :          pack_tmp = ISHFT(pack_tmp, -33)
   35370     1822502 :          idata = idata + 1
   35371     1822502 :          data_tmp = ISHFT(pack_tmp, 14)
   35372     1822502 :          ipack = ipack + 1
   35373     1822502 :          pack_tmp = packed_data(ipack)
   35374     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   35375     1822502 :          pack_tmp = ISHFT(pack_tmp, -14)
   35376     1822502 :          idata = idata + 1
   35377     1822502 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35378     1822502 :          full_data(idata) = data_tmp
   35379     1822502 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35380     1822502 :          idata = idata + 1
   35381     1822502 :          data_tmp = ISHFT(pack_tmp, 40)
   35382     1822502 :          ipack = ipack + 1
   35383     1822502 :          pack_tmp = packed_data(ipack)
   35384     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   35385     1822502 :          pack_tmp = ISHFT(pack_tmp, -40)
   35386     1822502 :          idata = idata + 1
   35387     1822502 :          data_tmp = ISHFT(pack_tmp, 21)
   35388     1822502 :          ipack = ipack + 1
   35389     1822502 :          pack_tmp = packed_data(ipack)
   35390     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   35391     1822502 :          pack_tmp = ISHFT(pack_tmp, -21)
   35392     1822502 :          idata = idata + 1
   35393     1822502 :          data_tmp = ISHFT(pack_tmp, 2)
   35394     1822502 :          ipack = ipack + 1
   35395     1822502 :          pack_tmp = packed_data(ipack)
   35396     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   35397     1822502 :          pack_tmp = ISHFT(pack_tmp, -2)
   35398     1822502 :          idata = idata + 1
   35399     1822502 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35400     1822502 :          full_data(idata) = data_tmp
   35401     1822502 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35402     1822502 :          idata = idata + 1
   35403     1822502 :          data_tmp = ISHFT(pack_tmp, 28)
   35404     1822502 :          ipack = ipack + 1
   35405     1822502 :          pack_tmp = packed_data(ipack)
   35406     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   35407     1822502 :          pack_tmp = ISHFT(pack_tmp, -28)
   35408     1822502 :          idata = idata + 1
   35409     1822502 :          data_tmp = ISHFT(pack_tmp, 9)
   35410     1822502 :          ipack = ipack + 1
   35411     1822502 :          pack_tmp = packed_data(ipack)
   35412     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   35413     1822502 :          pack_tmp = ISHFT(pack_tmp, -9)
   35414     1822502 :          idata = idata + 1
   35415     1822502 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35416     1822502 :          full_data(idata) = data_tmp
   35417     1822502 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35418     1822502 :          idata = idata + 1
   35419     1822502 :          data_tmp = ISHFT(pack_tmp, 35)
   35420     1822502 :          ipack = ipack + 1
   35421     1822502 :          pack_tmp = packed_data(ipack)
   35422     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   35423     1822502 :          pack_tmp = ISHFT(pack_tmp, -35)
   35424     1822502 :          idata = idata + 1
   35425     1822502 :          data_tmp = ISHFT(pack_tmp, 16)
   35426     1822502 :          ipack = ipack + 1
   35427     1822502 :          pack_tmp = packed_data(ipack)
   35428     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   35429     1822502 :          pack_tmp = ISHFT(pack_tmp, -16)
   35430     1822502 :          idata = idata + 1
   35431     1822502 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35432     1822502 :          full_data(idata) = data_tmp
   35433     1822502 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35434     1822502 :          idata = idata + 1
   35435     1822502 :          data_tmp = ISHFT(pack_tmp, 42)
   35436     1822502 :          ipack = ipack + 1
   35437     1822502 :          pack_tmp = packed_data(ipack)
   35438     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   35439     1822502 :          pack_tmp = ISHFT(pack_tmp, -42)
   35440     1822502 :          idata = idata + 1
   35441     1822502 :          data_tmp = ISHFT(pack_tmp, 23)
   35442     1822502 :          ipack = ipack + 1
   35443     1822502 :          pack_tmp = packed_data(ipack)
   35444     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   35445     1822502 :          pack_tmp = ISHFT(pack_tmp, -23)
   35446     1822502 :          idata = idata + 1
   35447     1822502 :          data_tmp = ISHFT(pack_tmp, 4)
   35448     1822502 :          ipack = ipack + 1
   35449     1822502 :          pack_tmp = packed_data(ipack)
   35450     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   35451     1822502 :          pack_tmp = ISHFT(pack_tmp, -4)
   35452     1822502 :          idata = idata + 1
   35453     1822502 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35454     1822502 :          full_data(idata) = data_tmp
   35455     1822502 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35456     1822502 :          idata = idata + 1
   35457     1822502 :          data_tmp = ISHFT(pack_tmp, 30)
   35458     1822502 :          ipack = ipack + 1
   35459     1822502 :          pack_tmp = packed_data(ipack)
   35460     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   35461     1822502 :          pack_tmp = ISHFT(pack_tmp, -30)
   35462     1822502 :          idata = idata + 1
   35463     1822502 :          data_tmp = ISHFT(pack_tmp, 11)
   35464     1822502 :          ipack = ipack + 1
   35465     1822502 :          pack_tmp = packed_data(ipack)
   35466     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   35467     1822502 :          pack_tmp = ISHFT(pack_tmp, -11)
   35468     1822502 :          idata = idata + 1
   35469     1822502 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35470     1822502 :          full_data(idata) = data_tmp
   35471     1822502 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35472     1822502 :          idata = idata + 1
   35473     1822502 :          data_tmp = ISHFT(pack_tmp, 37)
   35474     1822502 :          ipack = ipack + 1
   35475     1822502 :          pack_tmp = packed_data(ipack)
   35476     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   35477     1822502 :          pack_tmp = ISHFT(pack_tmp, -37)
   35478     1822502 :          idata = idata + 1
   35479     1822502 :          data_tmp = ISHFT(pack_tmp, 18)
   35480     1822502 :          ipack = ipack + 1
   35481     1822502 :          pack_tmp = packed_data(ipack)
   35482     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   35483     1822502 :          pack_tmp = ISHFT(pack_tmp, -18)
   35484     1822502 :          idata = idata + 1
   35485     1822502 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35486     1822502 :          full_data(idata) = data_tmp
   35487     1822502 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35488     1822502 :          idata = idata + 1
   35489     1822502 :          data_tmp = ISHFT(pack_tmp, 44)
   35490     1822502 :          ipack = ipack + 1
   35491     1822502 :          pack_tmp = packed_data(ipack)
   35492     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   35493     1822502 :          pack_tmp = ISHFT(pack_tmp, -44)
   35494     1822502 :          idata = idata + 1
   35495     1822502 :          data_tmp = ISHFT(pack_tmp, 25)
   35496     1822502 :          ipack = ipack + 1
   35497     1822502 :          pack_tmp = packed_data(ipack)
   35498     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   35499     1822502 :          pack_tmp = ISHFT(pack_tmp, -25)
   35500     1822502 :          idata = idata + 1
   35501     1822502 :          data_tmp = ISHFT(pack_tmp, 6)
   35502     1822502 :          ipack = ipack + 1
   35503     1822502 :          pack_tmp = packed_data(ipack)
   35504     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   35505     1822502 :          pack_tmp = ISHFT(pack_tmp, -6)
   35506     1822502 :          idata = idata + 1
   35507     1822502 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35508     1822502 :          full_data(idata) = data_tmp
   35509     1822502 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35510     1822502 :          idata = idata + 1
   35511     1822502 :          data_tmp = ISHFT(pack_tmp, 32)
   35512     1822502 :          ipack = ipack + 1
   35513     1822502 :          pack_tmp = packed_data(ipack)
   35514     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   35515     1822502 :          pack_tmp = ISHFT(pack_tmp, -32)
   35516     1822502 :          idata = idata + 1
   35517     1822502 :          data_tmp = ISHFT(pack_tmp, 13)
   35518     1822502 :          ipack = ipack + 1
   35519     1822502 :          pack_tmp = packed_data(ipack)
   35520     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   35521     1822502 :          pack_tmp = ISHFT(pack_tmp, -13)
   35522     1822502 :          idata = idata + 1
   35523     1822502 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35524     1822502 :          full_data(idata) = data_tmp
   35525     1822502 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35526     1822502 :          idata = idata + 1
   35527     1822502 :          data_tmp = ISHFT(pack_tmp, 39)
   35528     1822502 :          ipack = ipack + 1
   35529     1822502 :          pack_tmp = packed_data(ipack)
   35530     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   35531     1822502 :          pack_tmp = ISHFT(pack_tmp, -39)
   35532     1822502 :          idata = idata + 1
   35533     1822502 :          data_tmp = ISHFT(pack_tmp, 20)
   35534     1822502 :          ipack = ipack + 1
   35535     1822502 :          pack_tmp = packed_data(ipack)
   35536     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   35537     1822502 :          pack_tmp = ISHFT(pack_tmp, -20)
   35538     1822502 :          idata = idata + 1
   35539     1822502 :          data_tmp = ISHFT(pack_tmp, 1)
   35540     1822502 :          ipack = ipack + 1
   35541     1822502 :          pack_tmp = packed_data(ipack)
   35542     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   35543     1822502 :          pack_tmp = ISHFT(pack_tmp, -1)
   35544     1822502 :          idata = idata + 1
   35545     1822502 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35546     1822502 :          full_data(idata) = data_tmp
   35547     1822502 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35548     1822502 :          idata = idata + 1
   35549     1822502 :          data_tmp = ISHFT(pack_tmp, 27)
   35550     1822502 :          ipack = ipack + 1
   35551     1822502 :          pack_tmp = packed_data(ipack)
   35552     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   35553     1822502 :          pack_tmp = ISHFT(pack_tmp, -27)
   35554     1822502 :          idata = idata + 1
   35555     1822502 :          data_tmp = ISHFT(pack_tmp, 8)
   35556     1822502 :          ipack = ipack + 1
   35557     1822502 :          pack_tmp = packed_data(ipack)
   35558     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   35559     1822502 :          pack_tmp = ISHFT(pack_tmp, -8)
   35560     1822502 :          idata = idata + 1
   35561     1822502 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35562     1822502 :          full_data(idata) = data_tmp
   35563     1822502 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35564     1822502 :          idata = idata + 1
   35565     1822502 :          data_tmp = ISHFT(pack_tmp, 34)
   35566     1822502 :          ipack = ipack + 1
   35567     1822502 :          pack_tmp = packed_data(ipack)
   35568     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   35569     1822502 :          pack_tmp = ISHFT(pack_tmp, -34)
   35570     1822502 :          idata = idata + 1
   35571     1822502 :          data_tmp = ISHFT(pack_tmp, 15)
   35572     1822502 :          ipack = ipack + 1
   35573     1822502 :          pack_tmp = packed_data(ipack)
   35574     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   35575     1822502 :          pack_tmp = ISHFT(pack_tmp, -15)
   35576     1822502 :          idata = idata + 1
   35577     1822502 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35578     1822502 :          full_data(idata) = data_tmp
   35579     1822502 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35580     1822502 :          idata = idata + 1
   35581     1822502 :          data_tmp = ISHFT(pack_tmp, 41)
   35582     1822502 :          ipack = ipack + 1
   35583     1822502 :          pack_tmp = packed_data(ipack)
   35584     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   35585     1822502 :          pack_tmp = ISHFT(pack_tmp, -41)
   35586     1822502 :          idata = idata + 1
   35587     1822502 :          data_tmp = ISHFT(pack_tmp, 22)
   35588     1822502 :          ipack = ipack + 1
   35589     1822502 :          pack_tmp = packed_data(ipack)
   35590     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   35591     1822502 :          pack_tmp = ISHFT(pack_tmp, -22)
   35592     1822502 :          idata = idata + 1
   35593     1822502 :          data_tmp = ISHFT(pack_tmp, 3)
   35594     1822502 :          ipack = ipack + 1
   35595     1822502 :          pack_tmp = packed_data(ipack)
   35596     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   35597     1822502 :          pack_tmp = ISHFT(pack_tmp, -3)
   35598     1822502 :          idata = idata + 1
   35599     1822502 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35600     1822502 :          full_data(idata) = data_tmp
   35601     1822502 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35602     1822502 :          idata = idata + 1
   35603     1822502 :          data_tmp = ISHFT(pack_tmp, 29)
   35604     1822502 :          ipack = ipack + 1
   35605     1822502 :          pack_tmp = packed_data(ipack)
   35606     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   35607     1822502 :          pack_tmp = ISHFT(pack_tmp, -29)
   35608     1822502 :          idata = idata + 1
   35609     1822502 :          data_tmp = ISHFT(pack_tmp, 10)
   35610     1822502 :          ipack = ipack + 1
   35611     1822502 :          pack_tmp = packed_data(ipack)
   35612     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   35613     1822502 :          pack_tmp = ISHFT(pack_tmp, -10)
   35614     1822502 :          idata = idata + 1
   35615     1822502 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35616     1822502 :          full_data(idata) = data_tmp
   35617     1822502 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35618     1822502 :          idata = idata + 1
   35619     1822502 :          data_tmp = ISHFT(pack_tmp, 36)
   35620     1822502 :          ipack = ipack + 1
   35621     1822502 :          pack_tmp = packed_data(ipack)
   35622     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   35623     1822502 :          pack_tmp = ISHFT(pack_tmp, -36)
   35624     1822502 :          idata = idata + 1
   35625     1822502 :          data_tmp = ISHFT(pack_tmp, 17)
   35626     1822502 :          ipack = ipack + 1
   35627     1822502 :          pack_tmp = packed_data(ipack)
   35628     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   35629     1822502 :          pack_tmp = ISHFT(pack_tmp, -17)
   35630     1822502 :          idata = idata + 1
   35631     1822502 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35632     1822502 :          full_data(idata) = data_tmp
   35633     1822502 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35634     1822502 :          idata = idata + 1
   35635     1822502 :          data_tmp = ISHFT(pack_tmp, 43)
   35636     1822502 :          ipack = ipack + 1
   35637     1822502 :          pack_tmp = packed_data(ipack)
   35638     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   35639     1822502 :          pack_tmp = ISHFT(pack_tmp, -43)
   35640     1822502 :          idata = idata + 1
   35641     1822502 :          data_tmp = ISHFT(pack_tmp, 24)
   35642     1822502 :          ipack = ipack + 1
   35643     1822502 :          pack_tmp = packed_data(ipack)
   35644     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   35645     1822502 :          pack_tmp = ISHFT(pack_tmp, -24)
   35646     1822502 :          idata = idata + 1
   35647     1822502 :          data_tmp = ISHFT(pack_tmp, 5)
   35648     1822502 :          ipack = ipack + 1
   35649     1822502 :          pack_tmp = packed_data(ipack)
   35650     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   35651     1822502 :          pack_tmp = ISHFT(pack_tmp, -5)
   35652     1822502 :          idata = idata + 1
   35653     1822502 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35654     1822502 :          full_data(idata) = data_tmp
   35655     1822502 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35656     1822502 :          idata = idata + 1
   35657     1822502 :          data_tmp = ISHFT(pack_tmp, 31)
   35658     1822502 :          ipack = ipack + 1
   35659     1822502 :          pack_tmp = packed_data(ipack)
   35660     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   35661     1822502 :          pack_tmp = ISHFT(pack_tmp, -31)
   35662     1822502 :          idata = idata + 1
   35663     1822502 :          data_tmp = ISHFT(pack_tmp, 12)
   35664     1822502 :          ipack = ipack + 1
   35665     1822502 :          pack_tmp = packed_data(ipack)
   35666     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   35667     1822502 :          pack_tmp = ISHFT(pack_tmp, -12)
   35668     1822502 :          idata = idata + 1
   35669     1822502 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35670     1822502 :          full_data(idata) = data_tmp
   35671     1822502 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35672     1822502 :          idata = idata + 1
   35673     1822502 :          data_tmp = ISHFT(pack_tmp, 38)
   35674     1822502 :          ipack = ipack + 1
   35675     1822502 :          pack_tmp = packed_data(ipack)
   35676     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   35677     1822502 :          pack_tmp = ISHFT(pack_tmp, -38)
   35678     1822502 :          idata = idata + 1
   35679     1822502 :          data_tmp = ISHFT(pack_tmp, 19)
   35680     1822502 :          ipack = ipack + 1
   35681     1822502 :          pack_tmp = packed_data(ipack)
   35682     1822502 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   35683     1822502 :          pack_tmp = ISHFT(pack_tmp, -19)
   35684     1822502 :          idata = idata + 1
   35685     1822502 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35686     1822502 :          full_data(idata) = data_tmp
   35687     1823458 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35688             :       END DO
   35689      130781 :       IF (Ndata_rep < Ndata) THEN
   35690       31764 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   35691             :       END IF
   35692      130781 :    END SUBROUTINE bits2ints_45
   35693             : 
   35694             : ! **************************************************************************************************
   35695             : !> \brief ...
   35696             : !> \param Ndata ...
   35697             : !> \param packed_data ...
   35698             : !> \param full_data ...
   35699             : ! **************************************************************************************************
   35700       28079 :    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       28079 :       idata = 0
   35711       28079 :       ipack = 0
   35712       28079 :       Ndata_rep = (Ndata/64)*64
   35713       28079 :       DO kdata = 1, Ndata_rep, 64
   35714      408936 :          pack_tmp = 0
   35715      408936 :          idata = idata + 1
   35716      408936 :          data_tmp = full_data(idata)
   35717      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35718      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35719      408936 :          pack_tmp = ISHFT(pack_tmp, -18)
   35720      408936 :          idata = idata + 1
   35721      408936 :          data_tmp = full_data(idata)
   35722      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35723      408936 :          data_tmp = IAND(data_tmp, mask_left(18))
   35724      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35725      408936 :          ipack = ipack + 1
   35726      408936 :          packed_data(ipack) = pack_tmp
   35727      408936 :          data_tmp = full_data(idata)
   35728      408936 :          pack_tmp = ISHFT(data_tmp, 36)
   35729      408936 :          pack_tmp = ISHFT(pack_tmp, -36)
   35730      408936 :          idata = idata + 1
   35731      408936 :          data_tmp = full_data(idata)
   35732      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35733      408936 :          data_tmp = IAND(data_tmp, mask_left(36))
   35734      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35735      408936 :          ipack = ipack + 1
   35736      408936 :          packed_data(ipack) = pack_tmp
   35737      408936 :          data_tmp = full_data(idata)
   35738      408936 :          pack_tmp = ISHFT(data_tmp, 54)
   35739      408936 :          pack_tmp = ISHFT(pack_tmp, -46)
   35740      408936 :          idata = idata + 1
   35741      408936 :          data_tmp = full_data(idata)
   35742      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35743      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35744      408936 :          pack_tmp = ISHFT(pack_tmp, -8)
   35745      408936 :          idata = idata + 1
   35746      408936 :          data_tmp = full_data(idata)
   35747      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35748      408936 :          data_tmp = IAND(data_tmp, mask_left(8))
   35749      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35750      408936 :          ipack = ipack + 1
   35751      408936 :          packed_data(ipack) = pack_tmp
   35752      408936 :          data_tmp = full_data(idata)
   35753      408936 :          pack_tmp = ISHFT(data_tmp, 26)
   35754      408936 :          pack_tmp = ISHFT(pack_tmp, -26)
   35755      408936 :          idata = idata + 1
   35756      408936 :          data_tmp = full_data(idata)
   35757      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35758      408936 :          data_tmp = IAND(data_tmp, mask_left(26))
   35759      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35760      408936 :          ipack = ipack + 1
   35761      408936 :          packed_data(ipack) = pack_tmp
   35762      408936 :          data_tmp = full_data(idata)
   35763      408936 :          pack_tmp = ISHFT(data_tmp, 44)
   35764      408936 :          pack_tmp = ISHFT(pack_tmp, -44)
   35765      408936 :          idata = idata + 1
   35766      408936 :          data_tmp = full_data(idata)
   35767      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35768      408936 :          data_tmp = IAND(data_tmp, mask_left(44))
   35769      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35770      408936 :          ipack = ipack + 1
   35771      408936 :          packed_data(ipack) = pack_tmp
   35772      408936 :          data_tmp = full_data(idata)
   35773      408936 :          pack_tmp = ISHFT(data_tmp, 62)
   35774      408936 :          pack_tmp = ISHFT(pack_tmp, -46)
   35775      408936 :          idata = idata + 1
   35776      408936 :          data_tmp = full_data(idata)
   35777      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35778      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35779      408936 :          pack_tmp = ISHFT(pack_tmp, -16)
   35780      408936 :          idata = idata + 1
   35781      408936 :          data_tmp = full_data(idata)
   35782      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35783      408936 :          data_tmp = IAND(data_tmp, mask_left(16))
   35784      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35785      408936 :          ipack = ipack + 1
   35786      408936 :          packed_data(ipack) = pack_tmp
   35787      408936 :          data_tmp = full_data(idata)
   35788      408936 :          pack_tmp = ISHFT(data_tmp, 34)
   35789      408936 :          pack_tmp = ISHFT(pack_tmp, -34)
   35790      408936 :          idata = idata + 1
   35791      408936 :          data_tmp = full_data(idata)
   35792      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35793      408936 :          data_tmp = IAND(data_tmp, mask_left(34))
   35794      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35795      408936 :          ipack = ipack + 1
   35796      408936 :          packed_data(ipack) = pack_tmp
   35797      408936 :          data_tmp = full_data(idata)
   35798      408936 :          pack_tmp = ISHFT(data_tmp, 52)
   35799      408936 :          pack_tmp = ISHFT(pack_tmp, -46)
   35800      408936 :          idata = idata + 1
   35801      408936 :          data_tmp = full_data(idata)
   35802      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35803      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35804      408936 :          pack_tmp = ISHFT(pack_tmp, -6)
   35805      408936 :          idata = idata + 1
   35806      408936 :          data_tmp = full_data(idata)
   35807      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35808      408936 :          data_tmp = IAND(data_tmp, mask_left(6))
   35809      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35810      408936 :          ipack = ipack + 1
   35811      408936 :          packed_data(ipack) = pack_tmp
   35812      408936 :          data_tmp = full_data(idata)
   35813      408936 :          pack_tmp = ISHFT(data_tmp, 24)
   35814      408936 :          pack_tmp = ISHFT(pack_tmp, -24)
   35815      408936 :          idata = idata + 1
   35816      408936 :          data_tmp = full_data(idata)
   35817      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35818      408936 :          data_tmp = IAND(data_tmp, mask_left(24))
   35819      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35820      408936 :          ipack = ipack + 1
   35821      408936 :          packed_data(ipack) = pack_tmp
   35822      408936 :          data_tmp = full_data(idata)
   35823      408936 :          pack_tmp = ISHFT(data_tmp, 42)
   35824      408936 :          pack_tmp = ISHFT(pack_tmp, -42)
   35825      408936 :          idata = idata + 1
   35826      408936 :          data_tmp = full_data(idata)
   35827      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35828      408936 :          data_tmp = IAND(data_tmp, mask_left(42))
   35829      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35830      408936 :          ipack = ipack + 1
   35831      408936 :          packed_data(ipack) = pack_tmp
   35832      408936 :          data_tmp = full_data(idata)
   35833      408936 :          pack_tmp = ISHFT(data_tmp, 60)
   35834      408936 :          pack_tmp = ISHFT(pack_tmp, -46)
   35835      408936 :          idata = idata + 1
   35836      408936 :          data_tmp = full_data(idata)
   35837      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35838      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35839      408936 :          pack_tmp = ISHFT(pack_tmp, -14)
   35840      408936 :          idata = idata + 1
   35841      408936 :          data_tmp = full_data(idata)
   35842      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35843      408936 :          data_tmp = IAND(data_tmp, mask_left(14))
   35844      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35845      408936 :          ipack = ipack + 1
   35846      408936 :          packed_data(ipack) = pack_tmp
   35847      408936 :          data_tmp = full_data(idata)
   35848      408936 :          pack_tmp = ISHFT(data_tmp, 32)
   35849      408936 :          pack_tmp = ISHFT(pack_tmp, -32)
   35850      408936 :          idata = idata + 1
   35851      408936 :          data_tmp = full_data(idata)
   35852      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35853      408936 :          data_tmp = IAND(data_tmp, mask_left(32))
   35854      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35855      408936 :          ipack = ipack + 1
   35856      408936 :          packed_data(ipack) = pack_tmp
   35857      408936 :          data_tmp = full_data(idata)
   35858      408936 :          pack_tmp = ISHFT(data_tmp, 50)
   35859      408936 :          pack_tmp = ISHFT(pack_tmp, -46)
   35860      408936 :          idata = idata + 1
   35861      408936 :          data_tmp = full_data(idata)
   35862      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35863      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35864      408936 :          pack_tmp = ISHFT(pack_tmp, -4)
   35865      408936 :          idata = idata + 1
   35866      408936 :          data_tmp = full_data(idata)
   35867      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35868      408936 :          data_tmp = IAND(data_tmp, mask_left(4))
   35869      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35870      408936 :          ipack = ipack + 1
   35871      408936 :          packed_data(ipack) = pack_tmp
   35872      408936 :          data_tmp = full_data(idata)
   35873      408936 :          pack_tmp = ISHFT(data_tmp, 22)
   35874      408936 :          pack_tmp = ISHFT(pack_tmp, -22)
   35875      408936 :          idata = idata + 1
   35876      408936 :          data_tmp = full_data(idata)
   35877      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35878      408936 :          data_tmp = IAND(data_tmp, mask_left(22))
   35879      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35880      408936 :          ipack = ipack + 1
   35881      408936 :          packed_data(ipack) = pack_tmp
   35882      408936 :          data_tmp = full_data(idata)
   35883      408936 :          pack_tmp = ISHFT(data_tmp, 40)
   35884      408936 :          pack_tmp = ISHFT(pack_tmp, -40)
   35885      408936 :          idata = idata + 1
   35886      408936 :          data_tmp = full_data(idata)
   35887      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35888      408936 :          data_tmp = IAND(data_tmp, mask_left(40))
   35889      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35890      408936 :          ipack = ipack + 1
   35891      408936 :          packed_data(ipack) = pack_tmp
   35892      408936 :          data_tmp = full_data(idata)
   35893      408936 :          pack_tmp = ISHFT(data_tmp, 58)
   35894      408936 :          pack_tmp = ISHFT(pack_tmp, -46)
   35895      408936 :          idata = idata + 1
   35896      408936 :          data_tmp = full_data(idata)
   35897      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35898      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35899      408936 :          pack_tmp = ISHFT(pack_tmp, -12)
   35900      408936 :          idata = idata + 1
   35901      408936 :          data_tmp = full_data(idata)
   35902      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35903      408936 :          data_tmp = IAND(data_tmp, mask_left(12))
   35904      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35905      408936 :          ipack = ipack + 1
   35906      408936 :          packed_data(ipack) = pack_tmp
   35907      408936 :          data_tmp = full_data(idata)
   35908      408936 :          pack_tmp = ISHFT(data_tmp, 30)
   35909      408936 :          pack_tmp = ISHFT(pack_tmp, -30)
   35910      408936 :          idata = idata + 1
   35911      408936 :          data_tmp = full_data(idata)
   35912      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35913      408936 :          data_tmp = IAND(data_tmp, mask_left(30))
   35914      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35915      408936 :          ipack = ipack + 1
   35916      408936 :          packed_data(ipack) = pack_tmp
   35917      408936 :          data_tmp = full_data(idata)
   35918      408936 :          pack_tmp = ISHFT(data_tmp, 48)
   35919      408936 :          pack_tmp = ISHFT(pack_tmp, -46)
   35920      408936 :          idata = idata + 1
   35921      408936 :          data_tmp = full_data(idata)
   35922      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35923      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35924      408936 :          pack_tmp = ISHFT(pack_tmp, -2)
   35925      408936 :          idata = idata + 1
   35926      408936 :          data_tmp = full_data(idata)
   35927      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35928      408936 :          data_tmp = IAND(data_tmp, mask_left(2))
   35929      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35930      408936 :          ipack = ipack + 1
   35931      408936 :          packed_data(ipack) = pack_tmp
   35932      408936 :          data_tmp = full_data(idata)
   35933      408936 :          pack_tmp = ISHFT(data_tmp, 20)
   35934      408936 :          pack_tmp = ISHFT(pack_tmp, -20)
   35935      408936 :          idata = idata + 1
   35936      408936 :          data_tmp = full_data(idata)
   35937      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35938      408936 :          data_tmp = IAND(data_tmp, mask_left(20))
   35939      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35940      408936 :          ipack = ipack + 1
   35941      408936 :          packed_data(ipack) = pack_tmp
   35942      408936 :          data_tmp = full_data(idata)
   35943      408936 :          pack_tmp = ISHFT(data_tmp, 38)
   35944      408936 :          pack_tmp = ISHFT(pack_tmp, -38)
   35945      408936 :          idata = idata + 1
   35946      408936 :          data_tmp = full_data(idata)
   35947      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35948      408936 :          data_tmp = IAND(data_tmp, mask_left(38))
   35949      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35950      408936 :          ipack = ipack + 1
   35951      408936 :          packed_data(ipack) = pack_tmp
   35952      408936 :          data_tmp = full_data(idata)
   35953      408936 :          pack_tmp = ISHFT(data_tmp, 56)
   35954      408936 :          pack_tmp = ISHFT(pack_tmp, -46)
   35955      408936 :          idata = idata + 1
   35956      408936 :          data_tmp = full_data(idata)
   35957      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35958      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35959      408936 :          pack_tmp = ISHFT(pack_tmp, -10)
   35960      408936 :          idata = idata + 1
   35961      408936 :          data_tmp = full_data(idata)
   35962      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35963      408936 :          data_tmp = IAND(data_tmp, mask_left(10))
   35964      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35965      408936 :          ipack = ipack + 1
   35966      408936 :          packed_data(ipack) = pack_tmp
   35967      408936 :          data_tmp = full_data(idata)
   35968      408936 :          pack_tmp = ISHFT(data_tmp, 28)
   35969      408936 :          pack_tmp = ISHFT(pack_tmp, -28)
   35970      408936 :          idata = idata + 1
   35971      408936 :          data_tmp = full_data(idata)
   35972      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35973      408936 :          data_tmp = IAND(data_tmp, mask_left(28))
   35974      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35975      408936 :          ipack = ipack + 1
   35976      408936 :          packed_data(ipack) = pack_tmp
   35977      408936 :          data_tmp = full_data(idata)
   35978      408936 :          pack_tmp = ISHFT(data_tmp, 46)
   35979      408936 :          pack_tmp = ISHFT(pack_tmp, -46)
   35980      408936 :          idata = idata + 1
   35981      408936 :          data_tmp = full_data(idata)
   35982      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35983      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35984      408936 :          pack_tmp = ISHFT(pack_tmp, 0)
   35985      408936 :          idata = idata + 1
   35986      408936 :          data_tmp = full_data(idata)
   35987             :          data_tmp = ISHFT(data_tmp, 18)
   35988      408936 :          data_tmp = IAND(data_tmp, mask_left(0))
   35989      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35990      408936 :          ipack = ipack + 1
   35991      408936 :          packed_data(ipack) = pack_tmp
   35992      408936 :          data_tmp = full_data(idata)
   35993      408936 :          pack_tmp = ISHFT(data_tmp, 18)
   35994      408936 :          pack_tmp = ISHFT(pack_tmp, -18)
   35995      408936 :          idata = idata + 1
   35996      408936 :          data_tmp = full_data(idata)
   35997      408936 :          data_tmp = ISHFT(data_tmp, 18)
   35998      408936 :          data_tmp = IAND(data_tmp, mask_left(18))
   35999      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36000      408936 :          ipack = ipack + 1
   36001      408936 :          packed_data(ipack) = pack_tmp
   36002      408936 :          data_tmp = full_data(idata)
   36003      408936 :          pack_tmp = ISHFT(data_tmp, 36)
   36004      408936 :          pack_tmp = ISHFT(pack_tmp, -36)
   36005      408936 :          idata = idata + 1
   36006      408936 :          data_tmp = full_data(idata)
   36007      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36008      408936 :          data_tmp = IAND(data_tmp, mask_left(36))
   36009      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36010      408936 :          ipack = ipack + 1
   36011      408936 :          packed_data(ipack) = pack_tmp
   36012      408936 :          data_tmp = full_data(idata)
   36013      408936 :          pack_tmp = ISHFT(data_tmp, 54)
   36014      408936 :          pack_tmp = ISHFT(pack_tmp, -46)
   36015      408936 :          idata = idata + 1
   36016      408936 :          data_tmp = full_data(idata)
   36017      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36018      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36019      408936 :          pack_tmp = ISHFT(pack_tmp, -8)
   36020      408936 :          idata = idata + 1
   36021      408936 :          data_tmp = full_data(idata)
   36022      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36023      408936 :          data_tmp = IAND(data_tmp, mask_left(8))
   36024      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36025      408936 :          ipack = ipack + 1
   36026      408936 :          packed_data(ipack) = pack_tmp
   36027      408936 :          data_tmp = full_data(idata)
   36028      408936 :          pack_tmp = ISHFT(data_tmp, 26)
   36029      408936 :          pack_tmp = ISHFT(pack_tmp, -26)
   36030      408936 :          idata = idata + 1
   36031      408936 :          data_tmp = full_data(idata)
   36032      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36033      408936 :          data_tmp = IAND(data_tmp, mask_left(26))
   36034      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36035      408936 :          ipack = ipack + 1
   36036      408936 :          packed_data(ipack) = pack_tmp
   36037      408936 :          data_tmp = full_data(idata)
   36038      408936 :          pack_tmp = ISHFT(data_tmp, 44)
   36039      408936 :          pack_tmp = ISHFT(pack_tmp, -44)
   36040      408936 :          idata = idata + 1
   36041      408936 :          data_tmp = full_data(idata)
   36042      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36043      408936 :          data_tmp = IAND(data_tmp, mask_left(44))
   36044      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36045      408936 :          ipack = ipack + 1
   36046      408936 :          packed_data(ipack) = pack_tmp
   36047      408936 :          data_tmp = full_data(idata)
   36048      408936 :          pack_tmp = ISHFT(data_tmp, 62)
   36049      408936 :          pack_tmp = ISHFT(pack_tmp, -46)
   36050      408936 :          idata = idata + 1
   36051      408936 :          data_tmp = full_data(idata)
   36052      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36053      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36054      408936 :          pack_tmp = ISHFT(pack_tmp, -16)
   36055      408936 :          idata = idata + 1
   36056      408936 :          data_tmp = full_data(idata)
   36057      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36058      408936 :          data_tmp = IAND(data_tmp, mask_left(16))
   36059      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36060      408936 :          ipack = ipack + 1
   36061      408936 :          packed_data(ipack) = pack_tmp
   36062      408936 :          data_tmp = full_data(idata)
   36063      408936 :          pack_tmp = ISHFT(data_tmp, 34)
   36064      408936 :          pack_tmp = ISHFT(pack_tmp, -34)
   36065      408936 :          idata = idata + 1
   36066      408936 :          data_tmp = full_data(idata)
   36067      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36068      408936 :          data_tmp = IAND(data_tmp, mask_left(34))
   36069      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36070      408936 :          ipack = ipack + 1
   36071      408936 :          packed_data(ipack) = pack_tmp
   36072      408936 :          data_tmp = full_data(idata)
   36073      408936 :          pack_tmp = ISHFT(data_tmp, 52)
   36074      408936 :          pack_tmp = ISHFT(pack_tmp, -46)
   36075      408936 :          idata = idata + 1
   36076      408936 :          data_tmp = full_data(idata)
   36077      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36078      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36079      408936 :          pack_tmp = ISHFT(pack_tmp, -6)
   36080      408936 :          idata = idata + 1
   36081      408936 :          data_tmp = full_data(idata)
   36082      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36083      408936 :          data_tmp = IAND(data_tmp, mask_left(6))
   36084      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36085      408936 :          ipack = ipack + 1
   36086      408936 :          packed_data(ipack) = pack_tmp
   36087      408936 :          data_tmp = full_data(idata)
   36088      408936 :          pack_tmp = ISHFT(data_tmp, 24)
   36089      408936 :          pack_tmp = ISHFT(pack_tmp, -24)
   36090      408936 :          idata = idata + 1
   36091      408936 :          data_tmp = full_data(idata)
   36092      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36093      408936 :          data_tmp = IAND(data_tmp, mask_left(24))
   36094      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36095      408936 :          ipack = ipack + 1
   36096      408936 :          packed_data(ipack) = pack_tmp
   36097      408936 :          data_tmp = full_data(idata)
   36098      408936 :          pack_tmp = ISHFT(data_tmp, 42)
   36099      408936 :          pack_tmp = ISHFT(pack_tmp, -42)
   36100      408936 :          idata = idata + 1
   36101      408936 :          data_tmp = full_data(idata)
   36102      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36103      408936 :          data_tmp = IAND(data_tmp, mask_left(42))
   36104      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36105      408936 :          ipack = ipack + 1
   36106      408936 :          packed_data(ipack) = pack_tmp
   36107      408936 :          data_tmp = full_data(idata)
   36108      408936 :          pack_tmp = ISHFT(data_tmp, 60)
   36109      408936 :          pack_tmp = ISHFT(pack_tmp, -46)
   36110      408936 :          idata = idata + 1
   36111      408936 :          data_tmp = full_data(idata)
   36112      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36113      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36114      408936 :          pack_tmp = ISHFT(pack_tmp, -14)
   36115      408936 :          idata = idata + 1
   36116      408936 :          data_tmp = full_data(idata)
   36117      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36118      408936 :          data_tmp = IAND(data_tmp, mask_left(14))
   36119      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36120      408936 :          ipack = ipack + 1
   36121      408936 :          packed_data(ipack) = pack_tmp
   36122      408936 :          data_tmp = full_data(idata)
   36123      408936 :          pack_tmp = ISHFT(data_tmp, 32)
   36124      408936 :          pack_tmp = ISHFT(pack_tmp, -32)
   36125      408936 :          idata = idata + 1
   36126      408936 :          data_tmp = full_data(idata)
   36127      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36128      408936 :          data_tmp = IAND(data_tmp, mask_left(32))
   36129      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36130      408936 :          ipack = ipack + 1
   36131      408936 :          packed_data(ipack) = pack_tmp
   36132      408936 :          data_tmp = full_data(idata)
   36133      408936 :          pack_tmp = ISHFT(data_tmp, 50)
   36134      408936 :          pack_tmp = ISHFT(pack_tmp, -46)
   36135      408936 :          idata = idata + 1
   36136      408936 :          data_tmp = full_data(idata)
   36137      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36138      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36139      408936 :          pack_tmp = ISHFT(pack_tmp, -4)
   36140      408936 :          idata = idata + 1
   36141      408936 :          data_tmp = full_data(idata)
   36142      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36143      408936 :          data_tmp = IAND(data_tmp, mask_left(4))
   36144      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36145      408936 :          ipack = ipack + 1
   36146      408936 :          packed_data(ipack) = pack_tmp
   36147      408936 :          data_tmp = full_data(idata)
   36148      408936 :          pack_tmp = ISHFT(data_tmp, 22)
   36149      408936 :          pack_tmp = ISHFT(pack_tmp, -22)
   36150      408936 :          idata = idata + 1
   36151      408936 :          data_tmp = full_data(idata)
   36152      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36153      408936 :          data_tmp = IAND(data_tmp, mask_left(22))
   36154      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36155      408936 :          ipack = ipack + 1
   36156      408936 :          packed_data(ipack) = pack_tmp
   36157      408936 :          data_tmp = full_data(idata)
   36158      408936 :          pack_tmp = ISHFT(data_tmp, 40)
   36159      408936 :          pack_tmp = ISHFT(pack_tmp, -40)
   36160      408936 :          idata = idata + 1
   36161      408936 :          data_tmp = full_data(idata)
   36162      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36163      408936 :          data_tmp = IAND(data_tmp, mask_left(40))
   36164      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36165      408936 :          ipack = ipack + 1
   36166      408936 :          packed_data(ipack) = pack_tmp
   36167      408936 :          data_tmp = full_data(idata)
   36168      408936 :          pack_tmp = ISHFT(data_tmp, 58)
   36169      408936 :          pack_tmp = ISHFT(pack_tmp, -46)
   36170      408936 :          idata = idata + 1
   36171      408936 :          data_tmp = full_data(idata)
   36172      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36173      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36174      408936 :          pack_tmp = ISHFT(pack_tmp, -12)
   36175      408936 :          idata = idata + 1
   36176      408936 :          data_tmp = full_data(idata)
   36177      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36178      408936 :          data_tmp = IAND(data_tmp, mask_left(12))
   36179      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36180      408936 :          ipack = ipack + 1
   36181      408936 :          packed_data(ipack) = pack_tmp
   36182      408936 :          data_tmp = full_data(idata)
   36183      408936 :          pack_tmp = ISHFT(data_tmp, 30)
   36184      408936 :          pack_tmp = ISHFT(pack_tmp, -30)
   36185      408936 :          idata = idata + 1
   36186      408936 :          data_tmp = full_data(idata)
   36187      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36188      408936 :          data_tmp = IAND(data_tmp, mask_left(30))
   36189      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36190      408936 :          ipack = ipack + 1
   36191      408936 :          packed_data(ipack) = pack_tmp
   36192      408936 :          data_tmp = full_data(idata)
   36193      408936 :          pack_tmp = ISHFT(data_tmp, 48)
   36194      408936 :          pack_tmp = ISHFT(pack_tmp, -46)
   36195      408936 :          idata = idata + 1
   36196      408936 :          data_tmp = full_data(idata)
   36197      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36198      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36199      408936 :          pack_tmp = ISHFT(pack_tmp, -2)
   36200      408936 :          idata = idata + 1
   36201      408936 :          data_tmp = full_data(idata)
   36202      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36203      408936 :          data_tmp = IAND(data_tmp, mask_left(2))
   36204      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36205      408936 :          ipack = ipack + 1
   36206      408936 :          packed_data(ipack) = pack_tmp
   36207      408936 :          data_tmp = full_data(idata)
   36208      408936 :          pack_tmp = ISHFT(data_tmp, 20)
   36209      408936 :          pack_tmp = ISHFT(pack_tmp, -20)
   36210      408936 :          idata = idata + 1
   36211      408936 :          data_tmp = full_data(idata)
   36212      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36213      408936 :          data_tmp = IAND(data_tmp, mask_left(20))
   36214      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36215      408936 :          ipack = ipack + 1
   36216      408936 :          packed_data(ipack) = pack_tmp
   36217      408936 :          data_tmp = full_data(idata)
   36218      408936 :          pack_tmp = ISHFT(data_tmp, 38)
   36219      408936 :          pack_tmp = ISHFT(pack_tmp, -38)
   36220      408936 :          idata = idata + 1
   36221      408936 :          data_tmp = full_data(idata)
   36222      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36223      408936 :          data_tmp = IAND(data_tmp, mask_left(38))
   36224      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36225      408936 :          ipack = ipack + 1
   36226      408936 :          packed_data(ipack) = pack_tmp
   36227      408936 :          data_tmp = full_data(idata)
   36228      408936 :          pack_tmp = ISHFT(data_tmp, 56)
   36229      408936 :          pack_tmp = ISHFT(pack_tmp, -46)
   36230      408936 :          idata = idata + 1
   36231      408936 :          data_tmp = full_data(idata)
   36232      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36233      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36234      408936 :          pack_tmp = ISHFT(pack_tmp, -10)
   36235      408936 :          idata = idata + 1
   36236      408936 :          data_tmp = full_data(idata)
   36237      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36238      408936 :          data_tmp = IAND(data_tmp, mask_left(10))
   36239      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36240      408936 :          ipack = ipack + 1
   36241      408936 :          packed_data(ipack) = pack_tmp
   36242      408936 :          data_tmp = full_data(idata)
   36243      408936 :          pack_tmp = ISHFT(data_tmp, 28)
   36244      408936 :          pack_tmp = ISHFT(pack_tmp, -28)
   36245      408936 :          idata = idata + 1
   36246      408936 :          data_tmp = full_data(idata)
   36247      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36248      408936 :          data_tmp = IAND(data_tmp, mask_left(28))
   36249      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36250      408936 :          ipack = ipack + 1
   36251      408936 :          packed_data(ipack) = pack_tmp
   36252      408936 :          data_tmp = full_data(idata)
   36253      408936 :          pack_tmp = ISHFT(data_tmp, 46)
   36254      408936 :          pack_tmp = ISHFT(pack_tmp, -46)
   36255      408936 :          idata = idata + 1
   36256      408936 :          data_tmp = full_data(idata)
   36257      408936 :          data_tmp = ISHFT(data_tmp, 18)
   36258      408936 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36259             :          pack_tmp = ISHFT(pack_tmp, 0)
   36260      408936 :          pack_tmp = ISHFT(pack_tmp, 0)
   36261      408936 :          ipack = ipack + 1
   36262      408981 :          packed_data(ipack) = pack_tmp
   36263             :       END DO
   36264       28079 :       IF (Ndata_rep < Ndata) THEN
   36265        4624 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   36266             :       END IF
   36267       28079 :    END SUBROUTINE ints2bits_46
   36268             : 
   36269             : ! **************************************************************************************************
   36270             : !> \brief ...
   36271             : !> \param Ndata ...
   36272             : !> \param packed_data ...
   36273             : !> \param full_data ...
   36274             : ! **************************************************************************************************
   36275      118387 :    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      118387 :       ipack = 0
   36286      118387 :       idata = 0
   36287      118387 :       pack_tmp = 0
   36288      118387 :       Ndata_rep = (Ndata/64)*64
   36289      118387 :       DO kdata = 1, Ndata_rep, 64
   36290     1706819 :          idata = idata + 1
   36291     1706819 :          data_tmp = ISHFT(pack_tmp, 46)
   36292     1706819 :          ipack = ipack + 1
   36293     1706819 :          pack_tmp = packed_data(ipack)
   36294     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   36295     1706819 :          pack_tmp = ISHFT(pack_tmp, -46)
   36296     1706819 :          idata = idata + 1
   36297     1706819 :          data_tmp = ISHFT(pack_tmp, 28)
   36298     1706819 :          ipack = ipack + 1
   36299     1706819 :          pack_tmp = packed_data(ipack)
   36300     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   36301     1706819 :          pack_tmp = ISHFT(pack_tmp, -28)
   36302     1706819 :          idata = idata + 1
   36303     1706819 :          data_tmp = ISHFT(pack_tmp, 10)
   36304     1706819 :          ipack = ipack + 1
   36305     1706819 :          pack_tmp = packed_data(ipack)
   36306     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   36307     1706819 :          pack_tmp = ISHFT(pack_tmp, -10)
   36308     1706819 :          idata = idata + 1
   36309     1706819 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36310     1706819 :          full_data(idata) = data_tmp
   36311     1706819 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36312     1706819 :          idata = idata + 1
   36313     1706819 :          data_tmp = ISHFT(pack_tmp, 38)
   36314     1706819 :          ipack = ipack + 1
   36315     1706819 :          pack_tmp = packed_data(ipack)
   36316     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   36317     1706819 :          pack_tmp = ISHFT(pack_tmp, -38)
   36318     1706819 :          idata = idata + 1
   36319     1706819 :          data_tmp = ISHFT(pack_tmp, 20)
   36320     1706819 :          ipack = ipack + 1
   36321     1706819 :          pack_tmp = packed_data(ipack)
   36322     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   36323     1706819 :          pack_tmp = ISHFT(pack_tmp, -20)
   36324     1706819 :          idata = idata + 1
   36325     1706819 :          data_tmp = ISHFT(pack_tmp, 2)
   36326     1706819 :          ipack = ipack + 1
   36327     1706819 :          pack_tmp = packed_data(ipack)
   36328     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   36329     1706819 :          pack_tmp = ISHFT(pack_tmp, -2)
   36330     1706819 :          idata = idata + 1
   36331     1706819 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36332     1706819 :          full_data(idata) = data_tmp
   36333     1706819 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36334     1706819 :          idata = idata + 1
   36335     1706819 :          data_tmp = ISHFT(pack_tmp, 30)
   36336     1706819 :          ipack = ipack + 1
   36337     1706819 :          pack_tmp = packed_data(ipack)
   36338     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   36339     1706819 :          pack_tmp = ISHFT(pack_tmp, -30)
   36340     1706819 :          idata = idata + 1
   36341     1706819 :          data_tmp = ISHFT(pack_tmp, 12)
   36342     1706819 :          ipack = ipack + 1
   36343     1706819 :          pack_tmp = packed_data(ipack)
   36344     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   36345     1706819 :          pack_tmp = ISHFT(pack_tmp, -12)
   36346     1706819 :          idata = idata + 1
   36347     1706819 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36348     1706819 :          full_data(idata) = data_tmp
   36349     1706819 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36350     1706819 :          idata = idata + 1
   36351     1706819 :          data_tmp = ISHFT(pack_tmp, 40)
   36352     1706819 :          ipack = ipack + 1
   36353     1706819 :          pack_tmp = packed_data(ipack)
   36354     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   36355     1706819 :          pack_tmp = ISHFT(pack_tmp, -40)
   36356     1706819 :          idata = idata + 1
   36357     1706819 :          data_tmp = ISHFT(pack_tmp, 22)
   36358     1706819 :          ipack = ipack + 1
   36359     1706819 :          pack_tmp = packed_data(ipack)
   36360     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   36361     1706819 :          pack_tmp = ISHFT(pack_tmp, -22)
   36362     1706819 :          idata = idata + 1
   36363     1706819 :          data_tmp = ISHFT(pack_tmp, 4)
   36364     1706819 :          ipack = ipack + 1
   36365     1706819 :          pack_tmp = packed_data(ipack)
   36366     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   36367     1706819 :          pack_tmp = ISHFT(pack_tmp, -4)
   36368     1706819 :          idata = idata + 1
   36369     1706819 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36370     1706819 :          full_data(idata) = data_tmp
   36371     1706819 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36372     1706819 :          idata = idata + 1
   36373     1706819 :          data_tmp = ISHFT(pack_tmp, 32)
   36374     1706819 :          ipack = ipack + 1
   36375     1706819 :          pack_tmp = packed_data(ipack)
   36376     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   36377     1706819 :          pack_tmp = ISHFT(pack_tmp, -32)
   36378     1706819 :          idata = idata + 1
   36379     1706819 :          data_tmp = ISHFT(pack_tmp, 14)
   36380     1706819 :          ipack = ipack + 1
   36381     1706819 :          pack_tmp = packed_data(ipack)
   36382     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   36383     1706819 :          pack_tmp = ISHFT(pack_tmp, -14)
   36384     1706819 :          idata = idata + 1
   36385     1706819 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36386     1706819 :          full_data(idata) = data_tmp
   36387     1706819 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36388     1706819 :          idata = idata + 1
   36389     1706819 :          data_tmp = ISHFT(pack_tmp, 42)
   36390     1706819 :          ipack = ipack + 1
   36391     1706819 :          pack_tmp = packed_data(ipack)
   36392     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   36393     1706819 :          pack_tmp = ISHFT(pack_tmp, -42)
   36394     1706819 :          idata = idata + 1
   36395     1706819 :          data_tmp = ISHFT(pack_tmp, 24)
   36396     1706819 :          ipack = ipack + 1
   36397     1706819 :          pack_tmp = packed_data(ipack)
   36398     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   36399     1706819 :          pack_tmp = ISHFT(pack_tmp, -24)
   36400     1706819 :          idata = idata + 1
   36401     1706819 :          data_tmp = ISHFT(pack_tmp, 6)
   36402     1706819 :          ipack = ipack + 1
   36403     1706819 :          pack_tmp = packed_data(ipack)
   36404     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   36405     1706819 :          pack_tmp = ISHFT(pack_tmp, -6)
   36406     1706819 :          idata = idata + 1
   36407     1706819 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36408     1706819 :          full_data(idata) = data_tmp
   36409     1706819 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36410     1706819 :          idata = idata + 1
   36411     1706819 :          data_tmp = ISHFT(pack_tmp, 34)
   36412     1706819 :          ipack = ipack + 1
   36413     1706819 :          pack_tmp = packed_data(ipack)
   36414     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   36415     1706819 :          pack_tmp = ISHFT(pack_tmp, -34)
   36416     1706819 :          idata = idata + 1
   36417     1706819 :          data_tmp = ISHFT(pack_tmp, 16)
   36418     1706819 :          ipack = ipack + 1
   36419     1706819 :          pack_tmp = packed_data(ipack)
   36420     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   36421     1706819 :          pack_tmp = ISHFT(pack_tmp, -16)
   36422     1706819 :          idata = idata + 1
   36423     1706819 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36424     1706819 :          full_data(idata) = data_tmp
   36425     1706819 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36426     1706819 :          idata = idata + 1
   36427     1706819 :          data_tmp = ISHFT(pack_tmp, 44)
   36428     1706819 :          ipack = ipack + 1
   36429     1706819 :          pack_tmp = packed_data(ipack)
   36430     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   36431     1706819 :          pack_tmp = ISHFT(pack_tmp, -44)
   36432     1706819 :          idata = idata + 1
   36433     1706819 :          data_tmp = ISHFT(pack_tmp, 26)
   36434     1706819 :          ipack = ipack + 1
   36435     1706819 :          pack_tmp = packed_data(ipack)
   36436     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   36437     1706819 :          pack_tmp = ISHFT(pack_tmp, -26)
   36438     1706819 :          idata = idata + 1
   36439     1706819 :          data_tmp = ISHFT(pack_tmp, 8)
   36440     1706819 :          ipack = ipack + 1
   36441     1706819 :          pack_tmp = packed_data(ipack)
   36442     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   36443     1706819 :          pack_tmp = ISHFT(pack_tmp, -8)
   36444     1706819 :          idata = idata + 1
   36445     1706819 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36446     1706819 :          full_data(idata) = data_tmp
   36447     1706819 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36448     1706819 :          idata = idata + 1
   36449     1706819 :          data_tmp = ISHFT(pack_tmp, 36)
   36450     1706819 :          ipack = ipack + 1
   36451     1706819 :          pack_tmp = packed_data(ipack)
   36452     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   36453     1706819 :          pack_tmp = ISHFT(pack_tmp, -36)
   36454     1706819 :          idata = idata + 1
   36455     1706819 :          data_tmp = ISHFT(pack_tmp, 18)
   36456     1706819 :          ipack = ipack + 1
   36457     1706819 :          pack_tmp = packed_data(ipack)
   36458     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   36459     1706819 :          pack_tmp = ISHFT(pack_tmp, -18)
   36460     1706819 :          idata = idata + 1
   36461     1706819 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36462     1706819 :          full_data(idata) = data_tmp
   36463     1706819 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36464     1706819 :          idata = idata + 1
   36465     1706819 :          data_tmp = ISHFT(pack_tmp, 46)
   36466     1706819 :          ipack = ipack + 1
   36467     1706819 :          pack_tmp = packed_data(ipack)
   36468     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   36469     1706819 :          pack_tmp = ISHFT(pack_tmp, -46)
   36470     1706819 :          idata = idata + 1
   36471     1706819 :          data_tmp = ISHFT(pack_tmp, 28)
   36472     1706819 :          ipack = ipack + 1
   36473     1706819 :          pack_tmp = packed_data(ipack)
   36474     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   36475     1706819 :          pack_tmp = ISHFT(pack_tmp, -28)
   36476     1706819 :          idata = idata + 1
   36477     1706819 :          data_tmp = ISHFT(pack_tmp, 10)
   36478     1706819 :          ipack = ipack + 1
   36479     1706819 :          pack_tmp = packed_data(ipack)
   36480     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   36481     1706819 :          pack_tmp = ISHFT(pack_tmp, -10)
   36482     1706819 :          idata = idata + 1
   36483     1706819 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36484     1706819 :          full_data(idata) = data_tmp
   36485     1706819 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36486     1706819 :          idata = idata + 1
   36487     1706819 :          data_tmp = ISHFT(pack_tmp, 38)
   36488     1706819 :          ipack = ipack + 1
   36489     1706819 :          pack_tmp = packed_data(ipack)
   36490     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   36491     1706819 :          pack_tmp = ISHFT(pack_tmp, -38)
   36492     1706819 :          idata = idata + 1
   36493     1706819 :          data_tmp = ISHFT(pack_tmp, 20)
   36494     1706819 :          ipack = ipack + 1
   36495     1706819 :          pack_tmp = packed_data(ipack)
   36496     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   36497     1706819 :          pack_tmp = ISHFT(pack_tmp, -20)
   36498     1706819 :          idata = idata + 1
   36499     1706819 :          data_tmp = ISHFT(pack_tmp, 2)
   36500     1706819 :          ipack = ipack + 1
   36501     1706819 :          pack_tmp = packed_data(ipack)
   36502     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   36503     1706819 :          pack_tmp = ISHFT(pack_tmp, -2)
   36504     1706819 :          idata = idata + 1
   36505     1706819 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36506     1706819 :          full_data(idata) = data_tmp
   36507     1706819 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36508     1706819 :          idata = idata + 1
   36509     1706819 :          data_tmp = ISHFT(pack_tmp, 30)
   36510     1706819 :          ipack = ipack + 1
   36511     1706819 :          pack_tmp = packed_data(ipack)
   36512     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   36513     1706819 :          pack_tmp = ISHFT(pack_tmp, -30)
   36514     1706819 :          idata = idata + 1
   36515     1706819 :          data_tmp = ISHFT(pack_tmp, 12)
   36516     1706819 :          ipack = ipack + 1
   36517     1706819 :          pack_tmp = packed_data(ipack)
   36518     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   36519     1706819 :          pack_tmp = ISHFT(pack_tmp, -12)
   36520     1706819 :          idata = idata + 1
   36521     1706819 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36522     1706819 :          full_data(idata) = data_tmp
   36523     1706819 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36524     1706819 :          idata = idata + 1
   36525     1706819 :          data_tmp = ISHFT(pack_tmp, 40)
   36526     1706819 :          ipack = ipack + 1
   36527     1706819 :          pack_tmp = packed_data(ipack)
   36528     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   36529     1706819 :          pack_tmp = ISHFT(pack_tmp, -40)
   36530     1706819 :          idata = idata + 1
   36531     1706819 :          data_tmp = ISHFT(pack_tmp, 22)
   36532     1706819 :          ipack = ipack + 1
   36533     1706819 :          pack_tmp = packed_data(ipack)
   36534     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   36535     1706819 :          pack_tmp = ISHFT(pack_tmp, -22)
   36536     1706819 :          idata = idata + 1
   36537     1706819 :          data_tmp = ISHFT(pack_tmp, 4)
   36538     1706819 :          ipack = ipack + 1
   36539     1706819 :          pack_tmp = packed_data(ipack)
   36540     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   36541     1706819 :          pack_tmp = ISHFT(pack_tmp, -4)
   36542     1706819 :          idata = idata + 1
   36543     1706819 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36544     1706819 :          full_data(idata) = data_tmp
   36545     1706819 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36546     1706819 :          idata = idata + 1
   36547     1706819 :          data_tmp = ISHFT(pack_tmp, 32)
   36548     1706819 :          ipack = ipack + 1
   36549     1706819 :          pack_tmp = packed_data(ipack)
   36550     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   36551     1706819 :          pack_tmp = ISHFT(pack_tmp, -32)
   36552     1706819 :          idata = idata + 1
   36553     1706819 :          data_tmp = ISHFT(pack_tmp, 14)
   36554     1706819 :          ipack = ipack + 1
   36555     1706819 :          pack_tmp = packed_data(ipack)
   36556     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   36557     1706819 :          pack_tmp = ISHFT(pack_tmp, -14)
   36558     1706819 :          idata = idata + 1
   36559     1706819 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36560     1706819 :          full_data(idata) = data_tmp
   36561     1706819 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36562     1706819 :          idata = idata + 1
   36563     1706819 :          data_tmp = ISHFT(pack_tmp, 42)
   36564     1706819 :          ipack = ipack + 1
   36565     1706819 :          pack_tmp = packed_data(ipack)
   36566     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   36567     1706819 :          pack_tmp = ISHFT(pack_tmp, -42)
   36568     1706819 :          idata = idata + 1
   36569     1706819 :          data_tmp = ISHFT(pack_tmp, 24)
   36570     1706819 :          ipack = ipack + 1
   36571     1706819 :          pack_tmp = packed_data(ipack)
   36572     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   36573     1706819 :          pack_tmp = ISHFT(pack_tmp, -24)
   36574     1706819 :          idata = idata + 1
   36575     1706819 :          data_tmp = ISHFT(pack_tmp, 6)
   36576     1706819 :          ipack = ipack + 1
   36577     1706819 :          pack_tmp = packed_data(ipack)
   36578     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   36579     1706819 :          pack_tmp = ISHFT(pack_tmp, -6)
   36580     1706819 :          idata = idata + 1
   36581     1706819 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36582     1706819 :          full_data(idata) = data_tmp
   36583     1706819 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36584     1706819 :          idata = idata + 1
   36585     1706819 :          data_tmp = ISHFT(pack_tmp, 34)
   36586     1706819 :          ipack = ipack + 1
   36587     1706819 :          pack_tmp = packed_data(ipack)
   36588     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   36589     1706819 :          pack_tmp = ISHFT(pack_tmp, -34)
   36590     1706819 :          idata = idata + 1
   36591     1706819 :          data_tmp = ISHFT(pack_tmp, 16)
   36592     1706819 :          ipack = ipack + 1
   36593     1706819 :          pack_tmp = packed_data(ipack)
   36594     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   36595     1706819 :          pack_tmp = ISHFT(pack_tmp, -16)
   36596     1706819 :          idata = idata + 1
   36597     1706819 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36598     1706819 :          full_data(idata) = data_tmp
   36599     1706819 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36600     1706819 :          idata = idata + 1
   36601     1706819 :          data_tmp = ISHFT(pack_tmp, 44)
   36602     1706819 :          ipack = ipack + 1
   36603     1706819 :          pack_tmp = packed_data(ipack)
   36604     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   36605     1706819 :          pack_tmp = ISHFT(pack_tmp, -44)
   36606     1706819 :          idata = idata + 1
   36607     1706819 :          data_tmp = ISHFT(pack_tmp, 26)
   36608     1706819 :          ipack = ipack + 1
   36609     1706819 :          pack_tmp = packed_data(ipack)
   36610     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   36611     1706819 :          pack_tmp = ISHFT(pack_tmp, -26)
   36612     1706819 :          idata = idata + 1
   36613     1706819 :          data_tmp = ISHFT(pack_tmp, 8)
   36614     1706819 :          ipack = ipack + 1
   36615     1706819 :          pack_tmp = packed_data(ipack)
   36616     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   36617     1706819 :          pack_tmp = ISHFT(pack_tmp, -8)
   36618     1706819 :          idata = idata + 1
   36619     1706819 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36620     1706819 :          full_data(idata) = data_tmp
   36621     1706819 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36622     1706819 :          idata = idata + 1
   36623     1706819 :          data_tmp = ISHFT(pack_tmp, 36)
   36624     1706819 :          ipack = ipack + 1
   36625     1706819 :          pack_tmp = packed_data(ipack)
   36626     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   36627     1706819 :          pack_tmp = ISHFT(pack_tmp, -36)
   36628     1706819 :          idata = idata + 1
   36629     1706819 :          data_tmp = ISHFT(pack_tmp, 18)
   36630     1706819 :          ipack = ipack + 1
   36631     1706819 :          pack_tmp = packed_data(ipack)
   36632     1706819 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   36633     1706819 :          pack_tmp = ISHFT(pack_tmp, -18)
   36634     1706819 :          idata = idata + 1
   36635     1706819 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36636     1706819 :          full_data(idata) = data_tmp
   36637     1707265 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36638             :       END DO
   36639      118387 :       IF (Ndata_rep < Ndata) THEN
   36640       20666 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   36641             :       END IF
   36642      118387 :    END SUBROUTINE bits2ints_46
   36643             : 
   36644             : ! **************************************************************************************************
   36645             : !> \brief ...
   36646             : !> \param Ndata ...
   36647             : !> \param packed_data ...
   36648             : !> \param full_data ...
   36649             : ! **************************************************************************************************
   36650       25450 :    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       25450 :       idata = 0
   36661       25450 :       ipack = 0
   36662       25450 :       Ndata_rep = (Ndata/64)*64
   36663       25450 :       DO kdata = 1, Ndata_rep, 64
   36664      387990 :          pack_tmp = 0
   36665      387990 :          idata = idata + 1
   36666      387990 :          data_tmp = full_data(idata)
   36667      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36668      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36669      387990 :          pack_tmp = ISHFT(pack_tmp, -17)
   36670      387990 :          idata = idata + 1
   36671      387990 :          data_tmp = full_data(idata)
   36672      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36673      387990 :          data_tmp = IAND(data_tmp, mask_left(17))
   36674      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36675      387990 :          ipack = ipack + 1
   36676      387990 :          packed_data(ipack) = pack_tmp
   36677      387990 :          data_tmp = full_data(idata)
   36678      387990 :          pack_tmp = ISHFT(data_tmp, 34)
   36679      387990 :          pack_tmp = ISHFT(pack_tmp, -34)
   36680      387990 :          idata = idata + 1
   36681      387990 :          data_tmp = full_data(idata)
   36682      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36683      387990 :          data_tmp = IAND(data_tmp, mask_left(34))
   36684      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36685      387990 :          ipack = ipack + 1
   36686      387990 :          packed_data(ipack) = pack_tmp
   36687      387990 :          data_tmp = full_data(idata)
   36688      387990 :          pack_tmp = ISHFT(data_tmp, 51)
   36689      387990 :          pack_tmp = ISHFT(pack_tmp, -47)
   36690      387990 :          idata = idata + 1
   36691      387990 :          data_tmp = full_data(idata)
   36692      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36693      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36694      387990 :          pack_tmp = ISHFT(pack_tmp, -4)
   36695      387990 :          idata = idata + 1
   36696      387990 :          data_tmp = full_data(idata)
   36697      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36698      387990 :          data_tmp = IAND(data_tmp, mask_left(4))
   36699      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36700      387990 :          ipack = ipack + 1
   36701      387990 :          packed_data(ipack) = pack_tmp
   36702      387990 :          data_tmp = full_data(idata)
   36703      387990 :          pack_tmp = ISHFT(data_tmp, 21)
   36704      387990 :          pack_tmp = ISHFT(pack_tmp, -21)
   36705      387990 :          idata = idata + 1
   36706      387990 :          data_tmp = full_data(idata)
   36707      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36708      387990 :          data_tmp = IAND(data_tmp, mask_left(21))
   36709      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36710      387990 :          ipack = ipack + 1
   36711      387990 :          packed_data(ipack) = pack_tmp
   36712      387990 :          data_tmp = full_data(idata)
   36713      387990 :          pack_tmp = ISHFT(data_tmp, 38)
   36714      387990 :          pack_tmp = ISHFT(pack_tmp, -38)
   36715      387990 :          idata = idata + 1
   36716      387990 :          data_tmp = full_data(idata)
   36717      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36718      387990 :          data_tmp = IAND(data_tmp, mask_left(38))
   36719      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36720      387990 :          ipack = ipack + 1
   36721      387990 :          packed_data(ipack) = pack_tmp
   36722      387990 :          data_tmp = full_data(idata)
   36723      387990 :          pack_tmp = ISHFT(data_tmp, 55)
   36724      387990 :          pack_tmp = ISHFT(pack_tmp, -47)
   36725      387990 :          idata = idata + 1
   36726      387990 :          data_tmp = full_data(idata)
   36727      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36728      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36729      387990 :          pack_tmp = ISHFT(pack_tmp, -8)
   36730      387990 :          idata = idata + 1
   36731      387990 :          data_tmp = full_data(idata)
   36732      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36733      387990 :          data_tmp = IAND(data_tmp, mask_left(8))
   36734      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36735      387990 :          ipack = ipack + 1
   36736      387990 :          packed_data(ipack) = pack_tmp
   36737      387990 :          data_tmp = full_data(idata)
   36738      387990 :          pack_tmp = ISHFT(data_tmp, 25)
   36739      387990 :          pack_tmp = ISHFT(pack_tmp, -25)
   36740      387990 :          idata = idata + 1
   36741      387990 :          data_tmp = full_data(idata)
   36742      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36743      387990 :          data_tmp = IAND(data_tmp, mask_left(25))
   36744      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36745      387990 :          ipack = ipack + 1
   36746      387990 :          packed_data(ipack) = pack_tmp
   36747      387990 :          data_tmp = full_data(idata)
   36748      387990 :          pack_tmp = ISHFT(data_tmp, 42)
   36749      387990 :          pack_tmp = ISHFT(pack_tmp, -42)
   36750      387990 :          idata = idata + 1
   36751      387990 :          data_tmp = full_data(idata)
   36752      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36753      387990 :          data_tmp = IAND(data_tmp, mask_left(42))
   36754      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36755      387990 :          ipack = ipack + 1
   36756      387990 :          packed_data(ipack) = pack_tmp
   36757      387990 :          data_tmp = full_data(idata)
   36758      387990 :          pack_tmp = ISHFT(data_tmp, 59)
   36759      387990 :          pack_tmp = ISHFT(pack_tmp, -47)
   36760      387990 :          idata = idata + 1
   36761      387990 :          data_tmp = full_data(idata)
   36762      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36763      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36764      387990 :          pack_tmp = ISHFT(pack_tmp, -12)
   36765      387990 :          idata = idata + 1
   36766      387990 :          data_tmp = full_data(idata)
   36767      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36768      387990 :          data_tmp = IAND(data_tmp, mask_left(12))
   36769      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36770      387990 :          ipack = ipack + 1
   36771      387990 :          packed_data(ipack) = pack_tmp
   36772      387990 :          data_tmp = full_data(idata)
   36773      387990 :          pack_tmp = ISHFT(data_tmp, 29)
   36774      387990 :          pack_tmp = ISHFT(pack_tmp, -29)
   36775      387990 :          idata = idata + 1
   36776      387990 :          data_tmp = full_data(idata)
   36777      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36778      387990 :          data_tmp = IAND(data_tmp, mask_left(29))
   36779      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36780      387990 :          ipack = ipack + 1
   36781      387990 :          packed_data(ipack) = pack_tmp
   36782      387990 :          data_tmp = full_data(idata)
   36783      387990 :          pack_tmp = ISHFT(data_tmp, 46)
   36784      387990 :          pack_tmp = ISHFT(pack_tmp, -46)
   36785      387990 :          idata = idata + 1
   36786      387990 :          data_tmp = full_data(idata)
   36787      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36788      387990 :          data_tmp = IAND(data_tmp, mask_left(46))
   36789      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36790      387990 :          ipack = ipack + 1
   36791      387990 :          packed_data(ipack) = pack_tmp
   36792      387990 :          data_tmp = full_data(idata)
   36793      387990 :          pack_tmp = ISHFT(data_tmp, 63)
   36794      387990 :          pack_tmp = ISHFT(pack_tmp, -47)
   36795      387990 :          idata = idata + 1
   36796      387990 :          data_tmp = full_data(idata)
   36797      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36798      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36799      387990 :          pack_tmp = ISHFT(pack_tmp, -16)
   36800      387990 :          idata = idata + 1
   36801      387990 :          data_tmp = full_data(idata)
   36802      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36803      387990 :          data_tmp = IAND(data_tmp, mask_left(16))
   36804      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36805      387990 :          ipack = ipack + 1
   36806      387990 :          packed_data(ipack) = pack_tmp
   36807      387990 :          data_tmp = full_data(idata)
   36808      387990 :          pack_tmp = ISHFT(data_tmp, 33)
   36809      387990 :          pack_tmp = ISHFT(pack_tmp, -33)
   36810      387990 :          idata = idata + 1
   36811      387990 :          data_tmp = full_data(idata)
   36812      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36813      387990 :          data_tmp = IAND(data_tmp, mask_left(33))
   36814      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36815      387990 :          ipack = ipack + 1
   36816      387990 :          packed_data(ipack) = pack_tmp
   36817      387990 :          data_tmp = full_data(idata)
   36818      387990 :          pack_tmp = ISHFT(data_tmp, 50)
   36819      387990 :          pack_tmp = ISHFT(pack_tmp, -47)
   36820      387990 :          idata = idata + 1
   36821      387990 :          data_tmp = full_data(idata)
   36822      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36823      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36824      387990 :          pack_tmp = ISHFT(pack_tmp, -3)
   36825      387990 :          idata = idata + 1
   36826      387990 :          data_tmp = full_data(idata)
   36827      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36828      387990 :          data_tmp = IAND(data_tmp, mask_left(3))
   36829      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36830      387990 :          ipack = ipack + 1
   36831      387990 :          packed_data(ipack) = pack_tmp
   36832      387990 :          data_tmp = full_data(idata)
   36833      387990 :          pack_tmp = ISHFT(data_tmp, 20)
   36834      387990 :          pack_tmp = ISHFT(pack_tmp, -20)
   36835      387990 :          idata = idata + 1
   36836      387990 :          data_tmp = full_data(idata)
   36837      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36838      387990 :          data_tmp = IAND(data_tmp, mask_left(20))
   36839      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36840      387990 :          ipack = ipack + 1
   36841      387990 :          packed_data(ipack) = pack_tmp
   36842      387990 :          data_tmp = full_data(idata)
   36843      387990 :          pack_tmp = ISHFT(data_tmp, 37)
   36844      387990 :          pack_tmp = ISHFT(pack_tmp, -37)
   36845      387990 :          idata = idata + 1
   36846      387990 :          data_tmp = full_data(idata)
   36847      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36848      387990 :          data_tmp = IAND(data_tmp, mask_left(37))
   36849      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36850      387990 :          ipack = ipack + 1
   36851      387990 :          packed_data(ipack) = pack_tmp
   36852      387990 :          data_tmp = full_data(idata)
   36853      387990 :          pack_tmp = ISHFT(data_tmp, 54)
   36854      387990 :          pack_tmp = ISHFT(pack_tmp, -47)
   36855      387990 :          idata = idata + 1
   36856      387990 :          data_tmp = full_data(idata)
   36857      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36858      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36859      387990 :          pack_tmp = ISHFT(pack_tmp, -7)
   36860      387990 :          idata = idata + 1
   36861      387990 :          data_tmp = full_data(idata)
   36862      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36863      387990 :          data_tmp = IAND(data_tmp, mask_left(7))
   36864      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36865      387990 :          ipack = ipack + 1
   36866      387990 :          packed_data(ipack) = pack_tmp
   36867      387990 :          data_tmp = full_data(idata)
   36868      387990 :          pack_tmp = ISHFT(data_tmp, 24)
   36869      387990 :          pack_tmp = ISHFT(pack_tmp, -24)
   36870      387990 :          idata = idata + 1
   36871      387990 :          data_tmp = full_data(idata)
   36872      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36873      387990 :          data_tmp = IAND(data_tmp, mask_left(24))
   36874      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36875      387990 :          ipack = ipack + 1
   36876      387990 :          packed_data(ipack) = pack_tmp
   36877      387990 :          data_tmp = full_data(idata)
   36878      387990 :          pack_tmp = ISHFT(data_tmp, 41)
   36879      387990 :          pack_tmp = ISHFT(pack_tmp, -41)
   36880      387990 :          idata = idata + 1
   36881      387990 :          data_tmp = full_data(idata)
   36882      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36883      387990 :          data_tmp = IAND(data_tmp, mask_left(41))
   36884      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36885      387990 :          ipack = ipack + 1
   36886      387990 :          packed_data(ipack) = pack_tmp
   36887      387990 :          data_tmp = full_data(idata)
   36888      387990 :          pack_tmp = ISHFT(data_tmp, 58)
   36889      387990 :          pack_tmp = ISHFT(pack_tmp, -47)
   36890      387990 :          idata = idata + 1
   36891      387990 :          data_tmp = full_data(idata)
   36892      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36893      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36894      387990 :          pack_tmp = ISHFT(pack_tmp, -11)
   36895      387990 :          idata = idata + 1
   36896      387990 :          data_tmp = full_data(idata)
   36897      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36898      387990 :          data_tmp = IAND(data_tmp, mask_left(11))
   36899      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36900      387990 :          ipack = ipack + 1
   36901      387990 :          packed_data(ipack) = pack_tmp
   36902      387990 :          data_tmp = full_data(idata)
   36903      387990 :          pack_tmp = ISHFT(data_tmp, 28)
   36904      387990 :          pack_tmp = ISHFT(pack_tmp, -28)
   36905      387990 :          idata = idata + 1
   36906      387990 :          data_tmp = full_data(idata)
   36907      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36908      387990 :          data_tmp = IAND(data_tmp, mask_left(28))
   36909      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36910      387990 :          ipack = ipack + 1
   36911      387990 :          packed_data(ipack) = pack_tmp
   36912      387990 :          data_tmp = full_data(idata)
   36913      387990 :          pack_tmp = ISHFT(data_tmp, 45)
   36914      387990 :          pack_tmp = ISHFT(pack_tmp, -45)
   36915      387990 :          idata = idata + 1
   36916      387990 :          data_tmp = full_data(idata)
   36917      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36918      387990 :          data_tmp = IAND(data_tmp, mask_left(45))
   36919      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36920      387990 :          ipack = ipack + 1
   36921      387990 :          packed_data(ipack) = pack_tmp
   36922      387990 :          data_tmp = full_data(idata)
   36923      387990 :          pack_tmp = ISHFT(data_tmp, 62)
   36924      387990 :          pack_tmp = ISHFT(pack_tmp, -47)
   36925      387990 :          idata = idata + 1
   36926      387990 :          data_tmp = full_data(idata)
   36927      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36928      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36929      387990 :          pack_tmp = ISHFT(pack_tmp, -15)
   36930      387990 :          idata = idata + 1
   36931      387990 :          data_tmp = full_data(idata)
   36932      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36933      387990 :          data_tmp = IAND(data_tmp, mask_left(15))
   36934      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36935      387990 :          ipack = ipack + 1
   36936      387990 :          packed_data(ipack) = pack_tmp
   36937      387990 :          data_tmp = full_data(idata)
   36938      387990 :          pack_tmp = ISHFT(data_tmp, 32)
   36939      387990 :          pack_tmp = ISHFT(pack_tmp, -32)
   36940      387990 :          idata = idata + 1
   36941      387990 :          data_tmp = full_data(idata)
   36942      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36943      387990 :          data_tmp = IAND(data_tmp, mask_left(32))
   36944      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36945      387990 :          ipack = ipack + 1
   36946      387990 :          packed_data(ipack) = pack_tmp
   36947      387990 :          data_tmp = full_data(idata)
   36948      387990 :          pack_tmp = ISHFT(data_tmp, 49)
   36949      387990 :          pack_tmp = ISHFT(pack_tmp, -47)
   36950      387990 :          idata = idata + 1
   36951      387990 :          data_tmp = full_data(idata)
   36952      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36953      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36954      387990 :          pack_tmp = ISHFT(pack_tmp, -2)
   36955      387990 :          idata = idata + 1
   36956      387990 :          data_tmp = full_data(idata)
   36957      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36958      387990 :          data_tmp = IAND(data_tmp, mask_left(2))
   36959      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36960      387990 :          ipack = ipack + 1
   36961      387990 :          packed_data(ipack) = pack_tmp
   36962      387990 :          data_tmp = full_data(idata)
   36963      387990 :          pack_tmp = ISHFT(data_tmp, 19)
   36964      387990 :          pack_tmp = ISHFT(pack_tmp, -19)
   36965      387990 :          idata = idata + 1
   36966      387990 :          data_tmp = full_data(idata)
   36967      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36968      387990 :          data_tmp = IAND(data_tmp, mask_left(19))
   36969      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36970      387990 :          ipack = ipack + 1
   36971      387990 :          packed_data(ipack) = pack_tmp
   36972      387990 :          data_tmp = full_data(idata)
   36973      387990 :          pack_tmp = ISHFT(data_tmp, 36)
   36974      387990 :          pack_tmp = ISHFT(pack_tmp, -36)
   36975      387990 :          idata = idata + 1
   36976      387990 :          data_tmp = full_data(idata)
   36977      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36978      387990 :          data_tmp = IAND(data_tmp, mask_left(36))
   36979      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36980      387990 :          ipack = ipack + 1
   36981      387990 :          packed_data(ipack) = pack_tmp
   36982      387990 :          data_tmp = full_data(idata)
   36983      387990 :          pack_tmp = ISHFT(data_tmp, 53)
   36984      387990 :          pack_tmp = ISHFT(pack_tmp, -47)
   36985      387990 :          idata = idata + 1
   36986      387990 :          data_tmp = full_data(idata)
   36987      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36988      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36989      387990 :          pack_tmp = ISHFT(pack_tmp, -6)
   36990      387990 :          idata = idata + 1
   36991      387990 :          data_tmp = full_data(idata)
   36992      387990 :          data_tmp = ISHFT(data_tmp, 17)
   36993      387990 :          data_tmp = IAND(data_tmp, mask_left(6))
   36994      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36995      387990 :          ipack = ipack + 1
   36996      387990 :          packed_data(ipack) = pack_tmp
   36997      387990 :          data_tmp = full_data(idata)
   36998      387990 :          pack_tmp = ISHFT(data_tmp, 23)
   36999      387990 :          pack_tmp = ISHFT(pack_tmp, -23)
   37000      387990 :          idata = idata + 1
   37001      387990 :          data_tmp = full_data(idata)
   37002      387990 :          data_tmp = ISHFT(data_tmp, 17)
   37003      387990 :          data_tmp = IAND(data_tmp, mask_left(23))
   37004      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37005      387990 :          ipack = ipack + 1
   37006      387990 :          packed_data(ipack) = pack_tmp
   37007      387990 :          data_tmp = full_data(idata)
   37008      387990 :          pack_tmp = ISHFT(data_tmp, 40)
   37009      387990 :          pack_tmp = ISHFT(pack_tmp, -40)
   37010      387990 :          idata = idata + 1
   37011      387990 :          data_tmp = full_data(idata)
   37012      387990 :          data_tmp = ISHFT(data_tmp, 17)
   37013      387990 :          data_tmp = IAND(data_tmp, mask_left(40))
   37014      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37015      387990 :          ipack = ipack + 1
   37016      387990 :          packed_data(ipack) = pack_tmp
   37017      387990 :          data_tmp = full_data(idata)
   37018      387990 :          pack_tmp = ISHFT(data_tmp, 57)
   37019      387990 :          pack_tmp = ISHFT(pack_tmp, -47)
   37020      387990 :          idata = idata + 1
   37021      387990 :          data_tmp = full_data(idata)
   37022      387990 :          data_tmp = ISHFT(data_tmp, 17)
   37023      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37024      387990 :          pack_tmp = ISHFT(pack_tmp, -10)
   37025      387990 :          idata = idata + 1
   37026      387990 :          data_tmp = full_data(idata)
   37027      387990 :          data_tmp = ISHFT(data_tmp, 17)
   37028      387990 :          data_tmp = IAND(data_tmp, mask_left(10))
   37029      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37030      387990 :          ipack = ipack + 1
   37031      387990 :          packed_data(ipack) = pack_tmp
   37032      387990 :          data_tmp = full_data(idata)
   37033      387990 :          pack_tmp = ISHFT(data_tmp, 27)
   37034      387990 :          pack_tmp = ISHFT(pack_tmp, -27)
   37035      387990 :          idata = idata + 1
   37036      387990 :          data_tmp = full_data(idata)
   37037      387990 :          data_tmp = ISHFT(data_tmp, 17)
   37038      387990 :          data_tmp = IAND(data_tmp, mask_left(27))
   37039      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37040      387990 :          ipack = ipack + 1
   37041      387990 :          packed_data(ipack) = pack_tmp
   37042      387990 :          data_tmp = full_data(idata)
   37043      387990 :          pack_tmp = ISHFT(data_tmp, 44)
   37044      387990 :          pack_tmp = ISHFT(pack_tmp, -44)
   37045      387990 :          idata = idata + 1
   37046      387990 :          data_tmp = full_data(idata)
   37047      387990 :          data_tmp = ISHFT(data_tmp, 17)
   37048      387990 :          data_tmp = IAND(data_tmp, mask_left(44))
   37049      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37050      387990 :          ipack = ipack + 1
   37051      387990 :          packed_data(ipack) = pack_tmp
   37052      387990 :          data_tmp = full_data(idata)
   37053      387990 :          pack_tmp = ISHFT(data_tmp, 61)
   37054      387990 :          pack_tmp = ISHFT(pack_tmp, -47)
   37055      387990 :          idata = idata + 1
   37056      387990 :          data_tmp = full_data(idata)
   37057      387990 :          data_tmp = ISHFT(data_tmp, 17)
   37058      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37059      387990 :          pack_tmp = ISHFT(pack_tmp, -14)
   37060      387990 :          idata = idata + 1
   37061      387990 :          data_tmp = full_data(idata)
   37062      387990 :          data_tmp = ISHFT(data_tmp, 17)
   37063      387990 :          data_tmp = IAND(data_tmp, mask_left(14))
   37064      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37065      387990 :          ipack = ipack + 1
   37066      387990 :          packed_data(ipack) = pack_tmp
   37067      387990 :          data_tmp = full_data(idata)
   37068      387990 :          pack_tmp = ISHFT(data_tmp, 31)
   37069      387990 :          pack_tmp = ISHFT(pack_tmp, -31)
   37070      387990 :          idata = idata + 1
   37071      387990 :          data_tmp = full_data(idata)
   37072      387990 :          data_tmp = ISHFT(data_tmp, 17)
   37073      387990 :          data_tmp = IAND(data_tmp, mask_left(31))
   37074      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37075      387990 :          ipack = ipack + 1
   37076      387990 :          packed_data(ipack) = pack_tmp
   37077      387990 :          data_tmp = full_data(idata)
   37078      387990 :          pack_tmp = ISHFT(data_tmp, 48)
   37079      387990 :          pack_tmp = ISHFT(pack_tmp, -47)
   37080      387990 :          idata = idata + 1
   37081      387990 :          data_tmp = full_data(idata)
   37082      387990 :          data_tmp = ISHFT(data_tmp, 17)
   37083      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37084      387990 :          pack_tmp = ISHFT(pack_tmp, -1)
   37085      387990 :          idata = idata + 1
   37086      387990 :          data_tmp = full_data(idata)
   37087      387990 :          data_tmp = ISHFT(data_tmp, 17)
   37088      387990 :          data_tmp = IAND(data_tmp, mask_left(1))
   37089      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37090      387990 :          ipack = ipack + 1
   37091      387990 :          packed_data(ipack) = pack_tmp
   37092      387990 :          data_tmp = full_data(idata)
   37093      387990 :          pack_tmp = ISHFT(data_tmp, 18)
   37094      387990 :          pack_tmp = ISHFT(pack_tmp, -18)
   37095      387990 :          idata = idata + 1
   37096      387990 :          data_tmp = full_data(idata)
   37097      387990 :          data_tmp = ISHFT(data_tmp, 17)
   37098      387990 :          data_tmp = IAND(data_tmp, mask_left(18))
   37099      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37100      387990 :          ipack = ipack + 1
   37101      387990 :          packed_data(ipack) = pack_tmp
   37102      387990 :          data_tmp = full_data(idata)
   37103      387990 :          pack_tmp = ISHFT(data_tmp, 35)
   37104      387990 :          pack_tmp = ISHFT(pack_tmp, -35)
   37105      387990 :          idata = idata + 1
   37106      387990 :          data_tmp = full_data(idata)
   37107      387990 :          data_tmp = ISHFT(data_tmp, 17)
   37108      387990 :          data_tmp = IAND(data_tmp, mask_left(35))
   37109      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37110      387990 :          ipack = ipack + 1
   37111      387990 :          packed_data(ipack) = pack_tmp
   37112      387990 :          data_tmp = full_data(idata)
   37113      387990 :          pack_tmp = ISHFT(data_tmp, 52)
   37114      387990 :          pack_tmp = ISHFT(pack_tmp, -47)
   37115      387990 :          idata = idata + 1
   37116      387990 :          data_tmp = full_data(idata)
   37117      387990 :          data_tmp = ISHFT(data_tmp, 17)
   37118      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37119      387990 :          pack_tmp = ISHFT(pack_tmp, -5)
   37120      387990 :          idata = idata + 1
   37121      387990 :          data_tmp = full_data(idata)
   37122      387990 :          data_tmp = ISHFT(data_tmp, 17)
   37123      387990 :          data_tmp = IAND(data_tmp, mask_left(5))
   37124      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37125      387990 :          ipack = ipack + 1
   37126      387990 :          packed_data(ipack) = pack_tmp
   37127      387990 :          data_tmp = full_data(idata)
   37128      387990 :          pack_tmp = ISHFT(data_tmp, 22)
   37129      387990 :          pack_tmp = ISHFT(pack_tmp, -22)
   37130      387990 :          idata = idata + 1
   37131      387990 :          data_tmp = full_data(idata)
   37132      387990 :          data_tmp = ISHFT(data_tmp, 17)
   37133      387990 :          data_tmp = IAND(data_tmp, mask_left(22))
   37134      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37135      387990 :          ipack = ipack + 1
   37136      387990 :          packed_data(ipack) = pack_tmp
   37137      387990 :          data_tmp = full_data(idata)
   37138      387990 :          pack_tmp = ISHFT(data_tmp, 39)
   37139      387990 :          pack_tmp = ISHFT(pack_tmp, -39)
   37140      387990 :          idata = idata + 1
   37141      387990 :          data_tmp = full_data(idata)
   37142      387990 :          data_tmp = ISHFT(data_tmp, 17)
   37143      387990 :          data_tmp = IAND(data_tmp, mask_left(39))
   37144      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37145      387990 :          ipack = ipack + 1
   37146      387990 :          packed_data(ipack) = pack_tmp
   37147      387990 :          data_tmp = full_data(idata)
   37148      387990 :          pack_tmp = ISHFT(data_tmp, 56)
   37149      387990 :          pack_tmp = ISHFT(pack_tmp, -47)
   37150      387990 :          idata = idata + 1
   37151      387990 :          data_tmp = full_data(idata)
   37152      387990 :          data_tmp = ISHFT(data_tmp, 17)
   37153      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37154      387990 :          pack_tmp = ISHFT(pack_tmp, -9)
   37155      387990 :          idata = idata + 1
   37156      387990 :          data_tmp = full_data(idata)
   37157      387990 :          data_tmp = ISHFT(data_tmp, 17)
   37158      387990 :          data_tmp = IAND(data_tmp, mask_left(9))
   37159      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37160      387990 :          ipack = ipack + 1
   37161      387990 :          packed_data(ipack) = pack_tmp
   37162      387990 :          data_tmp = full_data(idata)
   37163      387990 :          pack_tmp = ISHFT(data_tmp, 26)
   37164      387990 :          pack_tmp = ISHFT(pack_tmp, -26)
   37165      387990 :          idata = idata + 1
   37166      387990 :          data_tmp = full_data(idata)
   37167      387990 :          data_tmp = ISHFT(data_tmp, 17)
   37168      387990 :          data_tmp = IAND(data_tmp, mask_left(26))
   37169      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37170      387990 :          ipack = ipack + 1
   37171      387990 :          packed_data(ipack) = pack_tmp
   37172      387990 :          data_tmp = full_data(idata)
   37173      387990 :          pack_tmp = ISHFT(data_tmp, 43)
   37174      387990 :          pack_tmp = ISHFT(pack_tmp, -43)
   37175      387990 :          idata = idata + 1
   37176      387990 :          data_tmp = full_data(idata)
   37177      387990 :          data_tmp = ISHFT(data_tmp, 17)
   37178      387990 :          data_tmp = IAND(data_tmp, mask_left(43))
   37179      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37180      387990 :          ipack = ipack + 1
   37181      387990 :          packed_data(ipack) = pack_tmp
   37182      387990 :          data_tmp = full_data(idata)
   37183      387990 :          pack_tmp = ISHFT(data_tmp, 60)
   37184      387990 :          pack_tmp = ISHFT(pack_tmp, -47)
   37185      387990 :          idata = idata + 1
   37186      387990 :          data_tmp = full_data(idata)
   37187      387990 :          data_tmp = ISHFT(data_tmp, 17)
   37188      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37189      387990 :          pack_tmp = ISHFT(pack_tmp, -13)
   37190      387990 :          idata = idata + 1
   37191      387990 :          data_tmp = full_data(idata)
   37192      387990 :          data_tmp = ISHFT(data_tmp, 17)
   37193      387990 :          data_tmp = IAND(data_tmp, mask_left(13))
   37194      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37195      387990 :          ipack = ipack + 1
   37196      387990 :          packed_data(ipack) = pack_tmp
   37197      387990 :          data_tmp = full_data(idata)
   37198      387990 :          pack_tmp = ISHFT(data_tmp, 30)
   37199      387990 :          pack_tmp = ISHFT(pack_tmp, -30)
   37200      387990 :          idata = idata + 1
   37201      387990 :          data_tmp = full_data(idata)
   37202      387990 :          data_tmp = ISHFT(data_tmp, 17)
   37203      387990 :          data_tmp = IAND(data_tmp, mask_left(30))
   37204      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37205      387990 :          ipack = ipack + 1
   37206      387990 :          packed_data(ipack) = pack_tmp
   37207      387990 :          data_tmp = full_data(idata)
   37208      387990 :          pack_tmp = ISHFT(data_tmp, 47)
   37209      387990 :          pack_tmp = ISHFT(pack_tmp, -47)
   37210      387990 :          idata = idata + 1
   37211      387990 :          data_tmp = full_data(idata)
   37212      387990 :          data_tmp = ISHFT(data_tmp, 17)
   37213      387990 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37214             :          pack_tmp = ISHFT(pack_tmp, 0)
   37215      387990 :          pack_tmp = ISHFT(pack_tmp, 0)
   37216      387990 :          ipack = ipack + 1
   37217      387994 :          packed_data(ipack) = pack_tmp
   37218             :       END DO
   37219       25450 :       IF (Ndata_rep < Ndata) THEN
   37220        2260 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   37221             :       END IF
   37222       25450 :    END SUBROUTINE ints2bits_47
   37223             : 
   37224             : ! **************************************************************************************************
   37225             : !> \brief ...
   37226             : !> \param Ndata ...
   37227             : !> \param packed_data ...
   37228             : !> \param full_data ...
   37229             : ! **************************************************************************************************
   37230      112991 :    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      112991 :       ipack = 0
   37241      112991 :       idata = 0
   37242      112991 :       pack_tmp = 0
   37243      112991 :       Ndata_rep = (Ndata/64)*64
   37244      112991 :       DO kdata = 1, Ndata_rep, 64
   37245     1662506 :          idata = idata + 1
   37246     1662506 :          data_tmp = ISHFT(pack_tmp, 47)
   37247     1662506 :          ipack = ipack + 1
   37248     1662506 :          pack_tmp = packed_data(ipack)
   37249     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   37250     1662506 :          pack_tmp = ISHFT(pack_tmp, -47)
   37251     1662506 :          idata = idata + 1
   37252     1662506 :          data_tmp = ISHFT(pack_tmp, 30)
   37253     1662506 :          ipack = ipack + 1
   37254     1662506 :          pack_tmp = packed_data(ipack)
   37255     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   37256     1662506 :          pack_tmp = ISHFT(pack_tmp, -30)
   37257     1662506 :          idata = idata + 1
   37258     1662506 :          data_tmp = ISHFT(pack_tmp, 13)
   37259     1662506 :          ipack = ipack + 1
   37260     1662506 :          pack_tmp = packed_data(ipack)
   37261     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   37262     1662506 :          pack_tmp = ISHFT(pack_tmp, -13)
   37263     1662506 :          idata = idata + 1
   37264     1662506 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37265     1662506 :          full_data(idata) = data_tmp
   37266     1662506 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37267     1662506 :          idata = idata + 1
   37268     1662506 :          data_tmp = ISHFT(pack_tmp, 43)
   37269     1662506 :          ipack = ipack + 1
   37270     1662506 :          pack_tmp = packed_data(ipack)
   37271     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   37272     1662506 :          pack_tmp = ISHFT(pack_tmp, -43)
   37273     1662506 :          idata = idata + 1
   37274     1662506 :          data_tmp = ISHFT(pack_tmp, 26)
   37275     1662506 :          ipack = ipack + 1
   37276     1662506 :          pack_tmp = packed_data(ipack)
   37277     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   37278     1662506 :          pack_tmp = ISHFT(pack_tmp, -26)
   37279     1662506 :          idata = idata + 1
   37280     1662506 :          data_tmp = ISHFT(pack_tmp, 9)
   37281     1662506 :          ipack = ipack + 1
   37282     1662506 :          pack_tmp = packed_data(ipack)
   37283     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   37284     1662506 :          pack_tmp = ISHFT(pack_tmp, -9)
   37285     1662506 :          idata = idata + 1
   37286     1662506 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37287     1662506 :          full_data(idata) = data_tmp
   37288     1662506 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37289     1662506 :          idata = idata + 1
   37290     1662506 :          data_tmp = ISHFT(pack_tmp, 39)
   37291     1662506 :          ipack = ipack + 1
   37292     1662506 :          pack_tmp = packed_data(ipack)
   37293     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   37294     1662506 :          pack_tmp = ISHFT(pack_tmp, -39)
   37295     1662506 :          idata = idata + 1
   37296     1662506 :          data_tmp = ISHFT(pack_tmp, 22)
   37297     1662506 :          ipack = ipack + 1
   37298     1662506 :          pack_tmp = packed_data(ipack)
   37299     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   37300     1662506 :          pack_tmp = ISHFT(pack_tmp, -22)
   37301     1662506 :          idata = idata + 1
   37302     1662506 :          data_tmp = ISHFT(pack_tmp, 5)
   37303     1662506 :          ipack = ipack + 1
   37304     1662506 :          pack_tmp = packed_data(ipack)
   37305     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   37306     1662506 :          pack_tmp = ISHFT(pack_tmp, -5)
   37307     1662506 :          idata = idata + 1
   37308     1662506 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37309     1662506 :          full_data(idata) = data_tmp
   37310     1662506 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37311     1662506 :          idata = idata + 1
   37312     1662506 :          data_tmp = ISHFT(pack_tmp, 35)
   37313     1662506 :          ipack = ipack + 1
   37314     1662506 :          pack_tmp = packed_data(ipack)
   37315     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   37316     1662506 :          pack_tmp = ISHFT(pack_tmp, -35)
   37317     1662506 :          idata = idata + 1
   37318     1662506 :          data_tmp = ISHFT(pack_tmp, 18)
   37319     1662506 :          ipack = ipack + 1
   37320     1662506 :          pack_tmp = packed_data(ipack)
   37321     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   37322     1662506 :          pack_tmp = ISHFT(pack_tmp, -18)
   37323     1662506 :          idata = idata + 1
   37324     1662506 :          data_tmp = ISHFT(pack_tmp, 1)
   37325     1662506 :          ipack = ipack + 1
   37326     1662506 :          pack_tmp = packed_data(ipack)
   37327     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   37328     1662506 :          pack_tmp = ISHFT(pack_tmp, -1)
   37329     1662506 :          idata = idata + 1
   37330     1662506 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37331     1662506 :          full_data(idata) = data_tmp
   37332     1662506 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37333     1662506 :          idata = idata + 1
   37334     1662506 :          data_tmp = ISHFT(pack_tmp, 31)
   37335     1662506 :          ipack = ipack + 1
   37336     1662506 :          pack_tmp = packed_data(ipack)
   37337     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   37338     1662506 :          pack_tmp = ISHFT(pack_tmp, -31)
   37339     1662506 :          idata = idata + 1
   37340     1662506 :          data_tmp = ISHFT(pack_tmp, 14)
   37341     1662506 :          ipack = ipack + 1
   37342     1662506 :          pack_tmp = packed_data(ipack)
   37343     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   37344     1662506 :          pack_tmp = ISHFT(pack_tmp, -14)
   37345     1662506 :          idata = idata + 1
   37346     1662506 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37347     1662506 :          full_data(idata) = data_tmp
   37348     1662506 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37349     1662506 :          idata = idata + 1
   37350     1662506 :          data_tmp = ISHFT(pack_tmp, 44)
   37351     1662506 :          ipack = ipack + 1
   37352     1662506 :          pack_tmp = packed_data(ipack)
   37353     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   37354     1662506 :          pack_tmp = ISHFT(pack_tmp, -44)
   37355     1662506 :          idata = idata + 1
   37356     1662506 :          data_tmp = ISHFT(pack_tmp, 27)
   37357     1662506 :          ipack = ipack + 1
   37358     1662506 :          pack_tmp = packed_data(ipack)
   37359     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   37360     1662506 :          pack_tmp = ISHFT(pack_tmp, -27)
   37361     1662506 :          idata = idata + 1
   37362     1662506 :          data_tmp = ISHFT(pack_tmp, 10)
   37363     1662506 :          ipack = ipack + 1
   37364     1662506 :          pack_tmp = packed_data(ipack)
   37365     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   37366     1662506 :          pack_tmp = ISHFT(pack_tmp, -10)
   37367     1662506 :          idata = idata + 1
   37368     1662506 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37369     1662506 :          full_data(idata) = data_tmp
   37370     1662506 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37371     1662506 :          idata = idata + 1
   37372     1662506 :          data_tmp = ISHFT(pack_tmp, 40)
   37373     1662506 :          ipack = ipack + 1
   37374     1662506 :          pack_tmp = packed_data(ipack)
   37375     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   37376     1662506 :          pack_tmp = ISHFT(pack_tmp, -40)
   37377     1662506 :          idata = idata + 1
   37378     1662506 :          data_tmp = ISHFT(pack_tmp, 23)
   37379     1662506 :          ipack = ipack + 1
   37380     1662506 :          pack_tmp = packed_data(ipack)
   37381     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   37382     1662506 :          pack_tmp = ISHFT(pack_tmp, -23)
   37383     1662506 :          idata = idata + 1
   37384     1662506 :          data_tmp = ISHFT(pack_tmp, 6)
   37385     1662506 :          ipack = ipack + 1
   37386     1662506 :          pack_tmp = packed_data(ipack)
   37387     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   37388     1662506 :          pack_tmp = ISHFT(pack_tmp, -6)
   37389     1662506 :          idata = idata + 1
   37390     1662506 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37391     1662506 :          full_data(idata) = data_tmp
   37392     1662506 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37393     1662506 :          idata = idata + 1
   37394     1662506 :          data_tmp = ISHFT(pack_tmp, 36)
   37395     1662506 :          ipack = ipack + 1
   37396     1662506 :          pack_tmp = packed_data(ipack)
   37397     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   37398     1662506 :          pack_tmp = ISHFT(pack_tmp, -36)
   37399     1662506 :          idata = idata + 1
   37400     1662506 :          data_tmp = ISHFT(pack_tmp, 19)
   37401     1662506 :          ipack = ipack + 1
   37402     1662506 :          pack_tmp = packed_data(ipack)
   37403     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   37404     1662506 :          pack_tmp = ISHFT(pack_tmp, -19)
   37405     1662506 :          idata = idata + 1
   37406     1662506 :          data_tmp = ISHFT(pack_tmp, 2)
   37407     1662506 :          ipack = ipack + 1
   37408     1662506 :          pack_tmp = packed_data(ipack)
   37409     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   37410     1662506 :          pack_tmp = ISHFT(pack_tmp, -2)
   37411     1662506 :          idata = idata + 1
   37412     1662506 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37413     1662506 :          full_data(idata) = data_tmp
   37414     1662506 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37415     1662506 :          idata = idata + 1
   37416     1662506 :          data_tmp = ISHFT(pack_tmp, 32)
   37417     1662506 :          ipack = ipack + 1
   37418     1662506 :          pack_tmp = packed_data(ipack)
   37419     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   37420     1662506 :          pack_tmp = ISHFT(pack_tmp, -32)
   37421     1662506 :          idata = idata + 1
   37422     1662506 :          data_tmp = ISHFT(pack_tmp, 15)
   37423     1662506 :          ipack = ipack + 1
   37424     1662506 :          pack_tmp = packed_data(ipack)
   37425     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   37426     1662506 :          pack_tmp = ISHFT(pack_tmp, -15)
   37427     1662506 :          idata = idata + 1
   37428     1662506 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37429     1662506 :          full_data(idata) = data_tmp
   37430     1662506 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37431     1662506 :          idata = idata + 1
   37432     1662506 :          data_tmp = ISHFT(pack_tmp, 45)
   37433     1662506 :          ipack = ipack + 1
   37434     1662506 :          pack_tmp = packed_data(ipack)
   37435     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   37436     1662506 :          pack_tmp = ISHFT(pack_tmp, -45)
   37437     1662506 :          idata = idata + 1
   37438     1662506 :          data_tmp = ISHFT(pack_tmp, 28)
   37439     1662506 :          ipack = ipack + 1
   37440     1662506 :          pack_tmp = packed_data(ipack)
   37441     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   37442     1662506 :          pack_tmp = ISHFT(pack_tmp, -28)
   37443     1662506 :          idata = idata + 1
   37444     1662506 :          data_tmp = ISHFT(pack_tmp, 11)
   37445     1662506 :          ipack = ipack + 1
   37446     1662506 :          pack_tmp = packed_data(ipack)
   37447     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   37448     1662506 :          pack_tmp = ISHFT(pack_tmp, -11)
   37449     1662506 :          idata = idata + 1
   37450     1662506 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37451     1662506 :          full_data(idata) = data_tmp
   37452     1662506 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37453     1662506 :          idata = idata + 1
   37454     1662506 :          data_tmp = ISHFT(pack_tmp, 41)
   37455     1662506 :          ipack = ipack + 1
   37456     1662506 :          pack_tmp = packed_data(ipack)
   37457     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   37458     1662506 :          pack_tmp = ISHFT(pack_tmp, -41)
   37459     1662506 :          idata = idata + 1
   37460     1662506 :          data_tmp = ISHFT(pack_tmp, 24)
   37461     1662506 :          ipack = ipack + 1
   37462     1662506 :          pack_tmp = packed_data(ipack)
   37463     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   37464     1662506 :          pack_tmp = ISHFT(pack_tmp, -24)
   37465     1662506 :          idata = idata + 1
   37466     1662506 :          data_tmp = ISHFT(pack_tmp, 7)
   37467     1662506 :          ipack = ipack + 1
   37468     1662506 :          pack_tmp = packed_data(ipack)
   37469     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   37470     1662506 :          pack_tmp = ISHFT(pack_tmp, -7)
   37471     1662506 :          idata = idata + 1
   37472     1662506 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37473     1662506 :          full_data(idata) = data_tmp
   37474     1662506 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37475     1662506 :          idata = idata + 1
   37476     1662506 :          data_tmp = ISHFT(pack_tmp, 37)
   37477     1662506 :          ipack = ipack + 1
   37478     1662506 :          pack_tmp = packed_data(ipack)
   37479     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   37480     1662506 :          pack_tmp = ISHFT(pack_tmp, -37)
   37481     1662506 :          idata = idata + 1
   37482     1662506 :          data_tmp = ISHFT(pack_tmp, 20)
   37483     1662506 :          ipack = ipack + 1
   37484     1662506 :          pack_tmp = packed_data(ipack)
   37485     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   37486     1662506 :          pack_tmp = ISHFT(pack_tmp, -20)
   37487     1662506 :          idata = idata + 1
   37488     1662506 :          data_tmp = ISHFT(pack_tmp, 3)
   37489     1662506 :          ipack = ipack + 1
   37490     1662506 :          pack_tmp = packed_data(ipack)
   37491     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   37492     1662506 :          pack_tmp = ISHFT(pack_tmp, -3)
   37493     1662506 :          idata = idata + 1
   37494     1662506 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37495     1662506 :          full_data(idata) = data_tmp
   37496     1662506 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37497     1662506 :          idata = idata + 1
   37498     1662506 :          data_tmp = ISHFT(pack_tmp, 33)
   37499     1662506 :          ipack = ipack + 1
   37500     1662506 :          pack_tmp = packed_data(ipack)
   37501     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   37502     1662506 :          pack_tmp = ISHFT(pack_tmp, -33)
   37503     1662506 :          idata = idata + 1
   37504     1662506 :          data_tmp = ISHFT(pack_tmp, 16)
   37505     1662506 :          ipack = ipack + 1
   37506     1662506 :          pack_tmp = packed_data(ipack)
   37507     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   37508     1662506 :          pack_tmp = ISHFT(pack_tmp, -16)
   37509     1662506 :          idata = idata + 1
   37510     1662506 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37511     1662506 :          full_data(idata) = data_tmp
   37512     1662506 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37513     1662506 :          idata = idata + 1
   37514     1662506 :          data_tmp = ISHFT(pack_tmp, 46)
   37515     1662506 :          ipack = ipack + 1
   37516     1662506 :          pack_tmp = packed_data(ipack)
   37517     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   37518     1662506 :          pack_tmp = ISHFT(pack_tmp, -46)
   37519     1662506 :          idata = idata + 1
   37520     1662506 :          data_tmp = ISHFT(pack_tmp, 29)
   37521     1662506 :          ipack = ipack + 1
   37522     1662506 :          pack_tmp = packed_data(ipack)
   37523     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   37524     1662506 :          pack_tmp = ISHFT(pack_tmp, -29)
   37525     1662506 :          idata = idata + 1
   37526     1662506 :          data_tmp = ISHFT(pack_tmp, 12)
   37527     1662506 :          ipack = ipack + 1
   37528     1662506 :          pack_tmp = packed_data(ipack)
   37529     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   37530     1662506 :          pack_tmp = ISHFT(pack_tmp, -12)
   37531     1662506 :          idata = idata + 1
   37532     1662506 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37533     1662506 :          full_data(idata) = data_tmp
   37534     1662506 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37535     1662506 :          idata = idata + 1
   37536     1662506 :          data_tmp = ISHFT(pack_tmp, 42)
   37537     1662506 :          ipack = ipack + 1
   37538     1662506 :          pack_tmp = packed_data(ipack)
   37539     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   37540     1662506 :          pack_tmp = ISHFT(pack_tmp, -42)
   37541     1662506 :          idata = idata + 1
   37542     1662506 :          data_tmp = ISHFT(pack_tmp, 25)
   37543     1662506 :          ipack = ipack + 1
   37544     1662506 :          pack_tmp = packed_data(ipack)
   37545     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   37546     1662506 :          pack_tmp = ISHFT(pack_tmp, -25)
   37547     1662506 :          idata = idata + 1
   37548     1662506 :          data_tmp = ISHFT(pack_tmp, 8)
   37549     1662506 :          ipack = ipack + 1
   37550     1662506 :          pack_tmp = packed_data(ipack)
   37551     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   37552     1662506 :          pack_tmp = ISHFT(pack_tmp, -8)
   37553     1662506 :          idata = idata + 1
   37554     1662506 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37555     1662506 :          full_data(idata) = data_tmp
   37556     1662506 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37557     1662506 :          idata = idata + 1
   37558     1662506 :          data_tmp = ISHFT(pack_tmp, 38)
   37559     1662506 :          ipack = ipack + 1
   37560     1662506 :          pack_tmp = packed_data(ipack)
   37561     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   37562     1662506 :          pack_tmp = ISHFT(pack_tmp, -38)
   37563     1662506 :          idata = idata + 1
   37564     1662506 :          data_tmp = ISHFT(pack_tmp, 21)
   37565     1662506 :          ipack = ipack + 1
   37566     1662506 :          pack_tmp = packed_data(ipack)
   37567     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   37568     1662506 :          pack_tmp = ISHFT(pack_tmp, -21)
   37569     1662506 :          idata = idata + 1
   37570     1662506 :          data_tmp = ISHFT(pack_tmp, 4)
   37571     1662506 :          ipack = ipack + 1
   37572     1662506 :          pack_tmp = packed_data(ipack)
   37573     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   37574     1662506 :          pack_tmp = ISHFT(pack_tmp, -4)
   37575     1662506 :          idata = idata + 1
   37576     1662506 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37577     1662506 :          full_data(idata) = data_tmp
   37578     1662506 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37579     1662506 :          idata = idata + 1
   37580     1662506 :          data_tmp = ISHFT(pack_tmp, 34)
   37581     1662506 :          ipack = ipack + 1
   37582     1662506 :          pack_tmp = packed_data(ipack)
   37583     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   37584     1662506 :          pack_tmp = ISHFT(pack_tmp, -34)
   37585     1662506 :          idata = idata + 1
   37586     1662506 :          data_tmp = ISHFT(pack_tmp, 17)
   37587     1662506 :          ipack = ipack + 1
   37588     1662506 :          pack_tmp = packed_data(ipack)
   37589     1662506 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   37590     1662506 :          pack_tmp = ISHFT(pack_tmp, -17)
   37591     1662506 :          idata = idata + 1
   37592     1662506 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37593     1662506 :          full_data(idata) = data_tmp
   37594     1662586 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37595             :       END DO
   37596      112991 :       IF (Ndata_rep < Ndata) THEN
   37597       17100 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   37598             :       END IF
   37599      112991 :    END SUBROUTINE bits2ints_47
   37600             : 
   37601             : ! **************************************************************************************************
   37602             : !> \brief ...
   37603             : !> \param Ndata ...
   37604             : !> \param packed_data ...
   37605             : !> \param full_data ...
   37606             : ! **************************************************************************************************
   37607       26049 :    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       26049 :       idata = 0
   37618       26049 :       ipack = 0
   37619       26049 :       Ndata_rep = (Ndata/64)*64
   37620       26049 :       DO kdata = 1, Ndata_rep, 64
   37621      391692 :          pack_tmp = 0
   37622      391692 :          idata = idata + 1
   37623      391692 :          data_tmp = full_data(idata)
   37624      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37625      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37626      391692 :          pack_tmp = ISHFT(pack_tmp, -16)
   37627      391692 :          idata = idata + 1
   37628      391692 :          data_tmp = full_data(idata)
   37629      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37630      391692 :          data_tmp = IAND(data_tmp, mask_left(16))
   37631      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37632      391692 :          ipack = ipack + 1
   37633      391692 :          packed_data(ipack) = pack_tmp
   37634      391692 :          data_tmp = full_data(idata)
   37635      391692 :          pack_tmp = ISHFT(data_tmp, 32)
   37636      391692 :          pack_tmp = ISHFT(pack_tmp, -32)
   37637      391692 :          idata = idata + 1
   37638      391692 :          data_tmp = full_data(idata)
   37639      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37640      391692 :          data_tmp = IAND(data_tmp, mask_left(32))
   37641      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37642      391692 :          ipack = ipack + 1
   37643      391692 :          packed_data(ipack) = pack_tmp
   37644      391692 :          data_tmp = full_data(idata)
   37645      391692 :          pack_tmp = ISHFT(data_tmp, 48)
   37646      391692 :          pack_tmp = ISHFT(pack_tmp, -48)
   37647      391692 :          idata = idata + 1
   37648      391692 :          data_tmp = full_data(idata)
   37649      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37650      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37651      391692 :          pack_tmp = ISHFT(pack_tmp, 0)
   37652      391692 :          idata = idata + 1
   37653      391692 :          data_tmp = full_data(idata)
   37654             :          data_tmp = ISHFT(data_tmp, 16)
   37655      391692 :          data_tmp = IAND(data_tmp, mask_left(0))
   37656      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37657      391692 :          ipack = ipack + 1
   37658      391692 :          packed_data(ipack) = pack_tmp
   37659      391692 :          data_tmp = full_data(idata)
   37660      391692 :          pack_tmp = ISHFT(data_tmp, 16)
   37661      391692 :          pack_tmp = ISHFT(pack_tmp, -16)
   37662      391692 :          idata = idata + 1
   37663      391692 :          data_tmp = full_data(idata)
   37664      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37665      391692 :          data_tmp = IAND(data_tmp, mask_left(16))
   37666      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37667      391692 :          ipack = ipack + 1
   37668      391692 :          packed_data(ipack) = pack_tmp
   37669      391692 :          data_tmp = full_data(idata)
   37670      391692 :          pack_tmp = ISHFT(data_tmp, 32)
   37671      391692 :          pack_tmp = ISHFT(pack_tmp, -32)
   37672      391692 :          idata = idata + 1
   37673      391692 :          data_tmp = full_data(idata)
   37674      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37675      391692 :          data_tmp = IAND(data_tmp, mask_left(32))
   37676      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37677      391692 :          ipack = ipack + 1
   37678      391692 :          packed_data(ipack) = pack_tmp
   37679      391692 :          data_tmp = full_data(idata)
   37680      391692 :          pack_tmp = ISHFT(data_tmp, 48)
   37681      391692 :          pack_tmp = ISHFT(pack_tmp, -48)
   37682      391692 :          idata = idata + 1
   37683      391692 :          data_tmp = full_data(idata)
   37684      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37685      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37686      391692 :          pack_tmp = ISHFT(pack_tmp, 0)
   37687      391692 :          idata = idata + 1
   37688      391692 :          data_tmp = full_data(idata)
   37689             :          data_tmp = ISHFT(data_tmp, 16)
   37690      391692 :          data_tmp = IAND(data_tmp, mask_left(0))
   37691      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37692      391692 :          ipack = ipack + 1
   37693      391692 :          packed_data(ipack) = pack_tmp
   37694      391692 :          data_tmp = full_data(idata)
   37695      391692 :          pack_tmp = ISHFT(data_tmp, 16)
   37696      391692 :          pack_tmp = ISHFT(pack_tmp, -16)
   37697      391692 :          idata = idata + 1
   37698      391692 :          data_tmp = full_data(idata)
   37699      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37700      391692 :          data_tmp = IAND(data_tmp, mask_left(16))
   37701      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37702      391692 :          ipack = ipack + 1
   37703      391692 :          packed_data(ipack) = pack_tmp
   37704      391692 :          data_tmp = full_data(idata)
   37705      391692 :          pack_tmp = ISHFT(data_tmp, 32)
   37706      391692 :          pack_tmp = ISHFT(pack_tmp, -32)
   37707      391692 :          idata = idata + 1
   37708      391692 :          data_tmp = full_data(idata)
   37709      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37710      391692 :          data_tmp = IAND(data_tmp, mask_left(32))
   37711      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37712      391692 :          ipack = ipack + 1
   37713      391692 :          packed_data(ipack) = pack_tmp
   37714      391692 :          data_tmp = full_data(idata)
   37715      391692 :          pack_tmp = ISHFT(data_tmp, 48)
   37716      391692 :          pack_tmp = ISHFT(pack_tmp, -48)
   37717      391692 :          idata = idata + 1
   37718      391692 :          data_tmp = full_data(idata)
   37719      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37720      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37721      391692 :          pack_tmp = ISHFT(pack_tmp, 0)
   37722      391692 :          idata = idata + 1
   37723      391692 :          data_tmp = full_data(idata)
   37724             :          data_tmp = ISHFT(data_tmp, 16)
   37725      391692 :          data_tmp = IAND(data_tmp, mask_left(0))
   37726      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37727      391692 :          ipack = ipack + 1
   37728      391692 :          packed_data(ipack) = pack_tmp
   37729      391692 :          data_tmp = full_data(idata)
   37730      391692 :          pack_tmp = ISHFT(data_tmp, 16)
   37731      391692 :          pack_tmp = ISHFT(pack_tmp, -16)
   37732      391692 :          idata = idata + 1
   37733      391692 :          data_tmp = full_data(idata)
   37734      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37735      391692 :          data_tmp = IAND(data_tmp, mask_left(16))
   37736      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37737      391692 :          ipack = ipack + 1
   37738      391692 :          packed_data(ipack) = pack_tmp
   37739      391692 :          data_tmp = full_data(idata)
   37740      391692 :          pack_tmp = ISHFT(data_tmp, 32)
   37741      391692 :          pack_tmp = ISHFT(pack_tmp, -32)
   37742      391692 :          idata = idata + 1
   37743      391692 :          data_tmp = full_data(idata)
   37744      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37745      391692 :          data_tmp = IAND(data_tmp, mask_left(32))
   37746      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37747      391692 :          ipack = ipack + 1
   37748      391692 :          packed_data(ipack) = pack_tmp
   37749      391692 :          data_tmp = full_data(idata)
   37750      391692 :          pack_tmp = ISHFT(data_tmp, 48)
   37751      391692 :          pack_tmp = ISHFT(pack_tmp, -48)
   37752      391692 :          idata = idata + 1
   37753      391692 :          data_tmp = full_data(idata)
   37754      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37755      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37756      391692 :          pack_tmp = ISHFT(pack_tmp, 0)
   37757      391692 :          idata = idata + 1
   37758      391692 :          data_tmp = full_data(idata)
   37759             :          data_tmp = ISHFT(data_tmp, 16)
   37760      391692 :          data_tmp = IAND(data_tmp, mask_left(0))
   37761      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37762      391692 :          ipack = ipack + 1
   37763      391692 :          packed_data(ipack) = pack_tmp
   37764      391692 :          data_tmp = full_data(idata)
   37765      391692 :          pack_tmp = ISHFT(data_tmp, 16)
   37766      391692 :          pack_tmp = ISHFT(pack_tmp, -16)
   37767      391692 :          idata = idata + 1
   37768      391692 :          data_tmp = full_data(idata)
   37769      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37770      391692 :          data_tmp = IAND(data_tmp, mask_left(16))
   37771      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37772      391692 :          ipack = ipack + 1
   37773      391692 :          packed_data(ipack) = pack_tmp
   37774      391692 :          data_tmp = full_data(idata)
   37775      391692 :          pack_tmp = ISHFT(data_tmp, 32)
   37776      391692 :          pack_tmp = ISHFT(pack_tmp, -32)
   37777      391692 :          idata = idata + 1
   37778      391692 :          data_tmp = full_data(idata)
   37779      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37780      391692 :          data_tmp = IAND(data_tmp, mask_left(32))
   37781      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37782      391692 :          ipack = ipack + 1
   37783      391692 :          packed_data(ipack) = pack_tmp
   37784      391692 :          data_tmp = full_data(idata)
   37785      391692 :          pack_tmp = ISHFT(data_tmp, 48)
   37786      391692 :          pack_tmp = ISHFT(pack_tmp, -48)
   37787      391692 :          idata = idata + 1
   37788      391692 :          data_tmp = full_data(idata)
   37789      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37790      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37791      391692 :          pack_tmp = ISHFT(pack_tmp, 0)
   37792      391692 :          idata = idata + 1
   37793      391692 :          data_tmp = full_data(idata)
   37794             :          data_tmp = ISHFT(data_tmp, 16)
   37795      391692 :          data_tmp = IAND(data_tmp, mask_left(0))
   37796      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37797      391692 :          ipack = ipack + 1
   37798      391692 :          packed_data(ipack) = pack_tmp
   37799      391692 :          data_tmp = full_data(idata)
   37800      391692 :          pack_tmp = ISHFT(data_tmp, 16)
   37801      391692 :          pack_tmp = ISHFT(pack_tmp, -16)
   37802      391692 :          idata = idata + 1
   37803      391692 :          data_tmp = full_data(idata)
   37804      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37805      391692 :          data_tmp = IAND(data_tmp, mask_left(16))
   37806      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37807      391692 :          ipack = ipack + 1
   37808      391692 :          packed_data(ipack) = pack_tmp
   37809      391692 :          data_tmp = full_data(idata)
   37810      391692 :          pack_tmp = ISHFT(data_tmp, 32)
   37811      391692 :          pack_tmp = ISHFT(pack_tmp, -32)
   37812      391692 :          idata = idata + 1
   37813      391692 :          data_tmp = full_data(idata)
   37814      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37815      391692 :          data_tmp = IAND(data_tmp, mask_left(32))
   37816      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37817      391692 :          ipack = ipack + 1
   37818      391692 :          packed_data(ipack) = pack_tmp
   37819      391692 :          data_tmp = full_data(idata)
   37820      391692 :          pack_tmp = ISHFT(data_tmp, 48)
   37821      391692 :          pack_tmp = ISHFT(pack_tmp, -48)
   37822      391692 :          idata = idata + 1
   37823      391692 :          data_tmp = full_data(idata)
   37824      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37825      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37826      391692 :          pack_tmp = ISHFT(pack_tmp, 0)
   37827      391692 :          idata = idata + 1
   37828      391692 :          data_tmp = full_data(idata)
   37829             :          data_tmp = ISHFT(data_tmp, 16)
   37830      391692 :          data_tmp = IAND(data_tmp, mask_left(0))
   37831      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37832      391692 :          ipack = ipack + 1
   37833      391692 :          packed_data(ipack) = pack_tmp
   37834      391692 :          data_tmp = full_data(idata)
   37835      391692 :          pack_tmp = ISHFT(data_tmp, 16)
   37836      391692 :          pack_tmp = ISHFT(pack_tmp, -16)
   37837      391692 :          idata = idata + 1
   37838      391692 :          data_tmp = full_data(idata)
   37839      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37840      391692 :          data_tmp = IAND(data_tmp, mask_left(16))
   37841      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37842      391692 :          ipack = ipack + 1
   37843      391692 :          packed_data(ipack) = pack_tmp
   37844      391692 :          data_tmp = full_data(idata)
   37845      391692 :          pack_tmp = ISHFT(data_tmp, 32)
   37846      391692 :          pack_tmp = ISHFT(pack_tmp, -32)
   37847      391692 :          idata = idata + 1
   37848      391692 :          data_tmp = full_data(idata)
   37849      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37850      391692 :          data_tmp = IAND(data_tmp, mask_left(32))
   37851      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37852      391692 :          ipack = ipack + 1
   37853      391692 :          packed_data(ipack) = pack_tmp
   37854      391692 :          data_tmp = full_data(idata)
   37855      391692 :          pack_tmp = ISHFT(data_tmp, 48)
   37856      391692 :          pack_tmp = ISHFT(pack_tmp, -48)
   37857      391692 :          idata = idata + 1
   37858      391692 :          data_tmp = full_data(idata)
   37859      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37860      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37861      391692 :          pack_tmp = ISHFT(pack_tmp, 0)
   37862      391692 :          idata = idata + 1
   37863      391692 :          data_tmp = full_data(idata)
   37864             :          data_tmp = ISHFT(data_tmp, 16)
   37865      391692 :          data_tmp = IAND(data_tmp, mask_left(0))
   37866      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37867      391692 :          ipack = ipack + 1
   37868      391692 :          packed_data(ipack) = pack_tmp
   37869      391692 :          data_tmp = full_data(idata)
   37870      391692 :          pack_tmp = ISHFT(data_tmp, 16)
   37871      391692 :          pack_tmp = ISHFT(pack_tmp, -16)
   37872      391692 :          idata = idata + 1
   37873      391692 :          data_tmp = full_data(idata)
   37874      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37875      391692 :          data_tmp = IAND(data_tmp, mask_left(16))
   37876      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37877      391692 :          ipack = ipack + 1
   37878      391692 :          packed_data(ipack) = pack_tmp
   37879      391692 :          data_tmp = full_data(idata)
   37880      391692 :          pack_tmp = ISHFT(data_tmp, 32)
   37881      391692 :          pack_tmp = ISHFT(pack_tmp, -32)
   37882      391692 :          idata = idata + 1
   37883      391692 :          data_tmp = full_data(idata)
   37884      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37885      391692 :          data_tmp = IAND(data_tmp, mask_left(32))
   37886      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37887      391692 :          ipack = ipack + 1
   37888      391692 :          packed_data(ipack) = pack_tmp
   37889      391692 :          data_tmp = full_data(idata)
   37890      391692 :          pack_tmp = ISHFT(data_tmp, 48)
   37891      391692 :          pack_tmp = ISHFT(pack_tmp, -48)
   37892      391692 :          idata = idata + 1
   37893      391692 :          data_tmp = full_data(idata)
   37894      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37895      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37896      391692 :          pack_tmp = ISHFT(pack_tmp, 0)
   37897      391692 :          idata = idata + 1
   37898      391692 :          data_tmp = full_data(idata)
   37899             :          data_tmp = ISHFT(data_tmp, 16)
   37900      391692 :          data_tmp = IAND(data_tmp, mask_left(0))
   37901      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37902      391692 :          ipack = ipack + 1
   37903      391692 :          packed_data(ipack) = pack_tmp
   37904      391692 :          data_tmp = full_data(idata)
   37905      391692 :          pack_tmp = ISHFT(data_tmp, 16)
   37906      391692 :          pack_tmp = ISHFT(pack_tmp, -16)
   37907      391692 :          idata = idata + 1
   37908      391692 :          data_tmp = full_data(idata)
   37909      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37910      391692 :          data_tmp = IAND(data_tmp, mask_left(16))
   37911      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37912      391692 :          ipack = ipack + 1
   37913      391692 :          packed_data(ipack) = pack_tmp
   37914      391692 :          data_tmp = full_data(idata)
   37915      391692 :          pack_tmp = ISHFT(data_tmp, 32)
   37916      391692 :          pack_tmp = ISHFT(pack_tmp, -32)
   37917      391692 :          idata = idata + 1
   37918      391692 :          data_tmp = full_data(idata)
   37919      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37920      391692 :          data_tmp = IAND(data_tmp, mask_left(32))
   37921      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37922      391692 :          ipack = ipack + 1
   37923      391692 :          packed_data(ipack) = pack_tmp
   37924      391692 :          data_tmp = full_data(idata)
   37925      391692 :          pack_tmp = ISHFT(data_tmp, 48)
   37926      391692 :          pack_tmp = ISHFT(pack_tmp, -48)
   37927      391692 :          idata = idata + 1
   37928      391692 :          data_tmp = full_data(idata)
   37929      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37930      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37931      391692 :          pack_tmp = ISHFT(pack_tmp, 0)
   37932      391692 :          idata = idata + 1
   37933      391692 :          data_tmp = full_data(idata)
   37934             :          data_tmp = ISHFT(data_tmp, 16)
   37935      391692 :          data_tmp = IAND(data_tmp, mask_left(0))
   37936      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37937      391692 :          ipack = ipack + 1
   37938      391692 :          packed_data(ipack) = pack_tmp
   37939      391692 :          data_tmp = full_data(idata)
   37940      391692 :          pack_tmp = ISHFT(data_tmp, 16)
   37941      391692 :          pack_tmp = ISHFT(pack_tmp, -16)
   37942      391692 :          idata = idata + 1
   37943      391692 :          data_tmp = full_data(idata)
   37944      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37945      391692 :          data_tmp = IAND(data_tmp, mask_left(16))
   37946      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37947      391692 :          ipack = ipack + 1
   37948      391692 :          packed_data(ipack) = pack_tmp
   37949      391692 :          data_tmp = full_data(idata)
   37950      391692 :          pack_tmp = ISHFT(data_tmp, 32)
   37951      391692 :          pack_tmp = ISHFT(pack_tmp, -32)
   37952      391692 :          idata = idata + 1
   37953      391692 :          data_tmp = full_data(idata)
   37954      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37955      391692 :          data_tmp = IAND(data_tmp, mask_left(32))
   37956      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37957      391692 :          ipack = ipack + 1
   37958      391692 :          packed_data(ipack) = pack_tmp
   37959      391692 :          data_tmp = full_data(idata)
   37960      391692 :          pack_tmp = ISHFT(data_tmp, 48)
   37961      391692 :          pack_tmp = ISHFT(pack_tmp, -48)
   37962      391692 :          idata = idata + 1
   37963      391692 :          data_tmp = full_data(idata)
   37964      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37965      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37966      391692 :          pack_tmp = ISHFT(pack_tmp, 0)
   37967      391692 :          idata = idata + 1
   37968      391692 :          data_tmp = full_data(idata)
   37969             :          data_tmp = ISHFT(data_tmp, 16)
   37970      391692 :          data_tmp = IAND(data_tmp, mask_left(0))
   37971      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37972      391692 :          ipack = ipack + 1
   37973      391692 :          packed_data(ipack) = pack_tmp
   37974      391692 :          data_tmp = full_data(idata)
   37975      391692 :          pack_tmp = ISHFT(data_tmp, 16)
   37976      391692 :          pack_tmp = ISHFT(pack_tmp, -16)
   37977      391692 :          idata = idata + 1
   37978      391692 :          data_tmp = full_data(idata)
   37979      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37980      391692 :          data_tmp = IAND(data_tmp, mask_left(16))
   37981      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37982      391692 :          ipack = ipack + 1
   37983      391692 :          packed_data(ipack) = pack_tmp
   37984      391692 :          data_tmp = full_data(idata)
   37985      391692 :          pack_tmp = ISHFT(data_tmp, 32)
   37986      391692 :          pack_tmp = ISHFT(pack_tmp, -32)
   37987      391692 :          idata = idata + 1
   37988      391692 :          data_tmp = full_data(idata)
   37989      391692 :          data_tmp = ISHFT(data_tmp, 16)
   37990      391692 :          data_tmp = IAND(data_tmp, mask_left(32))
   37991      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37992      391692 :          ipack = ipack + 1
   37993      391692 :          packed_data(ipack) = pack_tmp
   37994      391692 :          data_tmp = full_data(idata)
   37995      391692 :          pack_tmp = ISHFT(data_tmp, 48)
   37996      391692 :          pack_tmp = ISHFT(pack_tmp, -48)
   37997      391692 :          idata = idata + 1
   37998      391692 :          data_tmp = full_data(idata)
   37999      391692 :          data_tmp = ISHFT(data_tmp, 16)
   38000      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38001      391692 :          pack_tmp = ISHFT(pack_tmp, 0)
   38002      391692 :          idata = idata + 1
   38003      391692 :          data_tmp = full_data(idata)
   38004             :          data_tmp = ISHFT(data_tmp, 16)
   38005      391692 :          data_tmp = IAND(data_tmp, mask_left(0))
   38006      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38007      391692 :          ipack = ipack + 1
   38008      391692 :          packed_data(ipack) = pack_tmp
   38009      391692 :          data_tmp = full_data(idata)
   38010      391692 :          pack_tmp = ISHFT(data_tmp, 16)
   38011      391692 :          pack_tmp = ISHFT(pack_tmp, -16)
   38012      391692 :          idata = idata + 1
   38013      391692 :          data_tmp = full_data(idata)
   38014      391692 :          data_tmp = ISHFT(data_tmp, 16)
   38015      391692 :          data_tmp = IAND(data_tmp, mask_left(16))
   38016      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38017      391692 :          ipack = ipack + 1
   38018      391692 :          packed_data(ipack) = pack_tmp
   38019      391692 :          data_tmp = full_data(idata)
   38020      391692 :          pack_tmp = ISHFT(data_tmp, 32)
   38021      391692 :          pack_tmp = ISHFT(pack_tmp, -32)
   38022      391692 :          idata = idata + 1
   38023      391692 :          data_tmp = full_data(idata)
   38024      391692 :          data_tmp = ISHFT(data_tmp, 16)
   38025      391692 :          data_tmp = IAND(data_tmp, mask_left(32))
   38026      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38027      391692 :          ipack = ipack + 1
   38028      391692 :          packed_data(ipack) = pack_tmp
   38029      391692 :          data_tmp = full_data(idata)
   38030      391692 :          pack_tmp = ISHFT(data_tmp, 48)
   38031      391692 :          pack_tmp = ISHFT(pack_tmp, -48)
   38032      391692 :          idata = idata + 1
   38033      391692 :          data_tmp = full_data(idata)
   38034      391692 :          data_tmp = ISHFT(data_tmp, 16)
   38035      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38036      391692 :          pack_tmp = ISHFT(pack_tmp, 0)
   38037      391692 :          idata = idata + 1
   38038      391692 :          data_tmp = full_data(idata)
   38039             :          data_tmp = ISHFT(data_tmp, 16)
   38040      391692 :          data_tmp = IAND(data_tmp, mask_left(0))
   38041      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38042      391692 :          ipack = ipack + 1
   38043      391692 :          packed_data(ipack) = pack_tmp
   38044      391692 :          data_tmp = full_data(idata)
   38045      391692 :          pack_tmp = ISHFT(data_tmp, 16)
   38046      391692 :          pack_tmp = ISHFT(pack_tmp, -16)
   38047      391692 :          idata = idata + 1
   38048      391692 :          data_tmp = full_data(idata)
   38049      391692 :          data_tmp = ISHFT(data_tmp, 16)
   38050      391692 :          data_tmp = IAND(data_tmp, mask_left(16))
   38051      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38052      391692 :          ipack = ipack + 1
   38053      391692 :          packed_data(ipack) = pack_tmp
   38054      391692 :          data_tmp = full_data(idata)
   38055      391692 :          pack_tmp = ISHFT(data_tmp, 32)
   38056      391692 :          pack_tmp = ISHFT(pack_tmp, -32)
   38057      391692 :          idata = idata + 1
   38058      391692 :          data_tmp = full_data(idata)
   38059      391692 :          data_tmp = ISHFT(data_tmp, 16)
   38060      391692 :          data_tmp = IAND(data_tmp, mask_left(32))
   38061      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38062      391692 :          ipack = ipack + 1
   38063      391692 :          packed_data(ipack) = pack_tmp
   38064      391692 :          data_tmp = full_data(idata)
   38065      391692 :          pack_tmp = ISHFT(data_tmp, 48)
   38066      391692 :          pack_tmp = ISHFT(pack_tmp, -48)
   38067      391692 :          idata = idata + 1
   38068      391692 :          data_tmp = full_data(idata)
   38069      391692 :          data_tmp = ISHFT(data_tmp, 16)
   38070      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38071      391692 :          pack_tmp = ISHFT(pack_tmp, 0)
   38072      391692 :          idata = idata + 1
   38073      391692 :          data_tmp = full_data(idata)
   38074             :          data_tmp = ISHFT(data_tmp, 16)
   38075      391692 :          data_tmp = IAND(data_tmp, mask_left(0))
   38076      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38077      391692 :          ipack = ipack + 1
   38078      391692 :          packed_data(ipack) = pack_tmp
   38079      391692 :          data_tmp = full_data(idata)
   38080      391692 :          pack_tmp = ISHFT(data_tmp, 16)
   38081      391692 :          pack_tmp = ISHFT(pack_tmp, -16)
   38082      391692 :          idata = idata + 1
   38083      391692 :          data_tmp = full_data(idata)
   38084      391692 :          data_tmp = ISHFT(data_tmp, 16)
   38085      391692 :          data_tmp = IAND(data_tmp, mask_left(16))
   38086      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38087      391692 :          ipack = ipack + 1
   38088      391692 :          packed_data(ipack) = pack_tmp
   38089      391692 :          data_tmp = full_data(idata)
   38090      391692 :          pack_tmp = ISHFT(data_tmp, 32)
   38091      391692 :          pack_tmp = ISHFT(pack_tmp, -32)
   38092      391692 :          idata = idata + 1
   38093      391692 :          data_tmp = full_data(idata)
   38094      391692 :          data_tmp = ISHFT(data_tmp, 16)
   38095      391692 :          data_tmp = IAND(data_tmp, mask_left(32))
   38096      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38097      391692 :          ipack = ipack + 1
   38098      391692 :          packed_data(ipack) = pack_tmp
   38099      391692 :          data_tmp = full_data(idata)
   38100      391692 :          pack_tmp = ISHFT(data_tmp, 48)
   38101      391692 :          pack_tmp = ISHFT(pack_tmp, -48)
   38102      391692 :          idata = idata + 1
   38103      391692 :          data_tmp = full_data(idata)
   38104      391692 :          data_tmp = ISHFT(data_tmp, 16)
   38105      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38106      391692 :          pack_tmp = ISHFT(pack_tmp, 0)
   38107      391692 :          idata = idata + 1
   38108      391692 :          data_tmp = full_data(idata)
   38109             :          data_tmp = ISHFT(data_tmp, 16)
   38110      391692 :          data_tmp = IAND(data_tmp, mask_left(0))
   38111      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38112      391692 :          ipack = ipack + 1
   38113      391692 :          packed_data(ipack) = pack_tmp
   38114      391692 :          data_tmp = full_data(idata)
   38115      391692 :          pack_tmp = ISHFT(data_tmp, 16)
   38116      391692 :          pack_tmp = ISHFT(pack_tmp, -16)
   38117      391692 :          idata = idata + 1
   38118      391692 :          data_tmp = full_data(idata)
   38119      391692 :          data_tmp = ISHFT(data_tmp, 16)
   38120      391692 :          data_tmp = IAND(data_tmp, mask_left(16))
   38121      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38122      391692 :          ipack = ipack + 1
   38123      391692 :          packed_data(ipack) = pack_tmp
   38124      391692 :          data_tmp = full_data(idata)
   38125      391692 :          pack_tmp = ISHFT(data_tmp, 32)
   38126      391692 :          pack_tmp = ISHFT(pack_tmp, -32)
   38127      391692 :          idata = idata + 1
   38128      391692 :          data_tmp = full_data(idata)
   38129      391692 :          data_tmp = ISHFT(data_tmp, 16)
   38130      391692 :          data_tmp = IAND(data_tmp, mask_left(32))
   38131      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38132      391692 :          ipack = ipack + 1
   38133      391692 :          packed_data(ipack) = pack_tmp
   38134      391692 :          data_tmp = full_data(idata)
   38135      391692 :          pack_tmp = ISHFT(data_tmp, 48)
   38136      391692 :          pack_tmp = ISHFT(pack_tmp, -48)
   38137      391692 :          idata = idata + 1
   38138      391692 :          data_tmp = full_data(idata)
   38139      391692 :          data_tmp = ISHFT(data_tmp, 16)
   38140      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38141      391692 :          pack_tmp = ISHFT(pack_tmp, 0)
   38142      391692 :          idata = idata + 1
   38143      391692 :          data_tmp = full_data(idata)
   38144             :          data_tmp = ISHFT(data_tmp, 16)
   38145      391692 :          data_tmp = IAND(data_tmp, mask_left(0))
   38146      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38147      391692 :          ipack = ipack + 1
   38148      391692 :          packed_data(ipack) = pack_tmp
   38149      391692 :          data_tmp = full_data(idata)
   38150      391692 :          pack_tmp = ISHFT(data_tmp, 16)
   38151      391692 :          pack_tmp = ISHFT(pack_tmp, -16)
   38152      391692 :          idata = idata + 1
   38153      391692 :          data_tmp = full_data(idata)
   38154      391692 :          data_tmp = ISHFT(data_tmp, 16)
   38155      391692 :          data_tmp = IAND(data_tmp, mask_left(16))
   38156      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38157      391692 :          ipack = ipack + 1
   38158      391692 :          packed_data(ipack) = pack_tmp
   38159      391692 :          data_tmp = full_data(idata)
   38160      391692 :          pack_tmp = ISHFT(data_tmp, 32)
   38161      391692 :          pack_tmp = ISHFT(pack_tmp, -32)
   38162      391692 :          idata = idata + 1
   38163      391692 :          data_tmp = full_data(idata)
   38164      391692 :          data_tmp = ISHFT(data_tmp, 16)
   38165      391692 :          data_tmp = IAND(data_tmp, mask_left(32))
   38166      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38167      391692 :          ipack = ipack + 1
   38168      391692 :          packed_data(ipack) = pack_tmp
   38169      391692 :          data_tmp = full_data(idata)
   38170      391692 :          pack_tmp = ISHFT(data_tmp, 48)
   38171      391692 :          pack_tmp = ISHFT(pack_tmp, -48)
   38172      391692 :          idata = idata + 1
   38173      391692 :          data_tmp = full_data(idata)
   38174      391692 :          data_tmp = ISHFT(data_tmp, 16)
   38175      391692 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38176             :          pack_tmp = ISHFT(pack_tmp, 0)
   38177      391692 :          pack_tmp = ISHFT(pack_tmp, 0)
   38178      391692 :          ipack = ipack + 1
   38179      391930 :          packed_data(ipack) = pack_tmp
   38180             :       END DO
   38181       26049 :       IF (Ndata_rep < Ndata) THEN
   38182        2952 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   38183             :       END IF
   38184       26049 :    END SUBROUTINE ints2bits_48
   38185             : 
   38186             : ! **************************************************************************************************
   38187             : !> \brief ...
   38188             : !> \param Ndata ...
   38189             : !> \param packed_data ...
   38190             : !> \param full_data ...
   38191             : ! **************************************************************************************************
   38192      110672 :    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      110672 :       ipack = 0
   38203      110672 :       idata = 0
   38204      110672 :       pack_tmp = 0
   38205      110672 :       Ndata_rep = (Ndata/64)*64
   38206      110672 :       DO kdata = 1, Ndata_rep, 64
   38207     1635211 :          idata = idata + 1
   38208     1635211 :          data_tmp = ISHFT(pack_tmp, 48)
   38209     1635211 :          ipack = ipack + 1
   38210     1635211 :          pack_tmp = packed_data(ipack)
   38211     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38212     1635211 :          pack_tmp = ISHFT(pack_tmp, -48)
   38213     1635211 :          idata = idata + 1
   38214     1635211 :          data_tmp = ISHFT(pack_tmp, 32)
   38215     1635211 :          ipack = ipack + 1
   38216     1635211 :          pack_tmp = packed_data(ipack)
   38217     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38218     1635211 :          pack_tmp = ISHFT(pack_tmp, -32)
   38219     1635211 :          idata = idata + 1
   38220     1635211 :          data_tmp = ISHFT(pack_tmp, 16)
   38221     1635211 :          ipack = ipack + 1
   38222     1635211 :          pack_tmp = packed_data(ipack)
   38223     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38224     1635211 :          pack_tmp = ISHFT(pack_tmp, -16)
   38225     1635211 :          idata = idata + 1
   38226     1635211 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38227     1635211 :          full_data(idata) = data_tmp
   38228     1635211 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38229     1635211 :          idata = idata + 1
   38230     1635211 :          data_tmp = ISHFT(pack_tmp, 48)
   38231     1635211 :          ipack = ipack + 1
   38232     1635211 :          pack_tmp = packed_data(ipack)
   38233     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38234     1635211 :          pack_tmp = ISHFT(pack_tmp, -48)
   38235     1635211 :          idata = idata + 1
   38236     1635211 :          data_tmp = ISHFT(pack_tmp, 32)
   38237     1635211 :          ipack = ipack + 1
   38238     1635211 :          pack_tmp = packed_data(ipack)
   38239     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38240     1635211 :          pack_tmp = ISHFT(pack_tmp, -32)
   38241     1635211 :          idata = idata + 1
   38242     1635211 :          data_tmp = ISHFT(pack_tmp, 16)
   38243     1635211 :          ipack = ipack + 1
   38244     1635211 :          pack_tmp = packed_data(ipack)
   38245     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38246     1635211 :          pack_tmp = ISHFT(pack_tmp, -16)
   38247     1635211 :          idata = idata + 1
   38248     1635211 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38249     1635211 :          full_data(idata) = data_tmp
   38250     1635211 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38251     1635211 :          idata = idata + 1
   38252     1635211 :          data_tmp = ISHFT(pack_tmp, 48)
   38253     1635211 :          ipack = ipack + 1
   38254     1635211 :          pack_tmp = packed_data(ipack)
   38255     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38256     1635211 :          pack_tmp = ISHFT(pack_tmp, -48)
   38257     1635211 :          idata = idata + 1
   38258     1635211 :          data_tmp = ISHFT(pack_tmp, 32)
   38259     1635211 :          ipack = ipack + 1
   38260     1635211 :          pack_tmp = packed_data(ipack)
   38261     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38262     1635211 :          pack_tmp = ISHFT(pack_tmp, -32)
   38263     1635211 :          idata = idata + 1
   38264     1635211 :          data_tmp = ISHFT(pack_tmp, 16)
   38265     1635211 :          ipack = ipack + 1
   38266     1635211 :          pack_tmp = packed_data(ipack)
   38267     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38268     1635211 :          pack_tmp = ISHFT(pack_tmp, -16)
   38269     1635211 :          idata = idata + 1
   38270     1635211 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38271     1635211 :          full_data(idata) = data_tmp
   38272     1635211 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38273     1635211 :          idata = idata + 1
   38274     1635211 :          data_tmp = ISHFT(pack_tmp, 48)
   38275     1635211 :          ipack = ipack + 1
   38276     1635211 :          pack_tmp = packed_data(ipack)
   38277     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38278     1635211 :          pack_tmp = ISHFT(pack_tmp, -48)
   38279     1635211 :          idata = idata + 1
   38280     1635211 :          data_tmp = ISHFT(pack_tmp, 32)
   38281     1635211 :          ipack = ipack + 1
   38282     1635211 :          pack_tmp = packed_data(ipack)
   38283     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38284     1635211 :          pack_tmp = ISHFT(pack_tmp, -32)
   38285     1635211 :          idata = idata + 1
   38286     1635211 :          data_tmp = ISHFT(pack_tmp, 16)
   38287     1635211 :          ipack = ipack + 1
   38288     1635211 :          pack_tmp = packed_data(ipack)
   38289     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38290     1635211 :          pack_tmp = ISHFT(pack_tmp, -16)
   38291     1635211 :          idata = idata + 1
   38292     1635211 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38293     1635211 :          full_data(idata) = data_tmp
   38294     1635211 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38295     1635211 :          idata = idata + 1
   38296     1635211 :          data_tmp = ISHFT(pack_tmp, 48)
   38297     1635211 :          ipack = ipack + 1
   38298     1635211 :          pack_tmp = packed_data(ipack)
   38299     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38300     1635211 :          pack_tmp = ISHFT(pack_tmp, -48)
   38301     1635211 :          idata = idata + 1
   38302     1635211 :          data_tmp = ISHFT(pack_tmp, 32)
   38303     1635211 :          ipack = ipack + 1
   38304     1635211 :          pack_tmp = packed_data(ipack)
   38305     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38306     1635211 :          pack_tmp = ISHFT(pack_tmp, -32)
   38307     1635211 :          idata = idata + 1
   38308     1635211 :          data_tmp = ISHFT(pack_tmp, 16)
   38309     1635211 :          ipack = ipack + 1
   38310     1635211 :          pack_tmp = packed_data(ipack)
   38311     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38312     1635211 :          pack_tmp = ISHFT(pack_tmp, -16)
   38313     1635211 :          idata = idata + 1
   38314     1635211 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38315     1635211 :          full_data(idata) = data_tmp
   38316     1635211 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38317     1635211 :          idata = idata + 1
   38318     1635211 :          data_tmp = ISHFT(pack_tmp, 48)
   38319     1635211 :          ipack = ipack + 1
   38320     1635211 :          pack_tmp = packed_data(ipack)
   38321     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38322     1635211 :          pack_tmp = ISHFT(pack_tmp, -48)
   38323     1635211 :          idata = idata + 1
   38324     1635211 :          data_tmp = ISHFT(pack_tmp, 32)
   38325     1635211 :          ipack = ipack + 1
   38326     1635211 :          pack_tmp = packed_data(ipack)
   38327     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38328     1635211 :          pack_tmp = ISHFT(pack_tmp, -32)
   38329     1635211 :          idata = idata + 1
   38330     1635211 :          data_tmp = ISHFT(pack_tmp, 16)
   38331     1635211 :          ipack = ipack + 1
   38332     1635211 :          pack_tmp = packed_data(ipack)
   38333     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38334     1635211 :          pack_tmp = ISHFT(pack_tmp, -16)
   38335     1635211 :          idata = idata + 1
   38336     1635211 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38337     1635211 :          full_data(idata) = data_tmp
   38338     1635211 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38339     1635211 :          idata = idata + 1
   38340     1635211 :          data_tmp = ISHFT(pack_tmp, 48)
   38341     1635211 :          ipack = ipack + 1
   38342     1635211 :          pack_tmp = packed_data(ipack)
   38343     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38344     1635211 :          pack_tmp = ISHFT(pack_tmp, -48)
   38345     1635211 :          idata = idata + 1
   38346     1635211 :          data_tmp = ISHFT(pack_tmp, 32)
   38347     1635211 :          ipack = ipack + 1
   38348     1635211 :          pack_tmp = packed_data(ipack)
   38349     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38350     1635211 :          pack_tmp = ISHFT(pack_tmp, -32)
   38351     1635211 :          idata = idata + 1
   38352     1635211 :          data_tmp = ISHFT(pack_tmp, 16)
   38353     1635211 :          ipack = ipack + 1
   38354     1635211 :          pack_tmp = packed_data(ipack)
   38355     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38356     1635211 :          pack_tmp = ISHFT(pack_tmp, -16)
   38357     1635211 :          idata = idata + 1
   38358     1635211 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38359     1635211 :          full_data(idata) = data_tmp
   38360     1635211 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38361     1635211 :          idata = idata + 1
   38362     1635211 :          data_tmp = ISHFT(pack_tmp, 48)
   38363     1635211 :          ipack = ipack + 1
   38364     1635211 :          pack_tmp = packed_data(ipack)
   38365     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38366     1635211 :          pack_tmp = ISHFT(pack_tmp, -48)
   38367     1635211 :          idata = idata + 1
   38368     1635211 :          data_tmp = ISHFT(pack_tmp, 32)
   38369     1635211 :          ipack = ipack + 1
   38370     1635211 :          pack_tmp = packed_data(ipack)
   38371     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38372     1635211 :          pack_tmp = ISHFT(pack_tmp, -32)
   38373     1635211 :          idata = idata + 1
   38374     1635211 :          data_tmp = ISHFT(pack_tmp, 16)
   38375     1635211 :          ipack = ipack + 1
   38376     1635211 :          pack_tmp = packed_data(ipack)
   38377     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38378     1635211 :          pack_tmp = ISHFT(pack_tmp, -16)
   38379     1635211 :          idata = idata + 1
   38380     1635211 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38381     1635211 :          full_data(idata) = data_tmp
   38382     1635211 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38383     1635211 :          idata = idata + 1
   38384     1635211 :          data_tmp = ISHFT(pack_tmp, 48)
   38385     1635211 :          ipack = ipack + 1
   38386     1635211 :          pack_tmp = packed_data(ipack)
   38387     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38388     1635211 :          pack_tmp = ISHFT(pack_tmp, -48)
   38389     1635211 :          idata = idata + 1
   38390     1635211 :          data_tmp = ISHFT(pack_tmp, 32)
   38391     1635211 :          ipack = ipack + 1
   38392     1635211 :          pack_tmp = packed_data(ipack)
   38393     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38394     1635211 :          pack_tmp = ISHFT(pack_tmp, -32)
   38395     1635211 :          idata = idata + 1
   38396     1635211 :          data_tmp = ISHFT(pack_tmp, 16)
   38397     1635211 :          ipack = ipack + 1
   38398     1635211 :          pack_tmp = packed_data(ipack)
   38399     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38400     1635211 :          pack_tmp = ISHFT(pack_tmp, -16)
   38401     1635211 :          idata = idata + 1
   38402     1635211 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38403     1635211 :          full_data(idata) = data_tmp
   38404     1635211 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38405     1635211 :          idata = idata + 1
   38406     1635211 :          data_tmp = ISHFT(pack_tmp, 48)
   38407     1635211 :          ipack = ipack + 1
   38408     1635211 :          pack_tmp = packed_data(ipack)
   38409     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38410     1635211 :          pack_tmp = ISHFT(pack_tmp, -48)
   38411     1635211 :          idata = idata + 1
   38412     1635211 :          data_tmp = ISHFT(pack_tmp, 32)
   38413     1635211 :          ipack = ipack + 1
   38414     1635211 :          pack_tmp = packed_data(ipack)
   38415     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38416     1635211 :          pack_tmp = ISHFT(pack_tmp, -32)
   38417     1635211 :          idata = idata + 1
   38418     1635211 :          data_tmp = ISHFT(pack_tmp, 16)
   38419     1635211 :          ipack = ipack + 1
   38420     1635211 :          pack_tmp = packed_data(ipack)
   38421     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38422     1635211 :          pack_tmp = ISHFT(pack_tmp, -16)
   38423     1635211 :          idata = idata + 1
   38424     1635211 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38425     1635211 :          full_data(idata) = data_tmp
   38426     1635211 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38427     1635211 :          idata = idata + 1
   38428     1635211 :          data_tmp = ISHFT(pack_tmp, 48)
   38429     1635211 :          ipack = ipack + 1
   38430     1635211 :          pack_tmp = packed_data(ipack)
   38431     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38432     1635211 :          pack_tmp = ISHFT(pack_tmp, -48)
   38433     1635211 :          idata = idata + 1
   38434     1635211 :          data_tmp = ISHFT(pack_tmp, 32)
   38435     1635211 :          ipack = ipack + 1
   38436     1635211 :          pack_tmp = packed_data(ipack)
   38437     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38438     1635211 :          pack_tmp = ISHFT(pack_tmp, -32)
   38439     1635211 :          idata = idata + 1
   38440     1635211 :          data_tmp = ISHFT(pack_tmp, 16)
   38441     1635211 :          ipack = ipack + 1
   38442     1635211 :          pack_tmp = packed_data(ipack)
   38443     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38444     1635211 :          pack_tmp = ISHFT(pack_tmp, -16)
   38445     1635211 :          idata = idata + 1
   38446     1635211 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38447     1635211 :          full_data(idata) = data_tmp
   38448     1635211 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38449     1635211 :          idata = idata + 1
   38450     1635211 :          data_tmp = ISHFT(pack_tmp, 48)
   38451     1635211 :          ipack = ipack + 1
   38452     1635211 :          pack_tmp = packed_data(ipack)
   38453     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38454     1635211 :          pack_tmp = ISHFT(pack_tmp, -48)
   38455     1635211 :          idata = idata + 1
   38456     1635211 :          data_tmp = ISHFT(pack_tmp, 32)
   38457     1635211 :          ipack = ipack + 1
   38458     1635211 :          pack_tmp = packed_data(ipack)
   38459     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38460     1635211 :          pack_tmp = ISHFT(pack_tmp, -32)
   38461     1635211 :          idata = idata + 1
   38462     1635211 :          data_tmp = ISHFT(pack_tmp, 16)
   38463     1635211 :          ipack = ipack + 1
   38464     1635211 :          pack_tmp = packed_data(ipack)
   38465     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38466     1635211 :          pack_tmp = ISHFT(pack_tmp, -16)
   38467     1635211 :          idata = idata + 1
   38468     1635211 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38469     1635211 :          full_data(idata) = data_tmp
   38470     1635211 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38471     1635211 :          idata = idata + 1
   38472     1635211 :          data_tmp = ISHFT(pack_tmp, 48)
   38473     1635211 :          ipack = ipack + 1
   38474     1635211 :          pack_tmp = packed_data(ipack)
   38475     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38476     1635211 :          pack_tmp = ISHFT(pack_tmp, -48)
   38477     1635211 :          idata = idata + 1
   38478     1635211 :          data_tmp = ISHFT(pack_tmp, 32)
   38479     1635211 :          ipack = ipack + 1
   38480     1635211 :          pack_tmp = packed_data(ipack)
   38481     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38482     1635211 :          pack_tmp = ISHFT(pack_tmp, -32)
   38483     1635211 :          idata = idata + 1
   38484     1635211 :          data_tmp = ISHFT(pack_tmp, 16)
   38485     1635211 :          ipack = ipack + 1
   38486     1635211 :          pack_tmp = packed_data(ipack)
   38487     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38488     1635211 :          pack_tmp = ISHFT(pack_tmp, -16)
   38489     1635211 :          idata = idata + 1
   38490     1635211 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38491     1635211 :          full_data(idata) = data_tmp
   38492     1635211 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38493     1635211 :          idata = idata + 1
   38494     1635211 :          data_tmp = ISHFT(pack_tmp, 48)
   38495     1635211 :          ipack = ipack + 1
   38496     1635211 :          pack_tmp = packed_data(ipack)
   38497     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38498     1635211 :          pack_tmp = ISHFT(pack_tmp, -48)
   38499     1635211 :          idata = idata + 1
   38500     1635211 :          data_tmp = ISHFT(pack_tmp, 32)
   38501     1635211 :          ipack = ipack + 1
   38502     1635211 :          pack_tmp = packed_data(ipack)
   38503     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38504     1635211 :          pack_tmp = ISHFT(pack_tmp, -32)
   38505     1635211 :          idata = idata + 1
   38506     1635211 :          data_tmp = ISHFT(pack_tmp, 16)
   38507     1635211 :          ipack = ipack + 1
   38508     1635211 :          pack_tmp = packed_data(ipack)
   38509     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38510     1635211 :          pack_tmp = ISHFT(pack_tmp, -16)
   38511     1635211 :          idata = idata + 1
   38512     1635211 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38513     1635211 :          full_data(idata) = data_tmp
   38514     1635211 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38515     1635211 :          idata = idata + 1
   38516     1635211 :          data_tmp = ISHFT(pack_tmp, 48)
   38517     1635211 :          ipack = ipack + 1
   38518     1635211 :          pack_tmp = packed_data(ipack)
   38519     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38520     1635211 :          pack_tmp = ISHFT(pack_tmp, -48)
   38521     1635211 :          idata = idata + 1
   38522     1635211 :          data_tmp = ISHFT(pack_tmp, 32)
   38523     1635211 :          ipack = ipack + 1
   38524     1635211 :          pack_tmp = packed_data(ipack)
   38525     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38526     1635211 :          pack_tmp = ISHFT(pack_tmp, -32)
   38527     1635211 :          idata = idata + 1
   38528     1635211 :          data_tmp = ISHFT(pack_tmp, 16)
   38529     1635211 :          ipack = ipack + 1
   38530     1635211 :          pack_tmp = packed_data(ipack)
   38531     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38532     1635211 :          pack_tmp = ISHFT(pack_tmp, -16)
   38533     1635211 :          idata = idata + 1
   38534     1635211 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38535     1635211 :          full_data(idata) = data_tmp
   38536     1635211 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38537     1635211 :          idata = idata + 1
   38538     1635211 :          data_tmp = ISHFT(pack_tmp, 48)
   38539     1635211 :          ipack = ipack + 1
   38540     1635211 :          pack_tmp = packed_data(ipack)
   38541     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38542     1635211 :          pack_tmp = ISHFT(pack_tmp, -48)
   38543     1635211 :          idata = idata + 1
   38544     1635211 :          data_tmp = ISHFT(pack_tmp, 32)
   38545     1635211 :          ipack = ipack + 1
   38546     1635211 :          pack_tmp = packed_data(ipack)
   38547     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38548     1635211 :          pack_tmp = ISHFT(pack_tmp, -32)
   38549     1635211 :          idata = idata + 1
   38550     1635211 :          data_tmp = ISHFT(pack_tmp, 16)
   38551     1635211 :          ipack = ipack + 1
   38552     1635211 :          pack_tmp = packed_data(ipack)
   38553     1635211 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38554     1635211 :          pack_tmp = ISHFT(pack_tmp, -16)
   38555     1635211 :          idata = idata + 1
   38556     1635211 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38557     1635211 :          full_data(idata) = data_tmp
   38558     1636784 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38559             :       END DO
   38560      110672 :       IF (Ndata_rep < Ndata) THEN
   38561       15946 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   38562             :       END IF
   38563      110672 :    END SUBROUTINE bits2ints_48
   38564             : 
   38565             : ! **************************************************************************************************
   38566             : !> \brief ...
   38567             : !> \param Ndata ...
   38568             : !> \param packed_data ...
   38569             : !> \param full_data ...
   38570             : ! **************************************************************************************************
   38571       24884 :    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       24884 :       idata = 0
   38582       24884 :       ipack = 0
   38583       24884 :       Ndata_rep = (Ndata/64)*64
   38584       24884 :       DO kdata = 1, Ndata_rep, 64
   38585      382657 :          pack_tmp = 0
   38586      382657 :          idata = idata + 1
   38587      382657 :          data_tmp = full_data(idata)
   38588      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38589      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38590      382657 :          pack_tmp = ISHFT(pack_tmp, -15)
   38591      382657 :          idata = idata + 1
   38592      382657 :          data_tmp = full_data(idata)
   38593      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38594      382657 :          data_tmp = IAND(data_tmp, mask_left(15))
   38595      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38596      382657 :          ipack = ipack + 1
   38597      382657 :          packed_data(ipack) = pack_tmp
   38598      382657 :          data_tmp = full_data(idata)
   38599      382657 :          pack_tmp = ISHFT(data_tmp, 30)
   38600      382657 :          pack_tmp = ISHFT(pack_tmp, -30)
   38601      382657 :          idata = idata + 1
   38602      382657 :          data_tmp = full_data(idata)
   38603      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38604      382657 :          data_tmp = IAND(data_tmp, mask_left(30))
   38605      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38606      382657 :          ipack = ipack + 1
   38607      382657 :          packed_data(ipack) = pack_tmp
   38608      382657 :          data_tmp = full_data(idata)
   38609      382657 :          pack_tmp = ISHFT(data_tmp, 45)
   38610      382657 :          pack_tmp = ISHFT(pack_tmp, -45)
   38611      382657 :          idata = idata + 1
   38612      382657 :          data_tmp = full_data(idata)
   38613      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38614      382657 :          data_tmp = IAND(data_tmp, mask_left(45))
   38615      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38616      382657 :          ipack = ipack + 1
   38617      382657 :          packed_data(ipack) = pack_tmp
   38618      382657 :          data_tmp = full_data(idata)
   38619      382657 :          pack_tmp = ISHFT(data_tmp, 60)
   38620      382657 :          pack_tmp = ISHFT(pack_tmp, -49)
   38621      382657 :          idata = idata + 1
   38622      382657 :          data_tmp = full_data(idata)
   38623      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38624      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38625      382657 :          pack_tmp = ISHFT(pack_tmp, -11)
   38626      382657 :          idata = idata + 1
   38627      382657 :          data_tmp = full_data(idata)
   38628      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38629      382657 :          data_tmp = IAND(data_tmp, mask_left(11))
   38630      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38631      382657 :          ipack = ipack + 1
   38632      382657 :          packed_data(ipack) = pack_tmp
   38633      382657 :          data_tmp = full_data(idata)
   38634      382657 :          pack_tmp = ISHFT(data_tmp, 26)
   38635      382657 :          pack_tmp = ISHFT(pack_tmp, -26)
   38636      382657 :          idata = idata + 1
   38637      382657 :          data_tmp = full_data(idata)
   38638      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38639      382657 :          data_tmp = IAND(data_tmp, mask_left(26))
   38640      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38641      382657 :          ipack = ipack + 1
   38642      382657 :          packed_data(ipack) = pack_tmp
   38643      382657 :          data_tmp = full_data(idata)
   38644      382657 :          pack_tmp = ISHFT(data_tmp, 41)
   38645      382657 :          pack_tmp = ISHFT(pack_tmp, -41)
   38646      382657 :          idata = idata + 1
   38647      382657 :          data_tmp = full_data(idata)
   38648      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38649      382657 :          data_tmp = IAND(data_tmp, mask_left(41))
   38650      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38651      382657 :          ipack = ipack + 1
   38652      382657 :          packed_data(ipack) = pack_tmp
   38653      382657 :          data_tmp = full_data(idata)
   38654      382657 :          pack_tmp = ISHFT(data_tmp, 56)
   38655      382657 :          pack_tmp = ISHFT(pack_tmp, -49)
   38656      382657 :          idata = idata + 1
   38657      382657 :          data_tmp = full_data(idata)
   38658      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38659      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38660      382657 :          pack_tmp = ISHFT(pack_tmp, -7)
   38661      382657 :          idata = idata + 1
   38662      382657 :          data_tmp = full_data(idata)
   38663      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38664      382657 :          data_tmp = IAND(data_tmp, mask_left(7))
   38665      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38666      382657 :          ipack = ipack + 1
   38667      382657 :          packed_data(ipack) = pack_tmp
   38668      382657 :          data_tmp = full_data(idata)
   38669      382657 :          pack_tmp = ISHFT(data_tmp, 22)
   38670      382657 :          pack_tmp = ISHFT(pack_tmp, -22)
   38671      382657 :          idata = idata + 1
   38672      382657 :          data_tmp = full_data(idata)
   38673      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38674      382657 :          data_tmp = IAND(data_tmp, mask_left(22))
   38675      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38676      382657 :          ipack = ipack + 1
   38677      382657 :          packed_data(ipack) = pack_tmp
   38678      382657 :          data_tmp = full_data(idata)
   38679      382657 :          pack_tmp = ISHFT(data_tmp, 37)
   38680      382657 :          pack_tmp = ISHFT(pack_tmp, -37)
   38681      382657 :          idata = idata + 1
   38682      382657 :          data_tmp = full_data(idata)
   38683      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38684      382657 :          data_tmp = IAND(data_tmp, mask_left(37))
   38685      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38686      382657 :          ipack = ipack + 1
   38687      382657 :          packed_data(ipack) = pack_tmp
   38688      382657 :          data_tmp = full_data(idata)
   38689      382657 :          pack_tmp = ISHFT(data_tmp, 52)
   38690      382657 :          pack_tmp = ISHFT(pack_tmp, -49)
   38691      382657 :          idata = idata + 1
   38692      382657 :          data_tmp = full_data(idata)
   38693      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38694      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38695      382657 :          pack_tmp = ISHFT(pack_tmp, -3)
   38696      382657 :          idata = idata + 1
   38697      382657 :          data_tmp = full_data(idata)
   38698      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38699      382657 :          data_tmp = IAND(data_tmp, mask_left(3))
   38700      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38701      382657 :          ipack = ipack + 1
   38702      382657 :          packed_data(ipack) = pack_tmp
   38703      382657 :          data_tmp = full_data(idata)
   38704      382657 :          pack_tmp = ISHFT(data_tmp, 18)
   38705      382657 :          pack_tmp = ISHFT(pack_tmp, -18)
   38706      382657 :          idata = idata + 1
   38707      382657 :          data_tmp = full_data(idata)
   38708      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38709      382657 :          data_tmp = IAND(data_tmp, mask_left(18))
   38710      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38711      382657 :          ipack = ipack + 1
   38712      382657 :          packed_data(ipack) = pack_tmp
   38713      382657 :          data_tmp = full_data(idata)
   38714      382657 :          pack_tmp = ISHFT(data_tmp, 33)
   38715      382657 :          pack_tmp = ISHFT(pack_tmp, -33)
   38716      382657 :          idata = idata + 1
   38717      382657 :          data_tmp = full_data(idata)
   38718      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38719      382657 :          data_tmp = IAND(data_tmp, mask_left(33))
   38720      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38721      382657 :          ipack = ipack + 1
   38722      382657 :          packed_data(ipack) = pack_tmp
   38723      382657 :          data_tmp = full_data(idata)
   38724      382657 :          pack_tmp = ISHFT(data_tmp, 48)
   38725      382657 :          pack_tmp = ISHFT(pack_tmp, -48)
   38726      382657 :          idata = idata + 1
   38727      382657 :          data_tmp = full_data(idata)
   38728      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38729      382657 :          data_tmp = IAND(data_tmp, mask_left(48))
   38730      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38731      382657 :          ipack = ipack + 1
   38732      382657 :          packed_data(ipack) = pack_tmp
   38733      382657 :          data_tmp = full_data(idata)
   38734      382657 :          pack_tmp = ISHFT(data_tmp, 63)
   38735      382657 :          pack_tmp = ISHFT(pack_tmp, -49)
   38736      382657 :          idata = idata + 1
   38737      382657 :          data_tmp = full_data(idata)
   38738      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38739      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38740      382657 :          pack_tmp = ISHFT(pack_tmp, -14)
   38741      382657 :          idata = idata + 1
   38742      382657 :          data_tmp = full_data(idata)
   38743      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38744      382657 :          data_tmp = IAND(data_tmp, mask_left(14))
   38745      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38746      382657 :          ipack = ipack + 1
   38747      382657 :          packed_data(ipack) = pack_tmp
   38748      382657 :          data_tmp = full_data(idata)
   38749      382657 :          pack_tmp = ISHFT(data_tmp, 29)
   38750      382657 :          pack_tmp = ISHFT(pack_tmp, -29)
   38751      382657 :          idata = idata + 1
   38752      382657 :          data_tmp = full_data(idata)
   38753      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38754      382657 :          data_tmp = IAND(data_tmp, mask_left(29))
   38755      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38756      382657 :          ipack = ipack + 1
   38757      382657 :          packed_data(ipack) = pack_tmp
   38758      382657 :          data_tmp = full_data(idata)
   38759      382657 :          pack_tmp = ISHFT(data_tmp, 44)
   38760      382657 :          pack_tmp = ISHFT(pack_tmp, -44)
   38761      382657 :          idata = idata + 1
   38762      382657 :          data_tmp = full_data(idata)
   38763      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38764      382657 :          data_tmp = IAND(data_tmp, mask_left(44))
   38765      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38766      382657 :          ipack = ipack + 1
   38767      382657 :          packed_data(ipack) = pack_tmp
   38768      382657 :          data_tmp = full_data(idata)
   38769      382657 :          pack_tmp = ISHFT(data_tmp, 59)
   38770      382657 :          pack_tmp = ISHFT(pack_tmp, -49)
   38771      382657 :          idata = idata + 1
   38772      382657 :          data_tmp = full_data(idata)
   38773      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38774      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38775      382657 :          pack_tmp = ISHFT(pack_tmp, -10)
   38776      382657 :          idata = idata + 1
   38777      382657 :          data_tmp = full_data(idata)
   38778      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38779      382657 :          data_tmp = IAND(data_tmp, mask_left(10))
   38780      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38781      382657 :          ipack = ipack + 1
   38782      382657 :          packed_data(ipack) = pack_tmp
   38783      382657 :          data_tmp = full_data(idata)
   38784      382657 :          pack_tmp = ISHFT(data_tmp, 25)
   38785      382657 :          pack_tmp = ISHFT(pack_tmp, -25)
   38786      382657 :          idata = idata + 1
   38787      382657 :          data_tmp = full_data(idata)
   38788      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38789      382657 :          data_tmp = IAND(data_tmp, mask_left(25))
   38790      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38791      382657 :          ipack = ipack + 1
   38792      382657 :          packed_data(ipack) = pack_tmp
   38793      382657 :          data_tmp = full_data(idata)
   38794      382657 :          pack_tmp = ISHFT(data_tmp, 40)
   38795      382657 :          pack_tmp = ISHFT(pack_tmp, -40)
   38796      382657 :          idata = idata + 1
   38797      382657 :          data_tmp = full_data(idata)
   38798      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38799      382657 :          data_tmp = IAND(data_tmp, mask_left(40))
   38800      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38801      382657 :          ipack = ipack + 1
   38802      382657 :          packed_data(ipack) = pack_tmp
   38803      382657 :          data_tmp = full_data(idata)
   38804      382657 :          pack_tmp = ISHFT(data_tmp, 55)
   38805      382657 :          pack_tmp = ISHFT(pack_tmp, -49)
   38806      382657 :          idata = idata + 1
   38807      382657 :          data_tmp = full_data(idata)
   38808      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38809      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38810      382657 :          pack_tmp = ISHFT(pack_tmp, -6)
   38811      382657 :          idata = idata + 1
   38812      382657 :          data_tmp = full_data(idata)
   38813      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38814      382657 :          data_tmp = IAND(data_tmp, mask_left(6))
   38815      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38816      382657 :          ipack = ipack + 1
   38817      382657 :          packed_data(ipack) = pack_tmp
   38818      382657 :          data_tmp = full_data(idata)
   38819      382657 :          pack_tmp = ISHFT(data_tmp, 21)
   38820      382657 :          pack_tmp = ISHFT(pack_tmp, -21)
   38821      382657 :          idata = idata + 1
   38822      382657 :          data_tmp = full_data(idata)
   38823      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38824      382657 :          data_tmp = IAND(data_tmp, mask_left(21))
   38825      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38826      382657 :          ipack = ipack + 1
   38827      382657 :          packed_data(ipack) = pack_tmp
   38828      382657 :          data_tmp = full_data(idata)
   38829      382657 :          pack_tmp = ISHFT(data_tmp, 36)
   38830      382657 :          pack_tmp = ISHFT(pack_tmp, -36)
   38831      382657 :          idata = idata + 1
   38832      382657 :          data_tmp = full_data(idata)
   38833      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38834      382657 :          data_tmp = IAND(data_tmp, mask_left(36))
   38835      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38836      382657 :          ipack = ipack + 1
   38837      382657 :          packed_data(ipack) = pack_tmp
   38838      382657 :          data_tmp = full_data(idata)
   38839      382657 :          pack_tmp = ISHFT(data_tmp, 51)
   38840      382657 :          pack_tmp = ISHFT(pack_tmp, -49)
   38841      382657 :          idata = idata + 1
   38842      382657 :          data_tmp = full_data(idata)
   38843      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38844      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38845      382657 :          pack_tmp = ISHFT(pack_tmp, -2)
   38846      382657 :          idata = idata + 1
   38847      382657 :          data_tmp = full_data(idata)
   38848      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38849      382657 :          data_tmp = IAND(data_tmp, mask_left(2))
   38850      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38851      382657 :          ipack = ipack + 1
   38852      382657 :          packed_data(ipack) = pack_tmp
   38853      382657 :          data_tmp = full_data(idata)
   38854      382657 :          pack_tmp = ISHFT(data_tmp, 17)
   38855      382657 :          pack_tmp = ISHFT(pack_tmp, -17)
   38856      382657 :          idata = idata + 1
   38857      382657 :          data_tmp = full_data(idata)
   38858      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38859      382657 :          data_tmp = IAND(data_tmp, mask_left(17))
   38860      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38861      382657 :          ipack = ipack + 1
   38862      382657 :          packed_data(ipack) = pack_tmp
   38863      382657 :          data_tmp = full_data(idata)
   38864      382657 :          pack_tmp = ISHFT(data_tmp, 32)
   38865      382657 :          pack_tmp = ISHFT(pack_tmp, -32)
   38866      382657 :          idata = idata + 1
   38867      382657 :          data_tmp = full_data(idata)
   38868      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38869      382657 :          data_tmp = IAND(data_tmp, mask_left(32))
   38870      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38871      382657 :          ipack = ipack + 1
   38872      382657 :          packed_data(ipack) = pack_tmp
   38873      382657 :          data_tmp = full_data(idata)
   38874      382657 :          pack_tmp = ISHFT(data_tmp, 47)
   38875      382657 :          pack_tmp = ISHFT(pack_tmp, -47)
   38876      382657 :          idata = idata + 1
   38877      382657 :          data_tmp = full_data(idata)
   38878      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38879      382657 :          data_tmp = IAND(data_tmp, mask_left(47))
   38880      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38881      382657 :          ipack = ipack + 1
   38882      382657 :          packed_data(ipack) = pack_tmp
   38883      382657 :          data_tmp = full_data(idata)
   38884      382657 :          pack_tmp = ISHFT(data_tmp, 62)
   38885      382657 :          pack_tmp = ISHFT(pack_tmp, -49)
   38886      382657 :          idata = idata + 1
   38887      382657 :          data_tmp = full_data(idata)
   38888      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38889      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38890      382657 :          pack_tmp = ISHFT(pack_tmp, -13)
   38891      382657 :          idata = idata + 1
   38892      382657 :          data_tmp = full_data(idata)
   38893      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38894      382657 :          data_tmp = IAND(data_tmp, mask_left(13))
   38895      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38896      382657 :          ipack = ipack + 1
   38897      382657 :          packed_data(ipack) = pack_tmp
   38898      382657 :          data_tmp = full_data(idata)
   38899      382657 :          pack_tmp = ISHFT(data_tmp, 28)
   38900      382657 :          pack_tmp = ISHFT(pack_tmp, -28)
   38901      382657 :          idata = idata + 1
   38902      382657 :          data_tmp = full_data(idata)
   38903      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38904      382657 :          data_tmp = IAND(data_tmp, mask_left(28))
   38905      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38906      382657 :          ipack = ipack + 1
   38907      382657 :          packed_data(ipack) = pack_tmp
   38908      382657 :          data_tmp = full_data(idata)
   38909      382657 :          pack_tmp = ISHFT(data_tmp, 43)
   38910      382657 :          pack_tmp = ISHFT(pack_tmp, -43)
   38911      382657 :          idata = idata + 1
   38912      382657 :          data_tmp = full_data(idata)
   38913      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38914      382657 :          data_tmp = IAND(data_tmp, mask_left(43))
   38915      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38916      382657 :          ipack = ipack + 1
   38917      382657 :          packed_data(ipack) = pack_tmp
   38918      382657 :          data_tmp = full_data(idata)
   38919      382657 :          pack_tmp = ISHFT(data_tmp, 58)
   38920      382657 :          pack_tmp = ISHFT(pack_tmp, -49)
   38921      382657 :          idata = idata + 1
   38922      382657 :          data_tmp = full_data(idata)
   38923      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38924      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38925      382657 :          pack_tmp = ISHFT(pack_tmp, -9)
   38926      382657 :          idata = idata + 1
   38927      382657 :          data_tmp = full_data(idata)
   38928      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38929      382657 :          data_tmp = IAND(data_tmp, mask_left(9))
   38930      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38931      382657 :          ipack = ipack + 1
   38932      382657 :          packed_data(ipack) = pack_tmp
   38933      382657 :          data_tmp = full_data(idata)
   38934      382657 :          pack_tmp = ISHFT(data_tmp, 24)
   38935      382657 :          pack_tmp = ISHFT(pack_tmp, -24)
   38936      382657 :          idata = idata + 1
   38937      382657 :          data_tmp = full_data(idata)
   38938      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38939      382657 :          data_tmp = IAND(data_tmp, mask_left(24))
   38940      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38941      382657 :          ipack = ipack + 1
   38942      382657 :          packed_data(ipack) = pack_tmp
   38943      382657 :          data_tmp = full_data(idata)
   38944      382657 :          pack_tmp = ISHFT(data_tmp, 39)
   38945      382657 :          pack_tmp = ISHFT(pack_tmp, -39)
   38946      382657 :          idata = idata + 1
   38947      382657 :          data_tmp = full_data(idata)
   38948      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38949      382657 :          data_tmp = IAND(data_tmp, mask_left(39))
   38950      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38951      382657 :          ipack = ipack + 1
   38952      382657 :          packed_data(ipack) = pack_tmp
   38953      382657 :          data_tmp = full_data(idata)
   38954      382657 :          pack_tmp = ISHFT(data_tmp, 54)
   38955      382657 :          pack_tmp = ISHFT(pack_tmp, -49)
   38956      382657 :          idata = idata + 1
   38957      382657 :          data_tmp = full_data(idata)
   38958      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38959      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38960      382657 :          pack_tmp = ISHFT(pack_tmp, -5)
   38961      382657 :          idata = idata + 1
   38962      382657 :          data_tmp = full_data(idata)
   38963      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38964      382657 :          data_tmp = IAND(data_tmp, mask_left(5))
   38965      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38966      382657 :          ipack = ipack + 1
   38967      382657 :          packed_data(ipack) = pack_tmp
   38968      382657 :          data_tmp = full_data(idata)
   38969      382657 :          pack_tmp = ISHFT(data_tmp, 20)
   38970      382657 :          pack_tmp = ISHFT(pack_tmp, -20)
   38971      382657 :          idata = idata + 1
   38972      382657 :          data_tmp = full_data(idata)
   38973      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38974      382657 :          data_tmp = IAND(data_tmp, mask_left(20))
   38975      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38976      382657 :          ipack = ipack + 1
   38977      382657 :          packed_data(ipack) = pack_tmp
   38978      382657 :          data_tmp = full_data(idata)
   38979      382657 :          pack_tmp = ISHFT(data_tmp, 35)
   38980      382657 :          pack_tmp = ISHFT(pack_tmp, -35)
   38981      382657 :          idata = idata + 1
   38982      382657 :          data_tmp = full_data(idata)
   38983      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38984      382657 :          data_tmp = IAND(data_tmp, mask_left(35))
   38985      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38986      382657 :          ipack = ipack + 1
   38987      382657 :          packed_data(ipack) = pack_tmp
   38988      382657 :          data_tmp = full_data(idata)
   38989      382657 :          pack_tmp = ISHFT(data_tmp, 50)
   38990      382657 :          pack_tmp = ISHFT(pack_tmp, -49)
   38991      382657 :          idata = idata + 1
   38992      382657 :          data_tmp = full_data(idata)
   38993      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38994      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38995      382657 :          pack_tmp = ISHFT(pack_tmp, -1)
   38996      382657 :          idata = idata + 1
   38997      382657 :          data_tmp = full_data(idata)
   38998      382657 :          data_tmp = ISHFT(data_tmp, 15)
   38999      382657 :          data_tmp = IAND(data_tmp, mask_left(1))
   39000      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39001      382657 :          ipack = ipack + 1
   39002      382657 :          packed_data(ipack) = pack_tmp
   39003      382657 :          data_tmp = full_data(idata)
   39004      382657 :          pack_tmp = ISHFT(data_tmp, 16)
   39005      382657 :          pack_tmp = ISHFT(pack_tmp, -16)
   39006      382657 :          idata = idata + 1
   39007      382657 :          data_tmp = full_data(idata)
   39008      382657 :          data_tmp = ISHFT(data_tmp, 15)
   39009      382657 :          data_tmp = IAND(data_tmp, mask_left(16))
   39010      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39011      382657 :          ipack = ipack + 1
   39012      382657 :          packed_data(ipack) = pack_tmp
   39013      382657 :          data_tmp = full_data(idata)
   39014      382657 :          pack_tmp = ISHFT(data_tmp, 31)
   39015      382657 :          pack_tmp = ISHFT(pack_tmp, -31)
   39016      382657 :          idata = idata + 1
   39017      382657 :          data_tmp = full_data(idata)
   39018      382657 :          data_tmp = ISHFT(data_tmp, 15)
   39019      382657 :          data_tmp = IAND(data_tmp, mask_left(31))
   39020      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39021      382657 :          ipack = ipack + 1
   39022      382657 :          packed_data(ipack) = pack_tmp
   39023      382657 :          data_tmp = full_data(idata)
   39024      382657 :          pack_tmp = ISHFT(data_tmp, 46)
   39025      382657 :          pack_tmp = ISHFT(pack_tmp, -46)
   39026      382657 :          idata = idata + 1
   39027      382657 :          data_tmp = full_data(idata)
   39028      382657 :          data_tmp = ISHFT(data_tmp, 15)
   39029      382657 :          data_tmp = IAND(data_tmp, mask_left(46))
   39030      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39031      382657 :          ipack = ipack + 1
   39032      382657 :          packed_data(ipack) = pack_tmp
   39033      382657 :          data_tmp = full_data(idata)
   39034      382657 :          pack_tmp = ISHFT(data_tmp, 61)
   39035      382657 :          pack_tmp = ISHFT(pack_tmp, -49)
   39036      382657 :          idata = idata + 1
   39037      382657 :          data_tmp = full_data(idata)
   39038      382657 :          data_tmp = ISHFT(data_tmp, 15)
   39039      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39040      382657 :          pack_tmp = ISHFT(pack_tmp, -12)
   39041      382657 :          idata = idata + 1
   39042      382657 :          data_tmp = full_data(idata)
   39043      382657 :          data_tmp = ISHFT(data_tmp, 15)
   39044      382657 :          data_tmp = IAND(data_tmp, mask_left(12))
   39045      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39046      382657 :          ipack = ipack + 1
   39047      382657 :          packed_data(ipack) = pack_tmp
   39048      382657 :          data_tmp = full_data(idata)
   39049      382657 :          pack_tmp = ISHFT(data_tmp, 27)
   39050      382657 :          pack_tmp = ISHFT(pack_tmp, -27)
   39051      382657 :          idata = idata + 1
   39052      382657 :          data_tmp = full_data(idata)
   39053      382657 :          data_tmp = ISHFT(data_tmp, 15)
   39054      382657 :          data_tmp = IAND(data_tmp, mask_left(27))
   39055      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39056      382657 :          ipack = ipack + 1
   39057      382657 :          packed_data(ipack) = pack_tmp
   39058      382657 :          data_tmp = full_data(idata)
   39059      382657 :          pack_tmp = ISHFT(data_tmp, 42)
   39060      382657 :          pack_tmp = ISHFT(pack_tmp, -42)
   39061      382657 :          idata = idata + 1
   39062      382657 :          data_tmp = full_data(idata)
   39063      382657 :          data_tmp = ISHFT(data_tmp, 15)
   39064      382657 :          data_tmp = IAND(data_tmp, mask_left(42))
   39065      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39066      382657 :          ipack = ipack + 1
   39067      382657 :          packed_data(ipack) = pack_tmp
   39068      382657 :          data_tmp = full_data(idata)
   39069      382657 :          pack_tmp = ISHFT(data_tmp, 57)
   39070      382657 :          pack_tmp = ISHFT(pack_tmp, -49)
   39071      382657 :          idata = idata + 1
   39072      382657 :          data_tmp = full_data(idata)
   39073      382657 :          data_tmp = ISHFT(data_tmp, 15)
   39074      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39075      382657 :          pack_tmp = ISHFT(pack_tmp, -8)
   39076      382657 :          idata = idata + 1
   39077      382657 :          data_tmp = full_data(idata)
   39078      382657 :          data_tmp = ISHFT(data_tmp, 15)
   39079      382657 :          data_tmp = IAND(data_tmp, mask_left(8))
   39080      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39081      382657 :          ipack = ipack + 1
   39082      382657 :          packed_data(ipack) = pack_tmp
   39083      382657 :          data_tmp = full_data(idata)
   39084      382657 :          pack_tmp = ISHFT(data_tmp, 23)
   39085      382657 :          pack_tmp = ISHFT(pack_tmp, -23)
   39086      382657 :          idata = idata + 1
   39087      382657 :          data_tmp = full_data(idata)
   39088      382657 :          data_tmp = ISHFT(data_tmp, 15)
   39089      382657 :          data_tmp = IAND(data_tmp, mask_left(23))
   39090      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39091      382657 :          ipack = ipack + 1
   39092      382657 :          packed_data(ipack) = pack_tmp
   39093      382657 :          data_tmp = full_data(idata)
   39094      382657 :          pack_tmp = ISHFT(data_tmp, 38)
   39095      382657 :          pack_tmp = ISHFT(pack_tmp, -38)
   39096      382657 :          idata = idata + 1
   39097      382657 :          data_tmp = full_data(idata)
   39098      382657 :          data_tmp = ISHFT(data_tmp, 15)
   39099      382657 :          data_tmp = IAND(data_tmp, mask_left(38))
   39100      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39101      382657 :          ipack = ipack + 1
   39102      382657 :          packed_data(ipack) = pack_tmp
   39103      382657 :          data_tmp = full_data(idata)
   39104      382657 :          pack_tmp = ISHFT(data_tmp, 53)
   39105      382657 :          pack_tmp = ISHFT(pack_tmp, -49)
   39106      382657 :          idata = idata + 1
   39107      382657 :          data_tmp = full_data(idata)
   39108      382657 :          data_tmp = ISHFT(data_tmp, 15)
   39109      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39110      382657 :          pack_tmp = ISHFT(pack_tmp, -4)
   39111      382657 :          idata = idata + 1
   39112      382657 :          data_tmp = full_data(idata)
   39113      382657 :          data_tmp = ISHFT(data_tmp, 15)
   39114      382657 :          data_tmp = IAND(data_tmp, mask_left(4))
   39115      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39116      382657 :          ipack = ipack + 1
   39117      382657 :          packed_data(ipack) = pack_tmp
   39118      382657 :          data_tmp = full_data(idata)
   39119      382657 :          pack_tmp = ISHFT(data_tmp, 19)
   39120      382657 :          pack_tmp = ISHFT(pack_tmp, -19)
   39121      382657 :          idata = idata + 1
   39122      382657 :          data_tmp = full_data(idata)
   39123      382657 :          data_tmp = ISHFT(data_tmp, 15)
   39124      382657 :          data_tmp = IAND(data_tmp, mask_left(19))
   39125      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39126      382657 :          ipack = ipack + 1
   39127      382657 :          packed_data(ipack) = pack_tmp
   39128      382657 :          data_tmp = full_data(idata)
   39129      382657 :          pack_tmp = ISHFT(data_tmp, 34)
   39130      382657 :          pack_tmp = ISHFT(pack_tmp, -34)
   39131      382657 :          idata = idata + 1
   39132      382657 :          data_tmp = full_data(idata)
   39133      382657 :          data_tmp = ISHFT(data_tmp, 15)
   39134      382657 :          data_tmp = IAND(data_tmp, mask_left(34))
   39135      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39136      382657 :          ipack = ipack + 1
   39137      382657 :          packed_data(ipack) = pack_tmp
   39138      382657 :          data_tmp = full_data(idata)
   39139      382657 :          pack_tmp = ISHFT(data_tmp, 49)
   39140      382657 :          pack_tmp = ISHFT(pack_tmp, -49)
   39141      382657 :          idata = idata + 1
   39142      382657 :          data_tmp = full_data(idata)
   39143      382657 :          data_tmp = ISHFT(data_tmp, 15)
   39144      382657 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39145             :          pack_tmp = ISHFT(pack_tmp, 0)
   39146      382657 :          pack_tmp = ISHFT(pack_tmp, 0)
   39147      382657 :          ipack = ipack + 1
   39148      382661 :          packed_data(ipack) = pack_tmp
   39149             :       END DO
   39150       24884 :       IF (Ndata_rep < Ndata) THEN
   39151        1822 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   39152             :       END IF
   39153       24884 :    END SUBROUTINE ints2bits_49
   39154             : 
   39155             : ! **************************************************************************************************
   39156             : !> \brief ...
   39157             : !> \param Ndata ...
   39158             : !> \param packed_data ...
   39159             : !> \param full_data ...
   39160             : ! **************************************************************************************************
   39161      100045 :    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      100045 :       ipack = 0
   39172      100045 :       idata = 0
   39173      100045 :       pack_tmp = 0
   39174      100045 :       Ndata_rep = (Ndata/64)*64
   39175      100045 :       DO kdata = 1, Ndata_rep, 64
   39176     1548377 :          idata = idata + 1
   39177     1548377 :          data_tmp = ISHFT(pack_tmp, 49)
   39178     1548377 :          ipack = ipack + 1
   39179     1548377 :          pack_tmp = packed_data(ipack)
   39180     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   39181     1548377 :          pack_tmp = ISHFT(pack_tmp, -49)
   39182     1548377 :          idata = idata + 1
   39183     1548377 :          data_tmp = ISHFT(pack_tmp, 34)
   39184     1548377 :          ipack = ipack + 1
   39185     1548377 :          pack_tmp = packed_data(ipack)
   39186     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   39187     1548377 :          pack_tmp = ISHFT(pack_tmp, -34)
   39188     1548377 :          idata = idata + 1
   39189     1548377 :          data_tmp = ISHFT(pack_tmp, 19)
   39190     1548377 :          ipack = ipack + 1
   39191     1548377 :          pack_tmp = packed_data(ipack)
   39192     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   39193     1548377 :          pack_tmp = ISHFT(pack_tmp, -19)
   39194     1548377 :          idata = idata + 1
   39195     1548377 :          data_tmp = ISHFT(pack_tmp, 4)
   39196     1548377 :          ipack = ipack + 1
   39197     1548377 :          pack_tmp = packed_data(ipack)
   39198     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   39199     1548377 :          pack_tmp = ISHFT(pack_tmp, -4)
   39200     1548377 :          idata = idata + 1
   39201     1548377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39202     1548377 :          full_data(idata) = data_tmp
   39203     1548377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39204     1548377 :          idata = idata + 1
   39205     1548377 :          data_tmp = ISHFT(pack_tmp, 38)
   39206     1548377 :          ipack = ipack + 1
   39207     1548377 :          pack_tmp = packed_data(ipack)
   39208     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   39209     1548377 :          pack_tmp = ISHFT(pack_tmp, -38)
   39210     1548377 :          idata = idata + 1
   39211     1548377 :          data_tmp = ISHFT(pack_tmp, 23)
   39212     1548377 :          ipack = ipack + 1
   39213     1548377 :          pack_tmp = packed_data(ipack)
   39214     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   39215     1548377 :          pack_tmp = ISHFT(pack_tmp, -23)
   39216     1548377 :          idata = idata + 1
   39217     1548377 :          data_tmp = ISHFT(pack_tmp, 8)
   39218     1548377 :          ipack = ipack + 1
   39219     1548377 :          pack_tmp = packed_data(ipack)
   39220     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   39221     1548377 :          pack_tmp = ISHFT(pack_tmp, -8)
   39222     1548377 :          idata = idata + 1
   39223     1548377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39224     1548377 :          full_data(idata) = data_tmp
   39225     1548377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39226     1548377 :          idata = idata + 1
   39227     1548377 :          data_tmp = ISHFT(pack_tmp, 42)
   39228     1548377 :          ipack = ipack + 1
   39229     1548377 :          pack_tmp = packed_data(ipack)
   39230     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   39231     1548377 :          pack_tmp = ISHFT(pack_tmp, -42)
   39232     1548377 :          idata = idata + 1
   39233     1548377 :          data_tmp = ISHFT(pack_tmp, 27)
   39234     1548377 :          ipack = ipack + 1
   39235     1548377 :          pack_tmp = packed_data(ipack)
   39236     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   39237     1548377 :          pack_tmp = ISHFT(pack_tmp, -27)
   39238     1548377 :          idata = idata + 1
   39239     1548377 :          data_tmp = ISHFT(pack_tmp, 12)
   39240     1548377 :          ipack = ipack + 1
   39241     1548377 :          pack_tmp = packed_data(ipack)
   39242     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   39243     1548377 :          pack_tmp = ISHFT(pack_tmp, -12)
   39244     1548377 :          idata = idata + 1
   39245     1548377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39246     1548377 :          full_data(idata) = data_tmp
   39247     1548377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39248     1548377 :          idata = idata + 1
   39249     1548377 :          data_tmp = ISHFT(pack_tmp, 46)
   39250     1548377 :          ipack = ipack + 1
   39251     1548377 :          pack_tmp = packed_data(ipack)
   39252     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   39253     1548377 :          pack_tmp = ISHFT(pack_tmp, -46)
   39254     1548377 :          idata = idata + 1
   39255     1548377 :          data_tmp = ISHFT(pack_tmp, 31)
   39256     1548377 :          ipack = ipack + 1
   39257     1548377 :          pack_tmp = packed_data(ipack)
   39258     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   39259     1548377 :          pack_tmp = ISHFT(pack_tmp, -31)
   39260     1548377 :          idata = idata + 1
   39261     1548377 :          data_tmp = ISHFT(pack_tmp, 16)
   39262     1548377 :          ipack = ipack + 1
   39263     1548377 :          pack_tmp = packed_data(ipack)
   39264     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   39265     1548377 :          pack_tmp = ISHFT(pack_tmp, -16)
   39266     1548377 :          idata = idata + 1
   39267     1548377 :          data_tmp = ISHFT(pack_tmp, 1)
   39268     1548377 :          ipack = ipack + 1
   39269     1548377 :          pack_tmp = packed_data(ipack)
   39270     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   39271     1548377 :          pack_tmp = ISHFT(pack_tmp, -1)
   39272     1548377 :          idata = idata + 1
   39273     1548377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39274     1548377 :          full_data(idata) = data_tmp
   39275     1548377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39276     1548377 :          idata = idata + 1
   39277     1548377 :          data_tmp = ISHFT(pack_tmp, 35)
   39278     1548377 :          ipack = ipack + 1
   39279     1548377 :          pack_tmp = packed_data(ipack)
   39280     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   39281     1548377 :          pack_tmp = ISHFT(pack_tmp, -35)
   39282     1548377 :          idata = idata + 1
   39283     1548377 :          data_tmp = ISHFT(pack_tmp, 20)
   39284     1548377 :          ipack = ipack + 1
   39285     1548377 :          pack_tmp = packed_data(ipack)
   39286     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   39287     1548377 :          pack_tmp = ISHFT(pack_tmp, -20)
   39288     1548377 :          idata = idata + 1
   39289     1548377 :          data_tmp = ISHFT(pack_tmp, 5)
   39290     1548377 :          ipack = ipack + 1
   39291     1548377 :          pack_tmp = packed_data(ipack)
   39292     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   39293     1548377 :          pack_tmp = ISHFT(pack_tmp, -5)
   39294     1548377 :          idata = idata + 1
   39295     1548377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39296     1548377 :          full_data(idata) = data_tmp
   39297     1548377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39298     1548377 :          idata = idata + 1
   39299     1548377 :          data_tmp = ISHFT(pack_tmp, 39)
   39300     1548377 :          ipack = ipack + 1
   39301     1548377 :          pack_tmp = packed_data(ipack)
   39302     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   39303     1548377 :          pack_tmp = ISHFT(pack_tmp, -39)
   39304     1548377 :          idata = idata + 1
   39305     1548377 :          data_tmp = ISHFT(pack_tmp, 24)
   39306     1548377 :          ipack = ipack + 1
   39307     1548377 :          pack_tmp = packed_data(ipack)
   39308     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   39309     1548377 :          pack_tmp = ISHFT(pack_tmp, -24)
   39310     1548377 :          idata = idata + 1
   39311     1548377 :          data_tmp = ISHFT(pack_tmp, 9)
   39312     1548377 :          ipack = ipack + 1
   39313     1548377 :          pack_tmp = packed_data(ipack)
   39314     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   39315     1548377 :          pack_tmp = ISHFT(pack_tmp, -9)
   39316     1548377 :          idata = idata + 1
   39317     1548377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39318     1548377 :          full_data(idata) = data_tmp
   39319     1548377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39320     1548377 :          idata = idata + 1
   39321     1548377 :          data_tmp = ISHFT(pack_tmp, 43)
   39322     1548377 :          ipack = ipack + 1
   39323     1548377 :          pack_tmp = packed_data(ipack)
   39324     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   39325     1548377 :          pack_tmp = ISHFT(pack_tmp, -43)
   39326     1548377 :          idata = idata + 1
   39327     1548377 :          data_tmp = ISHFT(pack_tmp, 28)
   39328     1548377 :          ipack = ipack + 1
   39329     1548377 :          pack_tmp = packed_data(ipack)
   39330     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   39331     1548377 :          pack_tmp = ISHFT(pack_tmp, -28)
   39332     1548377 :          idata = idata + 1
   39333     1548377 :          data_tmp = ISHFT(pack_tmp, 13)
   39334     1548377 :          ipack = ipack + 1
   39335     1548377 :          pack_tmp = packed_data(ipack)
   39336     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   39337     1548377 :          pack_tmp = ISHFT(pack_tmp, -13)
   39338     1548377 :          idata = idata + 1
   39339     1548377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39340     1548377 :          full_data(idata) = data_tmp
   39341     1548377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39342     1548377 :          idata = idata + 1
   39343     1548377 :          data_tmp = ISHFT(pack_tmp, 47)
   39344     1548377 :          ipack = ipack + 1
   39345     1548377 :          pack_tmp = packed_data(ipack)
   39346     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   39347     1548377 :          pack_tmp = ISHFT(pack_tmp, -47)
   39348     1548377 :          idata = idata + 1
   39349     1548377 :          data_tmp = ISHFT(pack_tmp, 32)
   39350     1548377 :          ipack = ipack + 1
   39351     1548377 :          pack_tmp = packed_data(ipack)
   39352     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   39353     1548377 :          pack_tmp = ISHFT(pack_tmp, -32)
   39354     1548377 :          idata = idata + 1
   39355     1548377 :          data_tmp = ISHFT(pack_tmp, 17)
   39356     1548377 :          ipack = ipack + 1
   39357     1548377 :          pack_tmp = packed_data(ipack)
   39358     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   39359     1548377 :          pack_tmp = ISHFT(pack_tmp, -17)
   39360     1548377 :          idata = idata + 1
   39361     1548377 :          data_tmp = ISHFT(pack_tmp, 2)
   39362     1548377 :          ipack = ipack + 1
   39363     1548377 :          pack_tmp = packed_data(ipack)
   39364     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   39365     1548377 :          pack_tmp = ISHFT(pack_tmp, -2)
   39366     1548377 :          idata = idata + 1
   39367     1548377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39368     1548377 :          full_data(idata) = data_tmp
   39369     1548377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39370     1548377 :          idata = idata + 1
   39371     1548377 :          data_tmp = ISHFT(pack_tmp, 36)
   39372     1548377 :          ipack = ipack + 1
   39373     1548377 :          pack_tmp = packed_data(ipack)
   39374     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   39375     1548377 :          pack_tmp = ISHFT(pack_tmp, -36)
   39376     1548377 :          idata = idata + 1
   39377     1548377 :          data_tmp = ISHFT(pack_tmp, 21)
   39378     1548377 :          ipack = ipack + 1
   39379     1548377 :          pack_tmp = packed_data(ipack)
   39380     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   39381     1548377 :          pack_tmp = ISHFT(pack_tmp, -21)
   39382     1548377 :          idata = idata + 1
   39383     1548377 :          data_tmp = ISHFT(pack_tmp, 6)
   39384     1548377 :          ipack = ipack + 1
   39385     1548377 :          pack_tmp = packed_data(ipack)
   39386     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   39387     1548377 :          pack_tmp = ISHFT(pack_tmp, -6)
   39388     1548377 :          idata = idata + 1
   39389     1548377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39390     1548377 :          full_data(idata) = data_tmp
   39391     1548377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39392     1548377 :          idata = idata + 1
   39393     1548377 :          data_tmp = ISHFT(pack_tmp, 40)
   39394     1548377 :          ipack = ipack + 1
   39395     1548377 :          pack_tmp = packed_data(ipack)
   39396     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   39397     1548377 :          pack_tmp = ISHFT(pack_tmp, -40)
   39398     1548377 :          idata = idata + 1
   39399     1548377 :          data_tmp = ISHFT(pack_tmp, 25)
   39400     1548377 :          ipack = ipack + 1
   39401     1548377 :          pack_tmp = packed_data(ipack)
   39402     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   39403     1548377 :          pack_tmp = ISHFT(pack_tmp, -25)
   39404     1548377 :          idata = idata + 1
   39405     1548377 :          data_tmp = ISHFT(pack_tmp, 10)
   39406     1548377 :          ipack = ipack + 1
   39407     1548377 :          pack_tmp = packed_data(ipack)
   39408     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   39409     1548377 :          pack_tmp = ISHFT(pack_tmp, -10)
   39410     1548377 :          idata = idata + 1
   39411     1548377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39412     1548377 :          full_data(idata) = data_tmp
   39413     1548377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39414     1548377 :          idata = idata + 1
   39415     1548377 :          data_tmp = ISHFT(pack_tmp, 44)
   39416     1548377 :          ipack = ipack + 1
   39417     1548377 :          pack_tmp = packed_data(ipack)
   39418     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   39419     1548377 :          pack_tmp = ISHFT(pack_tmp, -44)
   39420     1548377 :          idata = idata + 1
   39421     1548377 :          data_tmp = ISHFT(pack_tmp, 29)
   39422     1548377 :          ipack = ipack + 1
   39423     1548377 :          pack_tmp = packed_data(ipack)
   39424     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   39425     1548377 :          pack_tmp = ISHFT(pack_tmp, -29)
   39426     1548377 :          idata = idata + 1
   39427     1548377 :          data_tmp = ISHFT(pack_tmp, 14)
   39428     1548377 :          ipack = ipack + 1
   39429     1548377 :          pack_tmp = packed_data(ipack)
   39430     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   39431     1548377 :          pack_tmp = ISHFT(pack_tmp, -14)
   39432     1548377 :          idata = idata + 1
   39433     1548377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39434     1548377 :          full_data(idata) = data_tmp
   39435     1548377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39436     1548377 :          idata = idata + 1
   39437     1548377 :          data_tmp = ISHFT(pack_tmp, 48)
   39438     1548377 :          ipack = ipack + 1
   39439     1548377 :          pack_tmp = packed_data(ipack)
   39440     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   39441     1548377 :          pack_tmp = ISHFT(pack_tmp, -48)
   39442     1548377 :          idata = idata + 1
   39443     1548377 :          data_tmp = ISHFT(pack_tmp, 33)
   39444     1548377 :          ipack = ipack + 1
   39445     1548377 :          pack_tmp = packed_data(ipack)
   39446     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   39447     1548377 :          pack_tmp = ISHFT(pack_tmp, -33)
   39448     1548377 :          idata = idata + 1
   39449     1548377 :          data_tmp = ISHFT(pack_tmp, 18)
   39450     1548377 :          ipack = ipack + 1
   39451     1548377 :          pack_tmp = packed_data(ipack)
   39452     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   39453     1548377 :          pack_tmp = ISHFT(pack_tmp, -18)
   39454     1548377 :          idata = idata + 1
   39455     1548377 :          data_tmp = ISHFT(pack_tmp, 3)
   39456     1548377 :          ipack = ipack + 1
   39457     1548377 :          pack_tmp = packed_data(ipack)
   39458     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   39459     1548377 :          pack_tmp = ISHFT(pack_tmp, -3)
   39460     1548377 :          idata = idata + 1
   39461     1548377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39462     1548377 :          full_data(idata) = data_tmp
   39463     1548377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39464     1548377 :          idata = idata + 1
   39465     1548377 :          data_tmp = ISHFT(pack_tmp, 37)
   39466     1548377 :          ipack = ipack + 1
   39467     1548377 :          pack_tmp = packed_data(ipack)
   39468     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   39469     1548377 :          pack_tmp = ISHFT(pack_tmp, -37)
   39470     1548377 :          idata = idata + 1
   39471     1548377 :          data_tmp = ISHFT(pack_tmp, 22)
   39472     1548377 :          ipack = ipack + 1
   39473     1548377 :          pack_tmp = packed_data(ipack)
   39474     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   39475     1548377 :          pack_tmp = ISHFT(pack_tmp, -22)
   39476     1548377 :          idata = idata + 1
   39477     1548377 :          data_tmp = ISHFT(pack_tmp, 7)
   39478     1548377 :          ipack = ipack + 1
   39479     1548377 :          pack_tmp = packed_data(ipack)
   39480     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   39481     1548377 :          pack_tmp = ISHFT(pack_tmp, -7)
   39482     1548377 :          idata = idata + 1
   39483     1548377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39484     1548377 :          full_data(idata) = data_tmp
   39485     1548377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39486     1548377 :          idata = idata + 1
   39487     1548377 :          data_tmp = ISHFT(pack_tmp, 41)
   39488     1548377 :          ipack = ipack + 1
   39489     1548377 :          pack_tmp = packed_data(ipack)
   39490     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   39491     1548377 :          pack_tmp = ISHFT(pack_tmp, -41)
   39492     1548377 :          idata = idata + 1
   39493     1548377 :          data_tmp = ISHFT(pack_tmp, 26)
   39494     1548377 :          ipack = ipack + 1
   39495     1548377 :          pack_tmp = packed_data(ipack)
   39496     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   39497     1548377 :          pack_tmp = ISHFT(pack_tmp, -26)
   39498     1548377 :          idata = idata + 1
   39499     1548377 :          data_tmp = ISHFT(pack_tmp, 11)
   39500     1548377 :          ipack = ipack + 1
   39501     1548377 :          pack_tmp = packed_data(ipack)
   39502     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   39503     1548377 :          pack_tmp = ISHFT(pack_tmp, -11)
   39504     1548377 :          idata = idata + 1
   39505     1548377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39506     1548377 :          full_data(idata) = data_tmp
   39507     1548377 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39508     1548377 :          idata = idata + 1
   39509     1548377 :          data_tmp = ISHFT(pack_tmp, 45)
   39510     1548377 :          ipack = ipack + 1
   39511     1548377 :          pack_tmp = packed_data(ipack)
   39512     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   39513     1548377 :          pack_tmp = ISHFT(pack_tmp, -45)
   39514     1548377 :          idata = idata + 1
   39515     1548377 :          data_tmp = ISHFT(pack_tmp, 30)
   39516     1548377 :          ipack = ipack + 1
   39517     1548377 :          pack_tmp = packed_data(ipack)
   39518     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   39519     1548377 :          pack_tmp = ISHFT(pack_tmp, -30)
   39520     1548377 :          idata = idata + 1
   39521     1548377 :          data_tmp = ISHFT(pack_tmp, 15)
   39522     1548377 :          ipack = ipack + 1
   39523     1548377 :          pack_tmp = packed_data(ipack)
   39524     1548377 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   39525     1548377 :          pack_tmp = ISHFT(pack_tmp, -15)
   39526     1548377 :          idata = idata + 1
   39527     1548377 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39528     1548377 :          full_data(idata) = data_tmp
   39529     1548393 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39530             :       END DO
   39531      100045 :       IF (Ndata_rep < Ndata) THEN
   39532        6158 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   39533             :       END IF
   39534      100045 :    END SUBROUTINE bits2ints_49
   39535             : 
   39536             : ! **************************************************************************************************
   39537             : !> \brief ...
   39538             : !> \param Ndata ...
   39539             : !> \param packed_data ...
   39540             : !> \param full_data ...
   39541             : ! **************************************************************************************************
   39542       24462 :    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       24462 :       idata = 0
   39553       24462 :       ipack = 0
   39554       24462 :       Ndata_rep = (Ndata/64)*64
   39555       24462 :       DO kdata = 1, Ndata_rep, 64
   39556      379203 :          pack_tmp = 0
   39557      379203 :          idata = idata + 1
   39558      379203 :          data_tmp = full_data(idata)
   39559      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39560      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39561      379203 :          pack_tmp = ISHFT(pack_tmp, -14)
   39562      379203 :          idata = idata + 1
   39563      379203 :          data_tmp = full_data(idata)
   39564      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39565      379203 :          data_tmp = IAND(data_tmp, mask_left(14))
   39566      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39567      379203 :          ipack = ipack + 1
   39568      379203 :          packed_data(ipack) = pack_tmp
   39569      379203 :          data_tmp = full_data(idata)
   39570      379203 :          pack_tmp = ISHFT(data_tmp, 28)
   39571      379203 :          pack_tmp = ISHFT(pack_tmp, -28)
   39572      379203 :          idata = idata + 1
   39573      379203 :          data_tmp = full_data(idata)
   39574      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39575      379203 :          data_tmp = IAND(data_tmp, mask_left(28))
   39576      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39577      379203 :          ipack = ipack + 1
   39578      379203 :          packed_data(ipack) = pack_tmp
   39579      379203 :          data_tmp = full_data(idata)
   39580      379203 :          pack_tmp = ISHFT(data_tmp, 42)
   39581      379203 :          pack_tmp = ISHFT(pack_tmp, -42)
   39582      379203 :          idata = idata + 1
   39583      379203 :          data_tmp = full_data(idata)
   39584      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39585      379203 :          data_tmp = IAND(data_tmp, mask_left(42))
   39586      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39587      379203 :          ipack = ipack + 1
   39588      379203 :          packed_data(ipack) = pack_tmp
   39589      379203 :          data_tmp = full_data(idata)
   39590      379203 :          pack_tmp = ISHFT(data_tmp, 56)
   39591      379203 :          pack_tmp = ISHFT(pack_tmp, -50)
   39592      379203 :          idata = idata + 1
   39593      379203 :          data_tmp = full_data(idata)
   39594      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39595      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39596      379203 :          pack_tmp = ISHFT(pack_tmp, -6)
   39597      379203 :          idata = idata + 1
   39598      379203 :          data_tmp = full_data(idata)
   39599      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39600      379203 :          data_tmp = IAND(data_tmp, mask_left(6))
   39601      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39602      379203 :          ipack = ipack + 1
   39603      379203 :          packed_data(ipack) = pack_tmp
   39604      379203 :          data_tmp = full_data(idata)
   39605      379203 :          pack_tmp = ISHFT(data_tmp, 20)
   39606      379203 :          pack_tmp = ISHFT(pack_tmp, -20)
   39607      379203 :          idata = idata + 1
   39608      379203 :          data_tmp = full_data(idata)
   39609      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39610      379203 :          data_tmp = IAND(data_tmp, mask_left(20))
   39611      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39612      379203 :          ipack = ipack + 1
   39613      379203 :          packed_data(ipack) = pack_tmp
   39614      379203 :          data_tmp = full_data(idata)
   39615      379203 :          pack_tmp = ISHFT(data_tmp, 34)
   39616      379203 :          pack_tmp = ISHFT(pack_tmp, -34)
   39617      379203 :          idata = idata + 1
   39618      379203 :          data_tmp = full_data(idata)
   39619      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39620      379203 :          data_tmp = IAND(data_tmp, mask_left(34))
   39621      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39622      379203 :          ipack = ipack + 1
   39623      379203 :          packed_data(ipack) = pack_tmp
   39624      379203 :          data_tmp = full_data(idata)
   39625      379203 :          pack_tmp = ISHFT(data_tmp, 48)
   39626      379203 :          pack_tmp = ISHFT(pack_tmp, -48)
   39627      379203 :          idata = idata + 1
   39628      379203 :          data_tmp = full_data(idata)
   39629      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39630      379203 :          data_tmp = IAND(data_tmp, mask_left(48))
   39631      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39632      379203 :          ipack = ipack + 1
   39633      379203 :          packed_data(ipack) = pack_tmp
   39634      379203 :          data_tmp = full_data(idata)
   39635      379203 :          pack_tmp = ISHFT(data_tmp, 62)
   39636      379203 :          pack_tmp = ISHFT(pack_tmp, -50)
   39637      379203 :          idata = idata + 1
   39638      379203 :          data_tmp = full_data(idata)
   39639      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39640      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39641      379203 :          pack_tmp = ISHFT(pack_tmp, -12)
   39642      379203 :          idata = idata + 1
   39643      379203 :          data_tmp = full_data(idata)
   39644      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39645      379203 :          data_tmp = IAND(data_tmp, mask_left(12))
   39646      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39647      379203 :          ipack = ipack + 1
   39648      379203 :          packed_data(ipack) = pack_tmp
   39649      379203 :          data_tmp = full_data(idata)
   39650      379203 :          pack_tmp = ISHFT(data_tmp, 26)
   39651      379203 :          pack_tmp = ISHFT(pack_tmp, -26)
   39652      379203 :          idata = idata + 1
   39653      379203 :          data_tmp = full_data(idata)
   39654      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39655      379203 :          data_tmp = IAND(data_tmp, mask_left(26))
   39656      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39657      379203 :          ipack = ipack + 1
   39658      379203 :          packed_data(ipack) = pack_tmp
   39659      379203 :          data_tmp = full_data(idata)
   39660      379203 :          pack_tmp = ISHFT(data_tmp, 40)
   39661      379203 :          pack_tmp = ISHFT(pack_tmp, -40)
   39662      379203 :          idata = idata + 1
   39663      379203 :          data_tmp = full_data(idata)
   39664      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39665      379203 :          data_tmp = IAND(data_tmp, mask_left(40))
   39666      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39667      379203 :          ipack = ipack + 1
   39668      379203 :          packed_data(ipack) = pack_tmp
   39669      379203 :          data_tmp = full_data(idata)
   39670      379203 :          pack_tmp = ISHFT(data_tmp, 54)
   39671      379203 :          pack_tmp = ISHFT(pack_tmp, -50)
   39672      379203 :          idata = idata + 1
   39673      379203 :          data_tmp = full_data(idata)
   39674      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39675      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39676      379203 :          pack_tmp = ISHFT(pack_tmp, -4)
   39677      379203 :          idata = idata + 1
   39678      379203 :          data_tmp = full_data(idata)
   39679      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39680      379203 :          data_tmp = IAND(data_tmp, mask_left(4))
   39681      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39682      379203 :          ipack = ipack + 1
   39683      379203 :          packed_data(ipack) = pack_tmp
   39684      379203 :          data_tmp = full_data(idata)
   39685      379203 :          pack_tmp = ISHFT(data_tmp, 18)
   39686      379203 :          pack_tmp = ISHFT(pack_tmp, -18)
   39687      379203 :          idata = idata + 1
   39688      379203 :          data_tmp = full_data(idata)
   39689      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39690      379203 :          data_tmp = IAND(data_tmp, mask_left(18))
   39691      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39692      379203 :          ipack = ipack + 1
   39693      379203 :          packed_data(ipack) = pack_tmp
   39694      379203 :          data_tmp = full_data(idata)
   39695      379203 :          pack_tmp = ISHFT(data_tmp, 32)
   39696      379203 :          pack_tmp = ISHFT(pack_tmp, -32)
   39697      379203 :          idata = idata + 1
   39698      379203 :          data_tmp = full_data(idata)
   39699      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39700      379203 :          data_tmp = IAND(data_tmp, mask_left(32))
   39701      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39702      379203 :          ipack = ipack + 1
   39703      379203 :          packed_data(ipack) = pack_tmp
   39704      379203 :          data_tmp = full_data(idata)
   39705      379203 :          pack_tmp = ISHFT(data_tmp, 46)
   39706      379203 :          pack_tmp = ISHFT(pack_tmp, -46)
   39707      379203 :          idata = idata + 1
   39708      379203 :          data_tmp = full_data(idata)
   39709      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39710      379203 :          data_tmp = IAND(data_tmp, mask_left(46))
   39711      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39712      379203 :          ipack = ipack + 1
   39713      379203 :          packed_data(ipack) = pack_tmp
   39714      379203 :          data_tmp = full_data(idata)
   39715      379203 :          pack_tmp = ISHFT(data_tmp, 60)
   39716      379203 :          pack_tmp = ISHFT(pack_tmp, -50)
   39717      379203 :          idata = idata + 1
   39718      379203 :          data_tmp = full_data(idata)
   39719      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39720      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39721      379203 :          pack_tmp = ISHFT(pack_tmp, -10)
   39722      379203 :          idata = idata + 1
   39723      379203 :          data_tmp = full_data(idata)
   39724      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39725      379203 :          data_tmp = IAND(data_tmp, mask_left(10))
   39726      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39727      379203 :          ipack = ipack + 1
   39728      379203 :          packed_data(ipack) = pack_tmp
   39729      379203 :          data_tmp = full_data(idata)
   39730      379203 :          pack_tmp = ISHFT(data_tmp, 24)
   39731      379203 :          pack_tmp = ISHFT(pack_tmp, -24)
   39732      379203 :          idata = idata + 1
   39733      379203 :          data_tmp = full_data(idata)
   39734      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39735      379203 :          data_tmp = IAND(data_tmp, mask_left(24))
   39736      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39737      379203 :          ipack = ipack + 1
   39738      379203 :          packed_data(ipack) = pack_tmp
   39739      379203 :          data_tmp = full_data(idata)
   39740      379203 :          pack_tmp = ISHFT(data_tmp, 38)
   39741      379203 :          pack_tmp = ISHFT(pack_tmp, -38)
   39742      379203 :          idata = idata + 1
   39743      379203 :          data_tmp = full_data(idata)
   39744      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39745      379203 :          data_tmp = IAND(data_tmp, mask_left(38))
   39746      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39747      379203 :          ipack = ipack + 1
   39748      379203 :          packed_data(ipack) = pack_tmp
   39749      379203 :          data_tmp = full_data(idata)
   39750      379203 :          pack_tmp = ISHFT(data_tmp, 52)
   39751      379203 :          pack_tmp = ISHFT(pack_tmp, -50)
   39752      379203 :          idata = idata + 1
   39753      379203 :          data_tmp = full_data(idata)
   39754      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39755      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39756      379203 :          pack_tmp = ISHFT(pack_tmp, -2)
   39757      379203 :          idata = idata + 1
   39758      379203 :          data_tmp = full_data(idata)
   39759      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39760      379203 :          data_tmp = IAND(data_tmp, mask_left(2))
   39761      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39762      379203 :          ipack = ipack + 1
   39763      379203 :          packed_data(ipack) = pack_tmp
   39764      379203 :          data_tmp = full_data(idata)
   39765      379203 :          pack_tmp = ISHFT(data_tmp, 16)
   39766      379203 :          pack_tmp = ISHFT(pack_tmp, -16)
   39767      379203 :          idata = idata + 1
   39768      379203 :          data_tmp = full_data(idata)
   39769      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39770      379203 :          data_tmp = IAND(data_tmp, mask_left(16))
   39771      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39772      379203 :          ipack = ipack + 1
   39773      379203 :          packed_data(ipack) = pack_tmp
   39774      379203 :          data_tmp = full_data(idata)
   39775      379203 :          pack_tmp = ISHFT(data_tmp, 30)
   39776      379203 :          pack_tmp = ISHFT(pack_tmp, -30)
   39777      379203 :          idata = idata + 1
   39778      379203 :          data_tmp = full_data(idata)
   39779      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39780      379203 :          data_tmp = IAND(data_tmp, mask_left(30))
   39781      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39782      379203 :          ipack = ipack + 1
   39783      379203 :          packed_data(ipack) = pack_tmp
   39784      379203 :          data_tmp = full_data(idata)
   39785      379203 :          pack_tmp = ISHFT(data_tmp, 44)
   39786      379203 :          pack_tmp = ISHFT(pack_tmp, -44)
   39787      379203 :          idata = idata + 1
   39788      379203 :          data_tmp = full_data(idata)
   39789      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39790      379203 :          data_tmp = IAND(data_tmp, mask_left(44))
   39791      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39792      379203 :          ipack = ipack + 1
   39793      379203 :          packed_data(ipack) = pack_tmp
   39794      379203 :          data_tmp = full_data(idata)
   39795      379203 :          pack_tmp = ISHFT(data_tmp, 58)
   39796      379203 :          pack_tmp = ISHFT(pack_tmp, -50)
   39797      379203 :          idata = idata + 1
   39798      379203 :          data_tmp = full_data(idata)
   39799      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39800      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39801      379203 :          pack_tmp = ISHFT(pack_tmp, -8)
   39802      379203 :          idata = idata + 1
   39803      379203 :          data_tmp = full_data(idata)
   39804      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39805      379203 :          data_tmp = IAND(data_tmp, mask_left(8))
   39806      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39807      379203 :          ipack = ipack + 1
   39808      379203 :          packed_data(ipack) = pack_tmp
   39809      379203 :          data_tmp = full_data(idata)
   39810      379203 :          pack_tmp = ISHFT(data_tmp, 22)
   39811      379203 :          pack_tmp = ISHFT(pack_tmp, -22)
   39812      379203 :          idata = idata + 1
   39813      379203 :          data_tmp = full_data(idata)
   39814      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39815      379203 :          data_tmp = IAND(data_tmp, mask_left(22))
   39816      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39817      379203 :          ipack = ipack + 1
   39818      379203 :          packed_data(ipack) = pack_tmp
   39819      379203 :          data_tmp = full_data(idata)
   39820      379203 :          pack_tmp = ISHFT(data_tmp, 36)
   39821      379203 :          pack_tmp = ISHFT(pack_tmp, -36)
   39822      379203 :          idata = idata + 1
   39823      379203 :          data_tmp = full_data(idata)
   39824      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39825      379203 :          data_tmp = IAND(data_tmp, mask_left(36))
   39826      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39827      379203 :          ipack = ipack + 1
   39828      379203 :          packed_data(ipack) = pack_tmp
   39829      379203 :          data_tmp = full_data(idata)
   39830      379203 :          pack_tmp = ISHFT(data_tmp, 50)
   39831      379203 :          pack_tmp = ISHFT(pack_tmp, -50)
   39832      379203 :          idata = idata + 1
   39833      379203 :          data_tmp = full_data(idata)
   39834      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39835      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39836      379203 :          pack_tmp = ISHFT(pack_tmp, 0)
   39837      379203 :          idata = idata + 1
   39838      379203 :          data_tmp = full_data(idata)
   39839             :          data_tmp = ISHFT(data_tmp, 14)
   39840      379203 :          data_tmp = IAND(data_tmp, mask_left(0))
   39841      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39842      379203 :          ipack = ipack + 1
   39843      379203 :          packed_data(ipack) = pack_tmp
   39844      379203 :          data_tmp = full_data(idata)
   39845      379203 :          pack_tmp = ISHFT(data_tmp, 14)
   39846      379203 :          pack_tmp = ISHFT(pack_tmp, -14)
   39847      379203 :          idata = idata + 1
   39848      379203 :          data_tmp = full_data(idata)
   39849      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39850      379203 :          data_tmp = IAND(data_tmp, mask_left(14))
   39851      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39852      379203 :          ipack = ipack + 1
   39853      379203 :          packed_data(ipack) = pack_tmp
   39854      379203 :          data_tmp = full_data(idata)
   39855      379203 :          pack_tmp = ISHFT(data_tmp, 28)
   39856      379203 :          pack_tmp = ISHFT(pack_tmp, -28)
   39857      379203 :          idata = idata + 1
   39858      379203 :          data_tmp = full_data(idata)
   39859      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39860      379203 :          data_tmp = IAND(data_tmp, mask_left(28))
   39861      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39862      379203 :          ipack = ipack + 1
   39863      379203 :          packed_data(ipack) = pack_tmp
   39864      379203 :          data_tmp = full_data(idata)
   39865      379203 :          pack_tmp = ISHFT(data_tmp, 42)
   39866      379203 :          pack_tmp = ISHFT(pack_tmp, -42)
   39867      379203 :          idata = idata + 1
   39868      379203 :          data_tmp = full_data(idata)
   39869      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39870      379203 :          data_tmp = IAND(data_tmp, mask_left(42))
   39871      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39872      379203 :          ipack = ipack + 1
   39873      379203 :          packed_data(ipack) = pack_tmp
   39874      379203 :          data_tmp = full_data(idata)
   39875      379203 :          pack_tmp = ISHFT(data_tmp, 56)
   39876      379203 :          pack_tmp = ISHFT(pack_tmp, -50)
   39877      379203 :          idata = idata + 1
   39878      379203 :          data_tmp = full_data(idata)
   39879      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39880      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39881      379203 :          pack_tmp = ISHFT(pack_tmp, -6)
   39882      379203 :          idata = idata + 1
   39883      379203 :          data_tmp = full_data(idata)
   39884      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39885      379203 :          data_tmp = IAND(data_tmp, mask_left(6))
   39886      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39887      379203 :          ipack = ipack + 1
   39888      379203 :          packed_data(ipack) = pack_tmp
   39889      379203 :          data_tmp = full_data(idata)
   39890      379203 :          pack_tmp = ISHFT(data_tmp, 20)
   39891      379203 :          pack_tmp = ISHFT(pack_tmp, -20)
   39892      379203 :          idata = idata + 1
   39893      379203 :          data_tmp = full_data(idata)
   39894      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39895      379203 :          data_tmp = IAND(data_tmp, mask_left(20))
   39896      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39897      379203 :          ipack = ipack + 1
   39898      379203 :          packed_data(ipack) = pack_tmp
   39899      379203 :          data_tmp = full_data(idata)
   39900      379203 :          pack_tmp = ISHFT(data_tmp, 34)
   39901      379203 :          pack_tmp = ISHFT(pack_tmp, -34)
   39902      379203 :          idata = idata + 1
   39903      379203 :          data_tmp = full_data(idata)
   39904      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39905      379203 :          data_tmp = IAND(data_tmp, mask_left(34))
   39906      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39907      379203 :          ipack = ipack + 1
   39908      379203 :          packed_data(ipack) = pack_tmp
   39909      379203 :          data_tmp = full_data(idata)
   39910      379203 :          pack_tmp = ISHFT(data_tmp, 48)
   39911      379203 :          pack_tmp = ISHFT(pack_tmp, -48)
   39912      379203 :          idata = idata + 1
   39913      379203 :          data_tmp = full_data(idata)
   39914      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39915      379203 :          data_tmp = IAND(data_tmp, mask_left(48))
   39916      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39917      379203 :          ipack = ipack + 1
   39918      379203 :          packed_data(ipack) = pack_tmp
   39919      379203 :          data_tmp = full_data(idata)
   39920      379203 :          pack_tmp = ISHFT(data_tmp, 62)
   39921      379203 :          pack_tmp = ISHFT(pack_tmp, -50)
   39922      379203 :          idata = idata + 1
   39923      379203 :          data_tmp = full_data(idata)
   39924      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39925      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39926      379203 :          pack_tmp = ISHFT(pack_tmp, -12)
   39927      379203 :          idata = idata + 1
   39928      379203 :          data_tmp = full_data(idata)
   39929      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39930      379203 :          data_tmp = IAND(data_tmp, mask_left(12))
   39931      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39932      379203 :          ipack = ipack + 1
   39933      379203 :          packed_data(ipack) = pack_tmp
   39934      379203 :          data_tmp = full_data(idata)
   39935      379203 :          pack_tmp = ISHFT(data_tmp, 26)
   39936      379203 :          pack_tmp = ISHFT(pack_tmp, -26)
   39937      379203 :          idata = idata + 1
   39938      379203 :          data_tmp = full_data(idata)
   39939      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39940      379203 :          data_tmp = IAND(data_tmp, mask_left(26))
   39941      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39942      379203 :          ipack = ipack + 1
   39943      379203 :          packed_data(ipack) = pack_tmp
   39944      379203 :          data_tmp = full_data(idata)
   39945      379203 :          pack_tmp = ISHFT(data_tmp, 40)
   39946      379203 :          pack_tmp = ISHFT(pack_tmp, -40)
   39947      379203 :          idata = idata + 1
   39948      379203 :          data_tmp = full_data(idata)
   39949      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39950      379203 :          data_tmp = IAND(data_tmp, mask_left(40))
   39951      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39952      379203 :          ipack = ipack + 1
   39953      379203 :          packed_data(ipack) = pack_tmp
   39954      379203 :          data_tmp = full_data(idata)
   39955      379203 :          pack_tmp = ISHFT(data_tmp, 54)
   39956      379203 :          pack_tmp = ISHFT(pack_tmp, -50)
   39957      379203 :          idata = idata + 1
   39958      379203 :          data_tmp = full_data(idata)
   39959      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39960      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39961      379203 :          pack_tmp = ISHFT(pack_tmp, -4)
   39962      379203 :          idata = idata + 1
   39963      379203 :          data_tmp = full_data(idata)
   39964      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39965      379203 :          data_tmp = IAND(data_tmp, mask_left(4))
   39966      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39967      379203 :          ipack = ipack + 1
   39968      379203 :          packed_data(ipack) = pack_tmp
   39969      379203 :          data_tmp = full_data(idata)
   39970      379203 :          pack_tmp = ISHFT(data_tmp, 18)
   39971      379203 :          pack_tmp = ISHFT(pack_tmp, -18)
   39972      379203 :          idata = idata + 1
   39973      379203 :          data_tmp = full_data(idata)
   39974      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39975      379203 :          data_tmp = IAND(data_tmp, mask_left(18))
   39976      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39977      379203 :          ipack = ipack + 1
   39978      379203 :          packed_data(ipack) = pack_tmp
   39979      379203 :          data_tmp = full_data(idata)
   39980      379203 :          pack_tmp = ISHFT(data_tmp, 32)
   39981      379203 :          pack_tmp = ISHFT(pack_tmp, -32)
   39982      379203 :          idata = idata + 1
   39983      379203 :          data_tmp = full_data(idata)
   39984      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39985      379203 :          data_tmp = IAND(data_tmp, mask_left(32))
   39986      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39987      379203 :          ipack = ipack + 1
   39988      379203 :          packed_data(ipack) = pack_tmp
   39989      379203 :          data_tmp = full_data(idata)
   39990      379203 :          pack_tmp = ISHFT(data_tmp, 46)
   39991      379203 :          pack_tmp = ISHFT(pack_tmp, -46)
   39992      379203 :          idata = idata + 1
   39993      379203 :          data_tmp = full_data(idata)
   39994      379203 :          data_tmp = ISHFT(data_tmp, 14)
   39995      379203 :          data_tmp = IAND(data_tmp, mask_left(46))
   39996      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39997      379203 :          ipack = ipack + 1
   39998      379203 :          packed_data(ipack) = pack_tmp
   39999      379203 :          data_tmp = full_data(idata)
   40000      379203 :          pack_tmp = ISHFT(data_tmp, 60)
   40001      379203 :          pack_tmp = ISHFT(pack_tmp, -50)
   40002      379203 :          idata = idata + 1
   40003      379203 :          data_tmp = full_data(idata)
   40004      379203 :          data_tmp = ISHFT(data_tmp, 14)
   40005      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40006      379203 :          pack_tmp = ISHFT(pack_tmp, -10)
   40007      379203 :          idata = idata + 1
   40008      379203 :          data_tmp = full_data(idata)
   40009      379203 :          data_tmp = ISHFT(data_tmp, 14)
   40010      379203 :          data_tmp = IAND(data_tmp, mask_left(10))
   40011      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40012      379203 :          ipack = ipack + 1
   40013      379203 :          packed_data(ipack) = pack_tmp
   40014      379203 :          data_tmp = full_data(idata)
   40015      379203 :          pack_tmp = ISHFT(data_tmp, 24)
   40016      379203 :          pack_tmp = ISHFT(pack_tmp, -24)
   40017      379203 :          idata = idata + 1
   40018      379203 :          data_tmp = full_data(idata)
   40019      379203 :          data_tmp = ISHFT(data_tmp, 14)
   40020      379203 :          data_tmp = IAND(data_tmp, mask_left(24))
   40021      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40022      379203 :          ipack = ipack + 1
   40023      379203 :          packed_data(ipack) = pack_tmp
   40024      379203 :          data_tmp = full_data(idata)
   40025      379203 :          pack_tmp = ISHFT(data_tmp, 38)
   40026      379203 :          pack_tmp = ISHFT(pack_tmp, -38)
   40027      379203 :          idata = idata + 1
   40028      379203 :          data_tmp = full_data(idata)
   40029      379203 :          data_tmp = ISHFT(data_tmp, 14)
   40030      379203 :          data_tmp = IAND(data_tmp, mask_left(38))
   40031      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40032      379203 :          ipack = ipack + 1
   40033      379203 :          packed_data(ipack) = pack_tmp
   40034      379203 :          data_tmp = full_data(idata)
   40035      379203 :          pack_tmp = ISHFT(data_tmp, 52)
   40036      379203 :          pack_tmp = ISHFT(pack_tmp, -50)
   40037      379203 :          idata = idata + 1
   40038      379203 :          data_tmp = full_data(idata)
   40039      379203 :          data_tmp = ISHFT(data_tmp, 14)
   40040      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40041      379203 :          pack_tmp = ISHFT(pack_tmp, -2)
   40042      379203 :          idata = idata + 1
   40043      379203 :          data_tmp = full_data(idata)
   40044      379203 :          data_tmp = ISHFT(data_tmp, 14)
   40045      379203 :          data_tmp = IAND(data_tmp, mask_left(2))
   40046      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40047      379203 :          ipack = ipack + 1
   40048      379203 :          packed_data(ipack) = pack_tmp
   40049      379203 :          data_tmp = full_data(idata)
   40050      379203 :          pack_tmp = ISHFT(data_tmp, 16)
   40051      379203 :          pack_tmp = ISHFT(pack_tmp, -16)
   40052      379203 :          idata = idata + 1
   40053      379203 :          data_tmp = full_data(idata)
   40054      379203 :          data_tmp = ISHFT(data_tmp, 14)
   40055      379203 :          data_tmp = IAND(data_tmp, mask_left(16))
   40056      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40057      379203 :          ipack = ipack + 1
   40058      379203 :          packed_data(ipack) = pack_tmp
   40059      379203 :          data_tmp = full_data(idata)
   40060      379203 :          pack_tmp = ISHFT(data_tmp, 30)
   40061      379203 :          pack_tmp = ISHFT(pack_tmp, -30)
   40062      379203 :          idata = idata + 1
   40063      379203 :          data_tmp = full_data(idata)
   40064      379203 :          data_tmp = ISHFT(data_tmp, 14)
   40065      379203 :          data_tmp = IAND(data_tmp, mask_left(30))
   40066      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40067      379203 :          ipack = ipack + 1
   40068      379203 :          packed_data(ipack) = pack_tmp
   40069      379203 :          data_tmp = full_data(idata)
   40070      379203 :          pack_tmp = ISHFT(data_tmp, 44)
   40071      379203 :          pack_tmp = ISHFT(pack_tmp, -44)
   40072      379203 :          idata = idata + 1
   40073      379203 :          data_tmp = full_data(idata)
   40074      379203 :          data_tmp = ISHFT(data_tmp, 14)
   40075      379203 :          data_tmp = IAND(data_tmp, mask_left(44))
   40076      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40077      379203 :          ipack = ipack + 1
   40078      379203 :          packed_data(ipack) = pack_tmp
   40079      379203 :          data_tmp = full_data(idata)
   40080      379203 :          pack_tmp = ISHFT(data_tmp, 58)
   40081      379203 :          pack_tmp = ISHFT(pack_tmp, -50)
   40082      379203 :          idata = idata + 1
   40083      379203 :          data_tmp = full_data(idata)
   40084      379203 :          data_tmp = ISHFT(data_tmp, 14)
   40085      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40086      379203 :          pack_tmp = ISHFT(pack_tmp, -8)
   40087      379203 :          idata = idata + 1
   40088      379203 :          data_tmp = full_data(idata)
   40089      379203 :          data_tmp = ISHFT(data_tmp, 14)
   40090      379203 :          data_tmp = IAND(data_tmp, mask_left(8))
   40091      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40092      379203 :          ipack = ipack + 1
   40093      379203 :          packed_data(ipack) = pack_tmp
   40094      379203 :          data_tmp = full_data(idata)
   40095      379203 :          pack_tmp = ISHFT(data_tmp, 22)
   40096      379203 :          pack_tmp = ISHFT(pack_tmp, -22)
   40097      379203 :          idata = idata + 1
   40098      379203 :          data_tmp = full_data(idata)
   40099      379203 :          data_tmp = ISHFT(data_tmp, 14)
   40100      379203 :          data_tmp = IAND(data_tmp, mask_left(22))
   40101      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40102      379203 :          ipack = ipack + 1
   40103      379203 :          packed_data(ipack) = pack_tmp
   40104      379203 :          data_tmp = full_data(idata)
   40105      379203 :          pack_tmp = ISHFT(data_tmp, 36)
   40106      379203 :          pack_tmp = ISHFT(pack_tmp, -36)
   40107      379203 :          idata = idata + 1
   40108      379203 :          data_tmp = full_data(idata)
   40109      379203 :          data_tmp = ISHFT(data_tmp, 14)
   40110      379203 :          data_tmp = IAND(data_tmp, mask_left(36))
   40111      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40112      379203 :          ipack = ipack + 1
   40113      379203 :          packed_data(ipack) = pack_tmp
   40114      379203 :          data_tmp = full_data(idata)
   40115      379203 :          pack_tmp = ISHFT(data_tmp, 50)
   40116      379203 :          pack_tmp = ISHFT(pack_tmp, -50)
   40117      379203 :          idata = idata + 1
   40118      379203 :          data_tmp = full_data(idata)
   40119      379203 :          data_tmp = ISHFT(data_tmp, 14)
   40120      379203 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40121             :          pack_tmp = ISHFT(pack_tmp, 0)
   40122      379203 :          pack_tmp = ISHFT(pack_tmp, 0)
   40123      379203 :          ipack = ipack + 1
   40124      379211 :          packed_data(ipack) = pack_tmp
   40125             :       END DO
   40126       24462 :       IF (Ndata_rep < Ndata) THEN
   40127        1434 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   40128             :       END IF
   40129       24462 :    END SUBROUTINE ints2bits_50
   40130             : 
   40131             : ! **************************************************************************************************
   40132             : !> \brief ...
   40133             : !> \param Ndata ...
   40134             : !> \param packed_data ...
   40135             : !> \param full_data ...
   40136             : ! **************************************************************************************************
   40137       98157 :    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       98157 :       ipack = 0
   40148       98157 :       idata = 0
   40149       98157 :       pack_tmp = 0
   40150       98157 :       Ndata_rep = (Ndata/64)*64
   40151       98157 :       DO kdata = 1, Ndata_rep, 64
   40152     1533197 :          idata = idata + 1
   40153     1533197 :          data_tmp = ISHFT(pack_tmp, 50)
   40154     1533197 :          ipack = ipack + 1
   40155     1533197 :          pack_tmp = packed_data(ipack)
   40156     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   40157     1533197 :          pack_tmp = ISHFT(pack_tmp, -50)
   40158     1533197 :          idata = idata + 1
   40159     1533197 :          data_tmp = ISHFT(pack_tmp, 36)
   40160     1533197 :          ipack = ipack + 1
   40161     1533197 :          pack_tmp = packed_data(ipack)
   40162     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   40163     1533197 :          pack_tmp = ISHFT(pack_tmp, -36)
   40164     1533197 :          idata = idata + 1
   40165     1533197 :          data_tmp = ISHFT(pack_tmp, 22)
   40166     1533197 :          ipack = ipack + 1
   40167     1533197 :          pack_tmp = packed_data(ipack)
   40168     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   40169     1533197 :          pack_tmp = ISHFT(pack_tmp, -22)
   40170     1533197 :          idata = idata + 1
   40171     1533197 :          data_tmp = ISHFT(pack_tmp, 8)
   40172     1533197 :          ipack = ipack + 1
   40173     1533197 :          pack_tmp = packed_data(ipack)
   40174     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   40175     1533197 :          pack_tmp = ISHFT(pack_tmp, -8)
   40176     1533197 :          idata = idata + 1
   40177     1533197 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40178     1533197 :          full_data(idata) = data_tmp
   40179     1533197 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40180     1533197 :          idata = idata + 1
   40181     1533197 :          data_tmp = ISHFT(pack_tmp, 44)
   40182     1533197 :          ipack = ipack + 1
   40183     1533197 :          pack_tmp = packed_data(ipack)
   40184     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   40185     1533197 :          pack_tmp = ISHFT(pack_tmp, -44)
   40186     1533197 :          idata = idata + 1
   40187     1533197 :          data_tmp = ISHFT(pack_tmp, 30)
   40188     1533197 :          ipack = ipack + 1
   40189     1533197 :          pack_tmp = packed_data(ipack)
   40190     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   40191     1533197 :          pack_tmp = ISHFT(pack_tmp, -30)
   40192     1533197 :          idata = idata + 1
   40193     1533197 :          data_tmp = ISHFT(pack_tmp, 16)
   40194     1533197 :          ipack = ipack + 1
   40195     1533197 :          pack_tmp = packed_data(ipack)
   40196     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   40197     1533197 :          pack_tmp = ISHFT(pack_tmp, -16)
   40198     1533197 :          idata = idata + 1
   40199     1533197 :          data_tmp = ISHFT(pack_tmp, 2)
   40200     1533197 :          ipack = ipack + 1
   40201     1533197 :          pack_tmp = packed_data(ipack)
   40202     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   40203     1533197 :          pack_tmp = ISHFT(pack_tmp, -2)
   40204     1533197 :          idata = idata + 1
   40205     1533197 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40206     1533197 :          full_data(idata) = data_tmp
   40207     1533197 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40208     1533197 :          idata = idata + 1
   40209     1533197 :          data_tmp = ISHFT(pack_tmp, 38)
   40210     1533197 :          ipack = ipack + 1
   40211     1533197 :          pack_tmp = packed_data(ipack)
   40212     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   40213     1533197 :          pack_tmp = ISHFT(pack_tmp, -38)
   40214     1533197 :          idata = idata + 1
   40215     1533197 :          data_tmp = ISHFT(pack_tmp, 24)
   40216     1533197 :          ipack = ipack + 1
   40217     1533197 :          pack_tmp = packed_data(ipack)
   40218     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   40219     1533197 :          pack_tmp = ISHFT(pack_tmp, -24)
   40220     1533197 :          idata = idata + 1
   40221     1533197 :          data_tmp = ISHFT(pack_tmp, 10)
   40222     1533197 :          ipack = ipack + 1
   40223     1533197 :          pack_tmp = packed_data(ipack)
   40224     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   40225     1533197 :          pack_tmp = ISHFT(pack_tmp, -10)
   40226     1533197 :          idata = idata + 1
   40227     1533197 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40228     1533197 :          full_data(idata) = data_tmp
   40229     1533197 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40230     1533197 :          idata = idata + 1
   40231     1533197 :          data_tmp = ISHFT(pack_tmp, 46)
   40232     1533197 :          ipack = ipack + 1
   40233     1533197 :          pack_tmp = packed_data(ipack)
   40234     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   40235     1533197 :          pack_tmp = ISHFT(pack_tmp, -46)
   40236     1533197 :          idata = idata + 1
   40237     1533197 :          data_tmp = ISHFT(pack_tmp, 32)
   40238     1533197 :          ipack = ipack + 1
   40239     1533197 :          pack_tmp = packed_data(ipack)
   40240     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   40241     1533197 :          pack_tmp = ISHFT(pack_tmp, -32)
   40242     1533197 :          idata = idata + 1
   40243     1533197 :          data_tmp = ISHFT(pack_tmp, 18)
   40244     1533197 :          ipack = ipack + 1
   40245     1533197 :          pack_tmp = packed_data(ipack)
   40246     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   40247     1533197 :          pack_tmp = ISHFT(pack_tmp, -18)
   40248     1533197 :          idata = idata + 1
   40249     1533197 :          data_tmp = ISHFT(pack_tmp, 4)
   40250     1533197 :          ipack = ipack + 1
   40251     1533197 :          pack_tmp = packed_data(ipack)
   40252     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   40253     1533197 :          pack_tmp = ISHFT(pack_tmp, -4)
   40254     1533197 :          idata = idata + 1
   40255     1533197 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40256     1533197 :          full_data(idata) = data_tmp
   40257     1533197 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40258     1533197 :          idata = idata + 1
   40259     1533197 :          data_tmp = ISHFT(pack_tmp, 40)
   40260     1533197 :          ipack = ipack + 1
   40261     1533197 :          pack_tmp = packed_data(ipack)
   40262     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   40263     1533197 :          pack_tmp = ISHFT(pack_tmp, -40)
   40264     1533197 :          idata = idata + 1
   40265     1533197 :          data_tmp = ISHFT(pack_tmp, 26)
   40266     1533197 :          ipack = ipack + 1
   40267     1533197 :          pack_tmp = packed_data(ipack)
   40268     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   40269     1533197 :          pack_tmp = ISHFT(pack_tmp, -26)
   40270     1533197 :          idata = idata + 1
   40271     1533197 :          data_tmp = ISHFT(pack_tmp, 12)
   40272     1533197 :          ipack = ipack + 1
   40273     1533197 :          pack_tmp = packed_data(ipack)
   40274     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   40275     1533197 :          pack_tmp = ISHFT(pack_tmp, -12)
   40276     1533197 :          idata = idata + 1
   40277     1533197 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40278     1533197 :          full_data(idata) = data_tmp
   40279     1533197 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40280     1533197 :          idata = idata + 1
   40281     1533197 :          data_tmp = ISHFT(pack_tmp, 48)
   40282     1533197 :          ipack = ipack + 1
   40283     1533197 :          pack_tmp = packed_data(ipack)
   40284     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   40285     1533197 :          pack_tmp = ISHFT(pack_tmp, -48)
   40286     1533197 :          idata = idata + 1
   40287     1533197 :          data_tmp = ISHFT(pack_tmp, 34)
   40288     1533197 :          ipack = ipack + 1
   40289     1533197 :          pack_tmp = packed_data(ipack)
   40290     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   40291     1533197 :          pack_tmp = ISHFT(pack_tmp, -34)
   40292     1533197 :          idata = idata + 1
   40293     1533197 :          data_tmp = ISHFT(pack_tmp, 20)
   40294     1533197 :          ipack = ipack + 1
   40295     1533197 :          pack_tmp = packed_data(ipack)
   40296     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   40297     1533197 :          pack_tmp = ISHFT(pack_tmp, -20)
   40298     1533197 :          idata = idata + 1
   40299     1533197 :          data_tmp = ISHFT(pack_tmp, 6)
   40300     1533197 :          ipack = ipack + 1
   40301     1533197 :          pack_tmp = packed_data(ipack)
   40302     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   40303     1533197 :          pack_tmp = ISHFT(pack_tmp, -6)
   40304     1533197 :          idata = idata + 1
   40305     1533197 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40306     1533197 :          full_data(idata) = data_tmp
   40307     1533197 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40308     1533197 :          idata = idata + 1
   40309     1533197 :          data_tmp = ISHFT(pack_tmp, 42)
   40310     1533197 :          ipack = ipack + 1
   40311     1533197 :          pack_tmp = packed_data(ipack)
   40312     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   40313     1533197 :          pack_tmp = ISHFT(pack_tmp, -42)
   40314     1533197 :          idata = idata + 1
   40315     1533197 :          data_tmp = ISHFT(pack_tmp, 28)
   40316     1533197 :          ipack = ipack + 1
   40317     1533197 :          pack_tmp = packed_data(ipack)
   40318     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   40319     1533197 :          pack_tmp = ISHFT(pack_tmp, -28)
   40320     1533197 :          idata = idata + 1
   40321     1533197 :          data_tmp = ISHFT(pack_tmp, 14)
   40322     1533197 :          ipack = ipack + 1
   40323     1533197 :          pack_tmp = packed_data(ipack)
   40324     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   40325     1533197 :          pack_tmp = ISHFT(pack_tmp, -14)
   40326     1533197 :          idata = idata + 1
   40327     1533197 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40328     1533197 :          full_data(idata) = data_tmp
   40329     1533197 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40330     1533197 :          idata = idata + 1
   40331     1533197 :          data_tmp = ISHFT(pack_tmp, 50)
   40332     1533197 :          ipack = ipack + 1
   40333     1533197 :          pack_tmp = packed_data(ipack)
   40334     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   40335     1533197 :          pack_tmp = ISHFT(pack_tmp, -50)
   40336     1533197 :          idata = idata + 1
   40337     1533197 :          data_tmp = ISHFT(pack_tmp, 36)
   40338     1533197 :          ipack = ipack + 1
   40339     1533197 :          pack_tmp = packed_data(ipack)
   40340     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   40341     1533197 :          pack_tmp = ISHFT(pack_tmp, -36)
   40342     1533197 :          idata = idata + 1
   40343     1533197 :          data_tmp = ISHFT(pack_tmp, 22)
   40344     1533197 :          ipack = ipack + 1
   40345     1533197 :          pack_tmp = packed_data(ipack)
   40346     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   40347     1533197 :          pack_tmp = ISHFT(pack_tmp, -22)
   40348     1533197 :          idata = idata + 1
   40349     1533197 :          data_tmp = ISHFT(pack_tmp, 8)
   40350     1533197 :          ipack = ipack + 1
   40351     1533197 :          pack_tmp = packed_data(ipack)
   40352     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   40353     1533197 :          pack_tmp = ISHFT(pack_tmp, -8)
   40354     1533197 :          idata = idata + 1
   40355     1533197 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40356     1533197 :          full_data(idata) = data_tmp
   40357     1533197 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40358     1533197 :          idata = idata + 1
   40359     1533197 :          data_tmp = ISHFT(pack_tmp, 44)
   40360     1533197 :          ipack = ipack + 1
   40361     1533197 :          pack_tmp = packed_data(ipack)
   40362     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   40363     1533197 :          pack_tmp = ISHFT(pack_tmp, -44)
   40364     1533197 :          idata = idata + 1
   40365     1533197 :          data_tmp = ISHFT(pack_tmp, 30)
   40366     1533197 :          ipack = ipack + 1
   40367     1533197 :          pack_tmp = packed_data(ipack)
   40368     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   40369     1533197 :          pack_tmp = ISHFT(pack_tmp, -30)
   40370     1533197 :          idata = idata + 1
   40371     1533197 :          data_tmp = ISHFT(pack_tmp, 16)
   40372     1533197 :          ipack = ipack + 1
   40373     1533197 :          pack_tmp = packed_data(ipack)
   40374     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   40375     1533197 :          pack_tmp = ISHFT(pack_tmp, -16)
   40376     1533197 :          idata = idata + 1
   40377     1533197 :          data_tmp = ISHFT(pack_tmp, 2)
   40378     1533197 :          ipack = ipack + 1
   40379     1533197 :          pack_tmp = packed_data(ipack)
   40380     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   40381     1533197 :          pack_tmp = ISHFT(pack_tmp, -2)
   40382     1533197 :          idata = idata + 1
   40383     1533197 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40384     1533197 :          full_data(idata) = data_tmp
   40385     1533197 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40386     1533197 :          idata = idata + 1
   40387     1533197 :          data_tmp = ISHFT(pack_tmp, 38)
   40388     1533197 :          ipack = ipack + 1
   40389     1533197 :          pack_tmp = packed_data(ipack)
   40390     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   40391     1533197 :          pack_tmp = ISHFT(pack_tmp, -38)
   40392     1533197 :          idata = idata + 1
   40393     1533197 :          data_tmp = ISHFT(pack_tmp, 24)
   40394     1533197 :          ipack = ipack + 1
   40395     1533197 :          pack_tmp = packed_data(ipack)
   40396     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   40397     1533197 :          pack_tmp = ISHFT(pack_tmp, -24)
   40398     1533197 :          idata = idata + 1
   40399     1533197 :          data_tmp = ISHFT(pack_tmp, 10)
   40400     1533197 :          ipack = ipack + 1
   40401     1533197 :          pack_tmp = packed_data(ipack)
   40402     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   40403     1533197 :          pack_tmp = ISHFT(pack_tmp, -10)
   40404     1533197 :          idata = idata + 1
   40405     1533197 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40406     1533197 :          full_data(idata) = data_tmp
   40407     1533197 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40408     1533197 :          idata = idata + 1
   40409     1533197 :          data_tmp = ISHFT(pack_tmp, 46)
   40410     1533197 :          ipack = ipack + 1
   40411     1533197 :          pack_tmp = packed_data(ipack)
   40412     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   40413     1533197 :          pack_tmp = ISHFT(pack_tmp, -46)
   40414     1533197 :          idata = idata + 1
   40415     1533197 :          data_tmp = ISHFT(pack_tmp, 32)
   40416     1533197 :          ipack = ipack + 1
   40417     1533197 :          pack_tmp = packed_data(ipack)
   40418     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   40419     1533197 :          pack_tmp = ISHFT(pack_tmp, -32)
   40420     1533197 :          idata = idata + 1
   40421     1533197 :          data_tmp = ISHFT(pack_tmp, 18)
   40422     1533197 :          ipack = ipack + 1
   40423     1533197 :          pack_tmp = packed_data(ipack)
   40424     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   40425     1533197 :          pack_tmp = ISHFT(pack_tmp, -18)
   40426     1533197 :          idata = idata + 1
   40427     1533197 :          data_tmp = ISHFT(pack_tmp, 4)
   40428     1533197 :          ipack = ipack + 1
   40429     1533197 :          pack_tmp = packed_data(ipack)
   40430     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   40431     1533197 :          pack_tmp = ISHFT(pack_tmp, -4)
   40432     1533197 :          idata = idata + 1
   40433     1533197 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40434     1533197 :          full_data(idata) = data_tmp
   40435     1533197 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40436     1533197 :          idata = idata + 1
   40437     1533197 :          data_tmp = ISHFT(pack_tmp, 40)
   40438     1533197 :          ipack = ipack + 1
   40439     1533197 :          pack_tmp = packed_data(ipack)
   40440     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   40441     1533197 :          pack_tmp = ISHFT(pack_tmp, -40)
   40442     1533197 :          idata = idata + 1
   40443     1533197 :          data_tmp = ISHFT(pack_tmp, 26)
   40444     1533197 :          ipack = ipack + 1
   40445     1533197 :          pack_tmp = packed_data(ipack)
   40446     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   40447     1533197 :          pack_tmp = ISHFT(pack_tmp, -26)
   40448     1533197 :          idata = idata + 1
   40449     1533197 :          data_tmp = ISHFT(pack_tmp, 12)
   40450     1533197 :          ipack = ipack + 1
   40451     1533197 :          pack_tmp = packed_data(ipack)
   40452     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   40453     1533197 :          pack_tmp = ISHFT(pack_tmp, -12)
   40454     1533197 :          idata = idata + 1
   40455     1533197 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40456     1533197 :          full_data(idata) = data_tmp
   40457     1533197 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40458     1533197 :          idata = idata + 1
   40459     1533197 :          data_tmp = ISHFT(pack_tmp, 48)
   40460     1533197 :          ipack = ipack + 1
   40461     1533197 :          pack_tmp = packed_data(ipack)
   40462     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   40463     1533197 :          pack_tmp = ISHFT(pack_tmp, -48)
   40464     1533197 :          idata = idata + 1
   40465     1533197 :          data_tmp = ISHFT(pack_tmp, 34)
   40466     1533197 :          ipack = ipack + 1
   40467     1533197 :          pack_tmp = packed_data(ipack)
   40468     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   40469     1533197 :          pack_tmp = ISHFT(pack_tmp, -34)
   40470     1533197 :          idata = idata + 1
   40471     1533197 :          data_tmp = ISHFT(pack_tmp, 20)
   40472     1533197 :          ipack = ipack + 1
   40473     1533197 :          pack_tmp = packed_data(ipack)
   40474     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   40475     1533197 :          pack_tmp = ISHFT(pack_tmp, -20)
   40476     1533197 :          idata = idata + 1
   40477     1533197 :          data_tmp = ISHFT(pack_tmp, 6)
   40478     1533197 :          ipack = ipack + 1
   40479     1533197 :          pack_tmp = packed_data(ipack)
   40480     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   40481     1533197 :          pack_tmp = ISHFT(pack_tmp, -6)
   40482     1533197 :          idata = idata + 1
   40483     1533197 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40484     1533197 :          full_data(idata) = data_tmp
   40485     1533197 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40486     1533197 :          idata = idata + 1
   40487     1533197 :          data_tmp = ISHFT(pack_tmp, 42)
   40488     1533197 :          ipack = ipack + 1
   40489     1533197 :          pack_tmp = packed_data(ipack)
   40490     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   40491     1533197 :          pack_tmp = ISHFT(pack_tmp, -42)
   40492     1533197 :          idata = idata + 1
   40493     1533197 :          data_tmp = ISHFT(pack_tmp, 28)
   40494     1533197 :          ipack = ipack + 1
   40495     1533197 :          pack_tmp = packed_data(ipack)
   40496     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   40497     1533197 :          pack_tmp = ISHFT(pack_tmp, -28)
   40498     1533197 :          idata = idata + 1
   40499     1533197 :          data_tmp = ISHFT(pack_tmp, 14)
   40500     1533197 :          ipack = ipack + 1
   40501     1533197 :          pack_tmp = packed_data(ipack)
   40502     1533197 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   40503     1533197 :          pack_tmp = ISHFT(pack_tmp, -14)
   40504     1533197 :          idata = idata + 1
   40505     1533197 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40506     1533197 :          full_data(idata) = data_tmp
   40507     1533213 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40508             :       END DO
   40509       98157 :       IF (Ndata_rep < Ndata) THEN
   40510        4390 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   40511             :       END IF
   40512       98157 :    END SUBROUTINE bits2ints_50
   40513             : 
   40514             : ! **************************************************************************************************
   40515             : !> \brief ...
   40516             : !> \param Ndata ...
   40517             : !> \param packed_data ...
   40518             : !> \param full_data ...
   40519             : ! **************************************************************************************************
   40520       23488 :    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       23488 :       idata = 0
   40531       23488 :       ipack = 0
   40532       23488 :       Ndata_rep = (Ndata/64)*64
   40533       23488 :       DO kdata = 1, Ndata_rep, 64
   40534      372102 :          pack_tmp = 0
   40535      372102 :          idata = idata + 1
   40536      372102 :          data_tmp = full_data(idata)
   40537      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40538      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40539      372102 :          pack_tmp = ISHFT(pack_tmp, -13)
   40540      372102 :          idata = idata + 1
   40541      372102 :          data_tmp = full_data(idata)
   40542      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40543      372102 :          data_tmp = IAND(data_tmp, mask_left(13))
   40544      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40545      372102 :          ipack = ipack + 1
   40546      372102 :          packed_data(ipack) = pack_tmp
   40547      372102 :          data_tmp = full_data(idata)
   40548      372102 :          pack_tmp = ISHFT(data_tmp, 26)
   40549      372102 :          pack_tmp = ISHFT(pack_tmp, -26)
   40550      372102 :          idata = idata + 1
   40551      372102 :          data_tmp = full_data(idata)
   40552      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40553      372102 :          data_tmp = IAND(data_tmp, mask_left(26))
   40554      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40555      372102 :          ipack = ipack + 1
   40556      372102 :          packed_data(ipack) = pack_tmp
   40557      372102 :          data_tmp = full_data(idata)
   40558      372102 :          pack_tmp = ISHFT(data_tmp, 39)
   40559      372102 :          pack_tmp = ISHFT(pack_tmp, -39)
   40560      372102 :          idata = idata + 1
   40561      372102 :          data_tmp = full_data(idata)
   40562      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40563      372102 :          data_tmp = IAND(data_tmp, mask_left(39))
   40564      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40565      372102 :          ipack = ipack + 1
   40566      372102 :          packed_data(ipack) = pack_tmp
   40567      372102 :          data_tmp = full_data(idata)
   40568      372102 :          pack_tmp = ISHFT(data_tmp, 52)
   40569      372102 :          pack_tmp = ISHFT(pack_tmp, -51)
   40570      372102 :          idata = idata + 1
   40571      372102 :          data_tmp = full_data(idata)
   40572      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40573      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40574      372102 :          pack_tmp = ISHFT(pack_tmp, -1)
   40575      372102 :          idata = idata + 1
   40576      372102 :          data_tmp = full_data(idata)
   40577      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40578      372102 :          data_tmp = IAND(data_tmp, mask_left(1))
   40579      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40580      372102 :          ipack = ipack + 1
   40581      372102 :          packed_data(ipack) = pack_tmp
   40582      372102 :          data_tmp = full_data(idata)
   40583      372102 :          pack_tmp = ISHFT(data_tmp, 14)
   40584      372102 :          pack_tmp = ISHFT(pack_tmp, -14)
   40585      372102 :          idata = idata + 1
   40586      372102 :          data_tmp = full_data(idata)
   40587      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40588      372102 :          data_tmp = IAND(data_tmp, mask_left(14))
   40589      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40590      372102 :          ipack = ipack + 1
   40591      372102 :          packed_data(ipack) = pack_tmp
   40592      372102 :          data_tmp = full_data(idata)
   40593      372102 :          pack_tmp = ISHFT(data_tmp, 27)
   40594      372102 :          pack_tmp = ISHFT(pack_tmp, -27)
   40595      372102 :          idata = idata + 1
   40596      372102 :          data_tmp = full_data(idata)
   40597      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40598      372102 :          data_tmp = IAND(data_tmp, mask_left(27))
   40599      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40600      372102 :          ipack = ipack + 1
   40601      372102 :          packed_data(ipack) = pack_tmp
   40602      372102 :          data_tmp = full_data(idata)
   40603      372102 :          pack_tmp = ISHFT(data_tmp, 40)
   40604      372102 :          pack_tmp = ISHFT(pack_tmp, -40)
   40605      372102 :          idata = idata + 1
   40606      372102 :          data_tmp = full_data(idata)
   40607      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40608      372102 :          data_tmp = IAND(data_tmp, mask_left(40))
   40609      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40610      372102 :          ipack = ipack + 1
   40611      372102 :          packed_data(ipack) = pack_tmp
   40612      372102 :          data_tmp = full_data(idata)
   40613      372102 :          pack_tmp = ISHFT(data_tmp, 53)
   40614      372102 :          pack_tmp = ISHFT(pack_tmp, -51)
   40615      372102 :          idata = idata + 1
   40616      372102 :          data_tmp = full_data(idata)
   40617      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40618      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40619      372102 :          pack_tmp = ISHFT(pack_tmp, -2)
   40620      372102 :          idata = idata + 1
   40621      372102 :          data_tmp = full_data(idata)
   40622      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40623      372102 :          data_tmp = IAND(data_tmp, mask_left(2))
   40624      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40625      372102 :          ipack = ipack + 1
   40626      372102 :          packed_data(ipack) = pack_tmp
   40627      372102 :          data_tmp = full_data(idata)
   40628      372102 :          pack_tmp = ISHFT(data_tmp, 15)
   40629      372102 :          pack_tmp = ISHFT(pack_tmp, -15)
   40630      372102 :          idata = idata + 1
   40631      372102 :          data_tmp = full_data(idata)
   40632      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40633      372102 :          data_tmp = IAND(data_tmp, mask_left(15))
   40634      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40635      372102 :          ipack = ipack + 1
   40636      372102 :          packed_data(ipack) = pack_tmp
   40637      372102 :          data_tmp = full_data(idata)
   40638      372102 :          pack_tmp = ISHFT(data_tmp, 28)
   40639      372102 :          pack_tmp = ISHFT(pack_tmp, -28)
   40640      372102 :          idata = idata + 1
   40641      372102 :          data_tmp = full_data(idata)
   40642      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40643      372102 :          data_tmp = IAND(data_tmp, mask_left(28))
   40644      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40645      372102 :          ipack = ipack + 1
   40646      372102 :          packed_data(ipack) = pack_tmp
   40647      372102 :          data_tmp = full_data(idata)
   40648      372102 :          pack_tmp = ISHFT(data_tmp, 41)
   40649      372102 :          pack_tmp = ISHFT(pack_tmp, -41)
   40650      372102 :          idata = idata + 1
   40651      372102 :          data_tmp = full_data(idata)
   40652      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40653      372102 :          data_tmp = IAND(data_tmp, mask_left(41))
   40654      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40655      372102 :          ipack = ipack + 1
   40656      372102 :          packed_data(ipack) = pack_tmp
   40657      372102 :          data_tmp = full_data(idata)
   40658      372102 :          pack_tmp = ISHFT(data_tmp, 54)
   40659      372102 :          pack_tmp = ISHFT(pack_tmp, -51)
   40660      372102 :          idata = idata + 1
   40661      372102 :          data_tmp = full_data(idata)
   40662      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40663      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40664      372102 :          pack_tmp = ISHFT(pack_tmp, -3)
   40665      372102 :          idata = idata + 1
   40666      372102 :          data_tmp = full_data(idata)
   40667      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40668      372102 :          data_tmp = IAND(data_tmp, mask_left(3))
   40669      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40670      372102 :          ipack = ipack + 1
   40671      372102 :          packed_data(ipack) = pack_tmp
   40672      372102 :          data_tmp = full_data(idata)
   40673      372102 :          pack_tmp = ISHFT(data_tmp, 16)
   40674      372102 :          pack_tmp = ISHFT(pack_tmp, -16)
   40675      372102 :          idata = idata + 1
   40676      372102 :          data_tmp = full_data(idata)
   40677      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40678      372102 :          data_tmp = IAND(data_tmp, mask_left(16))
   40679      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40680      372102 :          ipack = ipack + 1
   40681      372102 :          packed_data(ipack) = pack_tmp
   40682      372102 :          data_tmp = full_data(idata)
   40683      372102 :          pack_tmp = ISHFT(data_tmp, 29)
   40684      372102 :          pack_tmp = ISHFT(pack_tmp, -29)
   40685      372102 :          idata = idata + 1
   40686      372102 :          data_tmp = full_data(idata)
   40687      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40688      372102 :          data_tmp = IAND(data_tmp, mask_left(29))
   40689      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40690      372102 :          ipack = ipack + 1
   40691      372102 :          packed_data(ipack) = pack_tmp
   40692      372102 :          data_tmp = full_data(idata)
   40693      372102 :          pack_tmp = ISHFT(data_tmp, 42)
   40694      372102 :          pack_tmp = ISHFT(pack_tmp, -42)
   40695      372102 :          idata = idata + 1
   40696      372102 :          data_tmp = full_data(idata)
   40697      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40698      372102 :          data_tmp = IAND(data_tmp, mask_left(42))
   40699      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40700      372102 :          ipack = ipack + 1
   40701      372102 :          packed_data(ipack) = pack_tmp
   40702      372102 :          data_tmp = full_data(idata)
   40703      372102 :          pack_tmp = ISHFT(data_tmp, 55)
   40704      372102 :          pack_tmp = ISHFT(pack_tmp, -51)
   40705      372102 :          idata = idata + 1
   40706      372102 :          data_tmp = full_data(idata)
   40707      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40708      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40709      372102 :          pack_tmp = ISHFT(pack_tmp, -4)
   40710      372102 :          idata = idata + 1
   40711      372102 :          data_tmp = full_data(idata)
   40712      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40713      372102 :          data_tmp = IAND(data_tmp, mask_left(4))
   40714      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40715      372102 :          ipack = ipack + 1
   40716      372102 :          packed_data(ipack) = pack_tmp
   40717      372102 :          data_tmp = full_data(idata)
   40718      372102 :          pack_tmp = ISHFT(data_tmp, 17)
   40719      372102 :          pack_tmp = ISHFT(pack_tmp, -17)
   40720      372102 :          idata = idata + 1
   40721      372102 :          data_tmp = full_data(idata)
   40722      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40723      372102 :          data_tmp = IAND(data_tmp, mask_left(17))
   40724      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40725      372102 :          ipack = ipack + 1
   40726      372102 :          packed_data(ipack) = pack_tmp
   40727      372102 :          data_tmp = full_data(idata)
   40728      372102 :          pack_tmp = ISHFT(data_tmp, 30)
   40729      372102 :          pack_tmp = ISHFT(pack_tmp, -30)
   40730      372102 :          idata = idata + 1
   40731      372102 :          data_tmp = full_data(idata)
   40732      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40733      372102 :          data_tmp = IAND(data_tmp, mask_left(30))
   40734      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40735      372102 :          ipack = ipack + 1
   40736      372102 :          packed_data(ipack) = pack_tmp
   40737      372102 :          data_tmp = full_data(idata)
   40738      372102 :          pack_tmp = ISHFT(data_tmp, 43)
   40739      372102 :          pack_tmp = ISHFT(pack_tmp, -43)
   40740      372102 :          idata = idata + 1
   40741      372102 :          data_tmp = full_data(idata)
   40742      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40743      372102 :          data_tmp = IAND(data_tmp, mask_left(43))
   40744      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40745      372102 :          ipack = ipack + 1
   40746      372102 :          packed_data(ipack) = pack_tmp
   40747      372102 :          data_tmp = full_data(idata)
   40748      372102 :          pack_tmp = ISHFT(data_tmp, 56)
   40749      372102 :          pack_tmp = ISHFT(pack_tmp, -51)
   40750      372102 :          idata = idata + 1
   40751      372102 :          data_tmp = full_data(idata)
   40752      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40753      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40754      372102 :          pack_tmp = ISHFT(pack_tmp, -5)
   40755      372102 :          idata = idata + 1
   40756      372102 :          data_tmp = full_data(idata)
   40757      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40758      372102 :          data_tmp = IAND(data_tmp, mask_left(5))
   40759      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40760      372102 :          ipack = ipack + 1
   40761      372102 :          packed_data(ipack) = pack_tmp
   40762      372102 :          data_tmp = full_data(idata)
   40763      372102 :          pack_tmp = ISHFT(data_tmp, 18)
   40764      372102 :          pack_tmp = ISHFT(pack_tmp, -18)
   40765      372102 :          idata = idata + 1
   40766      372102 :          data_tmp = full_data(idata)
   40767      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40768      372102 :          data_tmp = IAND(data_tmp, mask_left(18))
   40769      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40770      372102 :          ipack = ipack + 1
   40771      372102 :          packed_data(ipack) = pack_tmp
   40772      372102 :          data_tmp = full_data(idata)
   40773      372102 :          pack_tmp = ISHFT(data_tmp, 31)
   40774      372102 :          pack_tmp = ISHFT(pack_tmp, -31)
   40775      372102 :          idata = idata + 1
   40776      372102 :          data_tmp = full_data(idata)
   40777      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40778      372102 :          data_tmp = IAND(data_tmp, mask_left(31))
   40779      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40780      372102 :          ipack = ipack + 1
   40781      372102 :          packed_data(ipack) = pack_tmp
   40782      372102 :          data_tmp = full_data(idata)
   40783      372102 :          pack_tmp = ISHFT(data_tmp, 44)
   40784      372102 :          pack_tmp = ISHFT(pack_tmp, -44)
   40785      372102 :          idata = idata + 1
   40786      372102 :          data_tmp = full_data(idata)
   40787      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40788      372102 :          data_tmp = IAND(data_tmp, mask_left(44))
   40789      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40790      372102 :          ipack = ipack + 1
   40791      372102 :          packed_data(ipack) = pack_tmp
   40792      372102 :          data_tmp = full_data(idata)
   40793      372102 :          pack_tmp = ISHFT(data_tmp, 57)
   40794      372102 :          pack_tmp = ISHFT(pack_tmp, -51)
   40795      372102 :          idata = idata + 1
   40796      372102 :          data_tmp = full_data(idata)
   40797      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40798      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40799      372102 :          pack_tmp = ISHFT(pack_tmp, -6)
   40800      372102 :          idata = idata + 1
   40801      372102 :          data_tmp = full_data(idata)
   40802      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40803      372102 :          data_tmp = IAND(data_tmp, mask_left(6))
   40804      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40805      372102 :          ipack = ipack + 1
   40806      372102 :          packed_data(ipack) = pack_tmp
   40807      372102 :          data_tmp = full_data(idata)
   40808      372102 :          pack_tmp = ISHFT(data_tmp, 19)
   40809      372102 :          pack_tmp = ISHFT(pack_tmp, -19)
   40810      372102 :          idata = idata + 1
   40811      372102 :          data_tmp = full_data(idata)
   40812      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40813      372102 :          data_tmp = IAND(data_tmp, mask_left(19))
   40814      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40815      372102 :          ipack = ipack + 1
   40816      372102 :          packed_data(ipack) = pack_tmp
   40817      372102 :          data_tmp = full_data(idata)
   40818      372102 :          pack_tmp = ISHFT(data_tmp, 32)
   40819      372102 :          pack_tmp = ISHFT(pack_tmp, -32)
   40820      372102 :          idata = idata + 1
   40821      372102 :          data_tmp = full_data(idata)
   40822      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40823      372102 :          data_tmp = IAND(data_tmp, mask_left(32))
   40824      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40825      372102 :          ipack = ipack + 1
   40826      372102 :          packed_data(ipack) = pack_tmp
   40827      372102 :          data_tmp = full_data(idata)
   40828      372102 :          pack_tmp = ISHFT(data_tmp, 45)
   40829      372102 :          pack_tmp = ISHFT(pack_tmp, -45)
   40830      372102 :          idata = idata + 1
   40831      372102 :          data_tmp = full_data(idata)
   40832      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40833      372102 :          data_tmp = IAND(data_tmp, mask_left(45))
   40834      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40835      372102 :          ipack = ipack + 1
   40836      372102 :          packed_data(ipack) = pack_tmp
   40837      372102 :          data_tmp = full_data(idata)
   40838      372102 :          pack_tmp = ISHFT(data_tmp, 58)
   40839      372102 :          pack_tmp = ISHFT(pack_tmp, -51)
   40840      372102 :          idata = idata + 1
   40841      372102 :          data_tmp = full_data(idata)
   40842      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40843      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40844      372102 :          pack_tmp = ISHFT(pack_tmp, -7)
   40845      372102 :          idata = idata + 1
   40846      372102 :          data_tmp = full_data(idata)
   40847      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40848      372102 :          data_tmp = IAND(data_tmp, mask_left(7))
   40849      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40850      372102 :          ipack = ipack + 1
   40851      372102 :          packed_data(ipack) = pack_tmp
   40852      372102 :          data_tmp = full_data(idata)
   40853      372102 :          pack_tmp = ISHFT(data_tmp, 20)
   40854      372102 :          pack_tmp = ISHFT(pack_tmp, -20)
   40855      372102 :          idata = idata + 1
   40856      372102 :          data_tmp = full_data(idata)
   40857      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40858      372102 :          data_tmp = IAND(data_tmp, mask_left(20))
   40859      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40860      372102 :          ipack = ipack + 1
   40861      372102 :          packed_data(ipack) = pack_tmp
   40862      372102 :          data_tmp = full_data(idata)
   40863      372102 :          pack_tmp = ISHFT(data_tmp, 33)
   40864      372102 :          pack_tmp = ISHFT(pack_tmp, -33)
   40865      372102 :          idata = idata + 1
   40866      372102 :          data_tmp = full_data(idata)
   40867      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40868      372102 :          data_tmp = IAND(data_tmp, mask_left(33))
   40869      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40870      372102 :          ipack = ipack + 1
   40871      372102 :          packed_data(ipack) = pack_tmp
   40872      372102 :          data_tmp = full_data(idata)
   40873      372102 :          pack_tmp = ISHFT(data_tmp, 46)
   40874      372102 :          pack_tmp = ISHFT(pack_tmp, -46)
   40875      372102 :          idata = idata + 1
   40876      372102 :          data_tmp = full_data(idata)
   40877      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40878      372102 :          data_tmp = IAND(data_tmp, mask_left(46))
   40879      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40880      372102 :          ipack = ipack + 1
   40881      372102 :          packed_data(ipack) = pack_tmp
   40882      372102 :          data_tmp = full_data(idata)
   40883      372102 :          pack_tmp = ISHFT(data_tmp, 59)
   40884      372102 :          pack_tmp = ISHFT(pack_tmp, -51)
   40885      372102 :          idata = idata + 1
   40886      372102 :          data_tmp = full_data(idata)
   40887      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40888      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40889      372102 :          pack_tmp = ISHFT(pack_tmp, -8)
   40890      372102 :          idata = idata + 1
   40891      372102 :          data_tmp = full_data(idata)
   40892      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40893      372102 :          data_tmp = IAND(data_tmp, mask_left(8))
   40894      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40895      372102 :          ipack = ipack + 1
   40896      372102 :          packed_data(ipack) = pack_tmp
   40897      372102 :          data_tmp = full_data(idata)
   40898      372102 :          pack_tmp = ISHFT(data_tmp, 21)
   40899      372102 :          pack_tmp = ISHFT(pack_tmp, -21)
   40900      372102 :          idata = idata + 1
   40901      372102 :          data_tmp = full_data(idata)
   40902      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40903      372102 :          data_tmp = IAND(data_tmp, mask_left(21))
   40904      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40905      372102 :          ipack = ipack + 1
   40906      372102 :          packed_data(ipack) = pack_tmp
   40907      372102 :          data_tmp = full_data(idata)
   40908      372102 :          pack_tmp = ISHFT(data_tmp, 34)
   40909      372102 :          pack_tmp = ISHFT(pack_tmp, -34)
   40910      372102 :          idata = idata + 1
   40911      372102 :          data_tmp = full_data(idata)
   40912      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40913      372102 :          data_tmp = IAND(data_tmp, mask_left(34))
   40914      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40915      372102 :          ipack = ipack + 1
   40916      372102 :          packed_data(ipack) = pack_tmp
   40917      372102 :          data_tmp = full_data(idata)
   40918      372102 :          pack_tmp = ISHFT(data_tmp, 47)
   40919      372102 :          pack_tmp = ISHFT(pack_tmp, -47)
   40920      372102 :          idata = idata + 1
   40921      372102 :          data_tmp = full_data(idata)
   40922      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40923      372102 :          data_tmp = IAND(data_tmp, mask_left(47))
   40924      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40925      372102 :          ipack = ipack + 1
   40926      372102 :          packed_data(ipack) = pack_tmp
   40927      372102 :          data_tmp = full_data(idata)
   40928      372102 :          pack_tmp = ISHFT(data_tmp, 60)
   40929      372102 :          pack_tmp = ISHFT(pack_tmp, -51)
   40930      372102 :          idata = idata + 1
   40931      372102 :          data_tmp = full_data(idata)
   40932      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40933      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40934      372102 :          pack_tmp = ISHFT(pack_tmp, -9)
   40935      372102 :          idata = idata + 1
   40936      372102 :          data_tmp = full_data(idata)
   40937      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40938      372102 :          data_tmp = IAND(data_tmp, mask_left(9))
   40939      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40940      372102 :          ipack = ipack + 1
   40941      372102 :          packed_data(ipack) = pack_tmp
   40942      372102 :          data_tmp = full_data(idata)
   40943      372102 :          pack_tmp = ISHFT(data_tmp, 22)
   40944      372102 :          pack_tmp = ISHFT(pack_tmp, -22)
   40945      372102 :          idata = idata + 1
   40946      372102 :          data_tmp = full_data(idata)
   40947      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40948      372102 :          data_tmp = IAND(data_tmp, mask_left(22))
   40949      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40950      372102 :          ipack = ipack + 1
   40951      372102 :          packed_data(ipack) = pack_tmp
   40952      372102 :          data_tmp = full_data(idata)
   40953      372102 :          pack_tmp = ISHFT(data_tmp, 35)
   40954      372102 :          pack_tmp = ISHFT(pack_tmp, -35)
   40955      372102 :          idata = idata + 1
   40956      372102 :          data_tmp = full_data(idata)
   40957      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40958      372102 :          data_tmp = IAND(data_tmp, mask_left(35))
   40959      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40960      372102 :          ipack = ipack + 1
   40961      372102 :          packed_data(ipack) = pack_tmp
   40962      372102 :          data_tmp = full_data(idata)
   40963      372102 :          pack_tmp = ISHFT(data_tmp, 48)
   40964      372102 :          pack_tmp = ISHFT(pack_tmp, -48)
   40965      372102 :          idata = idata + 1
   40966      372102 :          data_tmp = full_data(idata)
   40967      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40968      372102 :          data_tmp = IAND(data_tmp, mask_left(48))
   40969      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40970      372102 :          ipack = ipack + 1
   40971      372102 :          packed_data(ipack) = pack_tmp
   40972      372102 :          data_tmp = full_data(idata)
   40973      372102 :          pack_tmp = ISHFT(data_tmp, 61)
   40974      372102 :          pack_tmp = ISHFT(pack_tmp, -51)
   40975      372102 :          idata = idata + 1
   40976      372102 :          data_tmp = full_data(idata)
   40977      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40978      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40979      372102 :          pack_tmp = ISHFT(pack_tmp, -10)
   40980      372102 :          idata = idata + 1
   40981      372102 :          data_tmp = full_data(idata)
   40982      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40983      372102 :          data_tmp = IAND(data_tmp, mask_left(10))
   40984      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40985      372102 :          ipack = ipack + 1
   40986      372102 :          packed_data(ipack) = pack_tmp
   40987      372102 :          data_tmp = full_data(idata)
   40988      372102 :          pack_tmp = ISHFT(data_tmp, 23)
   40989      372102 :          pack_tmp = ISHFT(pack_tmp, -23)
   40990      372102 :          idata = idata + 1
   40991      372102 :          data_tmp = full_data(idata)
   40992      372102 :          data_tmp = ISHFT(data_tmp, 13)
   40993      372102 :          data_tmp = IAND(data_tmp, mask_left(23))
   40994      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40995      372102 :          ipack = ipack + 1
   40996      372102 :          packed_data(ipack) = pack_tmp
   40997      372102 :          data_tmp = full_data(idata)
   40998      372102 :          pack_tmp = ISHFT(data_tmp, 36)
   40999      372102 :          pack_tmp = ISHFT(pack_tmp, -36)
   41000      372102 :          idata = idata + 1
   41001      372102 :          data_tmp = full_data(idata)
   41002      372102 :          data_tmp = ISHFT(data_tmp, 13)
   41003      372102 :          data_tmp = IAND(data_tmp, mask_left(36))
   41004      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41005      372102 :          ipack = ipack + 1
   41006      372102 :          packed_data(ipack) = pack_tmp
   41007      372102 :          data_tmp = full_data(idata)
   41008      372102 :          pack_tmp = ISHFT(data_tmp, 49)
   41009      372102 :          pack_tmp = ISHFT(pack_tmp, -49)
   41010      372102 :          idata = idata + 1
   41011      372102 :          data_tmp = full_data(idata)
   41012      372102 :          data_tmp = ISHFT(data_tmp, 13)
   41013      372102 :          data_tmp = IAND(data_tmp, mask_left(49))
   41014      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41015      372102 :          ipack = ipack + 1
   41016      372102 :          packed_data(ipack) = pack_tmp
   41017      372102 :          data_tmp = full_data(idata)
   41018      372102 :          pack_tmp = ISHFT(data_tmp, 62)
   41019      372102 :          pack_tmp = ISHFT(pack_tmp, -51)
   41020      372102 :          idata = idata + 1
   41021      372102 :          data_tmp = full_data(idata)
   41022      372102 :          data_tmp = ISHFT(data_tmp, 13)
   41023      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41024      372102 :          pack_tmp = ISHFT(pack_tmp, -11)
   41025      372102 :          idata = idata + 1
   41026      372102 :          data_tmp = full_data(idata)
   41027      372102 :          data_tmp = ISHFT(data_tmp, 13)
   41028      372102 :          data_tmp = IAND(data_tmp, mask_left(11))
   41029      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41030      372102 :          ipack = ipack + 1
   41031      372102 :          packed_data(ipack) = pack_tmp
   41032      372102 :          data_tmp = full_data(idata)
   41033      372102 :          pack_tmp = ISHFT(data_tmp, 24)
   41034      372102 :          pack_tmp = ISHFT(pack_tmp, -24)
   41035      372102 :          idata = idata + 1
   41036      372102 :          data_tmp = full_data(idata)
   41037      372102 :          data_tmp = ISHFT(data_tmp, 13)
   41038      372102 :          data_tmp = IAND(data_tmp, mask_left(24))
   41039      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41040      372102 :          ipack = ipack + 1
   41041      372102 :          packed_data(ipack) = pack_tmp
   41042      372102 :          data_tmp = full_data(idata)
   41043      372102 :          pack_tmp = ISHFT(data_tmp, 37)
   41044      372102 :          pack_tmp = ISHFT(pack_tmp, -37)
   41045      372102 :          idata = idata + 1
   41046      372102 :          data_tmp = full_data(idata)
   41047      372102 :          data_tmp = ISHFT(data_tmp, 13)
   41048      372102 :          data_tmp = IAND(data_tmp, mask_left(37))
   41049      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41050      372102 :          ipack = ipack + 1
   41051      372102 :          packed_data(ipack) = pack_tmp
   41052      372102 :          data_tmp = full_data(idata)
   41053      372102 :          pack_tmp = ISHFT(data_tmp, 50)
   41054      372102 :          pack_tmp = ISHFT(pack_tmp, -50)
   41055      372102 :          idata = idata + 1
   41056      372102 :          data_tmp = full_data(idata)
   41057      372102 :          data_tmp = ISHFT(data_tmp, 13)
   41058      372102 :          data_tmp = IAND(data_tmp, mask_left(50))
   41059      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41060      372102 :          ipack = ipack + 1
   41061      372102 :          packed_data(ipack) = pack_tmp
   41062      372102 :          data_tmp = full_data(idata)
   41063      372102 :          pack_tmp = ISHFT(data_tmp, 63)
   41064      372102 :          pack_tmp = ISHFT(pack_tmp, -51)
   41065      372102 :          idata = idata + 1
   41066      372102 :          data_tmp = full_data(idata)
   41067      372102 :          data_tmp = ISHFT(data_tmp, 13)
   41068      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41069      372102 :          pack_tmp = ISHFT(pack_tmp, -12)
   41070      372102 :          idata = idata + 1
   41071      372102 :          data_tmp = full_data(idata)
   41072      372102 :          data_tmp = ISHFT(data_tmp, 13)
   41073      372102 :          data_tmp = IAND(data_tmp, mask_left(12))
   41074      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41075      372102 :          ipack = ipack + 1
   41076      372102 :          packed_data(ipack) = pack_tmp
   41077      372102 :          data_tmp = full_data(idata)
   41078      372102 :          pack_tmp = ISHFT(data_tmp, 25)
   41079      372102 :          pack_tmp = ISHFT(pack_tmp, -25)
   41080      372102 :          idata = idata + 1
   41081      372102 :          data_tmp = full_data(idata)
   41082      372102 :          data_tmp = ISHFT(data_tmp, 13)
   41083      372102 :          data_tmp = IAND(data_tmp, mask_left(25))
   41084      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41085      372102 :          ipack = ipack + 1
   41086      372102 :          packed_data(ipack) = pack_tmp
   41087      372102 :          data_tmp = full_data(idata)
   41088      372102 :          pack_tmp = ISHFT(data_tmp, 38)
   41089      372102 :          pack_tmp = ISHFT(pack_tmp, -38)
   41090      372102 :          idata = idata + 1
   41091      372102 :          data_tmp = full_data(idata)
   41092      372102 :          data_tmp = ISHFT(data_tmp, 13)
   41093      372102 :          data_tmp = IAND(data_tmp, mask_left(38))
   41094      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41095      372102 :          ipack = ipack + 1
   41096      372102 :          packed_data(ipack) = pack_tmp
   41097      372102 :          data_tmp = full_data(idata)
   41098      372102 :          pack_tmp = ISHFT(data_tmp, 51)
   41099      372102 :          pack_tmp = ISHFT(pack_tmp, -51)
   41100      372102 :          idata = idata + 1
   41101      372102 :          data_tmp = full_data(idata)
   41102      372102 :          data_tmp = ISHFT(data_tmp, 13)
   41103      372102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41104             :          pack_tmp = ISHFT(pack_tmp, 0)
   41105      372102 :          pack_tmp = ISHFT(pack_tmp, 0)
   41106      372102 :          ipack = ipack + 1
   41107      372146 :          packed_data(ipack) = pack_tmp
   41108             :       END DO
   41109       23488 :       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       23488 :    END SUBROUTINE ints2bits_51
   41113             : 
   41114             : ! **************************************************************************************************
   41115             : !> \brief ...
   41116             : !> \param Ndata ...
   41117             : !> \param packed_data ...
   41118             : !> \param full_data ...
   41119             : ! **************************************************************************************************
   41120       96787 :    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       96787 :       ipack = 0
   41131       96787 :       idata = 0
   41132       96787 :       pack_tmp = 0
   41133       96787 :       Ndata_rep = (Ndata/64)*64
   41134       96787 :       DO kdata = 1, Ndata_rep, 64
   41135     1525234 :          idata = idata + 1
   41136     1525234 :          data_tmp = ISHFT(pack_tmp, 51)
   41137     1525234 :          ipack = ipack + 1
   41138     1525234 :          pack_tmp = packed_data(ipack)
   41139     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   41140     1525234 :          pack_tmp = ISHFT(pack_tmp, -51)
   41141     1525234 :          idata = idata + 1
   41142     1525234 :          data_tmp = ISHFT(pack_tmp, 38)
   41143     1525234 :          ipack = ipack + 1
   41144     1525234 :          pack_tmp = packed_data(ipack)
   41145     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   41146     1525234 :          pack_tmp = ISHFT(pack_tmp, -38)
   41147     1525234 :          idata = idata + 1
   41148     1525234 :          data_tmp = ISHFT(pack_tmp, 25)
   41149     1525234 :          ipack = ipack + 1
   41150     1525234 :          pack_tmp = packed_data(ipack)
   41151     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   41152     1525234 :          pack_tmp = ISHFT(pack_tmp, -25)
   41153     1525234 :          idata = idata + 1
   41154     1525234 :          data_tmp = ISHFT(pack_tmp, 12)
   41155     1525234 :          ipack = ipack + 1
   41156     1525234 :          pack_tmp = packed_data(ipack)
   41157     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   41158     1525234 :          pack_tmp = ISHFT(pack_tmp, -12)
   41159     1525234 :          idata = idata + 1
   41160     1525234 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41161     1525234 :          full_data(idata) = data_tmp
   41162     1525234 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41163     1525234 :          idata = idata + 1
   41164     1525234 :          data_tmp = ISHFT(pack_tmp, 50)
   41165     1525234 :          ipack = ipack + 1
   41166     1525234 :          pack_tmp = packed_data(ipack)
   41167     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   41168     1525234 :          pack_tmp = ISHFT(pack_tmp, -50)
   41169     1525234 :          idata = idata + 1
   41170     1525234 :          data_tmp = ISHFT(pack_tmp, 37)
   41171     1525234 :          ipack = ipack + 1
   41172     1525234 :          pack_tmp = packed_data(ipack)
   41173     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   41174     1525234 :          pack_tmp = ISHFT(pack_tmp, -37)
   41175     1525234 :          idata = idata + 1
   41176     1525234 :          data_tmp = ISHFT(pack_tmp, 24)
   41177     1525234 :          ipack = ipack + 1
   41178     1525234 :          pack_tmp = packed_data(ipack)
   41179     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   41180     1525234 :          pack_tmp = ISHFT(pack_tmp, -24)
   41181     1525234 :          idata = idata + 1
   41182     1525234 :          data_tmp = ISHFT(pack_tmp, 11)
   41183     1525234 :          ipack = ipack + 1
   41184     1525234 :          pack_tmp = packed_data(ipack)
   41185     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   41186     1525234 :          pack_tmp = ISHFT(pack_tmp, -11)
   41187     1525234 :          idata = idata + 1
   41188     1525234 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41189     1525234 :          full_data(idata) = data_tmp
   41190     1525234 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41191     1525234 :          idata = idata + 1
   41192     1525234 :          data_tmp = ISHFT(pack_tmp, 49)
   41193     1525234 :          ipack = ipack + 1
   41194     1525234 :          pack_tmp = packed_data(ipack)
   41195     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   41196     1525234 :          pack_tmp = ISHFT(pack_tmp, -49)
   41197     1525234 :          idata = idata + 1
   41198     1525234 :          data_tmp = ISHFT(pack_tmp, 36)
   41199     1525234 :          ipack = ipack + 1
   41200     1525234 :          pack_tmp = packed_data(ipack)
   41201     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   41202     1525234 :          pack_tmp = ISHFT(pack_tmp, -36)
   41203     1525234 :          idata = idata + 1
   41204     1525234 :          data_tmp = ISHFT(pack_tmp, 23)
   41205     1525234 :          ipack = ipack + 1
   41206     1525234 :          pack_tmp = packed_data(ipack)
   41207     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   41208     1525234 :          pack_tmp = ISHFT(pack_tmp, -23)
   41209     1525234 :          idata = idata + 1
   41210     1525234 :          data_tmp = ISHFT(pack_tmp, 10)
   41211     1525234 :          ipack = ipack + 1
   41212     1525234 :          pack_tmp = packed_data(ipack)
   41213     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   41214     1525234 :          pack_tmp = ISHFT(pack_tmp, -10)
   41215     1525234 :          idata = idata + 1
   41216     1525234 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41217     1525234 :          full_data(idata) = data_tmp
   41218     1525234 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41219     1525234 :          idata = idata + 1
   41220     1525234 :          data_tmp = ISHFT(pack_tmp, 48)
   41221     1525234 :          ipack = ipack + 1
   41222     1525234 :          pack_tmp = packed_data(ipack)
   41223     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   41224     1525234 :          pack_tmp = ISHFT(pack_tmp, -48)
   41225     1525234 :          idata = idata + 1
   41226     1525234 :          data_tmp = ISHFT(pack_tmp, 35)
   41227     1525234 :          ipack = ipack + 1
   41228     1525234 :          pack_tmp = packed_data(ipack)
   41229     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   41230     1525234 :          pack_tmp = ISHFT(pack_tmp, -35)
   41231     1525234 :          idata = idata + 1
   41232     1525234 :          data_tmp = ISHFT(pack_tmp, 22)
   41233     1525234 :          ipack = ipack + 1
   41234     1525234 :          pack_tmp = packed_data(ipack)
   41235     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   41236     1525234 :          pack_tmp = ISHFT(pack_tmp, -22)
   41237     1525234 :          idata = idata + 1
   41238     1525234 :          data_tmp = ISHFT(pack_tmp, 9)
   41239     1525234 :          ipack = ipack + 1
   41240     1525234 :          pack_tmp = packed_data(ipack)
   41241     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   41242     1525234 :          pack_tmp = ISHFT(pack_tmp, -9)
   41243     1525234 :          idata = idata + 1
   41244     1525234 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41245     1525234 :          full_data(idata) = data_tmp
   41246     1525234 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41247     1525234 :          idata = idata + 1
   41248     1525234 :          data_tmp = ISHFT(pack_tmp, 47)
   41249     1525234 :          ipack = ipack + 1
   41250     1525234 :          pack_tmp = packed_data(ipack)
   41251     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   41252     1525234 :          pack_tmp = ISHFT(pack_tmp, -47)
   41253     1525234 :          idata = idata + 1
   41254     1525234 :          data_tmp = ISHFT(pack_tmp, 34)
   41255     1525234 :          ipack = ipack + 1
   41256     1525234 :          pack_tmp = packed_data(ipack)
   41257     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   41258     1525234 :          pack_tmp = ISHFT(pack_tmp, -34)
   41259     1525234 :          idata = idata + 1
   41260     1525234 :          data_tmp = ISHFT(pack_tmp, 21)
   41261     1525234 :          ipack = ipack + 1
   41262     1525234 :          pack_tmp = packed_data(ipack)
   41263     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   41264     1525234 :          pack_tmp = ISHFT(pack_tmp, -21)
   41265     1525234 :          idata = idata + 1
   41266     1525234 :          data_tmp = ISHFT(pack_tmp, 8)
   41267     1525234 :          ipack = ipack + 1
   41268     1525234 :          pack_tmp = packed_data(ipack)
   41269     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   41270     1525234 :          pack_tmp = ISHFT(pack_tmp, -8)
   41271     1525234 :          idata = idata + 1
   41272     1525234 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41273     1525234 :          full_data(idata) = data_tmp
   41274     1525234 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41275     1525234 :          idata = idata + 1
   41276     1525234 :          data_tmp = ISHFT(pack_tmp, 46)
   41277     1525234 :          ipack = ipack + 1
   41278     1525234 :          pack_tmp = packed_data(ipack)
   41279     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   41280     1525234 :          pack_tmp = ISHFT(pack_tmp, -46)
   41281     1525234 :          idata = idata + 1
   41282     1525234 :          data_tmp = ISHFT(pack_tmp, 33)
   41283     1525234 :          ipack = ipack + 1
   41284     1525234 :          pack_tmp = packed_data(ipack)
   41285     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   41286     1525234 :          pack_tmp = ISHFT(pack_tmp, -33)
   41287     1525234 :          idata = idata + 1
   41288     1525234 :          data_tmp = ISHFT(pack_tmp, 20)
   41289     1525234 :          ipack = ipack + 1
   41290     1525234 :          pack_tmp = packed_data(ipack)
   41291     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   41292     1525234 :          pack_tmp = ISHFT(pack_tmp, -20)
   41293     1525234 :          idata = idata + 1
   41294     1525234 :          data_tmp = ISHFT(pack_tmp, 7)
   41295     1525234 :          ipack = ipack + 1
   41296     1525234 :          pack_tmp = packed_data(ipack)
   41297     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   41298     1525234 :          pack_tmp = ISHFT(pack_tmp, -7)
   41299     1525234 :          idata = idata + 1
   41300     1525234 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41301     1525234 :          full_data(idata) = data_tmp
   41302     1525234 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41303     1525234 :          idata = idata + 1
   41304     1525234 :          data_tmp = ISHFT(pack_tmp, 45)
   41305     1525234 :          ipack = ipack + 1
   41306     1525234 :          pack_tmp = packed_data(ipack)
   41307     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   41308     1525234 :          pack_tmp = ISHFT(pack_tmp, -45)
   41309     1525234 :          idata = idata + 1
   41310     1525234 :          data_tmp = ISHFT(pack_tmp, 32)
   41311     1525234 :          ipack = ipack + 1
   41312     1525234 :          pack_tmp = packed_data(ipack)
   41313     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   41314     1525234 :          pack_tmp = ISHFT(pack_tmp, -32)
   41315     1525234 :          idata = idata + 1
   41316     1525234 :          data_tmp = ISHFT(pack_tmp, 19)
   41317     1525234 :          ipack = ipack + 1
   41318     1525234 :          pack_tmp = packed_data(ipack)
   41319     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   41320     1525234 :          pack_tmp = ISHFT(pack_tmp, -19)
   41321     1525234 :          idata = idata + 1
   41322     1525234 :          data_tmp = ISHFT(pack_tmp, 6)
   41323     1525234 :          ipack = ipack + 1
   41324     1525234 :          pack_tmp = packed_data(ipack)
   41325     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   41326     1525234 :          pack_tmp = ISHFT(pack_tmp, -6)
   41327     1525234 :          idata = idata + 1
   41328     1525234 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41329     1525234 :          full_data(idata) = data_tmp
   41330     1525234 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41331     1525234 :          idata = idata + 1
   41332     1525234 :          data_tmp = ISHFT(pack_tmp, 44)
   41333     1525234 :          ipack = ipack + 1
   41334     1525234 :          pack_tmp = packed_data(ipack)
   41335     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   41336     1525234 :          pack_tmp = ISHFT(pack_tmp, -44)
   41337     1525234 :          idata = idata + 1
   41338     1525234 :          data_tmp = ISHFT(pack_tmp, 31)
   41339     1525234 :          ipack = ipack + 1
   41340     1525234 :          pack_tmp = packed_data(ipack)
   41341     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   41342     1525234 :          pack_tmp = ISHFT(pack_tmp, -31)
   41343     1525234 :          idata = idata + 1
   41344     1525234 :          data_tmp = ISHFT(pack_tmp, 18)
   41345     1525234 :          ipack = ipack + 1
   41346     1525234 :          pack_tmp = packed_data(ipack)
   41347     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   41348     1525234 :          pack_tmp = ISHFT(pack_tmp, -18)
   41349     1525234 :          idata = idata + 1
   41350     1525234 :          data_tmp = ISHFT(pack_tmp, 5)
   41351     1525234 :          ipack = ipack + 1
   41352     1525234 :          pack_tmp = packed_data(ipack)
   41353     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   41354     1525234 :          pack_tmp = ISHFT(pack_tmp, -5)
   41355     1525234 :          idata = idata + 1
   41356     1525234 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41357     1525234 :          full_data(idata) = data_tmp
   41358     1525234 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41359     1525234 :          idata = idata + 1
   41360     1525234 :          data_tmp = ISHFT(pack_tmp, 43)
   41361     1525234 :          ipack = ipack + 1
   41362     1525234 :          pack_tmp = packed_data(ipack)
   41363     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   41364     1525234 :          pack_tmp = ISHFT(pack_tmp, -43)
   41365     1525234 :          idata = idata + 1
   41366     1525234 :          data_tmp = ISHFT(pack_tmp, 30)
   41367     1525234 :          ipack = ipack + 1
   41368     1525234 :          pack_tmp = packed_data(ipack)
   41369     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   41370     1525234 :          pack_tmp = ISHFT(pack_tmp, -30)
   41371     1525234 :          idata = idata + 1
   41372     1525234 :          data_tmp = ISHFT(pack_tmp, 17)
   41373     1525234 :          ipack = ipack + 1
   41374     1525234 :          pack_tmp = packed_data(ipack)
   41375     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   41376     1525234 :          pack_tmp = ISHFT(pack_tmp, -17)
   41377     1525234 :          idata = idata + 1
   41378     1525234 :          data_tmp = ISHFT(pack_tmp, 4)
   41379     1525234 :          ipack = ipack + 1
   41380     1525234 :          pack_tmp = packed_data(ipack)
   41381     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   41382     1525234 :          pack_tmp = ISHFT(pack_tmp, -4)
   41383     1525234 :          idata = idata + 1
   41384     1525234 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41385     1525234 :          full_data(idata) = data_tmp
   41386     1525234 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41387     1525234 :          idata = idata + 1
   41388     1525234 :          data_tmp = ISHFT(pack_tmp, 42)
   41389     1525234 :          ipack = ipack + 1
   41390     1525234 :          pack_tmp = packed_data(ipack)
   41391     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   41392     1525234 :          pack_tmp = ISHFT(pack_tmp, -42)
   41393     1525234 :          idata = idata + 1
   41394     1525234 :          data_tmp = ISHFT(pack_tmp, 29)
   41395     1525234 :          ipack = ipack + 1
   41396     1525234 :          pack_tmp = packed_data(ipack)
   41397     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   41398     1525234 :          pack_tmp = ISHFT(pack_tmp, -29)
   41399     1525234 :          idata = idata + 1
   41400     1525234 :          data_tmp = ISHFT(pack_tmp, 16)
   41401     1525234 :          ipack = ipack + 1
   41402     1525234 :          pack_tmp = packed_data(ipack)
   41403     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   41404     1525234 :          pack_tmp = ISHFT(pack_tmp, -16)
   41405     1525234 :          idata = idata + 1
   41406     1525234 :          data_tmp = ISHFT(pack_tmp, 3)
   41407     1525234 :          ipack = ipack + 1
   41408     1525234 :          pack_tmp = packed_data(ipack)
   41409     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   41410     1525234 :          pack_tmp = ISHFT(pack_tmp, -3)
   41411     1525234 :          idata = idata + 1
   41412     1525234 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41413     1525234 :          full_data(idata) = data_tmp
   41414     1525234 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41415     1525234 :          idata = idata + 1
   41416     1525234 :          data_tmp = ISHFT(pack_tmp, 41)
   41417     1525234 :          ipack = ipack + 1
   41418     1525234 :          pack_tmp = packed_data(ipack)
   41419     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   41420     1525234 :          pack_tmp = ISHFT(pack_tmp, -41)
   41421     1525234 :          idata = idata + 1
   41422     1525234 :          data_tmp = ISHFT(pack_tmp, 28)
   41423     1525234 :          ipack = ipack + 1
   41424     1525234 :          pack_tmp = packed_data(ipack)
   41425     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   41426     1525234 :          pack_tmp = ISHFT(pack_tmp, -28)
   41427     1525234 :          idata = idata + 1
   41428     1525234 :          data_tmp = ISHFT(pack_tmp, 15)
   41429     1525234 :          ipack = ipack + 1
   41430     1525234 :          pack_tmp = packed_data(ipack)
   41431     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   41432     1525234 :          pack_tmp = ISHFT(pack_tmp, -15)
   41433     1525234 :          idata = idata + 1
   41434     1525234 :          data_tmp = ISHFT(pack_tmp, 2)
   41435     1525234 :          ipack = ipack + 1
   41436     1525234 :          pack_tmp = packed_data(ipack)
   41437     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   41438     1525234 :          pack_tmp = ISHFT(pack_tmp, -2)
   41439     1525234 :          idata = idata + 1
   41440     1525234 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41441     1525234 :          full_data(idata) = data_tmp
   41442     1525234 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41443     1525234 :          idata = idata + 1
   41444     1525234 :          data_tmp = ISHFT(pack_tmp, 40)
   41445     1525234 :          ipack = ipack + 1
   41446     1525234 :          pack_tmp = packed_data(ipack)
   41447     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   41448     1525234 :          pack_tmp = ISHFT(pack_tmp, -40)
   41449     1525234 :          idata = idata + 1
   41450     1525234 :          data_tmp = ISHFT(pack_tmp, 27)
   41451     1525234 :          ipack = ipack + 1
   41452     1525234 :          pack_tmp = packed_data(ipack)
   41453     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   41454     1525234 :          pack_tmp = ISHFT(pack_tmp, -27)
   41455     1525234 :          idata = idata + 1
   41456     1525234 :          data_tmp = ISHFT(pack_tmp, 14)
   41457     1525234 :          ipack = ipack + 1
   41458     1525234 :          pack_tmp = packed_data(ipack)
   41459     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   41460     1525234 :          pack_tmp = ISHFT(pack_tmp, -14)
   41461     1525234 :          idata = idata + 1
   41462     1525234 :          data_tmp = ISHFT(pack_tmp, 1)
   41463     1525234 :          ipack = ipack + 1
   41464     1525234 :          pack_tmp = packed_data(ipack)
   41465     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   41466     1525234 :          pack_tmp = ISHFT(pack_tmp, -1)
   41467     1525234 :          idata = idata + 1
   41468     1525234 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41469     1525234 :          full_data(idata) = data_tmp
   41470     1525234 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41471     1525234 :          idata = idata + 1
   41472     1525234 :          data_tmp = ISHFT(pack_tmp, 39)
   41473     1525234 :          ipack = ipack + 1
   41474     1525234 :          pack_tmp = packed_data(ipack)
   41475     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   41476     1525234 :          pack_tmp = ISHFT(pack_tmp, -39)
   41477     1525234 :          idata = idata + 1
   41478     1525234 :          data_tmp = ISHFT(pack_tmp, 26)
   41479     1525234 :          ipack = ipack + 1
   41480     1525234 :          pack_tmp = packed_data(ipack)
   41481     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   41482     1525234 :          pack_tmp = ISHFT(pack_tmp, -26)
   41483     1525234 :          idata = idata + 1
   41484     1525234 :          data_tmp = ISHFT(pack_tmp, 13)
   41485     1525234 :          ipack = ipack + 1
   41486     1525234 :          pack_tmp = packed_data(ipack)
   41487     1525234 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   41488     1525234 :          pack_tmp = ISHFT(pack_tmp, -13)
   41489     1525234 :          idata = idata + 1
   41490     1525234 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41491     1525234 :          full_data(idata) = data_tmp
   41492     1525558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41493             :       END DO
   41494       96787 :       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       96787 :    END SUBROUTINE bits2ints_51
   41498             : 
   41499             : ! **************************************************************************************************
   41500             : !> \brief ...
   41501             : !> \param Ndata ...
   41502             : !> \param packed_data ...
   41503             : !> \param full_data ...
   41504             : ! **************************************************************************************************
   41505       23514 :    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       23514 :       idata = 0
   41516       23514 :       ipack = 0
   41517       23514 :       Ndata_rep = (Ndata/64)*64
   41518       23514 :       DO kdata = 1, Ndata_rep, 64
   41519      372280 :          pack_tmp = 0
   41520      372280 :          idata = idata + 1
   41521      372280 :          data_tmp = full_data(idata)
   41522      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41523      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41524      372280 :          pack_tmp = ISHFT(pack_tmp, -12)
   41525      372280 :          idata = idata + 1
   41526      372280 :          data_tmp = full_data(idata)
   41527      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41528      372280 :          data_tmp = IAND(data_tmp, mask_left(12))
   41529      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41530      372280 :          ipack = ipack + 1
   41531      372280 :          packed_data(ipack) = pack_tmp
   41532      372280 :          data_tmp = full_data(idata)
   41533      372280 :          pack_tmp = ISHFT(data_tmp, 24)
   41534      372280 :          pack_tmp = ISHFT(pack_tmp, -24)
   41535      372280 :          idata = idata + 1
   41536      372280 :          data_tmp = full_data(idata)
   41537      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41538      372280 :          data_tmp = IAND(data_tmp, mask_left(24))
   41539      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41540      372280 :          ipack = ipack + 1
   41541      372280 :          packed_data(ipack) = pack_tmp
   41542      372280 :          data_tmp = full_data(idata)
   41543      372280 :          pack_tmp = ISHFT(data_tmp, 36)
   41544      372280 :          pack_tmp = ISHFT(pack_tmp, -36)
   41545      372280 :          idata = idata + 1
   41546      372280 :          data_tmp = full_data(idata)
   41547      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41548      372280 :          data_tmp = IAND(data_tmp, mask_left(36))
   41549      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41550      372280 :          ipack = ipack + 1
   41551      372280 :          packed_data(ipack) = pack_tmp
   41552      372280 :          data_tmp = full_data(idata)
   41553      372280 :          pack_tmp = ISHFT(data_tmp, 48)
   41554      372280 :          pack_tmp = ISHFT(pack_tmp, -48)
   41555      372280 :          idata = idata + 1
   41556      372280 :          data_tmp = full_data(idata)
   41557      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41558      372280 :          data_tmp = IAND(data_tmp, mask_left(48))
   41559      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41560      372280 :          ipack = ipack + 1
   41561      372280 :          packed_data(ipack) = pack_tmp
   41562      372280 :          data_tmp = full_data(idata)
   41563      372280 :          pack_tmp = ISHFT(data_tmp, 60)
   41564      372280 :          pack_tmp = ISHFT(pack_tmp, -52)
   41565      372280 :          idata = idata + 1
   41566      372280 :          data_tmp = full_data(idata)
   41567      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41568      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41569      372280 :          pack_tmp = ISHFT(pack_tmp, -8)
   41570      372280 :          idata = idata + 1
   41571      372280 :          data_tmp = full_data(idata)
   41572      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41573      372280 :          data_tmp = IAND(data_tmp, mask_left(8))
   41574      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41575      372280 :          ipack = ipack + 1
   41576      372280 :          packed_data(ipack) = pack_tmp
   41577      372280 :          data_tmp = full_data(idata)
   41578      372280 :          pack_tmp = ISHFT(data_tmp, 20)
   41579      372280 :          pack_tmp = ISHFT(pack_tmp, -20)
   41580      372280 :          idata = idata + 1
   41581      372280 :          data_tmp = full_data(idata)
   41582      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41583      372280 :          data_tmp = IAND(data_tmp, mask_left(20))
   41584      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41585      372280 :          ipack = ipack + 1
   41586      372280 :          packed_data(ipack) = pack_tmp
   41587      372280 :          data_tmp = full_data(idata)
   41588      372280 :          pack_tmp = ISHFT(data_tmp, 32)
   41589      372280 :          pack_tmp = ISHFT(pack_tmp, -32)
   41590      372280 :          idata = idata + 1
   41591      372280 :          data_tmp = full_data(idata)
   41592      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41593      372280 :          data_tmp = IAND(data_tmp, mask_left(32))
   41594      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41595      372280 :          ipack = ipack + 1
   41596      372280 :          packed_data(ipack) = pack_tmp
   41597      372280 :          data_tmp = full_data(idata)
   41598      372280 :          pack_tmp = ISHFT(data_tmp, 44)
   41599      372280 :          pack_tmp = ISHFT(pack_tmp, -44)
   41600      372280 :          idata = idata + 1
   41601      372280 :          data_tmp = full_data(idata)
   41602      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41603      372280 :          data_tmp = IAND(data_tmp, mask_left(44))
   41604      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41605      372280 :          ipack = ipack + 1
   41606      372280 :          packed_data(ipack) = pack_tmp
   41607      372280 :          data_tmp = full_data(idata)
   41608      372280 :          pack_tmp = ISHFT(data_tmp, 56)
   41609      372280 :          pack_tmp = ISHFT(pack_tmp, -52)
   41610      372280 :          idata = idata + 1
   41611      372280 :          data_tmp = full_data(idata)
   41612      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41613      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41614      372280 :          pack_tmp = ISHFT(pack_tmp, -4)
   41615      372280 :          idata = idata + 1
   41616      372280 :          data_tmp = full_data(idata)
   41617      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41618      372280 :          data_tmp = IAND(data_tmp, mask_left(4))
   41619      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41620      372280 :          ipack = ipack + 1
   41621      372280 :          packed_data(ipack) = pack_tmp
   41622      372280 :          data_tmp = full_data(idata)
   41623      372280 :          pack_tmp = ISHFT(data_tmp, 16)
   41624      372280 :          pack_tmp = ISHFT(pack_tmp, -16)
   41625      372280 :          idata = idata + 1
   41626      372280 :          data_tmp = full_data(idata)
   41627      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41628      372280 :          data_tmp = IAND(data_tmp, mask_left(16))
   41629      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41630      372280 :          ipack = ipack + 1
   41631      372280 :          packed_data(ipack) = pack_tmp
   41632      372280 :          data_tmp = full_data(idata)
   41633      372280 :          pack_tmp = ISHFT(data_tmp, 28)
   41634      372280 :          pack_tmp = ISHFT(pack_tmp, -28)
   41635      372280 :          idata = idata + 1
   41636      372280 :          data_tmp = full_data(idata)
   41637      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41638      372280 :          data_tmp = IAND(data_tmp, mask_left(28))
   41639      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41640      372280 :          ipack = ipack + 1
   41641      372280 :          packed_data(ipack) = pack_tmp
   41642      372280 :          data_tmp = full_data(idata)
   41643      372280 :          pack_tmp = ISHFT(data_tmp, 40)
   41644      372280 :          pack_tmp = ISHFT(pack_tmp, -40)
   41645      372280 :          idata = idata + 1
   41646      372280 :          data_tmp = full_data(idata)
   41647      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41648      372280 :          data_tmp = IAND(data_tmp, mask_left(40))
   41649      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41650      372280 :          ipack = ipack + 1
   41651      372280 :          packed_data(ipack) = pack_tmp
   41652      372280 :          data_tmp = full_data(idata)
   41653      372280 :          pack_tmp = ISHFT(data_tmp, 52)
   41654      372280 :          pack_tmp = ISHFT(pack_tmp, -52)
   41655      372280 :          idata = idata + 1
   41656      372280 :          data_tmp = full_data(idata)
   41657      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41658      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41659      372280 :          pack_tmp = ISHFT(pack_tmp, 0)
   41660      372280 :          idata = idata + 1
   41661      372280 :          data_tmp = full_data(idata)
   41662             :          data_tmp = ISHFT(data_tmp, 12)
   41663      372280 :          data_tmp = IAND(data_tmp, mask_left(0))
   41664      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41665      372280 :          ipack = ipack + 1
   41666      372280 :          packed_data(ipack) = pack_tmp
   41667      372280 :          data_tmp = full_data(idata)
   41668      372280 :          pack_tmp = ISHFT(data_tmp, 12)
   41669      372280 :          pack_tmp = ISHFT(pack_tmp, -12)
   41670      372280 :          idata = idata + 1
   41671      372280 :          data_tmp = full_data(idata)
   41672      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41673      372280 :          data_tmp = IAND(data_tmp, mask_left(12))
   41674      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41675      372280 :          ipack = ipack + 1
   41676      372280 :          packed_data(ipack) = pack_tmp
   41677      372280 :          data_tmp = full_data(idata)
   41678      372280 :          pack_tmp = ISHFT(data_tmp, 24)
   41679      372280 :          pack_tmp = ISHFT(pack_tmp, -24)
   41680      372280 :          idata = idata + 1
   41681      372280 :          data_tmp = full_data(idata)
   41682      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41683      372280 :          data_tmp = IAND(data_tmp, mask_left(24))
   41684      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41685      372280 :          ipack = ipack + 1
   41686      372280 :          packed_data(ipack) = pack_tmp
   41687      372280 :          data_tmp = full_data(idata)
   41688      372280 :          pack_tmp = ISHFT(data_tmp, 36)
   41689      372280 :          pack_tmp = ISHFT(pack_tmp, -36)
   41690      372280 :          idata = idata + 1
   41691      372280 :          data_tmp = full_data(idata)
   41692      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41693      372280 :          data_tmp = IAND(data_tmp, mask_left(36))
   41694      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41695      372280 :          ipack = ipack + 1
   41696      372280 :          packed_data(ipack) = pack_tmp
   41697      372280 :          data_tmp = full_data(idata)
   41698      372280 :          pack_tmp = ISHFT(data_tmp, 48)
   41699      372280 :          pack_tmp = ISHFT(pack_tmp, -48)
   41700      372280 :          idata = idata + 1
   41701      372280 :          data_tmp = full_data(idata)
   41702      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41703      372280 :          data_tmp = IAND(data_tmp, mask_left(48))
   41704      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41705      372280 :          ipack = ipack + 1
   41706      372280 :          packed_data(ipack) = pack_tmp
   41707      372280 :          data_tmp = full_data(idata)
   41708      372280 :          pack_tmp = ISHFT(data_tmp, 60)
   41709      372280 :          pack_tmp = ISHFT(pack_tmp, -52)
   41710      372280 :          idata = idata + 1
   41711      372280 :          data_tmp = full_data(idata)
   41712      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41713      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41714      372280 :          pack_tmp = ISHFT(pack_tmp, -8)
   41715      372280 :          idata = idata + 1
   41716      372280 :          data_tmp = full_data(idata)
   41717      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41718      372280 :          data_tmp = IAND(data_tmp, mask_left(8))
   41719      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41720      372280 :          ipack = ipack + 1
   41721      372280 :          packed_data(ipack) = pack_tmp
   41722      372280 :          data_tmp = full_data(idata)
   41723      372280 :          pack_tmp = ISHFT(data_tmp, 20)
   41724      372280 :          pack_tmp = ISHFT(pack_tmp, -20)
   41725      372280 :          idata = idata + 1
   41726      372280 :          data_tmp = full_data(idata)
   41727      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41728      372280 :          data_tmp = IAND(data_tmp, mask_left(20))
   41729      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41730      372280 :          ipack = ipack + 1
   41731      372280 :          packed_data(ipack) = pack_tmp
   41732      372280 :          data_tmp = full_data(idata)
   41733      372280 :          pack_tmp = ISHFT(data_tmp, 32)
   41734      372280 :          pack_tmp = ISHFT(pack_tmp, -32)
   41735      372280 :          idata = idata + 1
   41736      372280 :          data_tmp = full_data(idata)
   41737      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41738      372280 :          data_tmp = IAND(data_tmp, mask_left(32))
   41739      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41740      372280 :          ipack = ipack + 1
   41741      372280 :          packed_data(ipack) = pack_tmp
   41742      372280 :          data_tmp = full_data(idata)
   41743      372280 :          pack_tmp = ISHFT(data_tmp, 44)
   41744      372280 :          pack_tmp = ISHFT(pack_tmp, -44)
   41745      372280 :          idata = idata + 1
   41746      372280 :          data_tmp = full_data(idata)
   41747      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41748      372280 :          data_tmp = IAND(data_tmp, mask_left(44))
   41749      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41750      372280 :          ipack = ipack + 1
   41751      372280 :          packed_data(ipack) = pack_tmp
   41752      372280 :          data_tmp = full_data(idata)
   41753      372280 :          pack_tmp = ISHFT(data_tmp, 56)
   41754      372280 :          pack_tmp = ISHFT(pack_tmp, -52)
   41755      372280 :          idata = idata + 1
   41756      372280 :          data_tmp = full_data(idata)
   41757      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41758      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41759      372280 :          pack_tmp = ISHFT(pack_tmp, -4)
   41760      372280 :          idata = idata + 1
   41761      372280 :          data_tmp = full_data(idata)
   41762      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41763      372280 :          data_tmp = IAND(data_tmp, mask_left(4))
   41764      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41765      372280 :          ipack = ipack + 1
   41766      372280 :          packed_data(ipack) = pack_tmp
   41767      372280 :          data_tmp = full_data(idata)
   41768      372280 :          pack_tmp = ISHFT(data_tmp, 16)
   41769      372280 :          pack_tmp = ISHFT(pack_tmp, -16)
   41770      372280 :          idata = idata + 1
   41771      372280 :          data_tmp = full_data(idata)
   41772      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41773      372280 :          data_tmp = IAND(data_tmp, mask_left(16))
   41774      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41775      372280 :          ipack = ipack + 1
   41776      372280 :          packed_data(ipack) = pack_tmp
   41777      372280 :          data_tmp = full_data(idata)
   41778      372280 :          pack_tmp = ISHFT(data_tmp, 28)
   41779      372280 :          pack_tmp = ISHFT(pack_tmp, -28)
   41780      372280 :          idata = idata + 1
   41781      372280 :          data_tmp = full_data(idata)
   41782      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41783      372280 :          data_tmp = IAND(data_tmp, mask_left(28))
   41784      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41785      372280 :          ipack = ipack + 1
   41786      372280 :          packed_data(ipack) = pack_tmp
   41787      372280 :          data_tmp = full_data(idata)
   41788      372280 :          pack_tmp = ISHFT(data_tmp, 40)
   41789      372280 :          pack_tmp = ISHFT(pack_tmp, -40)
   41790      372280 :          idata = idata + 1
   41791      372280 :          data_tmp = full_data(idata)
   41792      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41793      372280 :          data_tmp = IAND(data_tmp, mask_left(40))
   41794      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41795      372280 :          ipack = ipack + 1
   41796      372280 :          packed_data(ipack) = pack_tmp
   41797      372280 :          data_tmp = full_data(idata)
   41798      372280 :          pack_tmp = ISHFT(data_tmp, 52)
   41799      372280 :          pack_tmp = ISHFT(pack_tmp, -52)
   41800      372280 :          idata = idata + 1
   41801      372280 :          data_tmp = full_data(idata)
   41802      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41803      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41804      372280 :          pack_tmp = ISHFT(pack_tmp, 0)
   41805      372280 :          idata = idata + 1
   41806      372280 :          data_tmp = full_data(idata)
   41807             :          data_tmp = ISHFT(data_tmp, 12)
   41808      372280 :          data_tmp = IAND(data_tmp, mask_left(0))
   41809      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41810      372280 :          ipack = ipack + 1
   41811      372280 :          packed_data(ipack) = pack_tmp
   41812      372280 :          data_tmp = full_data(idata)
   41813      372280 :          pack_tmp = ISHFT(data_tmp, 12)
   41814      372280 :          pack_tmp = ISHFT(pack_tmp, -12)
   41815      372280 :          idata = idata + 1
   41816      372280 :          data_tmp = full_data(idata)
   41817      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41818      372280 :          data_tmp = IAND(data_tmp, mask_left(12))
   41819      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41820      372280 :          ipack = ipack + 1
   41821      372280 :          packed_data(ipack) = pack_tmp
   41822      372280 :          data_tmp = full_data(idata)
   41823      372280 :          pack_tmp = ISHFT(data_tmp, 24)
   41824      372280 :          pack_tmp = ISHFT(pack_tmp, -24)
   41825      372280 :          idata = idata + 1
   41826      372280 :          data_tmp = full_data(idata)
   41827      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41828      372280 :          data_tmp = IAND(data_tmp, mask_left(24))
   41829      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41830      372280 :          ipack = ipack + 1
   41831      372280 :          packed_data(ipack) = pack_tmp
   41832      372280 :          data_tmp = full_data(idata)
   41833      372280 :          pack_tmp = ISHFT(data_tmp, 36)
   41834      372280 :          pack_tmp = ISHFT(pack_tmp, -36)
   41835      372280 :          idata = idata + 1
   41836      372280 :          data_tmp = full_data(idata)
   41837      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41838      372280 :          data_tmp = IAND(data_tmp, mask_left(36))
   41839      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41840      372280 :          ipack = ipack + 1
   41841      372280 :          packed_data(ipack) = pack_tmp
   41842      372280 :          data_tmp = full_data(idata)
   41843      372280 :          pack_tmp = ISHFT(data_tmp, 48)
   41844      372280 :          pack_tmp = ISHFT(pack_tmp, -48)
   41845      372280 :          idata = idata + 1
   41846      372280 :          data_tmp = full_data(idata)
   41847      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41848      372280 :          data_tmp = IAND(data_tmp, mask_left(48))
   41849      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41850      372280 :          ipack = ipack + 1
   41851      372280 :          packed_data(ipack) = pack_tmp
   41852      372280 :          data_tmp = full_data(idata)
   41853      372280 :          pack_tmp = ISHFT(data_tmp, 60)
   41854      372280 :          pack_tmp = ISHFT(pack_tmp, -52)
   41855      372280 :          idata = idata + 1
   41856      372280 :          data_tmp = full_data(idata)
   41857      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41858      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41859      372280 :          pack_tmp = ISHFT(pack_tmp, -8)
   41860      372280 :          idata = idata + 1
   41861      372280 :          data_tmp = full_data(idata)
   41862      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41863      372280 :          data_tmp = IAND(data_tmp, mask_left(8))
   41864      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41865      372280 :          ipack = ipack + 1
   41866      372280 :          packed_data(ipack) = pack_tmp
   41867      372280 :          data_tmp = full_data(idata)
   41868      372280 :          pack_tmp = ISHFT(data_tmp, 20)
   41869      372280 :          pack_tmp = ISHFT(pack_tmp, -20)
   41870      372280 :          idata = idata + 1
   41871      372280 :          data_tmp = full_data(idata)
   41872      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41873      372280 :          data_tmp = IAND(data_tmp, mask_left(20))
   41874      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41875      372280 :          ipack = ipack + 1
   41876      372280 :          packed_data(ipack) = pack_tmp
   41877      372280 :          data_tmp = full_data(idata)
   41878      372280 :          pack_tmp = ISHFT(data_tmp, 32)
   41879      372280 :          pack_tmp = ISHFT(pack_tmp, -32)
   41880      372280 :          idata = idata + 1
   41881      372280 :          data_tmp = full_data(idata)
   41882      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41883      372280 :          data_tmp = IAND(data_tmp, mask_left(32))
   41884      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41885      372280 :          ipack = ipack + 1
   41886      372280 :          packed_data(ipack) = pack_tmp
   41887      372280 :          data_tmp = full_data(idata)
   41888      372280 :          pack_tmp = ISHFT(data_tmp, 44)
   41889      372280 :          pack_tmp = ISHFT(pack_tmp, -44)
   41890      372280 :          idata = idata + 1
   41891      372280 :          data_tmp = full_data(idata)
   41892      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41893      372280 :          data_tmp = IAND(data_tmp, mask_left(44))
   41894      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41895      372280 :          ipack = ipack + 1
   41896      372280 :          packed_data(ipack) = pack_tmp
   41897      372280 :          data_tmp = full_data(idata)
   41898      372280 :          pack_tmp = ISHFT(data_tmp, 56)
   41899      372280 :          pack_tmp = ISHFT(pack_tmp, -52)
   41900      372280 :          idata = idata + 1
   41901      372280 :          data_tmp = full_data(idata)
   41902      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41903      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41904      372280 :          pack_tmp = ISHFT(pack_tmp, -4)
   41905      372280 :          idata = idata + 1
   41906      372280 :          data_tmp = full_data(idata)
   41907      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41908      372280 :          data_tmp = IAND(data_tmp, mask_left(4))
   41909      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41910      372280 :          ipack = ipack + 1
   41911      372280 :          packed_data(ipack) = pack_tmp
   41912      372280 :          data_tmp = full_data(idata)
   41913      372280 :          pack_tmp = ISHFT(data_tmp, 16)
   41914      372280 :          pack_tmp = ISHFT(pack_tmp, -16)
   41915      372280 :          idata = idata + 1
   41916      372280 :          data_tmp = full_data(idata)
   41917      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41918      372280 :          data_tmp = IAND(data_tmp, mask_left(16))
   41919      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41920      372280 :          ipack = ipack + 1
   41921      372280 :          packed_data(ipack) = pack_tmp
   41922      372280 :          data_tmp = full_data(idata)
   41923      372280 :          pack_tmp = ISHFT(data_tmp, 28)
   41924      372280 :          pack_tmp = ISHFT(pack_tmp, -28)
   41925      372280 :          idata = idata + 1
   41926      372280 :          data_tmp = full_data(idata)
   41927      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41928      372280 :          data_tmp = IAND(data_tmp, mask_left(28))
   41929      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41930      372280 :          ipack = ipack + 1
   41931      372280 :          packed_data(ipack) = pack_tmp
   41932      372280 :          data_tmp = full_data(idata)
   41933      372280 :          pack_tmp = ISHFT(data_tmp, 40)
   41934      372280 :          pack_tmp = ISHFT(pack_tmp, -40)
   41935      372280 :          idata = idata + 1
   41936      372280 :          data_tmp = full_data(idata)
   41937      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41938      372280 :          data_tmp = IAND(data_tmp, mask_left(40))
   41939      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41940      372280 :          ipack = ipack + 1
   41941      372280 :          packed_data(ipack) = pack_tmp
   41942      372280 :          data_tmp = full_data(idata)
   41943      372280 :          pack_tmp = ISHFT(data_tmp, 52)
   41944      372280 :          pack_tmp = ISHFT(pack_tmp, -52)
   41945      372280 :          idata = idata + 1
   41946      372280 :          data_tmp = full_data(idata)
   41947      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41948      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41949      372280 :          pack_tmp = ISHFT(pack_tmp, 0)
   41950      372280 :          idata = idata + 1
   41951      372280 :          data_tmp = full_data(idata)
   41952             :          data_tmp = ISHFT(data_tmp, 12)
   41953      372280 :          data_tmp = IAND(data_tmp, mask_left(0))
   41954      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41955      372280 :          ipack = ipack + 1
   41956      372280 :          packed_data(ipack) = pack_tmp
   41957      372280 :          data_tmp = full_data(idata)
   41958      372280 :          pack_tmp = ISHFT(data_tmp, 12)
   41959      372280 :          pack_tmp = ISHFT(pack_tmp, -12)
   41960      372280 :          idata = idata + 1
   41961      372280 :          data_tmp = full_data(idata)
   41962      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41963      372280 :          data_tmp = IAND(data_tmp, mask_left(12))
   41964      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41965      372280 :          ipack = ipack + 1
   41966      372280 :          packed_data(ipack) = pack_tmp
   41967      372280 :          data_tmp = full_data(idata)
   41968      372280 :          pack_tmp = ISHFT(data_tmp, 24)
   41969      372280 :          pack_tmp = ISHFT(pack_tmp, -24)
   41970      372280 :          idata = idata + 1
   41971      372280 :          data_tmp = full_data(idata)
   41972      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41973      372280 :          data_tmp = IAND(data_tmp, mask_left(24))
   41974      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41975      372280 :          ipack = ipack + 1
   41976      372280 :          packed_data(ipack) = pack_tmp
   41977      372280 :          data_tmp = full_data(idata)
   41978      372280 :          pack_tmp = ISHFT(data_tmp, 36)
   41979      372280 :          pack_tmp = ISHFT(pack_tmp, -36)
   41980      372280 :          idata = idata + 1
   41981      372280 :          data_tmp = full_data(idata)
   41982      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41983      372280 :          data_tmp = IAND(data_tmp, mask_left(36))
   41984      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41985      372280 :          ipack = ipack + 1
   41986      372280 :          packed_data(ipack) = pack_tmp
   41987      372280 :          data_tmp = full_data(idata)
   41988      372280 :          pack_tmp = ISHFT(data_tmp, 48)
   41989      372280 :          pack_tmp = ISHFT(pack_tmp, -48)
   41990      372280 :          idata = idata + 1
   41991      372280 :          data_tmp = full_data(idata)
   41992      372280 :          data_tmp = ISHFT(data_tmp, 12)
   41993      372280 :          data_tmp = IAND(data_tmp, mask_left(48))
   41994      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41995      372280 :          ipack = ipack + 1
   41996      372280 :          packed_data(ipack) = pack_tmp
   41997      372280 :          data_tmp = full_data(idata)
   41998      372280 :          pack_tmp = ISHFT(data_tmp, 60)
   41999      372280 :          pack_tmp = ISHFT(pack_tmp, -52)
   42000      372280 :          idata = idata + 1
   42001      372280 :          data_tmp = full_data(idata)
   42002      372280 :          data_tmp = ISHFT(data_tmp, 12)
   42003      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42004      372280 :          pack_tmp = ISHFT(pack_tmp, -8)
   42005      372280 :          idata = idata + 1
   42006      372280 :          data_tmp = full_data(idata)
   42007      372280 :          data_tmp = ISHFT(data_tmp, 12)
   42008      372280 :          data_tmp = IAND(data_tmp, mask_left(8))
   42009      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42010      372280 :          ipack = ipack + 1
   42011      372280 :          packed_data(ipack) = pack_tmp
   42012      372280 :          data_tmp = full_data(idata)
   42013      372280 :          pack_tmp = ISHFT(data_tmp, 20)
   42014      372280 :          pack_tmp = ISHFT(pack_tmp, -20)
   42015      372280 :          idata = idata + 1
   42016      372280 :          data_tmp = full_data(idata)
   42017      372280 :          data_tmp = ISHFT(data_tmp, 12)
   42018      372280 :          data_tmp = IAND(data_tmp, mask_left(20))
   42019      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42020      372280 :          ipack = ipack + 1
   42021      372280 :          packed_data(ipack) = pack_tmp
   42022      372280 :          data_tmp = full_data(idata)
   42023      372280 :          pack_tmp = ISHFT(data_tmp, 32)
   42024      372280 :          pack_tmp = ISHFT(pack_tmp, -32)
   42025      372280 :          idata = idata + 1
   42026      372280 :          data_tmp = full_data(idata)
   42027      372280 :          data_tmp = ISHFT(data_tmp, 12)
   42028      372280 :          data_tmp = IAND(data_tmp, mask_left(32))
   42029      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42030      372280 :          ipack = ipack + 1
   42031      372280 :          packed_data(ipack) = pack_tmp
   42032      372280 :          data_tmp = full_data(idata)
   42033      372280 :          pack_tmp = ISHFT(data_tmp, 44)
   42034      372280 :          pack_tmp = ISHFT(pack_tmp, -44)
   42035      372280 :          idata = idata + 1
   42036      372280 :          data_tmp = full_data(idata)
   42037      372280 :          data_tmp = ISHFT(data_tmp, 12)
   42038      372280 :          data_tmp = IAND(data_tmp, mask_left(44))
   42039      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42040      372280 :          ipack = ipack + 1
   42041      372280 :          packed_data(ipack) = pack_tmp
   42042      372280 :          data_tmp = full_data(idata)
   42043      372280 :          pack_tmp = ISHFT(data_tmp, 56)
   42044      372280 :          pack_tmp = ISHFT(pack_tmp, -52)
   42045      372280 :          idata = idata + 1
   42046      372280 :          data_tmp = full_data(idata)
   42047      372280 :          data_tmp = ISHFT(data_tmp, 12)
   42048      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42049      372280 :          pack_tmp = ISHFT(pack_tmp, -4)
   42050      372280 :          idata = idata + 1
   42051      372280 :          data_tmp = full_data(idata)
   42052      372280 :          data_tmp = ISHFT(data_tmp, 12)
   42053      372280 :          data_tmp = IAND(data_tmp, mask_left(4))
   42054      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42055      372280 :          ipack = ipack + 1
   42056      372280 :          packed_data(ipack) = pack_tmp
   42057      372280 :          data_tmp = full_data(idata)
   42058      372280 :          pack_tmp = ISHFT(data_tmp, 16)
   42059      372280 :          pack_tmp = ISHFT(pack_tmp, -16)
   42060      372280 :          idata = idata + 1
   42061      372280 :          data_tmp = full_data(idata)
   42062      372280 :          data_tmp = ISHFT(data_tmp, 12)
   42063      372280 :          data_tmp = IAND(data_tmp, mask_left(16))
   42064      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42065      372280 :          ipack = ipack + 1
   42066      372280 :          packed_data(ipack) = pack_tmp
   42067      372280 :          data_tmp = full_data(idata)
   42068      372280 :          pack_tmp = ISHFT(data_tmp, 28)
   42069      372280 :          pack_tmp = ISHFT(pack_tmp, -28)
   42070      372280 :          idata = idata + 1
   42071      372280 :          data_tmp = full_data(idata)
   42072      372280 :          data_tmp = ISHFT(data_tmp, 12)
   42073      372280 :          data_tmp = IAND(data_tmp, mask_left(28))
   42074      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42075      372280 :          ipack = ipack + 1
   42076      372280 :          packed_data(ipack) = pack_tmp
   42077      372280 :          data_tmp = full_data(idata)
   42078      372280 :          pack_tmp = ISHFT(data_tmp, 40)
   42079      372280 :          pack_tmp = ISHFT(pack_tmp, -40)
   42080      372280 :          idata = idata + 1
   42081      372280 :          data_tmp = full_data(idata)
   42082      372280 :          data_tmp = ISHFT(data_tmp, 12)
   42083      372280 :          data_tmp = IAND(data_tmp, mask_left(40))
   42084      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42085      372280 :          ipack = ipack + 1
   42086      372280 :          packed_data(ipack) = pack_tmp
   42087      372280 :          data_tmp = full_data(idata)
   42088      372280 :          pack_tmp = ISHFT(data_tmp, 52)
   42089      372280 :          pack_tmp = ISHFT(pack_tmp, -52)
   42090      372280 :          idata = idata + 1
   42091      372280 :          data_tmp = full_data(idata)
   42092      372280 :          data_tmp = ISHFT(data_tmp, 12)
   42093      372280 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42094             :          pack_tmp = ISHFT(pack_tmp, 0)
   42095      372280 :          pack_tmp = ISHFT(pack_tmp, 0)
   42096      372280 :          ipack = ipack + 1
   42097      372290 :          packed_data(ipack) = pack_tmp
   42098             :       END DO
   42099       23514 :       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       23514 :    END SUBROUTINE ints2bits_52
   42103             : 
   42104             : ! **************************************************************************************************
   42105             : !> \brief ...
   42106             : !> \param Ndata ...
   42107             : !> \param packed_data ...
   42108             : !> \param full_data ...
   42109             : ! **************************************************************************************************
   42110       98719 :    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       98719 :       ipack = 0
   42121       98719 :       idata = 0
   42122       98719 :       pack_tmp = 0
   42123       98719 :       Ndata_rep = (Ndata/64)*64
   42124       98719 :       DO kdata = 1, Ndata_rep, 64
   42125     1539656 :          idata = idata + 1
   42126     1539656 :          data_tmp = ISHFT(pack_tmp, 52)
   42127     1539656 :          ipack = ipack + 1
   42128     1539656 :          pack_tmp = packed_data(ipack)
   42129     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   42130     1539656 :          pack_tmp = ISHFT(pack_tmp, -52)
   42131     1539656 :          idata = idata + 1
   42132     1539656 :          data_tmp = ISHFT(pack_tmp, 40)
   42133     1539656 :          ipack = ipack + 1
   42134     1539656 :          pack_tmp = packed_data(ipack)
   42135     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   42136     1539656 :          pack_tmp = ISHFT(pack_tmp, -40)
   42137     1539656 :          idata = idata + 1
   42138     1539656 :          data_tmp = ISHFT(pack_tmp, 28)
   42139     1539656 :          ipack = ipack + 1
   42140     1539656 :          pack_tmp = packed_data(ipack)
   42141     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   42142     1539656 :          pack_tmp = ISHFT(pack_tmp, -28)
   42143     1539656 :          idata = idata + 1
   42144     1539656 :          data_tmp = ISHFT(pack_tmp, 16)
   42145     1539656 :          ipack = ipack + 1
   42146     1539656 :          pack_tmp = packed_data(ipack)
   42147     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   42148     1539656 :          pack_tmp = ISHFT(pack_tmp, -16)
   42149     1539656 :          idata = idata + 1
   42150     1539656 :          data_tmp = ISHFT(pack_tmp, 4)
   42151     1539656 :          ipack = ipack + 1
   42152     1539656 :          pack_tmp = packed_data(ipack)
   42153     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   42154     1539656 :          pack_tmp = ISHFT(pack_tmp, -4)
   42155     1539656 :          idata = idata + 1
   42156     1539656 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42157     1539656 :          full_data(idata) = data_tmp
   42158     1539656 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42159     1539656 :          idata = idata + 1
   42160     1539656 :          data_tmp = ISHFT(pack_tmp, 44)
   42161     1539656 :          ipack = ipack + 1
   42162     1539656 :          pack_tmp = packed_data(ipack)
   42163     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   42164     1539656 :          pack_tmp = ISHFT(pack_tmp, -44)
   42165     1539656 :          idata = idata + 1
   42166     1539656 :          data_tmp = ISHFT(pack_tmp, 32)
   42167     1539656 :          ipack = ipack + 1
   42168     1539656 :          pack_tmp = packed_data(ipack)
   42169     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   42170     1539656 :          pack_tmp = ISHFT(pack_tmp, -32)
   42171     1539656 :          idata = idata + 1
   42172     1539656 :          data_tmp = ISHFT(pack_tmp, 20)
   42173     1539656 :          ipack = ipack + 1
   42174     1539656 :          pack_tmp = packed_data(ipack)
   42175     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   42176     1539656 :          pack_tmp = ISHFT(pack_tmp, -20)
   42177     1539656 :          idata = idata + 1
   42178     1539656 :          data_tmp = ISHFT(pack_tmp, 8)
   42179     1539656 :          ipack = ipack + 1
   42180     1539656 :          pack_tmp = packed_data(ipack)
   42181     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   42182     1539656 :          pack_tmp = ISHFT(pack_tmp, -8)
   42183     1539656 :          idata = idata + 1
   42184     1539656 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42185     1539656 :          full_data(idata) = data_tmp
   42186     1539656 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42187     1539656 :          idata = idata + 1
   42188     1539656 :          data_tmp = ISHFT(pack_tmp, 48)
   42189     1539656 :          ipack = ipack + 1
   42190     1539656 :          pack_tmp = packed_data(ipack)
   42191     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   42192     1539656 :          pack_tmp = ISHFT(pack_tmp, -48)
   42193     1539656 :          idata = idata + 1
   42194     1539656 :          data_tmp = ISHFT(pack_tmp, 36)
   42195     1539656 :          ipack = ipack + 1
   42196     1539656 :          pack_tmp = packed_data(ipack)
   42197     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   42198     1539656 :          pack_tmp = ISHFT(pack_tmp, -36)
   42199     1539656 :          idata = idata + 1
   42200     1539656 :          data_tmp = ISHFT(pack_tmp, 24)
   42201     1539656 :          ipack = ipack + 1
   42202     1539656 :          pack_tmp = packed_data(ipack)
   42203     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   42204     1539656 :          pack_tmp = ISHFT(pack_tmp, -24)
   42205     1539656 :          idata = idata + 1
   42206     1539656 :          data_tmp = ISHFT(pack_tmp, 12)
   42207     1539656 :          ipack = ipack + 1
   42208     1539656 :          pack_tmp = packed_data(ipack)
   42209     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   42210     1539656 :          pack_tmp = ISHFT(pack_tmp, -12)
   42211     1539656 :          idata = idata + 1
   42212     1539656 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42213     1539656 :          full_data(idata) = data_tmp
   42214     1539656 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42215     1539656 :          idata = idata + 1
   42216     1539656 :          data_tmp = ISHFT(pack_tmp, 52)
   42217     1539656 :          ipack = ipack + 1
   42218     1539656 :          pack_tmp = packed_data(ipack)
   42219     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   42220     1539656 :          pack_tmp = ISHFT(pack_tmp, -52)
   42221     1539656 :          idata = idata + 1
   42222     1539656 :          data_tmp = ISHFT(pack_tmp, 40)
   42223     1539656 :          ipack = ipack + 1
   42224     1539656 :          pack_tmp = packed_data(ipack)
   42225     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   42226     1539656 :          pack_tmp = ISHFT(pack_tmp, -40)
   42227     1539656 :          idata = idata + 1
   42228     1539656 :          data_tmp = ISHFT(pack_tmp, 28)
   42229     1539656 :          ipack = ipack + 1
   42230     1539656 :          pack_tmp = packed_data(ipack)
   42231     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   42232     1539656 :          pack_tmp = ISHFT(pack_tmp, -28)
   42233     1539656 :          idata = idata + 1
   42234     1539656 :          data_tmp = ISHFT(pack_tmp, 16)
   42235     1539656 :          ipack = ipack + 1
   42236     1539656 :          pack_tmp = packed_data(ipack)
   42237     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   42238     1539656 :          pack_tmp = ISHFT(pack_tmp, -16)
   42239     1539656 :          idata = idata + 1
   42240     1539656 :          data_tmp = ISHFT(pack_tmp, 4)
   42241     1539656 :          ipack = ipack + 1
   42242     1539656 :          pack_tmp = packed_data(ipack)
   42243     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   42244     1539656 :          pack_tmp = ISHFT(pack_tmp, -4)
   42245     1539656 :          idata = idata + 1
   42246     1539656 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42247     1539656 :          full_data(idata) = data_tmp
   42248     1539656 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42249     1539656 :          idata = idata + 1
   42250     1539656 :          data_tmp = ISHFT(pack_tmp, 44)
   42251     1539656 :          ipack = ipack + 1
   42252     1539656 :          pack_tmp = packed_data(ipack)
   42253     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   42254     1539656 :          pack_tmp = ISHFT(pack_tmp, -44)
   42255     1539656 :          idata = idata + 1
   42256     1539656 :          data_tmp = ISHFT(pack_tmp, 32)
   42257     1539656 :          ipack = ipack + 1
   42258     1539656 :          pack_tmp = packed_data(ipack)
   42259     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   42260     1539656 :          pack_tmp = ISHFT(pack_tmp, -32)
   42261     1539656 :          idata = idata + 1
   42262     1539656 :          data_tmp = ISHFT(pack_tmp, 20)
   42263     1539656 :          ipack = ipack + 1
   42264     1539656 :          pack_tmp = packed_data(ipack)
   42265     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   42266     1539656 :          pack_tmp = ISHFT(pack_tmp, -20)
   42267     1539656 :          idata = idata + 1
   42268     1539656 :          data_tmp = ISHFT(pack_tmp, 8)
   42269     1539656 :          ipack = ipack + 1
   42270     1539656 :          pack_tmp = packed_data(ipack)
   42271     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   42272     1539656 :          pack_tmp = ISHFT(pack_tmp, -8)
   42273     1539656 :          idata = idata + 1
   42274     1539656 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42275     1539656 :          full_data(idata) = data_tmp
   42276     1539656 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42277     1539656 :          idata = idata + 1
   42278     1539656 :          data_tmp = ISHFT(pack_tmp, 48)
   42279     1539656 :          ipack = ipack + 1
   42280     1539656 :          pack_tmp = packed_data(ipack)
   42281     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   42282     1539656 :          pack_tmp = ISHFT(pack_tmp, -48)
   42283     1539656 :          idata = idata + 1
   42284     1539656 :          data_tmp = ISHFT(pack_tmp, 36)
   42285     1539656 :          ipack = ipack + 1
   42286     1539656 :          pack_tmp = packed_data(ipack)
   42287     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   42288     1539656 :          pack_tmp = ISHFT(pack_tmp, -36)
   42289     1539656 :          idata = idata + 1
   42290     1539656 :          data_tmp = ISHFT(pack_tmp, 24)
   42291     1539656 :          ipack = ipack + 1
   42292     1539656 :          pack_tmp = packed_data(ipack)
   42293     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   42294     1539656 :          pack_tmp = ISHFT(pack_tmp, -24)
   42295     1539656 :          idata = idata + 1
   42296     1539656 :          data_tmp = ISHFT(pack_tmp, 12)
   42297     1539656 :          ipack = ipack + 1
   42298     1539656 :          pack_tmp = packed_data(ipack)
   42299     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   42300     1539656 :          pack_tmp = ISHFT(pack_tmp, -12)
   42301     1539656 :          idata = idata + 1
   42302     1539656 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42303     1539656 :          full_data(idata) = data_tmp
   42304     1539656 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42305     1539656 :          idata = idata + 1
   42306     1539656 :          data_tmp = ISHFT(pack_tmp, 52)
   42307     1539656 :          ipack = ipack + 1
   42308     1539656 :          pack_tmp = packed_data(ipack)
   42309     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   42310     1539656 :          pack_tmp = ISHFT(pack_tmp, -52)
   42311     1539656 :          idata = idata + 1
   42312     1539656 :          data_tmp = ISHFT(pack_tmp, 40)
   42313     1539656 :          ipack = ipack + 1
   42314     1539656 :          pack_tmp = packed_data(ipack)
   42315     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   42316     1539656 :          pack_tmp = ISHFT(pack_tmp, -40)
   42317     1539656 :          idata = idata + 1
   42318     1539656 :          data_tmp = ISHFT(pack_tmp, 28)
   42319     1539656 :          ipack = ipack + 1
   42320     1539656 :          pack_tmp = packed_data(ipack)
   42321     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   42322     1539656 :          pack_tmp = ISHFT(pack_tmp, -28)
   42323     1539656 :          idata = idata + 1
   42324     1539656 :          data_tmp = ISHFT(pack_tmp, 16)
   42325     1539656 :          ipack = ipack + 1
   42326     1539656 :          pack_tmp = packed_data(ipack)
   42327     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   42328     1539656 :          pack_tmp = ISHFT(pack_tmp, -16)
   42329     1539656 :          idata = idata + 1
   42330     1539656 :          data_tmp = ISHFT(pack_tmp, 4)
   42331     1539656 :          ipack = ipack + 1
   42332     1539656 :          pack_tmp = packed_data(ipack)
   42333     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   42334     1539656 :          pack_tmp = ISHFT(pack_tmp, -4)
   42335     1539656 :          idata = idata + 1
   42336     1539656 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42337     1539656 :          full_data(idata) = data_tmp
   42338     1539656 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42339     1539656 :          idata = idata + 1
   42340     1539656 :          data_tmp = ISHFT(pack_tmp, 44)
   42341     1539656 :          ipack = ipack + 1
   42342     1539656 :          pack_tmp = packed_data(ipack)
   42343     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   42344     1539656 :          pack_tmp = ISHFT(pack_tmp, -44)
   42345     1539656 :          idata = idata + 1
   42346     1539656 :          data_tmp = ISHFT(pack_tmp, 32)
   42347     1539656 :          ipack = ipack + 1
   42348     1539656 :          pack_tmp = packed_data(ipack)
   42349     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   42350     1539656 :          pack_tmp = ISHFT(pack_tmp, -32)
   42351     1539656 :          idata = idata + 1
   42352     1539656 :          data_tmp = ISHFT(pack_tmp, 20)
   42353     1539656 :          ipack = ipack + 1
   42354     1539656 :          pack_tmp = packed_data(ipack)
   42355     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   42356     1539656 :          pack_tmp = ISHFT(pack_tmp, -20)
   42357     1539656 :          idata = idata + 1
   42358     1539656 :          data_tmp = ISHFT(pack_tmp, 8)
   42359     1539656 :          ipack = ipack + 1
   42360     1539656 :          pack_tmp = packed_data(ipack)
   42361     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   42362     1539656 :          pack_tmp = ISHFT(pack_tmp, -8)
   42363     1539656 :          idata = idata + 1
   42364     1539656 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42365     1539656 :          full_data(idata) = data_tmp
   42366     1539656 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42367     1539656 :          idata = idata + 1
   42368     1539656 :          data_tmp = ISHFT(pack_tmp, 48)
   42369     1539656 :          ipack = ipack + 1
   42370     1539656 :          pack_tmp = packed_data(ipack)
   42371     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   42372     1539656 :          pack_tmp = ISHFT(pack_tmp, -48)
   42373     1539656 :          idata = idata + 1
   42374     1539656 :          data_tmp = ISHFT(pack_tmp, 36)
   42375     1539656 :          ipack = ipack + 1
   42376     1539656 :          pack_tmp = packed_data(ipack)
   42377     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   42378     1539656 :          pack_tmp = ISHFT(pack_tmp, -36)
   42379     1539656 :          idata = idata + 1
   42380     1539656 :          data_tmp = ISHFT(pack_tmp, 24)
   42381     1539656 :          ipack = ipack + 1
   42382     1539656 :          pack_tmp = packed_data(ipack)
   42383     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   42384     1539656 :          pack_tmp = ISHFT(pack_tmp, -24)
   42385     1539656 :          idata = idata + 1
   42386     1539656 :          data_tmp = ISHFT(pack_tmp, 12)
   42387     1539656 :          ipack = ipack + 1
   42388     1539656 :          pack_tmp = packed_data(ipack)
   42389     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   42390     1539656 :          pack_tmp = ISHFT(pack_tmp, -12)
   42391     1539656 :          idata = idata + 1
   42392     1539656 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42393     1539656 :          full_data(idata) = data_tmp
   42394     1539656 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42395     1539656 :          idata = idata + 1
   42396     1539656 :          data_tmp = ISHFT(pack_tmp, 52)
   42397     1539656 :          ipack = ipack + 1
   42398     1539656 :          pack_tmp = packed_data(ipack)
   42399     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   42400     1539656 :          pack_tmp = ISHFT(pack_tmp, -52)
   42401     1539656 :          idata = idata + 1
   42402     1539656 :          data_tmp = ISHFT(pack_tmp, 40)
   42403     1539656 :          ipack = ipack + 1
   42404     1539656 :          pack_tmp = packed_data(ipack)
   42405     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   42406     1539656 :          pack_tmp = ISHFT(pack_tmp, -40)
   42407     1539656 :          idata = idata + 1
   42408     1539656 :          data_tmp = ISHFT(pack_tmp, 28)
   42409     1539656 :          ipack = ipack + 1
   42410     1539656 :          pack_tmp = packed_data(ipack)
   42411     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   42412     1539656 :          pack_tmp = ISHFT(pack_tmp, -28)
   42413     1539656 :          idata = idata + 1
   42414     1539656 :          data_tmp = ISHFT(pack_tmp, 16)
   42415     1539656 :          ipack = ipack + 1
   42416     1539656 :          pack_tmp = packed_data(ipack)
   42417     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   42418     1539656 :          pack_tmp = ISHFT(pack_tmp, -16)
   42419     1539656 :          idata = idata + 1
   42420     1539656 :          data_tmp = ISHFT(pack_tmp, 4)
   42421     1539656 :          ipack = ipack + 1
   42422     1539656 :          pack_tmp = packed_data(ipack)
   42423     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   42424     1539656 :          pack_tmp = ISHFT(pack_tmp, -4)
   42425     1539656 :          idata = idata + 1
   42426     1539656 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42427     1539656 :          full_data(idata) = data_tmp
   42428     1539656 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42429     1539656 :          idata = idata + 1
   42430     1539656 :          data_tmp = ISHFT(pack_tmp, 44)
   42431     1539656 :          ipack = ipack + 1
   42432     1539656 :          pack_tmp = packed_data(ipack)
   42433     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   42434     1539656 :          pack_tmp = ISHFT(pack_tmp, -44)
   42435     1539656 :          idata = idata + 1
   42436     1539656 :          data_tmp = ISHFT(pack_tmp, 32)
   42437     1539656 :          ipack = ipack + 1
   42438     1539656 :          pack_tmp = packed_data(ipack)
   42439     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   42440     1539656 :          pack_tmp = ISHFT(pack_tmp, -32)
   42441     1539656 :          idata = idata + 1
   42442     1539656 :          data_tmp = ISHFT(pack_tmp, 20)
   42443     1539656 :          ipack = ipack + 1
   42444     1539656 :          pack_tmp = packed_data(ipack)
   42445     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   42446     1539656 :          pack_tmp = ISHFT(pack_tmp, -20)
   42447     1539656 :          idata = idata + 1
   42448     1539656 :          data_tmp = ISHFT(pack_tmp, 8)
   42449     1539656 :          ipack = ipack + 1
   42450     1539656 :          pack_tmp = packed_data(ipack)
   42451     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   42452     1539656 :          pack_tmp = ISHFT(pack_tmp, -8)
   42453     1539656 :          idata = idata + 1
   42454     1539656 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42455     1539656 :          full_data(idata) = data_tmp
   42456     1539656 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42457     1539656 :          idata = idata + 1
   42458     1539656 :          data_tmp = ISHFT(pack_tmp, 48)
   42459     1539656 :          ipack = ipack + 1
   42460     1539656 :          pack_tmp = packed_data(ipack)
   42461     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   42462     1539656 :          pack_tmp = ISHFT(pack_tmp, -48)
   42463     1539656 :          idata = idata + 1
   42464     1539656 :          data_tmp = ISHFT(pack_tmp, 36)
   42465     1539656 :          ipack = ipack + 1
   42466     1539656 :          pack_tmp = packed_data(ipack)
   42467     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   42468     1539656 :          pack_tmp = ISHFT(pack_tmp, -36)
   42469     1539656 :          idata = idata + 1
   42470     1539656 :          data_tmp = ISHFT(pack_tmp, 24)
   42471     1539656 :          ipack = ipack + 1
   42472     1539656 :          pack_tmp = packed_data(ipack)
   42473     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   42474     1539656 :          pack_tmp = ISHFT(pack_tmp, -24)
   42475     1539656 :          idata = idata + 1
   42476     1539656 :          data_tmp = ISHFT(pack_tmp, 12)
   42477     1539656 :          ipack = ipack + 1
   42478     1539656 :          pack_tmp = packed_data(ipack)
   42479     1539656 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   42480     1539656 :          pack_tmp = ISHFT(pack_tmp, -12)
   42481     1539656 :          idata = idata + 1
   42482     1539656 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42483     1539656 :          full_data(idata) = data_tmp
   42484     1539676 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42485             :       END DO
   42486       98719 :       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       98719 :    END SUBROUTINE bits2ints_52
   42490             : 
   42491             : ! **************************************************************************************************
   42492             : !> \brief ...
   42493             : !> \param Ndata ...
   42494             : !> \param packed_data ...
   42495             : !> \param full_data ...
   42496             : ! **************************************************************************************************
   42497       23504 :    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       23504 :       idata = 0
   42508       23504 :       ipack = 0
   42509       23504 :       Ndata_rep = (Ndata/64)*64
   42510       23504 :       DO kdata = 1, Ndata_rep, 64
   42511      372120 :          pack_tmp = 0
   42512      372120 :          idata = idata + 1
   42513      372120 :          data_tmp = full_data(idata)
   42514      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42515      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42516      372120 :          pack_tmp = ISHFT(pack_tmp, -11)
   42517      372120 :          idata = idata + 1
   42518      372120 :          data_tmp = full_data(idata)
   42519      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42520      372120 :          data_tmp = IAND(data_tmp, mask_left(11))
   42521      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42522      372120 :          ipack = ipack + 1
   42523      372120 :          packed_data(ipack) = pack_tmp
   42524      372120 :          data_tmp = full_data(idata)
   42525      372120 :          pack_tmp = ISHFT(data_tmp, 22)
   42526      372120 :          pack_tmp = ISHFT(pack_tmp, -22)
   42527      372120 :          idata = idata + 1
   42528      372120 :          data_tmp = full_data(idata)
   42529      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42530      372120 :          data_tmp = IAND(data_tmp, mask_left(22))
   42531      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42532      372120 :          ipack = ipack + 1
   42533      372120 :          packed_data(ipack) = pack_tmp
   42534      372120 :          data_tmp = full_data(idata)
   42535      372120 :          pack_tmp = ISHFT(data_tmp, 33)
   42536      372120 :          pack_tmp = ISHFT(pack_tmp, -33)
   42537      372120 :          idata = idata + 1
   42538      372120 :          data_tmp = full_data(idata)
   42539      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42540      372120 :          data_tmp = IAND(data_tmp, mask_left(33))
   42541      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42542      372120 :          ipack = ipack + 1
   42543      372120 :          packed_data(ipack) = pack_tmp
   42544      372120 :          data_tmp = full_data(idata)
   42545      372120 :          pack_tmp = ISHFT(data_tmp, 44)
   42546      372120 :          pack_tmp = ISHFT(pack_tmp, -44)
   42547      372120 :          idata = idata + 1
   42548      372120 :          data_tmp = full_data(idata)
   42549      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42550      372120 :          data_tmp = IAND(data_tmp, mask_left(44))
   42551      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42552      372120 :          ipack = ipack + 1
   42553      372120 :          packed_data(ipack) = pack_tmp
   42554      372120 :          data_tmp = full_data(idata)
   42555      372120 :          pack_tmp = ISHFT(data_tmp, 55)
   42556      372120 :          pack_tmp = ISHFT(pack_tmp, -53)
   42557      372120 :          idata = idata + 1
   42558      372120 :          data_tmp = full_data(idata)
   42559      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42560      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42561      372120 :          pack_tmp = ISHFT(pack_tmp, -2)
   42562      372120 :          idata = idata + 1
   42563      372120 :          data_tmp = full_data(idata)
   42564      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42565      372120 :          data_tmp = IAND(data_tmp, mask_left(2))
   42566      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42567      372120 :          ipack = ipack + 1
   42568      372120 :          packed_data(ipack) = pack_tmp
   42569      372120 :          data_tmp = full_data(idata)
   42570      372120 :          pack_tmp = ISHFT(data_tmp, 13)
   42571      372120 :          pack_tmp = ISHFT(pack_tmp, -13)
   42572      372120 :          idata = idata + 1
   42573      372120 :          data_tmp = full_data(idata)
   42574      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42575      372120 :          data_tmp = IAND(data_tmp, mask_left(13))
   42576      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42577      372120 :          ipack = ipack + 1
   42578      372120 :          packed_data(ipack) = pack_tmp
   42579      372120 :          data_tmp = full_data(idata)
   42580      372120 :          pack_tmp = ISHFT(data_tmp, 24)
   42581      372120 :          pack_tmp = ISHFT(pack_tmp, -24)
   42582      372120 :          idata = idata + 1
   42583      372120 :          data_tmp = full_data(idata)
   42584      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42585      372120 :          data_tmp = IAND(data_tmp, mask_left(24))
   42586      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42587      372120 :          ipack = ipack + 1
   42588      372120 :          packed_data(ipack) = pack_tmp
   42589      372120 :          data_tmp = full_data(idata)
   42590      372120 :          pack_tmp = ISHFT(data_tmp, 35)
   42591      372120 :          pack_tmp = ISHFT(pack_tmp, -35)
   42592      372120 :          idata = idata + 1
   42593      372120 :          data_tmp = full_data(idata)
   42594      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42595      372120 :          data_tmp = IAND(data_tmp, mask_left(35))
   42596      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42597      372120 :          ipack = ipack + 1
   42598      372120 :          packed_data(ipack) = pack_tmp
   42599      372120 :          data_tmp = full_data(idata)
   42600      372120 :          pack_tmp = ISHFT(data_tmp, 46)
   42601      372120 :          pack_tmp = ISHFT(pack_tmp, -46)
   42602      372120 :          idata = idata + 1
   42603      372120 :          data_tmp = full_data(idata)
   42604      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42605      372120 :          data_tmp = IAND(data_tmp, mask_left(46))
   42606      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42607      372120 :          ipack = ipack + 1
   42608      372120 :          packed_data(ipack) = pack_tmp
   42609      372120 :          data_tmp = full_data(idata)
   42610      372120 :          pack_tmp = ISHFT(data_tmp, 57)
   42611      372120 :          pack_tmp = ISHFT(pack_tmp, -53)
   42612      372120 :          idata = idata + 1
   42613      372120 :          data_tmp = full_data(idata)
   42614      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42615      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42616      372120 :          pack_tmp = ISHFT(pack_tmp, -4)
   42617      372120 :          idata = idata + 1
   42618      372120 :          data_tmp = full_data(idata)
   42619      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42620      372120 :          data_tmp = IAND(data_tmp, mask_left(4))
   42621      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42622      372120 :          ipack = ipack + 1
   42623      372120 :          packed_data(ipack) = pack_tmp
   42624      372120 :          data_tmp = full_data(idata)
   42625      372120 :          pack_tmp = ISHFT(data_tmp, 15)
   42626      372120 :          pack_tmp = ISHFT(pack_tmp, -15)
   42627      372120 :          idata = idata + 1
   42628      372120 :          data_tmp = full_data(idata)
   42629      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42630      372120 :          data_tmp = IAND(data_tmp, mask_left(15))
   42631      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42632      372120 :          ipack = ipack + 1
   42633      372120 :          packed_data(ipack) = pack_tmp
   42634      372120 :          data_tmp = full_data(idata)
   42635      372120 :          pack_tmp = ISHFT(data_tmp, 26)
   42636      372120 :          pack_tmp = ISHFT(pack_tmp, -26)
   42637      372120 :          idata = idata + 1
   42638      372120 :          data_tmp = full_data(idata)
   42639      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42640      372120 :          data_tmp = IAND(data_tmp, mask_left(26))
   42641      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42642      372120 :          ipack = ipack + 1
   42643      372120 :          packed_data(ipack) = pack_tmp
   42644      372120 :          data_tmp = full_data(idata)
   42645      372120 :          pack_tmp = ISHFT(data_tmp, 37)
   42646      372120 :          pack_tmp = ISHFT(pack_tmp, -37)
   42647      372120 :          idata = idata + 1
   42648      372120 :          data_tmp = full_data(idata)
   42649      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42650      372120 :          data_tmp = IAND(data_tmp, mask_left(37))
   42651      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42652      372120 :          ipack = ipack + 1
   42653      372120 :          packed_data(ipack) = pack_tmp
   42654      372120 :          data_tmp = full_data(idata)
   42655      372120 :          pack_tmp = ISHFT(data_tmp, 48)
   42656      372120 :          pack_tmp = ISHFT(pack_tmp, -48)
   42657      372120 :          idata = idata + 1
   42658      372120 :          data_tmp = full_data(idata)
   42659      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42660      372120 :          data_tmp = IAND(data_tmp, mask_left(48))
   42661      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42662      372120 :          ipack = ipack + 1
   42663      372120 :          packed_data(ipack) = pack_tmp
   42664      372120 :          data_tmp = full_data(idata)
   42665      372120 :          pack_tmp = ISHFT(data_tmp, 59)
   42666      372120 :          pack_tmp = ISHFT(pack_tmp, -53)
   42667      372120 :          idata = idata + 1
   42668      372120 :          data_tmp = full_data(idata)
   42669      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42670      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42671      372120 :          pack_tmp = ISHFT(pack_tmp, -6)
   42672      372120 :          idata = idata + 1
   42673      372120 :          data_tmp = full_data(idata)
   42674      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42675      372120 :          data_tmp = IAND(data_tmp, mask_left(6))
   42676      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42677      372120 :          ipack = ipack + 1
   42678      372120 :          packed_data(ipack) = pack_tmp
   42679      372120 :          data_tmp = full_data(idata)
   42680      372120 :          pack_tmp = ISHFT(data_tmp, 17)
   42681      372120 :          pack_tmp = ISHFT(pack_tmp, -17)
   42682      372120 :          idata = idata + 1
   42683      372120 :          data_tmp = full_data(idata)
   42684      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42685      372120 :          data_tmp = IAND(data_tmp, mask_left(17))
   42686      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42687      372120 :          ipack = ipack + 1
   42688      372120 :          packed_data(ipack) = pack_tmp
   42689      372120 :          data_tmp = full_data(idata)
   42690      372120 :          pack_tmp = ISHFT(data_tmp, 28)
   42691      372120 :          pack_tmp = ISHFT(pack_tmp, -28)
   42692      372120 :          idata = idata + 1
   42693      372120 :          data_tmp = full_data(idata)
   42694      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42695      372120 :          data_tmp = IAND(data_tmp, mask_left(28))
   42696      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42697      372120 :          ipack = ipack + 1
   42698      372120 :          packed_data(ipack) = pack_tmp
   42699      372120 :          data_tmp = full_data(idata)
   42700      372120 :          pack_tmp = ISHFT(data_tmp, 39)
   42701      372120 :          pack_tmp = ISHFT(pack_tmp, -39)
   42702      372120 :          idata = idata + 1
   42703      372120 :          data_tmp = full_data(idata)
   42704      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42705      372120 :          data_tmp = IAND(data_tmp, mask_left(39))
   42706      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42707      372120 :          ipack = ipack + 1
   42708      372120 :          packed_data(ipack) = pack_tmp
   42709      372120 :          data_tmp = full_data(idata)
   42710      372120 :          pack_tmp = ISHFT(data_tmp, 50)
   42711      372120 :          pack_tmp = ISHFT(pack_tmp, -50)
   42712      372120 :          idata = idata + 1
   42713      372120 :          data_tmp = full_data(idata)
   42714      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42715      372120 :          data_tmp = IAND(data_tmp, mask_left(50))
   42716      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42717      372120 :          ipack = ipack + 1
   42718      372120 :          packed_data(ipack) = pack_tmp
   42719      372120 :          data_tmp = full_data(idata)
   42720      372120 :          pack_tmp = ISHFT(data_tmp, 61)
   42721      372120 :          pack_tmp = ISHFT(pack_tmp, -53)
   42722      372120 :          idata = idata + 1
   42723      372120 :          data_tmp = full_data(idata)
   42724      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42725      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42726      372120 :          pack_tmp = ISHFT(pack_tmp, -8)
   42727      372120 :          idata = idata + 1
   42728      372120 :          data_tmp = full_data(idata)
   42729      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42730      372120 :          data_tmp = IAND(data_tmp, mask_left(8))
   42731      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42732      372120 :          ipack = ipack + 1
   42733      372120 :          packed_data(ipack) = pack_tmp
   42734      372120 :          data_tmp = full_data(idata)
   42735      372120 :          pack_tmp = ISHFT(data_tmp, 19)
   42736      372120 :          pack_tmp = ISHFT(pack_tmp, -19)
   42737      372120 :          idata = idata + 1
   42738      372120 :          data_tmp = full_data(idata)
   42739      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42740      372120 :          data_tmp = IAND(data_tmp, mask_left(19))
   42741      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42742      372120 :          ipack = ipack + 1
   42743      372120 :          packed_data(ipack) = pack_tmp
   42744      372120 :          data_tmp = full_data(idata)
   42745      372120 :          pack_tmp = ISHFT(data_tmp, 30)
   42746      372120 :          pack_tmp = ISHFT(pack_tmp, -30)
   42747      372120 :          idata = idata + 1
   42748      372120 :          data_tmp = full_data(idata)
   42749      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42750      372120 :          data_tmp = IAND(data_tmp, mask_left(30))
   42751      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42752      372120 :          ipack = ipack + 1
   42753      372120 :          packed_data(ipack) = pack_tmp
   42754      372120 :          data_tmp = full_data(idata)
   42755      372120 :          pack_tmp = ISHFT(data_tmp, 41)
   42756      372120 :          pack_tmp = ISHFT(pack_tmp, -41)
   42757      372120 :          idata = idata + 1
   42758      372120 :          data_tmp = full_data(idata)
   42759      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42760      372120 :          data_tmp = IAND(data_tmp, mask_left(41))
   42761      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42762      372120 :          ipack = ipack + 1
   42763      372120 :          packed_data(ipack) = pack_tmp
   42764      372120 :          data_tmp = full_data(idata)
   42765      372120 :          pack_tmp = ISHFT(data_tmp, 52)
   42766      372120 :          pack_tmp = ISHFT(pack_tmp, -52)
   42767      372120 :          idata = idata + 1
   42768      372120 :          data_tmp = full_data(idata)
   42769      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42770      372120 :          data_tmp = IAND(data_tmp, mask_left(52))
   42771      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42772      372120 :          ipack = ipack + 1
   42773      372120 :          packed_data(ipack) = pack_tmp
   42774      372120 :          data_tmp = full_data(idata)
   42775      372120 :          pack_tmp = ISHFT(data_tmp, 63)
   42776      372120 :          pack_tmp = ISHFT(pack_tmp, -53)
   42777      372120 :          idata = idata + 1
   42778      372120 :          data_tmp = full_data(idata)
   42779      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42780      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42781      372120 :          pack_tmp = ISHFT(pack_tmp, -10)
   42782      372120 :          idata = idata + 1
   42783      372120 :          data_tmp = full_data(idata)
   42784      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42785      372120 :          data_tmp = IAND(data_tmp, mask_left(10))
   42786      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42787      372120 :          ipack = ipack + 1
   42788      372120 :          packed_data(ipack) = pack_tmp
   42789      372120 :          data_tmp = full_data(idata)
   42790      372120 :          pack_tmp = ISHFT(data_tmp, 21)
   42791      372120 :          pack_tmp = ISHFT(pack_tmp, -21)
   42792      372120 :          idata = idata + 1
   42793      372120 :          data_tmp = full_data(idata)
   42794      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42795      372120 :          data_tmp = IAND(data_tmp, mask_left(21))
   42796      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42797      372120 :          ipack = ipack + 1
   42798      372120 :          packed_data(ipack) = pack_tmp
   42799      372120 :          data_tmp = full_data(idata)
   42800      372120 :          pack_tmp = ISHFT(data_tmp, 32)
   42801      372120 :          pack_tmp = ISHFT(pack_tmp, -32)
   42802      372120 :          idata = idata + 1
   42803      372120 :          data_tmp = full_data(idata)
   42804      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42805      372120 :          data_tmp = IAND(data_tmp, mask_left(32))
   42806      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42807      372120 :          ipack = ipack + 1
   42808      372120 :          packed_data(ipack) = pack_tmp
   42809      372120 :          data_tmp = full_data(idata)
   42810      372120 :          pack_tmp = ISHFT(data_tmp, 43)
   42811      372120 :          pack_tmp = ISHFT(pack_tmp, -43)
   42812      372120 :          idata = idata + 1
   42813      372120 :          data_tmp = full_data(idata)
   42814      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42815      372120 :          data_tmp = IAND(data_tmp, mask_left(43))
   42816      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42817      372120 :          ipack = ipack + 1
   42818      372120 :          packed_data(ipack) = pack_tmp
   42819      372120 :          data_tmp = full_data(idata)
   42820      372120 :          pack_tmp = ISHFT(data_tmp, 54)
   42821      372120 :          pack_tmp = ISHFT(pack_tmp, -53)
   42822      372120 :          idata = idata + 1
   42823      372120 :          data_tmp = full_data(idata)
   42824      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42825      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42826      372120 :          pack_tmp = ISHFT(pack_tmp, -1)
   42827      372120 :          idata = idata + 1
   42828      372120 :          data_tmp = full_data(idata)
   42829      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42830      372120 :          data_tmp = IAND(data_tmp, mask_left(1))
   42831      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42832      372120 :          ipack = ipack + 1
   42833      372120 :          packed_data(ipack) = pack_tmp
   42834      372120 :          data_tmp = full_data(idata)
   42835      372120 :          pack_tmp = ISHFT(data_tmp, 12)
   42836      372120 :          pack_tmp = ISHFT(pack_tmp, -12)
   42837      372120 :          idata = idata + 1
   42838      372120 :          data_tmp = full_data(idata)
   42839      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42840      372120 :          data_tmp = IAND(data_tmp, mask_left(12))
   42841      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42842      372120 :          ipack = ipack + 1
   42843      372120 :          packed_data(ipack) = pack_tmp
   42844      372120 :          data_tmp = full_data(idata)
   42845      372120 :          pack_tmp = ISHFT(data_tmp, 23)
   42846      372120 :          pack_tmp = ISHFT(pack_tmp, -23)
   42847      372120 :          idata = idata + 1
   42848      372120 :          data_tmp = full_data(idata)
   42849      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42850      372120 :          data_tmp = IAND(data_tmp, mask_left(23))
   42851      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42852      372120 :          ipack = ipack + 1
   42853      372120 :          packed_data(ipack) = pack_tmp
   42854      372120 :          data_tmp = full_data(idata)
   42855      372120 :          pack_tmp = ISHFT(data_tmp, 34)
   42856      372120 :          pack_tmp = ISHFT(pack_tmp, -34)
   42857      372120 :          idata = idata + 1
   42858      372120 :          data_tmp = full_data(idata)
   42859      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42860      372120 :          data_tmp = IAND(data_tmp, mask_left(34))
   42861      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42862      372120 :          ipack = ipack + 1
   42863      372120 :          packed_data(ipack) = pack_tmp
   42864      372120 :          data_tmp = full_data(idata)
   42865      372120 :          pack_tmp = ISHFT(data_tmp, 45)
   42866      372120 :          pack_tmp = ISHFT(pack_tmp, -45)
   42867      372120 :          idata = idata + 1
   42868      372120 :          data_tmp = full_data(idata)
   42869      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42870      372120 :          data_tmp = IAND(data_tmp, mask_left(45))
   42871      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42872      372120 :          ipack = ipack + 1
   42873      372120 :          packed_data(ipack) = pack_tmp
   42874      372120 :          data_tmp = full_data(idata)
   42875      372120 :          pack_tmp = ISHFT(data_tmp, 56)
   42876      372120 :          pack_tmp = ISHFT(pack_tmp, -53)
   42877      372120 :          idata = idata + 1
   42878      372120 :          data_tmp = full_data(idata)
   42879      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42880      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42881      372120 :          pack_tmp = ISHFT(pack_tmp, -3)
   42882      372120 :          idata = idata + 1
   42883      372120 :          data_tmp = full_data(idata)
   42884      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42885      372120 :          data_tmp = IAND(data_tmp, mask_left(3))
   42886      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42887      372120 :          ipack = ipack + 1
   42888      372120 :          packed_data(ipack) = pack_tmp
   42889      372120 :          data_tmp = full_data(idata)
   42890      372120 :          pack_tmp = ISHFT(data_tmp, 14)
   42891      372120 :          pack_tmp = ISHFT(pack_tmp, -14)
   42892      372120 :          idata = idata + 1
   42893      372120 :          data_tmp = full_data(idata)
   42894      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42895      372120 :          data_tmp = IAND(data_tmp, mask_left(14))
   42896      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42897      372120 :          ipack = ipack + 1
   42898      372120 :          packed_data(ipack) = pack_tmp
   42899      372120 :          data_tmp = full_data(idata)
   42900      372120 :          pack_tmp = ISHFT(data_tmp, 25)
   42901      372120 :          pack_tmp = ISHFT(pack_tmp, -25)
   42902      372120 :          idata = idata + 1
   42903      372120 :          data_tmp = full_data(idata)
   42904      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42905      372120 :          data_tmp = IAND(data_tmp, mask_left(25))
   42906      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42907      372120 :          ipack = ipack + 1
   42908      372120 :          packed_data(ipack) = pack_tmp
   42909      372120 :          data_tmp = full_data(idata)
   42910      372120 :          pack_tmp = ISHFT(data_tmp, 36)
   42911      372120 :          pack_tmp = ISHFT(pack_tmp, -36)
   42912      372120 :          idata = idata + 1
   42913      372120 :          data_tmp = full_data(idata)
   42914      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42915      372120 :          data_tmp = IAND(data_tmp, mask_left(36))
   42916      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42917      372120 :          ipack = ipack + 1
   42918      372120 :          packed_data(ipack) = pack_tmp
   42919      372120 :          data_tmp = full_data(idata)
   42920      372120 :          pack_tmp = ISHFT(data_tmp, 47)
   42921      372120 :          pack_tmp = ISHFT(pack_tmp, -47)
   42922      372120 :          idata = idata + 1
   42923      372120 :          data_tmp = full_data(idata)
   42924      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42925      372120 :          data_tmp = IAND(data_tmp, mask_left(47))
   42926      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42927      372120 :          ipack = ipack + 1
   42928      372120 :          packed_data(ipack) = pack_tmp
   42929      372120 :          data_tmp = full_data(idata)
   42930      372120 :          pack_tmp = ISHFT(data_tmp, 58)
   42931      372120 :          pack_tmp = ISHFT(pack_tmp, -53)
   42932      372120 :          idata = idata + 1
   42933      372120 :          data_tmp = full_data(idata)
   42934      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42935      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42936      372120 :          pack_tmp = ISHFT(pack_tmp, -5)
   42937      372120 :          idata = idata + 1
   42938      372120 :          data_tmp = full_data(idata)
   42939      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42940      372120 :          data_tmp = IAND(data_tmp, mask_left(5))
   42941      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42942      372120 :          ipack = ipack + 1
   42943      372120 :          packed_data(ipack) = pack_tmp
   42944      372120 :          data_tmp = full_data(idata)
   42945      372120 :          pack_tmp = ISHFT(data_tmp, 16)
   42946      372120 :          pack_tmp = ISHFT(pack_tmp, -16)
   42947      372120 :          idata = idata + 1
   42948      372120 :          data_tmp = full_data(idata)
   42949      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42950      372120 :          data_tmp = IAND(data_tmp, mask_left(16))
   42951      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42952      372120 :          ipack = ipack + 1
   42953      372120 :          packed_data(ipack) = pack_tmp
   42954      372120 :          data_tmp = full_data(idata)
   42955      372120 :          pack_tmp = ISHFT(data_tmp, 27)
   42956      372120 :          pack_tmp = ISHFT(pack_tmp, -27)
   42957      372120 :          idata = idata + 1
   42958      372120 :          data_tmp = full_data(idata)
   42959      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42960      372120 :          data_tmp = IAND(data_tmp, mask_left(27))
   42961      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42962      372120 :          ipack = ipack + 1
   42963      372120 :          packed_data(ipack) = pack_tmp
   42964      372120 :          data_tmp = full_data(idata)
   42965      372120 :          pack_tmp = ISHFT(data_tmp, 38)
   42966      372120 :          pack_tmp = ISHFT(pack_tmp, -38)
   42967      372120 :          idata = idata + 1
   42968      372120 :          data_tmp = full_data(idata)
   42969      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42970      372120 :          data_tmp = IAND(data_tmp, mask_left(38))
   42971      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42972      372120 :          ipack = ipack + 1
   42973      372120 :          packed_data(ipack) = pack_tmp
   42974      372120 :          data_tmp = full_data(idata)
   42975      372120 :          pack_tmp = ISHFT(data_tmp, 49)
   42976      372120 :          pack_tmp = ISHFT(pack_tmp, -49)
   42977      372120 :          idata = idata + 1
   42978      372120 :          data_tmp = full_data(idata)
   42979      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42980      372120 :          data_tmp = IAND(data_tmp, mask_left(49))
   42981      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42982      372120 :          ipack = ipack + 1
   42983      372120 :          packed_data(ipack) = pack_tmp
   42984      372120 :          data_tmp = full_data(idata)
   42985      372120 :          pack_tmp = ISHFT(data_tmp, 60)
   42986      372120 :          pack_tmp = ISHFT(pack_tmp, -53)
   42987      372120 :          idata = idata + 1
   42988      372120 :          data_tmp = full_data(idata)
   42989      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42990      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42991      372120 :          pack_tmp = ISHFT(pack_tmp, -7)
   42992      372120 :          idata = idata + 1
   42993      372120 :          data_tmp = full_data(idata)
   42994      372120 :          data_tmp = ISHFT(data_tmp, 11)
   42995      372120 :          data_tmp = IAND(data_tmp, mask_left(7))
   42996      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42997      372120 :          ipack = ipack + 1
   42998      372120 :          packed_data(ipack) = pack_tmp
   42999      372120 :          data_tmp = full_data(idata)
   43000      372120 :          pack_tmp = ISHFT(data_tmp, 18)
   43001      372120 :          pack_tmp = ISHFT(pack_tmp, -18)
   43002      372120 :          idata = idata + 1
   43003      372120 :          data_tmp = full_data(idata)
   43004      372120 :          data_tmp = ISHFT(data_tmp, 11)
   43005      372120 :          data_tmp = IAND(data_tmp, mask_left(18))
   43006      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43007      372120 :          ipack = ipack + 1
   43008      372120 :          packed_data(ipack) = pack_tmp
   43009      372120 :          data_tmp = full_data(idata)
   43010      372120 :          pack_tmp = ISHFT(data_tmp, 29)
   43011      372120 :          pack_tmp = ISHFT(pack_tmp, -29)
   43012      372120 :          idata = idata + 1
   43013      372120 :          data_tmp = full_data(idata)
   43014      372120 :          data_tmp = ISHFT(data_tmp, 11)
   43015      372120 :          data_tmp = IAND(data_tmp, mask_left(29))
   43016      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43017      372120 :          ipack = ipack + 1
   43018      372120 :          packed_data(ipack) = pack_tmp
   43019      372120 :          data_tmp = full_data(idata)
   43020      372120 :          pack_tmp = ISHFT(data_tmp, 40)
   43021      372120 :          pack_tmp = ISHFT(pack_tmp, -40)
   43022      372120 :          idata = idata + 1
   43023      372120 :          data_tmp = full_data(idata)
   43024      372120 :          data_tmp = ISHFT(data_tmp, 11)
   43025      372120 :          data_tmp = IAND(data_tmp, mask_left(40))
   43026      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43027      372120 :          ipack = ipack + 1
   43028      372120 :          packed_data(ipack) = pack_tmp
   43029      372120 :          data_tmp = full_data(idata)
   43030      372120 :          pack_tmp = ISHFT(data_tmp, 51)
   43031      372120 :          pack_tmp = ISHFT(pack_tmp, -51)
   43032      372120 :          idata = idata + 1
   43033      372120 :          data_tmp = full_data(idata)
   43034      372120 :          data_tmp = ISHFT(data_tmp, 11)
   43035      372120 :          data_tmp = IAND(data_tmp, mask_left(51))
   43036      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43037      372120 :          ipack = ipack + 1
   43038      372120 :          packed_data(ipack) = pack_tmp
   43039      372120 :          data_tmp = full_data(idata)
   43040      372120 :          pack_tmp = ISHFT(data_tmp, 62)
   43041      372120 :          pack_tmp = ISHFT(pack_tmp, -53)
   43042      372120 :          idata = idata + 1
   43043      372120 :          data_tmp = full_data(idata)
   43044      372120 :          data_tmp = ISHFT(data_tmp, 11)
   43045      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43046      372120 :          pack_tmp = ISHFT(pack_tmp, -9)
   43047      372120 :          idata = idata + 1
   43048      372120 :          data_tmp = full_data(idata)
   43049      372120 :          data_tmp = ISHFT(data_tmp, 11)
   43050      372120 :          data_tmp = IAND(data_tmp, mask_left(9))
   43051      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43052      372120 :          ipack = ipack + 1
   43053      372120 :          packed_data(ipack) = pack_tmp
   43054      372120 :          data_tmp = full_data(idata)
   43055      372120 :          pack_tmp = ISHFT(data_tmp, 20)
   43056      372120 :          pack_tmp = ISHFT(pack_tmp, -20)
   43057      372120 :          idata = idata + 1
   43058      372120 :          data_tmp = full_data(idata)
   43059      372120 :          data_tmp = ISHFT(data_tmp, 11)
   43060      372120 :          data_tmp = IAND(data_tmp, mask_left(20))
   43061      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43062      372120 :          ipack = ipack + 1
   43063      372120 :          packed_data(ipack) = pack_tmp
   43064      372120 :          data_tmp = full_data(idata)
   43065      372120 :          pack_tmp = ISHFT(data_tmp, 31)
   43066      372120 :          pack_tmp = ISHFT(pack_tmp, -31)
   43067      372120 :          idata = idata + 1
   43068      372120 :          data_tmp = full_data(idata)
   43069      372120 :          data_tmp = ISHFT(data_tmp, 11)
   43070      372120 :          data_tmp = IAND(data_tmp, mask_left(31))
   43071      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43072      372120 :          ipack = ipack + 1
   43073      372120 :          packed_data(ipack) = pack_tmp
   43074      372120 :          data_tmp = full_data(idata)
   43075      372120 :          pack_tmp = ISHFT(data_tmp, 42)
   43076      372120 :          pack_tmp = ISHFT(pack_tmp, -42)
   43077      372120 :          idata = idata + 1
   43078      372120 :          data_tmp = full_data(idata)
   43079      372120 :          data_tmp = ISHFT(data_tmp, 11)
   43080      372120 :          data_tmp = IAND(data_tmp, mask_left(42))
   43081      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43082      372120 :          ipack = ipack + 1
   43083      372120 :          packed_data(ipack) = pack_tmp
   43084      372120 :          data_tmp = full_data(idata)
   43085      372120 :          pack_tmp = ISHFT(data_tmp, 53)
   43086      372120 :          pack_tmp = ISHFT(pack_tmp, -53)
   43087      372120 :          idata = idata + 1
   43088      372120 :          data_tmp = full_data(idata)
   43089      372120 :          data_tmp = ISHFT(data_tmp, 11)
   43090      372120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43091             :          pack_tmp = ISHFT(pack_tmp, 0)
   43092      372120 :          pack_tmp = ISHFT(pack_tmp, 0)
   43093      372120 :          ipack = ipack + 1
   43094      372140 :          packed_data(ipack) = pack_tmp
   43095             :       END DO
   43096       23504 :       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       23504 :    END SUBROUTINE ints2bits_53
   43100             : 
   43101             : ! **************************************************************************************************
   43102             : !> \brief ...
   43103             : !> \param Ndata ...
   43104             : !> \param packed_data ...
   43105             : !> \param full_data ...
   43106             : ! **************************************************************************************************
   43107      106365 :    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      106365 :       ipack = 0
   43118      106365 :       idata = 0
   43119      106365 :       pack_tmp = 0
   43120      106365 :       Ndata_rep = (Ndata/64)*64
   43121      106365 :       DO kdata = 1, Ndata_rep, 64
   43122     1603852 :          idata = idata + 1
   43123     1603852 :          data_tmp = ISHFT(pack_tmp, 53)
   43124     1603852 :          ipack = ipack + 1
   43125     1603852 :          pack_tmp = packed_data(ipack)
   43126     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   43127     1603852 :          pack_tmp = ISHFT(pack_tmp, -53)
   43128     1603852 :          idata = idata + 1
   43129     1603852 :          data_tmp = ISHFT(pack_tmp, 42)
   43130     1603852 :          ipack = ipack + 1
   43131     1603852 :          pack_tmp = packed_data(ipack)
   43132     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   43133     1603852 :          pack_tmp = ISHFT(pack_tmp, -42)
   43134     1603852 :          idata = idata + 1
   43135     1603852 :          data_tmp = ISHFT(pack_tmp, 31)
   43136     1603852 :          ipack = ipack + 1
   43137     1603852 :          pack_tmp = packed_data(ipack)
   43138     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   43139     1603852 :          pack_tmp = ISHFT(pack_tmp, -31)
   43140     1603852 :          idata = idata + 1
   43141     1603852 :          data_tmp = ISHFT(pack_tmp, 20)
   43142     1603852 :          ipack = ipack + 1
   43143     1603852 :          pack_tmp = packed_data(ipack)
   43144     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   43145     1603852 :          pack_tmp = ISHFT(pack_tmp, -20)
   43146     1603852 :          idata = idata + 1
   43147     1603852 :          data_tmp = ISHFT(pack_tmp, 9)
   43148     1603852 :          ipack = ipack + 1
   43149     1603852 :          pack_tmp = packed_data(ipack)
   43150     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   43151     1603852 :          pack_tmp = ISHFT(pack_tmp, -9)
   43152     1603852 :          idata = idata + 1
   43153     1603852 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43154     1603852 :          full_data(idata) = data_tmp
   43155     1603852 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43156     1603852 :          idata = idata + 1
   43157     1603852 :          data_tmp = ISHFT(pack_tmp, 51)
   43158     1603852 :          ipack = ipack + 1
   43159     1603852 :          pack_tmp = packed_data(ipack)
   43160     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   43161     1603852 :          pack_tmp = ISHFT(pack_tmp, -51)
   43162     1603852 :          idata = idata + 1
   43163     1603852 :          data_tmp = ISHFT(pack_tmp, 40)
   43164     1603852 :          ipack = ipack + 1
   43165     1603852 :          pack_tmp = packed_data(ipack)
   43166     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   43167     1603852 :          pack_tmp = ISHFT(pack_tmp, -40)
   43168     1603852 :          idata = idata + 1
   43169     1603852 :          data_tmp = ISHFT(pack_tmp, 29)
   43170     1603852 :          ipack = ipack + 1
   43171     1603852 :          pack_tmp = packed_data(ipack)
   43172     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   43173     1603852 :          pack_tmp = ISHFT(pack_tmp, -29)
   43174     1603852 :          idata = idata + 1
   43175     1603852 :          data_tmp = ISHFT(pack_tmp, 18)
   43176     1603852 :          ipack = ipack + 1
   43177     1603852 :          pack_tmp = packed_data(ipack)
   43178     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   43179     1603852 :          pack_tmp = ISHFT(pack_tmp, -18)
   43180     1603852 :          idata = idata + 1
   43181     1603852 :          data_tmp = ISHFT(pack_tmp, 7)
   43182     1603852 :          ipack = ipack + 1
   43183     1603852 :          pack_tmp = packed_data(ipack)
   43184     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   43185     1603852 :          pack_tmp = ISHFT(pack_tmp, -7)
   43186     1603852 :          idata = idata + 1
   43187     1603852 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43188     1603852 :          full_data(idata) = data_tmp
   43189     1603852 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43190     1603852 :          idata = idata + 1
   43191     1603852 :          data_tmp = ISHFT(pack_tmp, 49)
   43192     1603852 :          ipack = ipack + 1
   43193     1603852 :          pack_tmp = packed_data(ipack)
   43194     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   43195     1603852 :          pack_tmp = ISHFT(pack_tmp, -49)
   43196     1603852 :          idata = idata + 1
   43197     1603852 :          data_tmp = ISHFT(pack_tmp, 38)
   43198     1603852 :          ipack = ipack + 1
   43199     1603852 :          pack_tmp = packed_data(ipack)
   43200     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   43201     1603852 :          pack_tmp = ISHFT(pack_tmp, -38)
   43202     1603852 :          idata = idata + 1
   43203     1603852 :          data_tmp = ISHFT(pack_tmp, 27)
   43204     1603852 :          ipack = ipack + 1
   43205     1603852 :          pack_tmp = packed_data(ipack)
   43206     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   43207     1603852 :          pack_tmp = ISHFT(pack_tmp, -27)
   43208     1603852 :          idata = idata + 1
   43209     1603852 :          data_tmp = ISHFT(pack_tmp, 16)
   43210     1603852 :          ipack = ipack + 1
   43211     1603852 :          pack_tmp = packed_data(ipack)
   43212     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   43213     1603852 :          pack_tmp = ISHFT(pack_tmp, -16)
   43214     1603852 :          idata = idata + 1
   43215     1603852 :          data_tmp = ISHFT(pack_tmp, 5)
   43216     1603852 :          ipack = ipack + 1
   43217     1603852 :          pack_tmp = packed_data(ipack)
   43218     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   43219     1603852 :          pack_tmp = ISHFT(pack_tmp, -5)
   43220     1603852 :          idata = idata + 1
   43221     1603852 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43222     1603852 :          full_data(idata) = data_tmp
   43223     1603852 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43224     1603852 :          idata = idata + 1
   43225     1603852 :          data_tmp = ISHFT(pack_tmp, 47)
   43226     1603852 :          ipack = ipack + 1
   43227     1603852 :          pack_tmp = packed_data(ipack)
   43228     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   43229     1603852 :          pack_tmp = ISHFT(pack_tmp, -47)
   43230     1603852 :          idata = idata + 1
   43231     1603852 :          data_tmp = ISHFT(pack_tmp, 36)
   43232     1603852 :          ipack = ipack + 1
   43233     1603852 :          pack_tmp = packed_data(ipack)
   43234     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   43235     1603852 :          pack_tmp = ISHFT(pack_tmp, -36)
   43236     1603852 :          idata = idata + 1
   43237     1603852 :          data_tmp = ISHFT(pack_tmp, 25)
   43238     1603852 :          ipack = ipack + 1
   43239     1603852 :          pack_tmp = packed_data(ipack)
   43240     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   43241     1603852 :          pack_tmp = ISHFT(pack_tmp, -25)
   43242     1603852 :          idata = idata + 1
   43243     1603852 :          data_tmp = ISHFT(pack_tmp, 14)
   43244     1603852 :          ipack = ipack + 1
   43245     1603852 :          pack_tmp = packed_data(ipack)
   43246     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   43247     1603852 :          pack_tmp = ISHFT(pack_tmp, -14)
   43248     1603852 :          idata = idata + 1
   43249     1603852 :          data_tmp = ISHFT(pack_tmp, 3)
   43250     1603852 :          ipack = ipack + 1
   43251     1603852 :          pack_tmp = packed_data(ipack)
   43252     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   43253     1603852 :          pack_tmp = ISHFT(pack_tmp, -3)
   43254     1603852 :          idata = idata + 1
   43255     1603852 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43256     1603852 :          full_data(idata) = data_tmp
   43257     1603852 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43258     1603852 :          idata = idata + 1
   43259     1603852 :          data_tmp = ISHFT(pack_tmp, 45)
   43260     1603852 :          ipack = ipack + 1
   43261     1603852 :          pack_tmp = packed_data(ipack)
   43262     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   43263     1603852 :          pack_tmp = ISHFT(pack_tmp, -45)
   43264     1603852 :          idata = idata + 1
   43265     1603852 :          data_tmp = ISHFT(pack_tmp, 34)
   43266     1603852 :          ipack = ipack + 1
   43267     1603852 :          pack_tmp = packed_data(ipack)
   43268     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   43269     1603852 :          pack_tmp = ISHFT(pack_tmp, -34)
   43270     1603852 :          idata = idata + 1
   43271     1603852 :          data_tmp = ISHFT(pack_tmp, 23)
   43272     1603852 :          ipack = ipack + 1
   43273     1603852 :          pack_tmp = packed_data(ipack)
   43274     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   43275     1603852 :          pack_tmp = ISHFT(pack_tmp, -23)
   43276     1603852 :          idata = idata + 1
   43277     1603852 :          data_tmp = ISHFT(pack_tmp, 12)
   43278     1603852 :          ipack = ipack + 1
   43279     1603852 :          pack_tmp = packed_data(ipack)
   43280     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   43281     1603852 :          pack_tmp = ISHFT(pack_tmp, -12)
   43282     1603852 :          idata = idata + 1
   43283     1603852 :          data_tmp = ISHFT(pack_tmp, 1)
   43284     1603852 :          ipack = ipack + 1
   43285     1603852 :          pack_tmp = packed_data(ipack)
   43286     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   43287     1603852 :          pack_tmp = ISHFT(pack_tmp, -1)
   43288     1603852 :          idata = idata + 1
   43289     1603852 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43290     1603852 :          full_data(idata) = data_tmp
   43291     1603852 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43292     1603852 :          idata = idata + 1
   43293     1603852 :          data_tmp = ISHFT(pack_tmp, 43)
   43294     1603852 :          ipack = ipack + 1
   43295     1603852 :          pack_tmp = packed_data(ipack)
   43296     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   43297     1603852 :          pack_tmp = ISHFT(pack_tmp, -43)
   43298     1603852 :          idata = idata + 1
   43299     1603852 :          data_tmp = ISHFT(pack_tmp, 32)
   43300     1603852 :          ipack = ipack + 1
   43301     1603852 :          pack_tmp = packed_data(ipack)
   43302     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   43303     1603852 :          pack_tmp = ISHFT(pack_tmp, -32)
   43304     1603852 :          idata = idata + 1
   43305     1603852 :          data_tmp = ISHFT(pack_tmp, 21)
   43306     1603852 :          ipack = ipack + 1
   43307     1603852 :          pack_tmp = packed_data(ipack)
   43308     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   43309     1603852 :          pack_tmp = ISHFT(pack_tmp, -21)
   43310     1603852 :          idata = idata + 1
   43311     1603852 :          data_tmp = ISHFT(pack_tmp, 10)
   43312     1603852 :          ipack = ipack + 1
   43313     1603852 :          pack_tmp = packed_data(ipack)
   43314     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   43315     1603852 :          pack_tmp = ISHFT(pack_tmp, -10)
   43316     1603852 :          idata = idata + 1
   43317     1603852 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43318     1603852 :          full_data(idata) = data_tmp
   43319     1603852 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43320     1603852 :          idata = idata + 1
   43321     1603852 :          data_tmp = ISHFT(pack_tmp, 52)
   43322     1603852 :          ipack = ipack + 1
   43323     1603852 :          pack_tmp = packed_data(ipack)
   43324     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   43325     1603852 :          pack_tmp = ISHFT(pack_tmp, -52)
   43326     1603852 :          idata = idata + 1
   43327     1603852 :          data_tmp = ISHFT(pack_tmp, 41)
   43328     1603852 :          ipack = ipack + 1
   43329     1603852 :          pack_tmp = packed_data(ipack)
   43330     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   43331     1603852 :          pack_tmp = ISHFT(pack_tmp, -41)
   43332     1603852 :          idata = idata + 1
   43333     1603852 :          data_tmp = ISHFT(pack_tmp, 30)
   43334     1603852 :          ipack = ipack + 1
   43335     1603852 :          pack_tmp = packed_data(ipack)
   43336     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   43337     1603852 :          pack_tmp = ISHFT(pack_tmp, -30)
   43338     1603852 :          idata = idata + 1
   43339     1603852 :          data_tmp = ISHFT(pack_tmp, 19)
   43340     1603852 :          ipack = ipack + 1
   43341     1603852 :          pack_tmp = packed_data(ipack)
   43342     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   43343     1603852 :          pack_tmp = ISHFT(pack_tmp, -19)
   43344     1603852 :          idata = idata + 1
   43345     1603852 :          data_tmp = ISHFT(pack_tmp, 8)
   43346     1603852 :          ipack = ipack + 1
   43347     1603852 :          pack_tmp = packed_data(ipack)
   43348     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   43349     1603852 :          pack_tmp = ISHFT(pack_tmp, -8)
   43350     1603852 :          idata = idata + 1
   43351     1603852 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43352     1603852 :          full_data(idata) = data_tmp
   43353     1603852 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43354     1603852 :          idata = idata + 1
   43355     1603852 :          data_tmp = ISHFT(pack_tmp, 50)
   43356     1603852 :          ipack = ipack + 1
   43357     1603852 :          pack_tmp = packed_data(ipack)
   43358     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   43359     1603852 :          pack_tmp = ISHFT(pack_tmp, -50)
   43360     1603852 :          idata = idata + 1
   43361     1603852 :          data_tmp = ISHFT(pack_tmp, 39)
   43362     1603852 :          ipack = ipack + 1
   43363     1603852 :          pack_tmp = packed_data(ipack)
   43364     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   43365     1603852 :          pack_tmp = ISHFT(pack_tmp, -39)
   43366     1603852 :          idata = idata + 1
   43367     1603852 :          data_tmp = ISHFT(pack_tmp, 28)
   43368     1603852 :          ipack = ipack + 1
   43369     1603852 :          pack_tmp = packed_data(ipack)
   43370     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   43371     1603852 :          pack_tmp = ISHFT(pack_tmp, -28)
   43372     1603852 :          idata = idata + 1
   43373     1603852 :          data_tmp = ISHFT(pack_tmp, 17)
   43374     1603852 :          ipack = ipack + 1
   43375     1603852 :          pack_tmp = packed_data(ipack)
   43376     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   43377     1603852 :          pack_tmp = ISHFT(pack_tmp, -17)
   43378     1603852 :          idata = idata + 1
   43379     1603852 :          data_tmp = ISHFT(pack_tmp, 6)
   43380     1603852 :          ipack = ipack + 1
   43381     1603852 :          pack_tmp = packed_data(ipack)
   43382     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   43383     1603852 :          pack_tmp = ISHFT(pack_tmp, -6)
   43384     1603852 :          idata = idata + 1
   43385     1603852 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43386     1603852 :          full_data(idata) = data_tmp
   43387     1603852 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43388     1603852 :          idata = idata + 1
   43389     1603852 :          data_tmp = ISHFT(pack_tmp, 48)
   43390     1603852 :          ipack = ipack + 1
   43391     1603852 :          pack_tmp = packed_data(ipack)
   43392     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   43393     1603852 :          pack_tmp = ISHFT(pack_tmp, -48)
   43394     1603852 :          idata = idata + 1
   43395     1603852 :          data_tmp = ISHFT(pack_tmp, 37)
   43396     1603852 :          ipack = ipack + 1
   43397     1603852 :          pack_tmp = packed_data(ipack)
   43398     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   43399     1603852 :          pack_tmp = ISHFT(pack_tmp, -37)
   43400     1603852 :          idata = idata + 1
   43401     1603852 :          data_tmp = ISHFT(pack_tmp, 26)
   43402     1603852 :          ipack = ipack + 1
   43403     1603852 :          pack_tmp = packed_data(ipack)
   43404     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   43405     1603852 :          pack_tmp = ISHFT(pack_tmp, -26)
   43406     1603852 :          idata = idata + 1
   43407     1603852 :          data_tmp = ISHFT(pack_tmp, 15)
   43408     1603852 :          ipack = ipack + 1
   43409     1603852 :          pack_tmp = packed_data(ipack)
   43410     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   43411     1603852 :          pack_tmp = ISHFT(pack_tmp, -15)
   43412     1603852 :          idata = idata + 1
   43413     1603852 :          data_tmp = ISHFT(pack_tmp, 4)
   43414     1603852 :          ipack = ipack + 1
   43415     1603852 :          pack_tmp = packed_data(ipack)
   43416     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   43417     1603852 :          pack_tmp = ISHFT(pack_tmp, -4)
   43418     1603852 :          idata = idata + 1
   43419     1603852 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43420     1603852 :          full_data(idata) = data_tmp
   43421     1603852 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43422     1603852 :          idata = idata + 1
   43423     1603852 :          data_tmp = ISHFT(pack_tmp, 46)
   43424     1603852 :          ipack = ipack + 1
   43425     1603852 :          pack_tmp = packed_data(ipack)
   43426     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   43427     1603852 :          pack_tmp = ISHFT(pack_tmp, -46)
   43428     1603852 :          idata = idata + 1
   43429     1603852 :          data_tmp = ISHFT(pack_tmp, 35)
   43430     1603852 :          ipack = ipack + 1
   43431     1603852 :          pack_tmp = packed_data(ipack)
   43432     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   43433     1603852 :          pack_tmp = ISHFT(pack_tmp, -35)
   43434     1603852 :          idata = idata + 1
   43435     1603852 :          data_tmp = ISHFT(pack_tmp, 24)
   43436     1603852 :          ipack = ipack + 1
   43437     1603852 :          pack_tmp = packed_data(ipack)
   43438     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   43439     1603852 :          pack_tmp = ISHFT(pack_tmp, -24)
   43440     1603852 :          idata = idata + 1
   43441     1603852 :          data_tmp = ISHFT(pack_tmp, 13)
   43442     1603852 :          ipack = ipack + 1
   43443     1603852 :          pack_tmp = packed_data(ipack)
   43444     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   43445     1603852 :          pack_tmp = ISHFT(pack_tmp, -13)
   43446     1603852 :          idata = idata + 1
   43447     1603852 :          data_tmp = ISHFT(pack_tmp, 2)
   43448     1603852 :          ipack = ipack + 1
   43449     1603852 :          pack_tmp = packed_data(ipack)
   43450     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   43451     1603852 :          pack_tmp = ISHFT(pack_tmp, -2)
   43452     1603852 :          idata = idata + 1
   43453     1603852 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43454     1603852 :          full_data(idata) = data_tmp
   43455     1603852 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43456     1603852 :          idata = idata + 1
   43457     1603852 :          data_tmp = ISHFT(pack_tmp, 44)
   43458     1603852 :          ipack = ipack + 1
   43459     1603852 :          pack_tmp = packed_data(ipack)
   43460     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   43461     1603852 :          pack_tmp = ISHFT(pack_tmp, -44)
   43462     1603852 :          idata = idata + 1
   43463     1603852 :          data_tmp = ISHFT(pack_tmp, 33)
   43464     1603852 :          ipack = ipack + 1
   43465     1603852 :          pack_tmp = packed_data(ipack)
   43466     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   43467     1603852 :          pack_tmp = ISHFT(pack_tmp, -33)
   43468     1603852 :          idata = idata + 1
   43469     1603852 :          data_tmp = ISHFT(pack_tmp, 22)
   43470     1603852 :          ipack = ipack + 1
   43471     1603852 :          pack_tmp = packed_data(ipack)
   43472     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   43473     1603852 :          pack_tmp = ISHFT(pack_tmp, -22)
   43474     1603852 :          idata = idata + 1
   43475     1603852 :          data_tmp = ISHFT(pack_tmp, 11)
   43476     1603852 :          ipack = ipack + 1
   43477     1603852 :          pack_tmp = packed_data(ipack)
   43478     1603852 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   43479     1603852 :          pack_tmp = ISHFT(pack_tmp, -11)
   43480     1603852 :          idata = idata + 1
   43481     1603852 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43482     1603852 :          full_data(idata) = data_tmp
   43483     1604242 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43484             :       END DO
   43485      106365 :       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      106365 :    END SUBROUTINE bits2ints_53
   43489             : 
   43490             : ! **************************************************************************************************
   43491             : !> \brief ...
   43492             : !> \param Ndata ...
   43493             : !> \param packed_data ...
   43494             : !> \param full_data ...
   43495             : ! **************************************************************************************************
   43496       23382 :    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       23382 :       idata = 0
   43507       23382 :       ipack = 0
   43508       23382 :       Ndata_rep = (Ndata/64)*64
   43509       23382 :       DO kdata = 1, Ndata_rep, 64
   43510      371086 :          pack_tmp = 0
   43511      371086 :          idata = idata + 1
   43512      371086 :          data_tmp = full_data(idata)
   43513      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43514      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43515      371086 :          pack_tmp = ISHFT(pack_tmp, -10)
   43516      371086 :          idata = idata + 1
   43517      371086 :          data_tmp = full_data(idata)
   43518      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43519      371086 :          data_tmp = IAND(data_tmp, mask_left(10))
   43520      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43521      371086 :          ipack = ipack + 1
   43522      371086 :          packed_data(ipack) = pack_tmp
   43523      371086 :          data_tmp = full_data(idata)
   43524      371086 :          pack_tmp = ISHFT(data_tmp, 20)
   43525      371086 :          pack_tmp = ISHFT(pack_tmp, -20)
   43526      371086 :          idata = idata + 1
   43527      371086 :          data_tmp = full_data(idata)
   43528      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43529      371086 :          data_tmp = IAND(data_tmp, mask_left(20))
   43530      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43531      371086 :          ipack = ipack + 1
   43532      371086 :          packed_data(ipack) = pack_tmp
   43533      371086 :          data_tmp = full_data(idata)
   43534      371086 :          pack_tmp = ISHFT(data_tmp, 30)
   43535      371086 :          pack_tmp = ISHFT(pack_tmp, -30)
   43536      371086 :          idata = idata + 1
   43537      371086 :          data_tmp = full_data(idata)
   43538      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43539      371086 :          data_tmp = IAND(data_tmp, mask_left(30))
   43540      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43541      371086 :          ipack = ipack + 1
   43542      371086 :          packed_data(ipack) = pack_tmp
   43543      371086 :          data_tmp = full_data(idata)
   43544      371086 :          pack_tmp = ISHFT(data_tmp, 40)
   43545      371086 :          pack_tmp = ISHFT(pack_tmp, -40)
   43546      371086 :          idata = idata + 1
   43547      371086 :          data_tmp = full_data(idata)
   43548      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43549      371086 :          data_tmp = IAND(data_tmp, mask_left(40))
   43550      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43551      371086 :          ipack = ipack + 1
   43552      371086 :          packed_data(ipack) = pack_tmp
   43553      371086 :          data_tmp = full_data(idata)
   43554      371086 :          pack_tmp = ISHFT(data_tmp, 50)
   43555      371086 :          pack_tmp = ISHFT(pack_tmp, -50)
   43556      371086 :          idata = idata + 1
   43557      371086 :          data_tmp = full_data(idata)
   43558      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43559      371086 :          data_tmp = IAND(data_tmp, mask_left(50))
   43560      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43561      371086 :          ipack = ipack + 1
   43562      371086 :          packed_data(ipack) = pack_tmp
   43563      371086 :          data_tmp = full_data(idata)
   43564      371086 :          pack_tmp = ISHFT(data_tmp, 60)
   43565      371086 :          pack_tmp = ISHFT(pack_tmp, -54)
   43566      371086 :          idata = idata + 1
   43567      371086 :          data_tmp = full_data(idata)
   43568      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43569      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43570      371086 :          pack_tmp = ISHFT(pack_tmp, -6)
   43571      371086 :          idata = idata + 1
   43572      371086 :          data_tmp = full_data(idata)
   43573      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43574      371086 :          data_tmp = IAND(data_tmp, mask_left(6))
   43575      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43576      371086 :          ipack = ipack + 1
   43577      371086 :          packed_data(ipack) = pack_tmp
   43578      371086 :          data_tmp = full_data(idata)
   43579      371086 :          pack_tmp = ISHFT(data_tmp, 16)
   43580      371086 :          pack_tmp = ISHFT(pack_tmp, -16)
   43581      371086 :          idata = idata + 1
   43582      371086 :          data_tmp = full_data(idata)
   43583      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43584      371086 :          data_tmp = IAND(data_tmp, mask_left(16))
   43585      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43586      371086 :          ipack = ipack + 1
   43587      371086 :          packed_data(ipack) = pack_tmp
   43588      371086 :          data_tmp = full_data(idata)
   43589      371086 :          pack_tmp = ISHFT(data_tmp, 26)
   43590      371086 :          pack_tmp = ISHFT(pack_tmp, -26)
   43591      371086 :          idata = idata + 1
   43592      371086 :          data_tmp = full_data(idata)
   43593      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43594      371086 :          data_tmp = IAND(data_tmp, mask_left(26))
   43595      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43596      371086 :          ipack = ipack + 1
   43597      371086 :          packed_data(ipack) = pack_tmp
   43598      371086 :          data_tmp = full_data(idata)
   43599      371086 :          pack_tmp = ISHFT(data_tmp, 36)
   43600      371086 :          pack_tmp = ISHFT(pack_tmp, -36)
   43601      371086 :          idata = idata + 1
   43602      371086 :          data_tmp = full_data(idata)
   43603      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43604      371086 :          data_tmp = IAND(data_tmp, mask_left(36))
   43605      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43606      371086 :          ipack = ipack + 1
   43607      371086 :          packed_data(ipack) = pack_tmp
   43608      371086 :          data_tmp = full_data(idata)
   43609      371086 :          pack_tmp = ISHFT(data_tmp, 46)
   43610      371086 :          pack_tmp = ISHFT(pack_tmp, -46)
   43611      371086 :          idata = idata + 1
   43612      371086 :          data_tmp = full_data(idata)
   43613      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43614      371086 :          data_tmp = IAND(data_tmp, mask_left(46))
   43615      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43616      371086 :          ipack = ipack + 1
   43617      371086 :          packed_data(ipack) = pack_tmp
   43618      371086 :          data_tmp = full_data(idata)
   43619      371086 :          pack_tmp = ISHFT(data_tmp, 56)
   43620      371086 :          pack_tmp = ISHFT(pack_tmp, -54)
   43621      371086 :          idata = idata + 1
   43622      371086 :          data_tmp = full_data(idata)
   43623      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43624      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43625      371086 :          pack_tmp = ISHFT(pack_tmp, -2)
   43626      371086 :          idata = idata + 1
   43627      371086 :          data_tmp = full_data(idata)
   43628      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43629      371086 :          data_tmp = IAND(data_tmp, mask_left(2))
   43630      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43631      371086 :          ipack = ipack + 1
   43632      371086 :          packed_data(ipack) = pack_tmp
   43633      371086 :          data_tmp = full_data(idata)
   43634      371086 :          pack_tmp = ISHFT(data_tmp, 12)
   43635      371086 :          pack_tmp = ISHFT(pack_tmp, -12)
   43636      371086 :          idata = idata + 1
   43637      371086 :          data_tmp = full_data(idata)
   43638      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43639      371086 :          data_tmp = IAND(data_tmp, mask_left(12))
   43640      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43641      371086 :          ipack = ipack + 1
   43642      371086 :          packed_data(ipack) = pack_tmp
   43643      371086 :          data_tmp = full_data(idata)
   43644      371086 :          pack_tmp = ISHFT(data_tmp, 22)
   43645      371086 :          pack_tmp = ISHFT(pack_tmp, -22)
   43646      371086 :          idata = idata + 1
   43647      371086 :          data_tmp = full_data(idata)
   43648      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43649      371086 :          data_tmp = IAND(data_tmp, mask_left(22))
   43650      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43651      371086 :          ipack = ipack + 1
   43652      371086 :          packed_data(ipack) = pack_tmp
   43653      371086 :          data_tmp = full_data(idata)
   43654      371086 :          pack_tmp = ISHFT(data_tmp, 32)
   43655      371086 :          pack_tmp = ISHFT(pack_tmp, -32)
   43656      371086 :          idata = idata + 1
   43657      371086 :          data_tmp = full_data(idata)
   43658      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43659      371086 :          data_tmp = IAND(data_tmp, mask_left(32))
   43660      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43661      371086 :          ipack = ipack + 1
   43662      371086 :          packed_data(ipack) = pack_tmp
   43663      371086 :          data_tmp = full_data(idata)
   43664      371086 :          pack_tmp = ISHFT(data_tmp, 42)
   43665      371086 :          pack_tmp = ISHFT(pack_tmp, -42)
   43666      371086 :          idata = idata + 1
   43667      371086 :          data_tmp = full_data(idata)
   43668      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43669      371086 :          data_tmp = IAND(data_tmp, mask_left(42))
   43670      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43671      371086 :          ipack = ipack + 1
   43672      371086 :          packed_data(ipack) = pack_tmp
   43673      371086 :          data_tmp = full_data(idata)
   43674      371086 :          pack_tmp = ISHFT(data_tmp, 52)
   43675      371086 :          pack_tmp = ISHFT(pack_tmp, -52)
   43676      371086 :          idata = idata + 1
   43677      371086 :          data_tmp = full_data(idata)
   43678      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43679      371086 :          data_tmp = IAND(data_tmp, mask_left(52))
   43680      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43681      371086 :          ipack = ipack + 1
   43682      371086 :          packed_data(ipack) = pack_tmp
   43683      371086 :          data_tmp = full_data(idata)
   43684      371086 :          pack_tmp = ISHFT(data_tmp, 62)
   43685      371086 :          pack_tmp = ISHFT(pack_tmp, -54)
   43686      371086 :          idata = idata + 1
   43687      371086 :          data_tmp = full_data(idata)
   43688      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43689      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43690      371086 :          pack_tmp = ISHFT(pack_tmp, -8)
   43691      371086 :          idata = idata + 1
   43692      371086 :          data_tmp = full_data(idata)
   43693      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43694      371086 :          data_tmp = IAND(data_tmp, mask_left(8))
   43695      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43696      371086 :          ipack = ipack + 1
   43697      371086 :          packed_data(ipack) = pack_tmp
   43698      371086 :          data_tmp = full_data(idata)
   43699      371086 :          pack_tmp = ISHFT(data_tmp, 18)
   43700      371086 :          pack_tmp = ISHFT(pack_tmp, -18)
   43701      371086 :          idata = idata + 1
   43702      371086 :          data_tmp = full_data(idata)
   43703      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43704      371086 :          data_tmp = IAND(data_tmp, mask_left(18))
   43705      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43706      371086 :          ipack = ipack + 1
   43707      371086 :          packed_data(ipack) = pack_tmp
   43708      371086 :          data_tmp = full_data(idata)
   43709      371086 :          pack_tmp = ISHFT(data_tmp, 28)
   43710      371086 :          pack_tmp = ISHFT(pack_tmp, -28)
   43711      371086 :          idata = idata + 1
   43712      371086 :          data_tmp = full_data(idata)
   43713      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43714      371086 :          data_tmp = IAND(data_tmp, mask_left(28))
   43715      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43716      371086 :          ipack = ipack + 1
   43717      371086 :          packed_data(ipack) = pack_tmp
   43718      371086 :          data_tmp = full_data(idata)
   43719      371086 :          pack_tmp = ISHFT(data_tmp, 38)
   43720      371086 :          pack_tmp = ISHFT(pack_tmp, -38)
   43721      371086 :          idata = idata + 1
   43722      371086 :          data_tmp = full_data(idata)
   43723      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43724      371086 :          data_tmp = IAND(data_tmp, mask_left(38))
   43725      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43726      371086 :          ipack = ipack + 1
   43727      371086 :          packed_data(ipack) = pack_tmp
   43728      371086 :          data_tmp = full_data(idata)
   43729      371086 :          pack_tmp = ISHFT(data_tmp, 48)
   43730      371086 :          pack_tmp = ISHFT(pack_tmp, -48)
   43731      371086 :          idata = idata + 1
   43732      371086 :          data_tmp = full_data(idata)
   43733      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43734      371086 :          data_tmp = IAND(data_tmp, mask_left(48))
   43735      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43736      371086 :          ipack = ipack + 1
   43737      371086 :          packed_data(ipack) = pack_tmp
   43738      371086 :          data_tmp = full_data(idata)
   43739      371086 :          pack_tmp = ISHFT(data_tmp, 58)
   43740      371086 :          pack_tmp = ISHFT(pack_tmp, -54)
   43741      371086 :          idata = idata + 1
   43742      371086 :          data_tmp = full_data(idata)
   43743      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43744      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43745      371086 :          pack_tmp = ISHFT(pack_tmp, -4)
   43746      371086 :          idata = idata + 1
   43747      371086 :          data_tmp = full_data(idata)
   43748      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43749      371086 :          data_tmp = IAND(data_tmp, mask_left(4))
   43750      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43751      371086 :          ipack = ipack + 1
   43752      371086 :          packed_data(ipack) = pack_tmp
   43753      371086 :          data_tmp = full_data(idata)
   43754      371086 :          pack_tmp = ISHFT(data_tmp, 14)
   43755      371086 :          pack_tmp = ISHFT(pack_tmp, -14)
   43756      371086 :          idata = idata + 1
   43757      371086 :          data_tmp = full_data(idata)
   43758      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43759      371086 :          data_tmp = IAND(data_tmp, mask_left(14))
   43760      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43761      371086 :          ipack = ipack + 1
   43762      371086 :          packed_data(ipack) = pack_tmp
   43763      371086 :          data_tmp = full_data(idata)
   43764      371086 :          pack_tmp = ISHFT(data_tmp, 24)
   43765      371086 :          pack_tmp = ISHFT(pack_tmp, -24)
   43766      371086 :          idata = idata + 1
   43767      371086 :          data_tmp = full_data(idata)
   43768      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43769      371086 :          data_tmp = IAND(data_tmp, mask_left(24))
   43770      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43771      371086 :          ipack = ipack + 1
   43772      371086 :          packed_data(ipack) = pack_tmp
   43773      371086 :          data_tmp = full_data(idata)
   43774      371086 :          pack_tmp = ISHFT(data_tmp, 34)
   43775      371086 :          pack_tmp = ISHFT(pack_tmp, -34)
   43776      371086 :          idata = idata + 1
   43777      371086 :          data_tmp = full_data(idata)
   43778      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43779      371086 :          data_tmp = IAND(data_tmp, mask_left(34))
   43780      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43781      371086 :          ipack = ipack + 1
   43782      371086 :          packed_data(ipack) = pack_tmp
   43783      371086 :          data_tmp = full_data(idata)
   43784      371086 :          pack_tmp = ISHFT(data_tmp, 44)
   43785      371086 :          pack_tmp = ISHFT(pack_tmp, -44)
   43786      371086 :          idata = idata + 1
   43787      371086 :          data_tmp = full_data(idata)
   43788      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43789      371086 :          data_tmp = IAND(data_tmp, mask_left(44))
   43790      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43791      371086 :          ipack = ipack + 1
   43792      371086 :          packed_data(ipack) = pack_tmp
   43793      371086 :          data_tmp = full_data(idata)
   43794      371086 :          pack_tmp = ISHFT(data_tmp, 54)
   43795      371086 :          pack_tmp = ISHFT(pack_tmp, -54)
   43796      371086 :          idata = idata + 1
   43797      371086 :          data_tmp = full_data(idata)
   43798      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43799      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43800      371086 :          pack_tmp = ISHFT(pack_tmp, 0)
   43801      371086 :          idata = idata + 1
   43802      371086 :          data_tmp = full_data(idata)
   43803             :          data_tmp = ISHFT(data_tmp, 10)
   43804      371086 :          data_tmp = IAND(data_tmp, mask_left(0))
   43805      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43806      371086 :          ipack = ipack + 1
   43807      371086 :          packed_data(ipack) = pack_tmp
   43808      371086 :          data_tmp = full_data(idata)
   43809      371086 :          pack_tmp = ISHFT(data_tmp, 10)
   43810      371086 :          pack_tmp = ISHFT(pack_tmp, -10)
   43811      371086 :          idata = idata + 1
   43812      371086 :          data_tmp = full_data(idata)
   43813      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43814      371086 :          data_tmp = IAND(data_tmp, mask_left(10))
   43815      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43816      371086 :          ipack = ipack + 1
   43817      371086 :          packed_data(ipack) = pack_tmp
   43818      371086 :          data_tmp = full_data(idata)
   43819      371086 :          pack_tmp = ISHFT(data_tmp, 20)
   43820      371086 :          pack_tmp = ISHFT(pack_tmp, -20)
   43821      371086 :          idata = idata + 1
   43822      371086 :          data_tmp = full_data(idata)
   43823      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43824      371086 :          data_tmp = IAND(data_tmp, mask_left(20))
   43825      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43826      371086 :          ipack = ipack + 1
   43827      371086 :          packed_data(ipack) = pack_tmp
   43828      371086 :          data_tmp = full_data(idata)
   43829      371086 :          pack_tmp = ISHFT(data_tmp, 30)
   43830      371086 :          pack_tmp = ISHFT(pack_tmp, -30)
   43831      371086 :          idata = idata + 1
   43832      371086 :          data_tmp = full_data(idata)
   43833      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43834      371086 :          data_tmp = IAND(data_tmp, mask_left(30))
   43835      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43836      371086 :          ipack = ipack + 1
   43837      371086 :          packed_data(ipack) = pack_tmp
   43838      371086 :          data_tmp = full_data(idata)
   43839      371086 :          pack_tmp = ISHFT(data_tmp, 40)
   43840      371086 :          pack_tmp = ISHFT(pack_tmp, -40)
   43841      371086 :          idata = idata + 1
   43842      371086 :          data_tmp = full_data(idata)
   43843      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43844      371086 :          data_tmp = IAND(data_tmp, mask_left(40))
   43845      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43846      371086 :          ipack = ipack + 1
   43847      371086 :          packed_data(ipack) = pack_tmp
   43848      371086 :          data_tmp = full_data(idata)
   43849      371086 :          pack_tmp = ISHFT(data_tmp, 50)
   43850      371086 :          pack_tmp = ISHFT(pack_tmp, -50)
   43851      371086 :          idata = idata + 1
   43852      371086 :          data_tmp = full_data(idata)
   43853      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43854      371086 :          data_tmp = IAND(data_tmp, mask_left(50))
   43855      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43856      371086 :          ipack = ipack + 1
   43857      371086 :          packed_data(ipack) = pack_tmp
   43858      371086 :          data_tmp = full_data(idata)
   43859      371086 :          pack_tmp = ISHFT(data_tmp, 60)
   43860      371086 :          pack_tmp = ISHFT(pack_tmp, -54)
   43861      371086 :          idata = idata + 1
   43862      371086 :          data_tmp = full_data(idata)
   43863      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43864      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43865      371086 :          pack_tmp = ISHFT(pack_tmp, -6)
   43866      371086 :          idata = idata + 1
   43867      371086 :          data_tmp = full_data(idata)
   43868      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43869      371086 :          data_tmp = IAND(data_tmp, mask_left(6))
   43870      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43871      371086 :          ipack = ipack + 1
   43872      371086 :          packed_data(ipack) = pack_tmp
   43873      371086 :          data_tmp = full_data(idata)
   43874      371086 :          pack_tmp = ISHFT(data_tmp, 16)
   43875      371086 :          pack_tmp = ISHFT(pack_tmp, -16)
   43876      371086 :          idata = idata + 1
   43877      371086 :          data_tmp = full_data(idata)
   43878      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43879      371086 :          data_tmp = IAND(data_tmp, mask_left(16))
   43880      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43881      371086 :          ipack = ipack + 1
   43882      371086 :          packed_data(ipack) = pack_tmp
   43883      371086 :          data_tmp = full_data(idata)
   43884      371086 :          pack_tmp = ISHFT(data_tmp, 26)
   43885      371086 :          pack_tmp = ISHFT(pack_tmp, -26)
   43886      371086 :          idata = idata + 1
   43887      371086 :          data_tmp = full_data(idata)
   43888      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43889      371086 :          data_tmp = IAND(data_tmp, mask_left(26))
   43890      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43891      371086 :          ipack = ipack + 1
   43892      371086 :          packed_data(ipack) = pack_tmp
   43893      371086 :          data_tmp = full_data(idata)
   43894      371086 :          pack_tmp = ISHFT(data_tmp, 36)
   43895      371086 :          pack_tmp = ISHFT(pack_tmp, -36)
   43896      371086 :          idata = idata + 1
   43897      371086 :          data_tmp = full_data(idata)
   43898      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43899      371086 :          data_tmp = IAND(data_tmp, mask_left(36))
   43900      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43901      371086 :          ipack = ipack + 1
   43902      371086 :          packed_data(ipack) = pack_tmp
   43903      371086 :          data_tmp = full_data(idata)
   43904      371086 :          pack_tmp = ISHFT(data_tmp, 46)
   43905      371086 :          pack_tmp = ISHFT(pack_tmp, -46)
   43906      371086 :          idata = idata + 1
   43907      371086 :          data_tmp = full_data(idata)
   43908      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43909      371086 :          data_tmp = IAND(data_tmp, mask_left(46))
   43910      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43911      371086 :          ipack = ipack + 1
   43912      371086 :          packed_data(ipack) = pack_tmp
   43913      371086 :          data_tmp = full_data(idata)
   43914      371086 :          pack_tmp = ISHFT(data_tmp, 56)
   43915      371086 :          pack_tmp = ISHFT(pack_tmp, -54)
   43916      371086 :          idata = idata + 1
   43917      371086 :          data_tmp = full_data(idata)
   43918      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43919      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43920      371086 :          pack_tmp = ISHFT(pack_tmp, -2)
   43921      371086 :          idata = idata + 1
   43922      371086 :          data_tmp = full_data(idata)
   43923      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43924      371086 :          data_tmp = IAND(data_tmp, mask_left(2))
   43925      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43926      371086 :          ipack = ipack + 1
   43927      371086 :          packed_data(ipack) = pack_tmp
   43928      371086 :          data_tmp = full_data(idata)
   43929      371086 :          pack_tmp = ISHFT(data_tmp, 12)
   43930      371086 :          pack_tmp = ISHFT(pack_tmp, -12)
   43931      371086 :          idata = idata + 1
   43932      371086 :          data_tmp = full_data(idata)
   43933      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43934      371086 :          data_tmp = IAND(data_tmp, mask_left(12))
   43935      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43936      371086 :          ipack = ipack + 1
   43937      371086 :          packed_data(ipack) = pack_tmp
   43938      371086 :          data_tmp = full_data(idata)
   43939      371086 :          pack_tmp = ISHFT(data_tmp, 22)
   43940      371086 :          pack_tmp = ISHFT(pack_tmp, -22)
   43941      371086 :          idata = idata + 1
   43942      371086 :          data_tmp = full_data(idata)
   43943      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43944      371086 :          data_tmp = IAND(data_tmp, mask_left(22))
   43945      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43946      371086 :          ipack = ipack + 1
   43947      371086 :          packed_data(ipack) = pack_tmp
   43948      371086 :          data_tmp = full_data(idata)
   43949      371086 :          pack_tmp = ISHFT(data_tmp, 32)
   43950      371086 :          pack_tmp = ISHFT(pack_tmp, -32)
   43951      371086 :          idata = idata + 1
   43952      371086 :          data_tmp = full_data(idata)
   43953      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43954      371086 :          data_tmp = IAND(data_tmp, mask_left(32))
   43955      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43956      371086 :          ipack = ipack + 1
   43957      371086 :          packed_data(ipack) = pack_tmp
   43958      371086 :          data_tmp = full_data(idata)
   43959      371086 :          pack_tmp = ISHFT(data_tmp, 42)
   43960      371086 :          pack_tmp = ISHFT(pack_tmp, -42)
   43961      371086 :          idata = idata + 1
   43962      371086 :          data_tmp = full_data(idata)
   43963      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43964      371086 :          data_tmp = IAND(data_tmp, mask_left(42))
   43965      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43966      371086 :          ipack = ipack + 1
   43967      371086 :          packed_data(ipack) = pack_tmp
   43968      371086 :          data_tmp = full_data(idata)
   43969      371086 :          pack_tmp = ISHFT(data_tmp, 52)
   43970      371086 :          pack_tmp = ISHFT(pack_tmp, -52)
   43971      371086 :          idata = idata + 1
   43972      371086 :          data_tmp = full_data(idata)
   43973      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43974      371086 :          data_tmp = IAND(data_tmp, mask_left(52))
   43975      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43976      371086 :          ipack = ipack + 1
   43977      371086 :          packed_data(ipack) = pack_tmp
   43978      371086 :          data_tmp = full_data(idata)
   43979      371086 :          pack_tmp = ISHFT(data_tmp, 62)
   43980      371086 :          pack_tmp = ISHFT(pack_tmp, -54)
   43981      371086 :          idata = idata + 1
   43982      371086 :          data_tmp = full_data(idata)
   43983      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43984      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43985      371086 :          pack_tmp = ISHFT(pack_tmp, -8)
   43986      371086 :          idata = idata + 1
   43987      371086 :          data_tmp = full_data(idata)
   43988      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43989      371086 :          data_tmp = IAND(data_tmp, mask_left(8))
   43990      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43991      371086 :          ipack = ipack + 1
   43992      371086 :          packed_data(ipack) = pack_tmp
   43993      371086 :          data_tmp = full_data(idata)
   43994      371086 :          pack_tmp = ISHFT(data_tmp, 18)
   43995      371086 :          pack_tmp = ISHFT(pack_tmp, -18)
   43996      371086 :          idata = idata + 1
   43997      371086 :          data_tmp = full_data(idata)
   43998      371086 :          data_tmp = ISHFT(data_tmp, 10)
   43999      371086 :          data_tmp = IAND(data_tmp, mask_left(18))
   44000      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44001      371086 :          ipack = ipack + 1
   44002      371086 :          packed_data(ipack) = pack_tmp
   44003      371086 :          data_tmp = full_data(idata)
   44004      371086 :          pack_tmp = ISHFT(data_tmp, 28)
   44005      371086 :          pack_tmp = ISHFT(pack_tmp, -28)
   44006      371086 :          idata = idata + 1
   44007      371086 :          data_tmp = full_data(idata)
   44008      371086 :          data_tmp = ISHFT(data_tmp, 10)
   44009      371086 :          data_tmp = IAND(data_tmp, mask_left(28))
   44010      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44011      371086 :          ipack = ipack + 1
   44012      371086 :          packed_data(ipack) = pack_tmp
   44013      371086 :          data_tmp = full_data(idata)
   44014      371086 :          pack_tmp = ISHFT(data_tmp, 38)
   44015      371086 :          pack_tmp = ISHFT(pack_tmp, -38)
   44016      371086 :          idata = idata + 1
   44017      371086 :          data_tmp = full_data(idata)
   44018      371086 :          data_tmp = ISHFT(data_tmp, 10)
   44019      371086 :          data_tmp = IAND(data_tmp, mask_left(38))
   44020      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44021      371086 :          ipack = ipack + 1
   44022      371086 :          packed_data(ipack) = pack_tmp
   44023      371086 :          data_tmp = full_data(idata)
   44024      371086 :          pack_tmp = ISHFT(data_tmp, 48)
   44025      371086 :          pack_tmp = ISHFT(pack_tmp, -48)
   44026      371086 :          idata = idata + 1
   44027      371086 :          data_tmp = full_data(idata)
   44028      371086 :          data_tmp = ISHFT(data_tmp, 10)
   44029      371086 :          data_tmp = IAND(data_tmp, mask_left(48))
   44030      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44031      371086 :          ipack = ipack + 1
   44032      371086 :          packed_data(ipack) = pack_tmp
   44033      371086 :          data_tmp = full_data(idata)
   44034      371086 :          pack_tmp = ISHFT(data_tmp, 58)
   44035      371086 :          pack_tmp = ISHFT(pack_tmp, -54)
   44036      371086 :          idata = idata + 1
   44037      371086 :          data_tmp = full_data(idata)
   44038      371086 :          data_tmp = ISHFT(data_tmp, 10)
   44039      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44040      371086 :          pack_tmp = ISHFT(pack_tmp, -4)
   44041      371086 :          idata = idata + 1
   44042      371086 :          data_tmp = full_data(idata)
   44043      371086 :          data_tmp = ISHFT(data_tmp, 10)
   44044      371086 :          data_tmp = IAND(data_tmp, mask_left(4))
   44045      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44046      371086 :          ipack = ipack + 1
   44047      371086 :          packed_data(ipack) = pack_tmp
   44048      371086 :          data_tmp = full_data(idata)
   44049      371086 :          pack_tmp = ISHFT(data_tmp, 14)
   44050      371086 :          pack_tmp = ISHFT(pack_tmp, -14)
   44051      371086 :          idata = idata + 1
   44052      371086 :          data_tmp = full_data(idata)
   44053      371086 :          data_tmp = ISHFT(data_tmp, 10)
   44054      371086 :          data_tmp = IAND(data_tmp, mask_left(14))
   44055      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44056      371086 :          ipack = ipack + 1
   44057      371086 :          packed_data(ipack) = pack_tmp
   44058      371086 :          data_tmp = full_data(idata)
   44059      371086 :          pack_tmp = ISHFT(data_tmp, 24)
   44060      371086 :          pack_tmp = ISHFT(pack_tmp, -24)
   44061      371086 :          idata = idata + 1
   44062      371086 :          data_tmp = full_data(idata)
   44063      371086 :          data_tmp = ISHFT(data_tmp, 10)
   44064      371086 :          data_tmp = IAND(data_tmp, mask_left(24))
   44065      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44066      371086 :          ipack = ipack + 1
   44067      371086 :          packed_data(ipack) = pack_tmp
   44068      371086 :          data_tmp = full_data(idata)
   44069      371086 :          pack_tmp = ISHFT(data_tmp, 34)
   44070      371086 :          pack_tmp = ISHFT(pack_tmp, -34)
   44071      371086 :          idata = idata + 1
   44072      371086 :          data_tmp = full_data(idata)
   44073      371086 :          data_tmp = ISHFT(data_tmp, 10)
   44074      371086 :          data_tmp = IAND(data_tmp, mask_left(34))
   44075      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44076      371086 :          ipack = ipack + 1
   44077      371086 :          packed_data(ipack) = pack_tmp
   44078      371086 :          data_tmp = full_data(idata)
   44079      371086 :          pack_tmp = ISHFT(data_tmp, 44)
   44080      371086 :          pack_tmp = ISHFT(pack_tmp, -44)
   44081      371086 :          idata = idata + 1
   44082      371086 :          data_tmp = full_data(idata)
   44083      371086 :          data_tmp = ISHFT(data_tmp, 10)
   44084      371086 :          data_tmp = IAND(data_tmp, mask_left(44))
   44085      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44086      371086 :          ipack = ipack + 1
   44087      371086 :          packed_data(ipack) = pack_tmp
   44088      371086 :          data_tmp = full_data(idata)
   44089      371086 :          pack_tmp = ISHFT(data_tmp, 54)
   44090      371086 :          pack_tmp = ISHFT(pack_tmp, -54)
   44091      371086 :          idata = idata + 1
   44092      371086 :          data_tmp = full_data(idata)
   44093      371086 :          data_tmp = ISHFT(data_tmp, 10)
   44094      371086 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44095             :          pack_tmp = ISHFT(pack_tmp, 0)
   44096      371086 :          pack_tmp = ISHFT(pack_tmp, 0)
   44097      371086 :          ipack = ipack + 1
   44098      371100 :          packed_data(ipack) = pack_tmp
   44099             :       END DO
   44100       23382 :       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       23382 :    END SUBROUTINE ints2bits_54
   44104             : 
   44105             : ! **************************************************************************************************
   44106             : !> \brief ...
   44107             : !> \param Ndata ...
   44108             : !> \param packed_data ...
   44109             : !> \param full_data ...
   44110             : ! **************************************************************************************************
   44111      109053 :    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      109053 :       ipack = 0
   44122      109053 :       idata = 0
   44123      109053 :       pack_tmp = 0
   44124      109053 :       Ndata_rep = (Ndata/64)*64
   44125      109053 :       DO kdata = 1, Ndata_rep, 64
   44126     1624794 :          idata = idata + 1
   44127     1624794 :          data_tmp = ISHFT(pack_tmp, 54)
   44128     1624794 :          ipack = ipack + 1
   44129     1624794 :          pack_tmp = packed_data(ipack)
   44130     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   44131     1624794 :          pack_tmp = ISHFT(pack_tmp, -54)
   44132     1624794 :          idata = idata + 1
   44133     1624794 :          data_tmp = ISHFT(pack_tmp, 44)
   44134     1624794 :          ipack = ipack + 1
   44135     1624794 :          pack_tmp = packed_data(ipack)
   44136     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   44137     1624794 :          pack_tmp = ISHFT(pack_tmp, -44)
   44138     1624794 :          idata = idata + 1
   44139     1624794 :          data_tmp = ISHFT(pack_tmp, 34)
   44140     1624794 :          ipack = ipack + 1
   44141     1624794 :          pack_tmp = packed_data(ipack)
   44142     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   44143     1624794 :          pack_tmp = ISHFT(pack_tmp, -34)
   44144     1624794 :          idata = idata + 1
   44145     1624794 :          data_tmp = ISHFT(pack_tmp, 24)
   44146     1624794 :          ipack = ipack + 1
   44147     1624794 :          pack_tmp = packed_data(ipack)
   44148     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   44149     1624794 :          pack_tmp = ISHFT(pack_tmp, -24)
   44150     1624794 :          idata = idata + 1
   44151     1624794 :          data_tmp = ISHFT(pack_tmp, 14)
   44152     1624794 :          ipack = ipack + 1
   44153     1624794 :          pack_tmp = packed_data(ipack)
   44154     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   44155     1624794 :          pack_tmp = ISHFT(pack_tmp, -14)
   44156     1624794 :          idata = idata + 1
   44157     1624794 :          data_tmp = ISHFT(pack_tmp, 4)
   44158     1624794 :          ipack = ipack + 1
   44159     1624794 :          pack_tmp = packed_data(ipack)
   44160     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   44161     1624794 :          pack_tmp = ISHFT(pack_tmp, -4)
   44162     1624794 :          idata = idata + 1
   44163     1624794 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44164     1624794 :          full_data(idata) = data_tmp
   44165     1624794 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44166     1624794 :          idata = idata + 1
   44167     1624794 :          data_tmp = ISHFT(pack_tmp, 48)
   44168     1624794 :          ipack = ipack + 1
   44169     1624794 :          pack_tmp = packed_data(ipack)
   44170     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   44171     1624794 :          pack_tmp = ISHFT(pack_tmp, -48)
   44172     1624794 :          idata = idata + 1
   44173     1624794 :          data_tmp = ISHFT(pack_tmp, 38)
   44174     1624794 :          ipack = ipack + 1
   44175     1624794 :          pack_tmp = packed_data(ipack)
   44176     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   44177     1624794 :          pack_tmp = ISHFT(pack_tmp, -38)
   44178     1624794 :          idata = idata + 1
   44179     1624794 :          data_tmp = ISHFT(pack_tmp, 28)
   44180     1624794 :          ipack = ipack + 1
   44181     1624794 :          pack_tmp = packed_data(ipack)
   44182     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   44183     1624794 :          pack_tmp = ISHFT(pack_tmp, -28)
   44184     1624794 :          idata = idata + 1
   44185     1624794 :          data_tmp = ISHFT(pack_tmp, 18)
   44186     1624794 :          ipack = ipack + 1
   44187     1624794 :          pack_tmp = packed_data(ipack)
   44188     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   44189     1624794 :          pack_tmp = ISHFT(pack_tmp, -18)
   44190     1624794 :          idata = idata + 1
   44191     1624794 :          data_tmp = ISHFT(pack_tmp, 8)
   44192     1624794 :          ipack = ipack + 1
   44193     1624794 :          pack_tmp = packed_data(ipack)
   44194     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   44195     1624794 :          pack_tmp = ISHFT(pack_tmp, -8)
   44196     1624794 :          idata = idata + 1
   44197     1624794 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44198     1624794 :          full_data(idata) = data_tmp
   44199     1624794 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44200     1624794 :          idata = idata + 1
   44201     1624794 :          data_tmp = ISHFT(pack_tmp, 52)
   44202     1624794 :          ipack = ipack + 1
   44203     1624794 :          pack_tmp = packed_data(ipack)
   44204     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   44205     1624794 :          pack_tmp = ISHFT(pack_tmp, -52)
   44206     1624794 :          idata = idata + 1
   44207     1624794 :          data_tmp = ISHFT(pack_tmp, 42)
   44208     1624794 :          ipack = ipack + 1
   44209     1624794 :          pack_tmp = packed_data(ipack)
   44210     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   44211     1624794 :          pack_tmp = ISHFT(pack_tmp, -42)
   44212     1624794 :          idata = idata + 1
   44213     1624794 :          data_tmp = ISHFT(pack_tmp, 32)
   44214     1624794 :          ipack = ipack + 1
   44215     1624794 :          pack_tmp = packed_data(ipack)
   44216     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   44217     1624794 :          pack_tmp = ISHFT(pack_tmp, -32)
   44218     1624794 :          idata = idata + 1
   44219     1624794 :          data_tmp = ISHFT(pack_tmp, 22)
   44220     1624794 :          ipack = ipack + 1
   44221     1624794 :          pack_tmp = packed_data(ipack)
   44222     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   44223     1624794 :          pack_tmp = ISHFT(pack_tmp, -22)
   44224     1624794 :          idata = idata + 1
   44225     1624794 :          data_tmp = ISHFT(pack_tmp, 12)
   44226     1624794 :          ipack = ipack + 1
   44227     1624794 :          pack_tmp = packed_data(ipack)
   44228     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   44229     1624794 :          pack_tmp = ISHFT(pack_tmp, -12)
   44230     1624794 :          idata = idata + 1
   44231     1624794 :          data_tmp = ISHFT(pack_tmp, 2)
   44232     1624794 :          ipack = ipack + 1
   44233     1624794 :          pack_tmp = packed_data(ipack)
   44234     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   44235     1624794 :          pack_tmp = ISHFT(pack_tmp, -2)
   44236     1624794 :          idata = idata + 1
   44237     1624794 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44238     1624794 :          full_data(idata) = data_tmp
   44239     1624794 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44240     1624794 :          idata = idata + 1
   44241     1624794 :          data_tmp = ISHFT(pack_tmp, 46)
   44242     1624794 :          ipack = ipack + 1
   44243     1624794 :          pack_tmp = packed_data(ipack)
   44244     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   44245     1624794 :          pack_tmp = ISHFT(pack_tmp, -46)
   44246     1624794 :          idata = idata + 1
   44247     1624794 :          data_tmp = ISHFT(pack_tmp, 36)
   44248     1624794 :          ipack = ipack + 1
   44249     1624794 :          pack_tmp = packed_data(ipack)
   44250     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   44251     1624794 :          pack_tmp = ISHFT(pack_tmp, -36)
   44252     1624794 :          idata = idata + 1
   44253     1624794 :          data_tmp = ISHFT(pack_tmp, 26)
   44254     1624794 :          ipack = ipack + 1
   44255     1624794 :          pack_tmp = packed_data(ipack)
   44256     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   44257     1624794 :          pack_tmp = ISHFT(pack_tmp, -26)
   44258     1624794 :          idata = idata + 1
   44259     1624794 :          data_tmp = ISHFT(pack_tmp, 16)
   44260     1624794 :          ipack = ipack + 1
   44261     1624794 :          pack_tmp = packed_data(ipack)
   44262     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   44263     1624794 :          pack_tmp = ISHFT(pack_tmp, -16)
   44264     1624794 :          idata = idata + 1
   44265     1624794 :          data_tmp = ISHFT(pack_tmp, 6)
   44266     1624794 :          ipack = ipack + 1
   44267     1624794 :          pack_tmp = packed_data(ipack)
   44268     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   44269     1624794 :          pack_tmp = ISHFT(pack_tmp, -6)
   44270     1624794 :          idata = idata + 1
   44271     1624794 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44272     1624794 :          full_data(idata) = data_tmp
   44273     1624794 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44274     1624794 :          idata = idata + 1
   44275     1624794 :          data_tmp = ISHFT(pack_tmp, 50)
   44276     1624794 :          ipack = ipack + 1
   44277     1624794 :          pack_tmp = packed_data(ipack)
   44278     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   44279     1624794 :          pack_tmp = ISHFT(pack_tmp, -50)
   44280     1624794 :          idata = idata + 1
   44281     1624794 :          data_tmp = ISHFT(pack_tmp, 40)
   44282     1624794 :          ipack = ipack + 1
   44283     1624794 :          pack_tmp = packed_data(ipack)
   44284     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   44285     1624794 :          pack_tmp = ISHFT(pack_tmp, -40)
   44286     1624794 :          idata = idata + 1
   44287     1624794 :          data_tmp = ISHFT(pack_tmp, 30)
   44288     1624794 :          ipack = ipack + 1
   44289     1624794 :          pack_tmp = packed_data(ipack)
   44290     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   44291     1624794 :          pack_tmp = ISHFT(pack_tmp, -30)
   44292     1624794 :          idata = idata + 1
   44293     1624794 :          data_tmp = ISHFT(pack_tmp, 20)
   44294     1624794 :          ipack = ipack + 1
   44295     1624794 :          pack_tmp = packed_data(ipack)
   44296     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   44297     1624794 :          pack_tmp = ISHFT(pack_tmp, -20)
   44298     1624794 :          idata = idata + 1
   44299     1624794 :          data_tmp = ISHFT(pack_tmp, 10)
   44300     1624794 :          ipack = ipack + 1
   44301     1624794 :          pack_tmp = packed_data(ipack)
   44302     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   44303     1624794 :          pack_tmp = ISHFT(pack_tmp, -10)
   44304     1624794 :          idata = idata + 1
   44305     1624794 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44306     1624794 :          full_data(idata) = data_tmp
   44307     1624794 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44308     1624794 :          idata = idata + 1
   44309     1624794 :          data_tmp = ISHFT(pack_tmp, 54)
   44310     1624794 :          ipack = ipack + 1
   44311     1624794 :          pack_tmp = packed_data(ipack)
   44312     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   44313     1624794 :          pack_tmp = ISHFT(pack_tmp, -54)
   44314     1624794 :          idata = idata + 1
   44315     1624794 :          data_tmp = ISHFT(pack_tmp, 44)
   44316     1624794 :          ipack = ipack + 1
   44317     1624794 :          pack_tmp = packed_data(ipack)
   44318     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   44319     1624794 :          pack_tmp = ISHFT(pack_tmp, -44)
   44320     1624794 :          idata = idata + 1
   44321     1624794 :          data_tmp = ISHFT(pack_tmp, 34)
   44322     1624794 :          ipack = ipack + 1
   44323     1624794 :          pack_tmp = packed_data(ipack)
   44324     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   44325     1624794 :          pack_tmp = ISHFT(pack_tmp, -34)
   44326     1624794 :          idata = idata + 1
   44327     1624794 :          data_tmp = ISHFT(pack_tmp, 24)
   44328     1624794 :          ipack = ipack + 1
   44329     1624794 :          pack_tmp = packed_data(ipack)
   44330     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   44331     1624794 :          pack_tmp = ISHFT(pack_tmp, -24)
   44332     1624794 :          idata = idata + 1
   44333     1624794 :          data_tmp = ISHFT(pack_tmp, 14)
   44334     1624794 :          ipack = ipack + 1
   44335     1624794 :          pack_tmp = packed_data(ipack)
   44336     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   44337     1624794 :          pack_tmp = ISHFT(pack_tmp, -14)
   44338     1624794 :          idata = idata + 1
   44339     1624794 :          data_tmp = ISHFT(pack_tmp, 4)
   44340     1624794 :          ipack = ipack + 1
   44341     1624794 :          pack_tmp = packed_data(ipack)
   44342     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   44343     1624794 :          pack_tmp = ISHFT(pack_tmp, -4)
   44344     1624794 :          idata = idata + 1
   44345     1624794 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44346     1624794 :          full_data(idata) = data_tmp
   44347     1624794 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44348     1624794 :          idata = idata + 1
   44349     1624794 :          data_tmp = ISHFT(pack_tmp, 48)
   44350     1624794 :          ipack = ipack + 1
   44351     1624794 :          pack_tmp = packed_data(ipack)
   44352     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   44353     1624794 :          pack_tmp = ISHFT(pack_tmp, -48)
   44354     1624794 :          idata = idata + 1
   44355     1624794 :          data_tmp = ISHFT(pack_tmp, 38)
   44356     1624794 :          ipack = ipack + 1
   44357     1624794 :          pack_tmp = packed_data(ipack)
   44358     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   44359     1624794 :          pack_tmp = ISHFT(pack_tmp, -38)
   44360     1624794 :          idata = idata + 1
   44361     1624794 :          data_tmp = ISHFT(pack_tmp, 28)
   44362     1624794 :          ipack = ipack + 1
   44363     1624794 :          pack_tmp = packed_data(ipack)
   44364     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   44365     1624794 :          pack_tmp = ISHFT(pack_tmp, -28)
   44366     1624794 :          idata = idata + 1
   44367     1624794 :          data_tmp = ISHFT(pack_tmp, 18)
   44368     1624794 :          ipack = ipack + 1
   44369     1624794 :          pack_tmp = packed_data(ipack)
   44370     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   44371     1624794 :          pack_tmp = ISHFT(pack_tmp, -18)
   44372     1624794 :          idata = idata + 1
   44373     1624794 :          data_tmp = ISHFT(pack_tmp, 8)
   44374     1624794 :          ipack = ipack + 1
   44375     1624794 :          pack_tmp = packed_data(ipack)
   44376     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   44377     1624794 :          pack_tmp = ISHFT(pack_tmp, -8)
   44378     1624794 :          idata = idata + 1
   44379     1624794 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44380     1624794 :          full_data(idata) = data_tmp
   44381     1624794 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44382     1624794 :          idata = idata + 1
   44383     1624794 :          data_tmp = ISHFT(pack_tmp, 52)
   44384     1624794 :          ipack = ipack + 1
   44385     1624794 :          pack_tmp = packed_data(ipack)
   44386     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   44387     1624794 :          pack_tmp = ISHFT(pack_tmp, -52)
   44388     1624794 :          idata = idata + 1
   44389     1624794 :          data_tmp = ISHFT(pack_tmp, 42)
   44390     1624794 :          ipack = ipack + 1
   44391     1624794 :          pack_tmp = packed_data(ipack)
   44392     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   44393     1624794 :          pack_tmp = ISHFT(pack_tmp, -42)
   44394     1624794 :          idata = idata + 1
   44395     1624794 :          data_tmp = ISHFT(pack_tmp, 32)
   44396     1624794 :          ipack = ipack + 1
   44397     1624794 :          pack_tmp = packed_data(ipack)
   44398     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   44399     1624794 :          pack_tmp = ISHFT(pack_tmp, -32)
   44400     1624794 :          idata = idata + 1
   44401     1624794 :          data_tmp = ISHFT(pack_tmp, 22)
   44402     1624794 :          ipack = ipack + 1
   44403     1624794 :          pack_tmp = packed_data(ipack)
   44404     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   44405     1624794 :          pack_tmp = ISHFT(pack_tmp, -22)
   44406     1624794 :          idata = idata + 1
   44407     1624794 :          data_tmp = ISHFT(pack_tmp, 12)
   44408     1624794 :          ipack = ipack + 1
   44409     1624794 :          pack_tmp = packed_data(ipack)
   44410     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   44411     1624794 :          pack_tmp = ISHFT(pack_tmp, -12)
   44412     1624794 :          idata = idata + 1
   44413     1624794 :          data_tmp = ISHFT(pack_tmp, 2)
   44414     1624794 :          ipack = ipack + 1
   44415     1624794 :          pack_tmp = packed_data(ipack)
   44416     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   44417     1624794 :          pack_tmp = ISHFT(pack_tmp, -2)
   44418     1624794 :          idata = idata + 1
   44419     1624794 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44420     1624794 :          full_data(idata) = data_tmp
   44421     1624794 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44422     1624794 :          idata = idata + 1
   44423     1624794 :          data_tmp = ISHFT(pack_tmp, 46)
   44424     1624794 :          ipack = ipack + 1
   44425     1624794 :          pack_tmp = packed_data(ipack)
   44426     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   44427     1624794 :          pack_tmp = ISHFT(pack_tmp, -46)
   44428     1624794 :          idata = idata + 1
   44429     1624794 :          data_tmp = ISHFT(pack_tmp, 36)
   44430     1624794 :          ipack = ipack + 1
   44431     1624794 :          pack_tmp = packed_data(ipack)
   44432     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   44433     1624794 :          pack_tmp = ISHFT(pack_tmp, -36)
   44434     1624794 :          idata = idata + 1
   44435     1624794 :          data_tmp = ISHFT(pack_tmp, 26)
   44436     1624794 :          ipack = ipack + 1
   44437     1624794 :          pack_tmp = packed_data(ipack)
   44438     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   44439     1624794 :          pack_tmp = ISHFT(pack_tmp, -26)
   44440     1624794 :          idata = idata + 1
   44441     1624794 :          data_tmp = ISHFT(pack_tmp, 16)
   44442     1624794 :          ipack = ipack + 1
   44443     1624794 :          pack_tmp = packed_data(ipack)
   44444     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   44445     1624794 :          pack_tmp = ISHFT(pack_tmp, -16)
   44446     1624794 :          idata = idata + 1
   44447     1624794 :          data_tmp = ISHFT(pack_tmp, 6)
   44448     1624794 :          ipack = ipack + 1
   44449     1624794 :          pack_tmp = packed_data(ipack)
   44450     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   44451     1624794 :          pack_tmp = ISHFT(pack_tmp, -6)
   44452     1624794 :          idata = idata + 1
   44453     1624794 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44454     1624794 :          full_data(idata) = data_tmp
   44455     1624794 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44456     1624794 :          idata = idata + 1
   44457     1624794 :          data_tmp = ISHFT(pack_tmp, 50)
   44458     1624794 :          ipack = ipack + 1
   44459     1624794 :          pack_tmp = packed_data(ipack)
   44460     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   44461     1624794 :          pack_tmp = ISHFT(pack_tmp, -50)
   44462     1624794 :          idata = idata + 1
   44463     1624794 :          data_tmp = ISHFT(pack_tmp, 40)
   44464     1624794 :          ipack = ipack + 1
   44465     1624794 :          pack_tmp = packed_data(ipack)
   44466     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   44467     1624794 :          pack_tmp = ISHFT(pack_tmp, -40)
   44468     1624794 :          idata = idata + 1
   44469     1624794 :          data_tmp = ISHFT(pack_tmp, 30)
   44470     1624794 :          ipack = ipack + 1
   44471     1624794 :          pack_tmp = packed_data(ipack)
   44472     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   44473     1624794 :          pack_tmp = ISHFT(pack_tmp, -30)
   44474     1624794 :          idata = idata + 1
   44475     1624794 :          data_tmp = ISHFT(pack_tmp, 20)
   44476     1624794 :          ipack = ipack + 1
   44477     1624794 :          pack_tmp = packed_data(ipack)
   44478     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   44479     1624794 :          pack_tmp = ISHFT(pack_tmp, -20)
   44480     1624794 :          idata = idata + 1
   44481     1624794 :          data_tmp = ISHFT(pack_tmp, 10)
   44482     1624794 :          ipack = ipack + 1
   44483     1624794 :          pack_tmp = packed_data(ipack)
   44484     1624794 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   44485     1624794 :          pack_tmp = ISHFT(pack_tmp, -10)
   44486     1624794 :          idata = idata + 1
   44487     1624794 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44488     1624794 :          full_data(idata) = data_tmp
   44489     1625648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44490             :       END DO
   44491      109053 :       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      109053 :    END SUBROUTINE bits2ints_54
   44495             : 
   44496             : ! **************************************************************************************************
   44497             : !> \brief ...
   44498             : !> \param Ndata ...
   44499             : !> \param packed_data ...
   44500             : !> \param full_data ...
   44501             : ! **************************************************************************************************
   44502       23300 :    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       23300 :       idata = 0
   44513       23300 :       ipack = 0
   44514       23300 :       Ndata_rep = (Ndata/64)*64
   44515       23300 :       DO kdata = 1, Ndata_rep, 64
   44516      370420 :          pack_tmp = 0
   44517      370420 :          idata = idata + 1
   44518      370420 :          data_tmp = full_data(idata)
   44519      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44520      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44521      370420 :          pack_tmp = ISHFT(pack_tmp, -9)
   44522      370420 :          idata = idata + 1
   44523      370420 :          data_tmp = full_data(idata)
   44524      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44525      370420 :          data_tmp = IAND(data_tmp, mask_left(9))
   44526      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44527      370420 :          ipack = ipack + 1
   44528      370420 :          packed_data(ipack) = pack_tmp
   44529      370420 :          data_tmp = full_data(idata)
   44530      370420 :          pack_tmp = ISHFT(data_tmp, 18)
   44531      370420 :          pack_tmp = ISHFT(pack_tmp, -18)
   44532      370420 :          idata = idata + 1
   44533      370420 :          data_tmp = full_data(idata)
   44534      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44535      370420 :          data_tmp = IAND(data_tmp, mask_left(18))
   44536      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44537      370420 :          ipack = ipack + 1
   44538      370420 :          packed_data(ipack) = pack_tmp
   44539      370420 :          data_tmp = full_data(idata)
   44540      370420 :          pack_tmp = ISHFT(data_tmp, 27)
   44541      370420 :          pack_tmp = ISHFT(pack_tmp, -27)
   44542      370420 :          idata = idata + 1
   44543      370420 :          data_tmp = full_data(idata)
   44544      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44545      370420 :          data_tmp = IAND(data_tmp, mask_left(27))
   44546      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44547      370420 :          ipack = ipack + 1
   44548      370420 :          packed_data(ipack) = pack_tmp
   44549      370420 :          data_tmp = full_data(idata)
   44550      370420 :          pack_tmp = ISHFT(data_tmp, 36)
   44551      370420 :          pack_tmp = ISHFT(pack_tmp, -36)
   44552      370420 :          idata = idata + 1
   44553      370420 :          data_tmp = full_data(idata)
   44554      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44555      370420 :          data_tmp = IAND(data_tmp, mask_left(36))
   44556      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44557      370420 :          ipack = ipack + 1
   44558      370420 :          packed_data(ipack) = pack_tmp
   44559      370420 :          data_tmp = full_data(idata)
   44560      370420 :          pack_tmp = ISHFT(data_tmp, 45)
   44561      370420 :          pack_tmp = ISHFT(pack_tmp, -45)
   44562      370420 :          idata = idata + 1
   44563      370420 :          data_tmp = full_data(idata)
   44564      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44565      370420 :          data_tmp = IAND(data_tmp, mask_left(45))
   44566      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44567      370420 :          ipack = ipack + 1
   44568      370420 :          packed_data(ipack) = pack_tmp
   44569      370420 :          data_tmp = full_data(idata)
   44570      370420 :          pack_tmp = ISHFT(data_tmp, 54)
   44571      370420 :          pack_tmp = ISHFT(pack_tmp, -54)
   44572      370420 :          idata = idata + 1
   44573      370420 :          data_tmp = full_data(idata)
   44574      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44575      370420 :          data_tmp = IAND(data_tmp, mask_left(54))
   44576      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44577      370420 :          ipack = ipack + 1
   44578      370420 :          packed_data(ipack) = pack_tmp
   44579      370420 :          data_tmp = full_data(idata)
   44580      370420 :          pack_tmp = ISHFT(data_tmp, 63)
   44581      370420 :          pack_tmp = ISHFT(pack_tmp, -55)
   44582      370420 :          idata = idata + 1
   44583      370420 :          data_tmp = full_data(idata)
   44584      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44585      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44586      370420 :          pack_tmp = ISHFT(pack_tmp, -8)
   44587      370420 :          idata = idata + 1
   44588      370420 :          data_tmp = full_data(idata)
   44589      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44590      370420 :          data_tmp = IAND(data_tmp, mask_left(8))
   44591      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44592      370420 :          ipack = ipack + 1
   44593      370420 :          packed_data(ipack) = pack_tmp
   44594      370420 :          data_tmp = full_data(idata)
   44595      370420 :          pack_tmp = ISHFT(data_tmp, 17)
   44596      370420 :          pack_tmp = ISHFT(pack_tmp, -17)
   44597      370420 :          idata = idata + 1
   44598      370420 :          data_tmp = full_data(idata)
   44599      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44600      370420 :          data_tmp = IAND(data_tmp, mask_left(17))
   44601      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44602      370420 :          ipack = ipack + 1
   44603      370420 :          packed_data(ipack) = pack_tmp
   44604      370420 :          data_tmp = full_data(idata)
   44605      370420 :          pack_tmp = ISHFT(data_tmp, 26)
   44606      370420 :          pack_tmp = ISHFT(pack_tmp, -26)
   44607      370420 :          idata = idata + 1
   44608      370420 :          data_tmp = full_data(idata)
   44609      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44610      370420 :          data_tmp = IAND(data_tmp, mask_left(26))
   44611      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44612      370420 :          ipack = ipack + 1
   44613      370420 :          packed_data(ipack) = pack_tmp
   44614      370420 :          data_tmp = full_data(idata)
   44615      370420 :          pack_tmp = ISHFT(data_tmp, 35)
   44616      370420 :          pack_tmp = ISHFT(pack_tmp, -35)
   44617      370420 :          idata = idata + 1
   44618      370420 :          data_tmp = full_data(idata)
   44619      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44620      370420 :          data_tmp = IAND(data_tmp, mask_left(35))
   44621      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44622      370420 :          ipack = ipack + 1
   44623      370420 :          packed_data(ipack) = pack_tmp
   44624      370420 :          data_tmp = full_data(idata)
   44625      370420 :          pack_tmp = ISHFT(data_tmp, 44)
   44626      370420 :          pack_tmp = ISHFT(pack_tmp, -44)
   44627      370420 :          idata = idata + 1
   44628      370420 :          data_tmp = full_data(idata)
   44629      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44630      370420 :          data_tmp = IAND(data_tmp, mask_left(44))
   44631      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44632      370420 :          ipack = ipack + 1
   44633      370420 :          packed_data(ipack) = pack_tmp
   44634      370420 :          data_tmp = full_data(idata)
   44635      370420 :          pack_tmp = ISHFT(data_tmp, 53)
   44636      370420 :          pack_tmp = ISHFT(pack_tmp, -53)
   44637      370420 :          idata = idata + 1
   44638      370420 :          data_tmp = full_data(idata)
   44639      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44640      370420 :          data_tmp = IAND(data_tmp, mask_left(53))
   44641      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44642      370420 :          ipack = ipack + 1
   44643      370420 :          packed_data(ipack) = pack_tmp
   44644      370420 :          data_tmp = full_data(idata)
   44645      370420 :          pack_tmp = ISHFT(data_tmp, 62)
   44646      370420 :          pack_tmp = ISHFT(pack_tmp, -55)
   44647      370420 :          idata = idata + 1
   44648      370420 :          data_tmp = full_data(idata)
   44649      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44650      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44651      370420 :          pack_tmp = ISHFT(pack_tmp, -7)
   44652      370420 :          idata = idata + 1
   44653      370420 :          data_tmp = full_data(idata)
   44654      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44655      370420 :          data_tmp = IAND(data_tmp, mask_left(7))
   44656      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44657      370420 :          ipack = ipack + 1
   44658      370420 :          packed_data(ipack) = pack_tmp
   44659      370420 :          data_tmp = full_data(idata)
   44660      370420 :          pack_tmp = ISHFT(data_tmp, 16)
   44661      370420 :          pack_tmp = ISHFT(pack_tmp, -16)
   44662      370420 :          idata = idata + 1
   44663      370420 :          data_tmp = full_data(idata)
   44664      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44665      370420 :          data_tmp = IAND(data_tmp, mask_left(16))
   44666      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44667      370420 :          ipack = ipack + 1
   44668      370420 :          packed_data(ipack) = pack_tmp
   44669      370420 :          data_tmp = full_data(idata)
   44670      370420 :          pack_tmp = ISHFT(data_tmp, 25)
   44671      370420 :          pack_tmp = ISHFT(pack_tmp, -25)
   44672      370420 :          idata = idata + 1
   44673      370420 :          data_tmp = full_data(idata)
   44674      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44675      370420 :          data_tmp = IAND(data_tmp, mask_left(25))
   44676      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44677      370420 :          ipack = ipack + 1
   44678      370420 :          packed_data(ipack) = pack_tmp
   44679      370420 :          data_tmp = full_data(idata)
   44680      370420 :          pack_tmp = ISHFT(data_tmp, 34)
   44681      370420 :          pack_tmp = ISHFT(pack_tmp, -34)
   44682      370420 :          idata = idata + 1
   44683      370420 :          data_tmp = full_data(idata)
   44684      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44685      370420 :          data_tmp = IAND(data_tmp, mask_left(34))
   44686      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44687      370420 :          ipack = ipack + 1
   44688      370420 :          packed_data(ipack) = pack_tmp
   44689      370420 :          data_tmp = full_data(idata)
   44690      370420 :          pack_tmp = ISHFT(data_tmp, 43)
   44691      370420 :          pack_tmp = ISHFT(pack_tmp, -43)
   44692      370420 :          idata = idata + 1
   44693      370420 :          data_tmp = full_data(idata)
   44694      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44695      370420 :          data_tmp = IAND(data_tmp, mask_left(43))
   44696      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44697      370420 :          ipack = ipack + 1
   44698      370420 :          packed_data(ipack) = pack_tmp
   44699      370420 :          data_tmp = full_data(idata)
   44700      370420 :          pack_tmp = ISHFT(data_tmp, 52)
   44701      370420 :          pack_tmp = ISHFT(pack_tmp, -52)
   44702      370420 :          idata = idata + 1
   44703      370420 :          data_tmp = full_data(idata)
   44704      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44705      370420 :          data_tmp = IAND(data_tmp, mask_left(52))
   44706      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44707      370420 :          ipack = ipack + 1
   44708      370420 :          packed_data(ipack) = pack_tmp
   44709      370420 :          data_tmp = full_data(idata)
   44710      370420 :          pack_tmp = ISHFT(data_tmp, 61)
   44711      370420 :          pack_tmp = ISHFT(pack_tmp, -55)
   44712      370420 :          idata = idata + 1
   44713      370420 :          data_tmp = full_data(idata)
   44714      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44715      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44716      370420 :          pack_tmp = ISHFT(pack_tmp, -6)
   44717      370420 :          idata = idata + 1
   44718      370420 :          data_tmp = full_data(idata)
   44719      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44720      370420 :          data_tmp = IAND(data_tmp, mask_left(6))
   44721      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44722      370420 :          ipack = ipack + 1
   44723      370420 :          packed_data(ipack) = pack_tmp
   44724      370420 :          data_tmp = full_data(idata)
   44725      370420 :          pack_tmp = ISHFT(data_tmp, 15)
   44726      370420 :          pack_tmp = ISHFT(pack_tmp, -15)
   44727      370420 :          idata = idata + 1
   44728      370420 :          data_tmp = full_data(idata)
   44729      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44730      370420 :          data_tmp = IAND(data_tmp, mask_left(15))
   44731      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44732      370420 :          ipack = ipack + 1
   44733      370420 :          packed_data(ipack) = pack_tmp
   44734      370420 :          data_tmp = full_data(idata)
   44735      370420 :          pack_tmp = ISHFT(data_tmp, 24)
   44736      370420 :          pack_tmp = ISHFT(pack_tmp, -24)
   44737      370420 :          idata = idata + 1
   44738      370420 :          data_tmp = full_data(idata)
   44739      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44740      370420 :          data_tmp = IAND(data_tmp, mask_left(24))
   44741      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44742      370420 :          ipack = ipack + 1
   44743      370420 :          packed_data(ipack) = pack_tmp
   44744      370420 :          data_tmp = full_data(idata)
   44745      370420 :          pack_tmp = ISHFT(data_tmp, 33)
   44746      370420 :          pack_tmp = ISHFT(pack_tmp, -33)
   44747      370420 :          idata = idata + 1
   44748      370420 :          data_tmp = full_data(idata)
   44749      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44750      370420 :          data_tmp = IAND(data_tmp, mask_left(33))
   44751      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44752      370420 :          ipack = ipack + 1
   44753      370420 :          packed_data(ipack) = pack_tmp
   44754      370420 :          data_tmp = full_data(idata)
   44755      370420 :          pack_tmp = ISHFT(data_tmp, 42)
   44756      370420 :          pack_tmp = ISHFT(pack_tmp, -42)
   44757      370420 :          idata = idata + 1
   44758      370420 :          data_tmp = full_data(idata)
   44759      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44760      370420 :          data_tmp = IAND(data_tmp, mask_left(42))
   44761      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44762      370420 :          ipack = ipack + 1
   44763      370420 :          packed_data(ipack) = pack_tmp
   44764      370420 :          data_tmp = full_data(idata)
   44765      370420 :          pack_tmp = ISHFT(data_tmp, 51)
   44766      370420 :          pack_tmp = ISHFT(pack_tmp, -51)
   44767      370420 :          idata = idata + 1
   44768      370420 :          data_tmp = full_data(idata)
   44769      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44770      370420 :          data_tmp = IAND(data_tmp, mask_left(51))
   44771      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44772      370420 :          ipack = ipack + 1
   44773      370420 :          packed_data(ipack) = pack_tmp
   44774      370420 :          data_tmp = full_data(idata)
   44775      370420 :          pack_tmp = ISHFT(data_tmp, 60)
   44776      370420 :          pack_tmp = ISHFT(pack_tmp, -55)
   44777      370420 :          idata = idata + 1
   44778      370420 :          data_tmp = full_data(idata)
   44779      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44780      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44781      370420 :          pack_tmp = ISHFT(pack_tmp, -5)
   44782      370420 :          idata = idata + 1
   44783      370420 :          data_tmp = full_data(idata)
   44784      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44785      370420 :          data_tmp = IAND(data_tmp, mask_left(5))
   44786      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44787      370420 :          ipack = ipack + 1
   44788      370420 :          packed_data(ipack) = pack_tmp
   44789      370420 :          data_tmp = full_data(idata)
   44790      370420 :          pack_tmp = ISHFT(data_tmp, 14)
   44791      370420 :          pack_tmp = ISHFT(pack_tmp, -14)
   44792      370420 :          idata = idata + 1
   44793      370420 :          data_tmp = full_data(idata)
   44794      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44795      370420 :          data_tmp = IAND(data_tmp, mask_left(14))
   44796      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44797      370420 :          ipack = ipack + 1
   44798      370420 :          packed_data(ipack) = pack_tmp
   44799      370420 :          data_tmp = full_data(idata)
   44800      370420 :          pack_tmp = ISHFT(data_tmp, 23)
   44801      370420 :          pack_tmp = ISHFT(pack_tmp, -23)
   44802      370420 :          idata = idata + 1
   44803      370420 :          data_tmp = full_data(idata)
   44804      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44805      370420 :          data_tmp = IAND(data_tmp, mask_left(23))
   44806      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44807      370420 :          ipack = ipack + 1
   44808      370420 :          packed_data(ipack) = pack_tmp
   44809      370420 :          data_tmp = full_data(idata)
   44810      370420 :          pack_tmp = ISHFT(data_tmp, 32)
   44811      370420 :          pack_tmp = ISHFT(pack_tmp, -32)
   44812      370420 :          idata = idata + 1
   44813      370420 :          data_tmp = full_data(idata)
   44814      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44815      370420 :          data_tmp = IAND(data_tmp, mask_left(32))
   44816      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44817      370420 :          ipack = ipack + 1
   44818      370420 :          packed_data(ipack) = pack_tmp
   44819      370420 :          data_tmp = full_data(idata)
   44820      370420 :          pack_tmp = ISHFT(data_tmp, 41)
   44821      370420 :          pack_tmp = ISHFT(pack_tmp, -41)
   44822      370420 :          idata = idata + 1
   44823      370420 :          data_tmp = full_data(idata)
   44824      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44825      370420 :          data_tmp = IAND(data_tmp, mask_left(41))
   44826      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44827      370420 :          ipack = ipack + 1
   44828      370420 :          packed_data(ipack) = pack_tmp
   44829      370420 :          data_tmp = full_data(idata)
   44830      370420 :          pack_tmp = ISHFT(data_tmp, 50)
   44831      370420 :          pack_tmp = ISHFT(pack_tmp, -50)
   44832      370420 :          idata = idata + 1
   44833      370420 :          data_tmp = full_data(idata)
   44834      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44835      370420 :          data_tmp = IAND(data_tmp, mask_left(50))
   44836      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44837      370420 :          ipack = ipack + 1
   44838      370420 :          packed_data(ipack) = pack_tmp
   44839      370420 :          data_tmp = full_data(idata)
   44840      370420 :          pack_tmp = ISHFT(data_tmp, 59)
   44841      370420 :          pack_tmp = ISHFT(pack_tmp, -55)
   44842      370420 :          idata = idata + 1
   44843      370420 :          data_tmp = full_data(idata)
   44844      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44845      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44846      370420 :          pack_tmp = ISHFT(pack_tmp, -4)
   44847      370420 :          idata = idata + 1
   44848      370420 :          data_tmp = full_data(idata)
   44849      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44850      370420 :          data_tmp = IAND(data_tmp, mask_left(4))
   44851      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44852      370420 :          ipack = ipack + 1
   44853      370420 :          packed_data(ipack) = pack_tmp
   44854      370420 :          data_tmp = full_data(idata)
   44855      370420 :          pack_tmp = ISHFT(data_tmp, 13)
   44856      370420 :          pack_tmp = ISHFT(pack_tmp, -13)
   44857      370420 :          idata = idata + 1
   44858      370420 :          data_tmp = full_data(idata)
   44859      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44860      370420 :          data_tmp = IAND(data_tmp, mask_left(13))
   44861      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44862      370420 :          ipack = ipack + 1
   44863      370420 :          packed_data(ipack) = pack_tmp
   44864      370420 :          data_tmp = full_data(idata)
   44865      370420 :          pack_tmp = ISHFT(data_tmp, 22)
   44866      370420 :          pack_tmp = ISHFT(pack_tmp, -22)
   44867      370420 :          idata = idata + 1
   44868      370420 :          data_tmp = full_data(idata)
   44869      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44870      370420 :          data_tmp = IAND(data_tmp, mask_left(22))
   44871      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44872      370420 :          ipack = ipack + 1
   44873      370420 :          packed_data(ipack) = pack_tmp
   44874      370420 :          data_tmp = full_data(idata)
   44875      370420 :          pack_tmp = ISHFT(data_tmp, 31)
   44876      370420 :          pack_tmp = ISHFT(pack_tmp, -31)
   44877      370420 :          idata = idata + 1
   44878      370420 :          data_tmp = full_data(idata)
   44879      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44880      370420 :          data_tmp = IAND(data_tmp, mask_left(31))
   44881      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44882      370420 :          ipack = ipack + 1
   44883      370420 :          packed_data(ipack) = pack_tmp
   44884      370420 :          data_tmp = full_data(idata)
   44885      370420 :          pack_tmp = ISHFT(data_tmp, 40)
   44886      370420 :          pack_tmp = ISHFT(pack_tmp, -40)
   44887      370420 :          idata = idata + 1
   44888      370420 :          data_tmp = full_data(idata)
   44889      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44890      370420 :          data_tmp = IAND(data_tmp, mask_left(40))
   44891      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44892      370420 :          ipack = ipack + 1
   44893      370420 :          packed_data(ipack) = pack_tmp
   44894      370420 :          data_tmp = full_data(idata)
   44895      370420 :          pack_tmp = ISHFT(data_tmp, 49)
   44896      370420 :          pack_tmp = ISHFT(pack_tmp, -49)
   44897      370420 :          idata = idata + 1
   44898      370420 :          data_tmp = full_data(idata)
   44899      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44900      370420 :          data_tmp = IAND(data_tmp, mask_left(49))
   44901      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44902      370420 :          ipack = ipack + 1
   44903      370420 :          packed_data(ipack) = pack_tmp
   44904      370420 :          data_tmp = full_data(idata)
   44905      370420 :          pack_tmp = ISHFT(data_tmp, 58)
   44906      370420 :          pack_tmp = ISHFT(pack_tmp, -55)
   44907      370420 :          idata = idata + 1
   44908      370420 :          data_tmp = full_data(idata)
   44909      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44910      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44911      370420 :          pack_tmp = ISHFT(pack_tmp, -3)
   44912      370420 :          idata = idata + 1
   44913      370420 :          data_tmp = full_data(idata)
   44914      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44915      370420 :          data_tmp = IAND(data_tmp, mask_left(3))
   44916      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44917      370420 :          ipack = ipack + 1
   44918      370420 :          packed_data(ipack) = pack_tmp
   44919      370420 :          data_tmp = full_data(idata)
   44920      370420 :          pack_tmp = ISHFT(data_tmp, 12)
   44921      370420 :          pack_tmp = ISHFT(pack_tmp, -12)
   44922      370420 :          idata = idata + 1
   44923      370420 :          data_tmp = full_data(idata)
   44924      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44925      370420 :          data_tmp = IAND(data_tmp, mask_left(12))
   44926      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44927      370420 :          ipack = ipack + 1
   44928      370420 :          packed_data(ipack) = pack_tmp
   44929      370420 :          data_tmp = full_data(idata)
   44930      370420 :          pack_tmp = ISHFT(data_tmp, 21)
   44931      370420 :          pack_tmp = ISHFT(pack_tmp, -21)
   44932      370420 :          idata = idata + 1
   44933      370420 :          data_tmp = full_data(idata)
   44934      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44935      370420 :          data_tmp = IAND(data_tmp, mask_left(21))
   44936      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44937      370420 :          ipack = ipack + 1
   44938      370420 :          packed_data(ipack) = pack_tmp
   44939      370420 :          data_tmp = full_data(idata)
   44940      370420 :          pack_tmp = ISHFT(data_tmp, 30)
   44941      370420 :          pack_tmp = ISHFT(pack_tmp, -30)
   44942      370420 :          idata = idata + 1
   44943      370420 :          data_tmp = full_data(idata)
   44944      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44945      370420 :          data_tmp = IAND(data_tmp, mask_left(30))
   44946      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44947      370420 :          ipack = ipack + 1
   44948      370420 :          packed_data(ipack) = pack_tmp
   44949      370420 :          data_tmp = full_data(idata)
   44950      370420 :          pack_tmp = ISHFT(data_tmp, 39)
   44951      370420 :          pack_tmp = ISHFT(pack_tmp, -39)
   44952      370420 :          idata = idata + 1
   44953      370420 :          data_tmp = full_data(idata)
   44954      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44955      370420 :          data_tmp = IAND(data_tmp, mask_left(39))
   44956      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44957      370420 :          ipack = ipack + 1
   44958      370420 :          packed_data(ipack) = pack_tmp
   44959      370420 :          data_tmp = full_data(idata)
   44960      370420 :          pack_tmp = ISHFT(data_tmp, 48)
   44961      370420 :          pack_tmp = ISHFT(pack_tmp, -48)
   44962      370420 :          idata = idata + 1
   44963      370420 :          data_tmp = full_data(idata)
   44964      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44965      370420 :          data_tmp = IAND(data_tmp, mask_left(48))
   44966      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44967      370420 :          ipack = ipack + 1
   44968      370420 :          packed_data(ipack) = pack_tmp
   44969      370420 :          data_tmp = full_data(idata)
   44970      370420 :          pack_tmp = ISHFT(data_tmp, 57)
   44971      370420 :          pack_tmp = ISHFT(pack_tmp, -55)
   44972      370420 :          idata = idata + 1
   44973      370420 :          data_tmp = full_data(idata)
   44974      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44975      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44976      370420 :          pack_tmp = ISHFT(pack_tmp, -2)
   44977      370420 :          idata = idata + 1
   44978      370420 :          data_tmp = full_data(idata)
   44979      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44980      370420 :          data_tmp = IAND(data_tmp, mask_left(2))
   44981      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44982      370420 :          ipack = ipack + 1
   44983      370420 :          packed_data(ipack) = pack_tmp
   44984      370420 :          data_tmp = full_data(idata)
   44985      370420 :          pack_tmp = ISHFT(data_tmp, 11)
   44986      370420 :          pack_tmp = ISHFT(pack_tmp, -11)
   44987      370420 :          idata = idata + 1
   44988      370420 :          data_tmp = full_data(idata)
   44989      370420 :          data_tmp = ISHFT(data_tmp, 9)
   44990      370420 :          data_tmp = IAND(data_tmp, mask_left(11))
   44991      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44992      370420 :          ipack = ipack + 1
   44993      370420 :          packed_data(ipack) = pack_tmp
   44994      370420 :          data_tmp = full_data(idata)
   44995      370420 :          pack_tmp = ISHFT(data_tmp, 20)
   44996      370420 :          pack_tmp = ISHFT(pack_tmp, -20)
   44997      370420 :          idata = idata + 1
   44998      370420 :          data_tmp = full_data(idata)
   44999      370420 :          data_tmp = ISHFT(data_tmp, 9)
   45000      370420 :          data_tmp = IAND(data_tmp, mask_left(20))
   45001      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45002      370420 :          ipack = ipack + 1
   45003      370420 :          packed_data(ipack) = pack_tmp
   45004      370420 :          data_tmp = full_data(idata)
   45005      370420 :          pack_tmp = ISHFT(data_tmp, 29)
   45006      370420 :          pack_tmp = ISHFT(pack_tmp, -29)
   45007      370420 :          idata = idata + 1
   45008      370420 :          data_tmp = full_data(idata)
   45009      370420 :          data_tmp = ISHFT(data_tmp, 9)
   45010      370420 :          data_tmp = IAND(data_tmp, mask_left(29))
   45011      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45012      370420 :          ipack = ipack + 1
   45013      370420 :          packed_data(ipack) = pack_tmp
   45014      370420 :          data_tmp = full_data(idata)
   45015      370420 :          pack_tmp = ISHFT(data_tmp, 38)
   45016      370420 :          pack_tmp = ISHFT(pack_tmp, -38)
   45017      370420 :          idata = idata + 1
   45018      370420 :          data_tmp = full_data(idata)
   45019      370420 :          data_tmp = ISHFT(data_tmp, 9)
   45020      370420 :          data_tmp = IAND(data_tmp, mask_left(38))
   45021      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45022      370420 :          ipack = ipack + 1
   45023      370420 :          packed_data(ipack) = pack_tmp
   45024      370420 :          data_tmp = full_data(idata)
   45025      370420 :          pack_tmp = ISHFT(data_tmp, 47)
   45026      370420 :          pack_tmp = ISHFT(pack_tmp, -47)
   45027      370420 :          idata = idata + 1
   45028      370420 :          data_tmp = full_data(idata)
   45029      370420 :          data_tmp = ISHFT(data_tmp, 9)
   45030      370420 :          data_tmp = IAND(data_tmp, mask_left(47))
   45031      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45032      370420 :          ipack = ipack + 1
   45033      370420 :          packed_data(ipack) = pack_tmp
   45034      370420 :          data_tmp = full_data(idata)
   45035      370420 :          pack_tmp = ISHFT(data_tmp, 56)
   45036      370420 :          pack_tmp = ISHFT(pack_tmp, -55)
   45037      370420 :          idata = idata + 1
   45038      370420 :          data_tmp = full_data(idata)
   45039      370420 :          data_tmp = ISHFT(data_tmp, 9)
   45040      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45041      370420 :          pack_tmp = ISHFT(pack_tmp, -1)
   45042      370420 :          idata = idata + 1
   45043      370420 :          data_tmp = full_data(idata)
   45044      370420 :          data_tmp = ISHFT(data_tmp, 9)
   45045      370420 :          data_tmp = IAND(data_tmp, mask_left(1))
   45046      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45047      370420 :          ipack = ipack + 1
   45048      370420 :          packed_data(ipack) = pack_tmp
   45049      370420 :          data_tmp = full_data(idata)
   45050      370420 :          pack_tmp = ISHFT(data_tmp, 10)
   45051      370420 :          pack_tmp = ISHFT(pack_tmp, -10)
   45052      370420 :          idata = idata + 1
   45053      370420 :          data_tmp = full_data(idata)
   45054      370420 :          data_tmp = ISHFT(data_tmp, 9)
   45055      370420 :          data_tmp = IAND(data_tmp, mask_left(10))
   45056      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45057      370420 :          ipack = ipack + 1
   45058      370420 :          packed_data(ipack) = pack_tmp
   45059      370420 :          data_tmp = full_data(idata)
   45060      370420 :          pack_tmp = ISHFT(data_tmp, 19)
   45061      370420 :          pack_tmp = ISHFT(pack_tmp, -19)
   45062      370420 :          idata = idata + 1
   45063      370420 :          data_tmp = full_data(idata)
   45064      370420 :          data_tmp = ISHFT(data_tmp, 9)
   45065      370420 :          data_tmp = IAND(data_tmp, mask_left(19))
   45066      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45067      370420 :          ipack = ipack + 1
   45068      370420 :          packed_data(ipack) = pack_tmp
   45069      370420 :          data_tmp = full_data(idata)
   45070      370420 :          pack_tmp = ISHFT(data_tmp, 28)
   45071      370420 :          pack_tmp = ISHFT(pack_tmp, -28)
   45072      370420 :          idata = idata + 1
   45073      370420 :          data_tmp = full_data(idata)
   45074      370420 :          data_tmp = ISHFT(data_tmp, 9)
   45075      370420 :          data_tmp = IAND(data_tmp, mask_left(28))
   45076      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45077      370420 :          ipack = ipack + 1
   45078      370420 :          packed_data(ipack) = pack_tmp
   45079      370420 :          data_tmp = full_data(idata)
   45080      370420 :          pack_tmp = ISHFT(data_tmp, 37)
   45081      370420 :          pack_tmp = ISHFT(pack_tmp, -37)
   45082      370420 :          idata = idata + 1
   45083      370420 :          data_tmp = full_data(idata)
   45084      370420 :          data_tmp = ISHFT(data_tmp, 9)
   45085      370420 :          data_tmp = IAND(data_tmp, mask_left(37))
   45086      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45087      370420 :          ipack = ipack + 1
   45088      370420 :          packed_data(ipack) = pack_tmp
   45089      370420 :          data_tmp = full_data(idata)
   45090      370420 :          pack_tmp = ISHFT(data_tmp, 46)
   45091      370420 :          pack_tmp = ISHFT(pack_tmp, -46)
   45092      370420 :          idata = idata + 1
   45093      370420 :          data_tmp = full_data(idata)
   45094      370420 :          data_tmp = ISHFT(data_tmp, 9)
   45095      370420 :          data_tmp = IAND(data_tmp, mask_left(46))
   45096      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45097      370420 :          ipack = ipack + 1
   45098      370420 :          packed_data(ipack) = pack_tmp
   45099      370420 :          data_tmp = full_data(idata)
   45100      370420 :          pack_tmp = ISHFT(data_tmp, 55)
   45101      370420 :          pack_tmp = ISHFT(pack_tmp, -55)
   45102      370420 :          idata = idata + 1
   45103      370420 :          data_tmp = full_data(idata)
   45104      370420 :          data_tmp = ISHFT(data_tmp, 9)
   45105      370420 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45106             :          pack_tmp = ISHFT(pack_tmp, 0)
   45107      370420 :          pack_tmp = ISHFT(pack_tmp, 0)
   45108      370420 :          ipack = ipack + 1
   45109      370434 :          packed_data(ipack) = pack_tmp
   45110             :       END DO
   45111       23300 :       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       23300 :    END SUBROUTINE ints2bits_55
   45115             : 
   45116             : ! **************************************************************************************************
   45117             : !> \brief ...
   45118             : !> \param Ndata ...
   45119             : !> \param packed_data ...
   45120             : !> \param full_data ...
   45121             : ! **************************************************************************************************
   45122      105001 :    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      105001 :       ipack = 0
   45133      105001 :       idata = 0
   45134      105001 :       pack_tmp = 0
   45135      105001 :       Ndata_rep = (Ndata/64)*64
   45136      105001 :       DO kdata = 1, Ndata_rep, 64
   45137     1591310 :          idata = idata + 1
   45138     1591310 :          data_tmp = ISHFT(pack_tmp, 55)
   45139     1591310 :          ipack = ipack + 1
   45140     1591310 :          pack_tmp = packed_data(ipack)
   45141     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(55)))
   45142     1591310 :          pack_tmp = ISHFT(pack_tmp, -55)
   45143     1591310 :          idata = idata + 1
   45144     1591310 :          data_tmp = ISHFT(pack_tmp, 46)
   45145     1591310 :          ipack = ipack + 1
   45146     1591310 :          pack_tmp = packed_data(ipack)
   45147     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   45148     1591310 :          pack_tmp = ISHFT(pack_tmp, -46)
   45149     1591310 :          idata = idata + 1
   45150     1591310 :          data_tmp = ISHFT(pack_tmp, 37)
   45151     1591310 :          ipack = ipack + 1
   45152     1591310 :          pack_tmp = packed_data(ipack)
   45153     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   45154     1591310 :          pack_tmp = ISHFT(pack_tmp, -37)
   45155     1591310 :          idata = idata + 1
   45156     1591310 :          data_tmp = ISHFT(pack_tmp, 28)
   45157     1591310 :          ipack = ipack + 1
   45158     1591310 :          pack_tmp = packed_data(ipack)
   45159     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   45160     1591310 :          pack_tmp = ISHFT(pack_tmp, -28)
   45161     1591310 :          idata = idata + 1
   45162     1591310 :          data_tmp = ISHFT(pack_tmp, 19)
   45163     1591310 :          ipack = ipack + 1
   45164     1591310 :          pack_tmp = packed_data(ipack)
   45165     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   45166     1591310 :          pack_tmp = ISHFT(pack_tmp, -19)
   45167     1591310 :          idata = idata + 1
   45168     1591310 :          data_tmp = ISHFT(pack_tmp, 10)
   45169     1591310 :          ipack = ipack + 1
   45170     1591310 :          pack_tmp = packed_data(ipack)
   45171     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   45172     1591310 :          pack_tmp = ISHFT(pack_tmp, -10)
   45173     1591310 :          idata = idata + 1
   45174     1591310 :          data_tmp = ISHFT(pack_tmp, 1)
   45175     1591310 :          ipack = ipack + 1
   45176     1591310 :          pack_tmp = packed_data(ipack)
   45177     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   45178     1591310 :          pack_tmp = ISHFT(pack_tmp, -1)
   45179     1591310 :          idata = idata + 1
   45180     1591310 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45181     1591310 :          full_data(idata) = data_tmp
   45182     1591310 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45183     1591310 :          idata = idata + 1
   45184     1591310 :          data_tmp = ISHFT(pack_tmp, 47)
   45185     1591310 :          ipack = ipack + 1
   45186     1591310 :          pack_tmp = packed_data(ipack)
   45187     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   45188     1591310 :          pack_tmp = ISHFT(pack_tmp, -47)
   45189     1591310 :          idata = idata + 1
   45190     1591310 :          data_tmp = ISHFT(pack_tmp, 38)
   45191     1591310 :          ipack = ipack + 1
   45192     1591310 :          pack_tmp = packed_data(ipack)
   45193     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   45194     1591310 :          pack_tmp = ISHFT(pack_tmp, -38)
   45195     1591310 :          idata = idata + 1
   45196     1591310 :          data_tmp = ISHFT(pack_tmp, 29)
   45197     1591310 :          ipack = ipack + 1
   45198     1591310 :          pack_tmp = packed_data(ipack)
   45199     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   45200     1591310 :          pack_tmp = ISHFT(pack_tmp, -29)
   45201     1591310 :          idata = idata + 1
   45202     1591310 :          data_tmp = ISHFT(pack_tmp, 20)
   45203     1591310 :          ipack = ipack + 1
   45204     1591310 :          pack_tmp = packed_data(ipack)
   45205     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   45206     1591310 :          pack_tmp = ISHFT(pack_tmp, -20)
   45207     1591310 :          idata = idata + 1
   45208     1591310 :          data_tmp = ISHFT(pack_tmp, 11)
   45209     1591310 :          ipack = ipack + 1
   45210     1591310 :          pack_tmp = packed_data(ipack)
   45211     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   45212     1591310 :          pack_tmp = ISHFT(pack_tmp, -11)
   45213     1591310 :          idata = idata + 1
   45214     1591310 :          data_tmp = ISHFT(pack_tmp, 2)
   45215     1591310 :          ipack = ipack + 1
   45216     1591310 :          pack_tmp = packed_data(ipack)
   45217     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   45218     1591310 :          pack_tmp = ISHFT(pack_tmp, -2)
   45219     1591310 :          idata = idata + 1
   45220     1591310 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45221     1591310 :          full_data(idata) = data_tmp
   45222     1591310 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45223     1591310 :          idata = idata + 1
   45224     1591310 :          data_tmp = ISHFT(pack_tmp, 48)
   45225     1591310 :          ipack = ipack + 1
   45226     1591310 :          pack_tmp = packed_data(ipack)
   45227     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   45228     1591310 :          pack_tmp = ISHFT(pack_tmp, -48)
   45229     1591310 :          idata = idata + 1
   45230     1591310 :          data_tmp = ISHFT(pack_tmp, 39)
   45231     1591310 :          ipack = ipack + 1
   45232     1591310 :          pack_tmp = packed_data(ipack)
   45233     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   45234     1591310 :          pack_tmp = ISHFT(pack_tmp, -39)
   45235     1591310 :          idata = idata + 1
   45236     1591310 :          data_tmp = ISHFT(pack_tmp, 30)
   45237     1591310 :          ipack = ipack + 1
   45238     1591310 :          pack_tmp = packed_data(ipack)
   45239     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   45240     1591310 :          pack_tmp = ISHFT(pack_tmp, -30)
   45241     1591310 :          idata = idata + 1
   45242     1591310 :          data_tmp = ISHFT(pack_tmp, 21)
   45243     1591310 :          ipack = ipack + 1
   45244     1591310 :          pack_tmp = packed_data(ipack)
   45245     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   45246     1591310 :          pack_tmp = ISHFT(pack_tmp, -21)
   45247     1591310 :          idata = idata + 1
   45248     1591310 :          data_tmp = ISHFT(pack_tmp, 12)
   45249     1591310 :          ipack = ipack + 1
   45250     1591310 :          pack_tmp = packed_data(ipack)
   45251     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   45252     1591310 :          pack_tmp = ISHFT(pack_tmp, -12)
   45253     1591310 :          idata = idata + 1
   45254     1591310 :          data_tmp = ISHFT(pack_tmp, 3)
   45255     1591310 :          ipack = ipack + 1
   45256     1591310 :          pack_tmp = packed_data(ipack)
   45257     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   45258     1591310 :          pack_tmp = ISHFT(pack_tmp, -3)
   45259     1591310 :          idata = idata + 1
   45260     1591310 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45261     1591310 :          full_data(idata) = data_tmp
   45262     1591310 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45263     1591310 :          idata = idata + 1
   45264     1591310 :          data_tmp = ISHFT(pack_tmp, 49)
   45265     1591310 :          ipack = ipack + 1
   45266     1591310 :          pack_tmp = packed_data(ipack)
   45267     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   45268     1591310 :          pack_tmp = ISHFT(pack_tmp, -49)
   45269     1591310 :          idata = idata + 1
   45270     1591310 :          data_tmp = ISHFT(pack_tmp, 40)
   45271     1591310 :          ipack = ipack + 1
   45272     1591310 :          pack_tmp = packed_data(ipack)
   45273     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   45274     1591310 :          pack_tmp = ISHFT(pack_tmp, -40)
   45275     1591310 :          idata = idata + 1
   45276     1591310 :          data_tmp = ISHFT(pack_tmp, 31)
   45277     1591310 :          ipack = ipack + 1
   45278     1591310 :          pack_tmp = packed_data(ipack)
   45279     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   45280     1591310 :          pack_tmp = ISHFT(pack_tmp, -31)
   45281     1591310 :          idata = idata + 1
   45282     1591310 :          data_tmp = ISHFT(pack_tmp, 22)
   45283     1591310 :          ipack = ipack + 1
   45284     1591310 :          pack_tmp = packed_data(ipack)
   45285     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   45286     1591310 :          pack_tmp = ISHFT(pack_tmp, -22)
   45287     1591310 :          idata = idata + 1
   45288     1591310 :          data_tmp = ISHFT(pack_tmp, 13)
   45289     1591310 :          ipack = ipack + 1
   45290     1591310 :          pack_tmp = packed_data(ipack)
   45291     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   45292     1591310 :          pack_tmp = ISHFT(pack_tmp, -13)
   45293     1591310 :          idata = idata + 1
   45294     1591310 :          data_tmp = ISHFT(pack_tmp, 4)
   45295     1591310 :          ipack = ipack + 1
   45296     1591310 :          pack_tmp = packed_data(ipack)
   45297     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   45298     1591310 :          pack_tmp = ISHFT(pack_tmp, -4)
   45299     1591310 :          idata = idata + 1
   45300     1591310 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45301     1591310 :          full_data(idata) = data_tmp
   45302     1591310 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45303     1591310 :          idata = idata + 1
   45304     1591310 :          data_tmp = ISHFT(pack_tmp, 50)
   45305     1591310 :          ipack = ipack + 1
   45306     1591310 :          pack_tmp = packed_data(ipack)
   45307     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   45308     1591310 :          pack_tmp = ISHFT(pack_tmp, -50)
   45309     1591310 :          idata = idata + 1
   45310     1591310 :          data_tmp = ISHFT(pack_tmp, 41)
   45311     1591310 :          ipack = ipack + 1
   45312     1591310 :          pack_tmp = packed_data(ipack)
   45313     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   45314     1591310 :          pack_tmp = ISHFT(pack_tmp, -41)
   45315     1591310 :          idata = idata + 1
   45316     1591310 :          data_tmp = ISHFT(pack_tmp, 32)
   45317     1591310 :          ipack = ipack + 1
   45318     1591310 :          pack_tmp = packed_data(ipack)
   45319     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   45320     1591310 :          pack_tmp = ISHFT(pack_tmp, -32)
   45321     1591310 :          idata = idata + 1
   45322     1591310 :          data_tmp = ISHFT(pack_tmp, 23)
   45323     1591310 :          ipack = ipack + 1
   45324     1591310 :          pack_tmp = packed_data(ipack)
   45325     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   45326     1591310 :          pack_tmp = ISHFT(pack_tmp, -23)
   45327     1591310 :          idata = idata + 1
   45328     1591310 :          data_tmp = ISHFT(pack_tmp, 14)
   45329     1591310 :          ipack = ipack + 1
   45330     1591310 :          pack_tmp = packed_data(ipack)
   45331     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   45332     1591310 :          pack_tmp = ISHFT(pack_tmp, -14)
   45333     1591310 :          idata = idata + 1
   45334     1591310 :          data_tmp = ISHFT(pack_tmp, 5)
   45335     1591310 :          ipack = ipack + 1
   45336     1591310 :          pack_tmp = packed_data(ipack)
   45337     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   45338     1591310 :          pack_tmp = ISHFT(pack_tmp, -5)
   45339     1591310 :          idata = idata + 1
   45340     1591310 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45341     1591310 :          full_data(idata) = data_tmp
   45342     1591310 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45343     1591310 :          idata = idata + 1
   45344     1591310 :          data_tmp = ISHFT(pack_tmp, 51)
   45345     1591310 :          ipack = ipack + 1
   45346     1591310 :          pack_tmp = packed_data(ipack)
   45347     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   45348     1591310 :          pack_tmp = ISHFT(pack_tmp, -51)
   45349     1591310 :          idata = idata + 1
   45350     1591310 :          data_tmp = ISHFT(pack_tmp, 42)
   45351     1591310 :          ipack = ipack + 1
   45352     1591310 :          pack_tmp = packed_data(ipack)
   45353     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   45354     1591310 :          pack_tmp = ISHFT(pack_tmp, -42)
   45355     1591310 :          idata = idata + 1
   45356     1591310 :          data_tmp = ISHFT(pack_tmp, 33)
   45357     1591310 :          ipack = ipack + 1
   45358     1591310 :          pack_tmp = packed_data(ipack)
   45359     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   45360     1591310 :          pack_tmp = ISHFT(pack_tmp, -33)
   45361     1591310 :          idata = idata + 1
   45362     1591310 :          data_tmp = ISHFT(pack_tmp, 24)
   45363     1591310 :          ipack = ipack + 1
   45364     1591310 :          pack_tmp = packed_data(ipack)
   45365     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   45366     1591310 :          pack_tmp = ISHFT(pack_tmp, -24)
   45367     1591310 :          idata = idata + 1
   45368     1591310 :          data_tmp = ISHFT(pack_tmp, 15)
   45369     1591310 :          ipack = ipack + 1
   45370     1591310 :          pack_tmp = packed_data(ipack)
   45371     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   45372     1591310 :          pack_tmp = ISHFT(pack_tmp, -15)
   45373     1591310 :          idata = idata + 1
   45374     1591310 :          data_tmp = ISHFT(pack_tmp, 6)
   45375     1591310 :          ipack = ipack + 1
   45376     1591310 :          pack_tmp = packed_data(ipack)
   45377     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   45378     1591310 :          pack_tmp = ISHFT(pack_tmp, -6)
   45379     1591310 :          idata = idata + 1
   45380     1591310 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45381     1591310 :          full_data(idata) = data_tmp
   45382     1591310 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45383     1591310 :          idata = idata + 1
   45384     1591310 :          data_tmp = ISHFT(pack_tmp, 52)
   45385     1591310 :          ipack = ipack + 1
   45386     1591310 :          pack_tmp = packed_data(ipack)
   45387     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   45388     1591310 :          pack_tmp = ISHFT(pack_tmp, -52)
   45389     1591310 :          idata = idata + 1
   45390     1591310 :          data_tmp = ISHFT(pack_tmp, 43)
   45391     1591310 :          ipack = ipack + 1
   45392     1591310 :          pack_tmp = packed_data(ipack)
   45393     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   45394     1591310 :          pack_tmp = ISHFT(pack_tmp, -43)
   45395     1591310 :          idata = idata + 1
   45396     1591310 :          data_tmp = ISHFT(pack_tmp, 34)
   45397     1591310 :          ipack = ipack + 1
   45398     1591310 :          pack_tmp = packed_data(ipack)
   45399     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   45400     1591310 :          pack_tmp = ISHFT(pack_tmp, -34)
   45401     1591310 :          idata = idata + 1
   45402     1591310 :          data_tmp = ISHFT(pack_tmp, 25)
   45403     1591310 :          ipack = ipack + 1
   45404     1591310 :          pack_tmp = packed_data(ipack)
   45405     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   45406     1591310 :          pack_tmp = ISHFT(pack_tmp, -25)
   45407     1591310 :          idata = idata + 1
   45408     1591310 :          data_tmp = ISHFT(pack_tmp, 16)
   45409     1591310 :          ipack = ipack + 1
   45410     1591310 :          pack_tmp = packed_data(ipack)
   45411     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   45412     1591310 :          pack_tmp = ISHFT(pack_tmp, -16)
   45413     1591310 :          idata = idata + 1
   45414     1591310 :          data_tmp = ISHFT(pack_tmp, 7)
   45415     1591310 :          ipack = ipack + 1
   45416     1591310 :          pack_tmp = packed_data(ipack)
   45417     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   45418     1591310 :          pack_tmp = ISHFT(pack_tmp, -7)
   45419     1591310 :          idata = idata + 1
   45420     1591310 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45421     1591310 :          full_data(idata) = data_tmp
   45422     1591310 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45423     1591310 :          idata = idata + 1
   45424     1591310 :          data_tmp = ISHFT(pack_tmp, 53)
   45425     1591310 :          ipack = ipack + 1
   45426     1591310 :          pack_tmp = packed_data(ipack)
   45427     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   45428     1591310 :          pack_tmp = ISHFT(pack_tmp, -53)
   45429     1591310 :          idata = idata + 1
   45430     1591310 :          data_tmp = ISHFT(pack_tmp, 44)
   45431     1591310 :          ipack = ipack + 1
   45432     1591310 :          pack_tmp = packed_data(ipack)
   45433     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   45434     1591310 :          pack_tmp = ISHFT(pack_tmp, -44)
   45435     1591310 :          idata = idata + 1
   45436     1591310 :          data_tmp = ISHFT(pack_tmp, 35)
   45437     1591310 :          ipack = ipack + 1
   45438     1591310 :          pack_tmp = packed_data(ipack)
   45439     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   45440     1591310 :          pack_tmp = ISHFT(pack_tmp, -35)
   45441     1591310 :          idata = idata + 1
   45442     1591310 :          data_tmp = ISHFT(pack_tmp, 26)
   45443     1591310 :          ipack = ipack + 1
   45444     1591310 :          pack_tmp = packed_data(ipack)
   45445     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   45446     1591310 :          pack_tmp = ISHFT(pack_tmp, -26)
   45447     1591310 :          idata = idata + 1
   45448     1591310 :          data_tmp = ISHFT(pack_tmp, 17)
   45449     1591310 :          ipack = ipack + 1
   45450     1591310 :          pack_tmp = packed_data(ipack)
   45451     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   45452     1591310 :          pack_tmp = ISHFT(pack_tmp, -17)
   45453     1591310 :          idata = idata + 1
   45454     1591310 :          data_tmp = ISHFT(pack_tmp, 8)
   45455     1591310 :          ipack = ipack + 1
   45456     1591310 :          pack_tmp = packed_data(ipack)
   45457     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   45458     1591310 :          pack_tmp = ISHFT(pack_tmp, -8)
   45459     1591310 :          idata = idata + 1
   45460     1591310 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45461     1591310 :          full_data(idata) = data_tmp
   45462     1591310 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45463     1591310 :          idata = idata + 1
   45464     1591310 :          data_tmp = ISHFT(pack_tmp, 54)
   45465     1591310 :          ipack = ipack + 1
   45466     1591310 :          pack_tmp = packed_data(ipack)
   45467     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   45468     1591310 :          pack_tmp = ISHFT(pack_tmp, -54)
   45469     1591310 :          idata = idata + 1
   45470     1591310 :          data_tmp = ISHFT(pack_tmp, 45)
   45471     1591310 :          ipack = ipack + 1
   45472     1591310 :          pack_tmp = packed_data(ipack)
   45473     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   45474     1591310 :          pack_tmp = ISHFT(pack_tmp, -45)
   45475     1591310 :          idata = idata + 1
   45476     1591310 :          data_tmp = ISHFT(pack_tmp, 36)
   45477     1591310 :          ipack = ipack + 1
   45478     1591310 :          pack_tmp = packed_data(ipack)
   45479     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   45480     1591310 :          pack_tmp = ISHFT(pack_tmp, -36)
   45481     1591310 :          idata = idata + 1
   45482     1591310 :          data_tmp = ISHFT(pack_tmp, 27)
   45483     1591310 :          ipack = ipack + 1
   45484     1591310 :          pack_tmp = packed_data(ipack)
   45485     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   45486     1591310 :          pack_tmp = ISHFT(pack_tmp, -27)
   45487     1591310 :          idata = idata + 1
   45488     1591310 :          data_tmp = ISHFT(pack_tmp, 18)
   45489     1591310 :          ipack = ipack + 1
   45490     1591310 :          pack_tmp = packed_data(ipack)
   45491     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   45492     1591310 :          pack_tmp = ISHFT(pack_tmp, -18)
   45493     1591310 :          idata = idata + 1
   45494     1591310 :          data_tmp = ISHFT(pack_tmp, 9)
   45495     1591310 :          ipack = ipack + 1
   45496     1591310 :          pack_tmp = packed_data(ipack)
   45497     1591310 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   45498     1591310 :          pack_tmp = ISHFT(pack_tmp, -9)
   45499     1591310 :          idata = idata + 1
   45500     1591310 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45501     1591310 :          full_data(idata) = data_tmp
   45502     1591810 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45503             :       END DO
   45504      105001 :       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      105001 :    END SUBROUTINE bits2ints_55
   45508             : 
   45509             : ! **************************************************************************************************
   45510             : !> \brief ...
   45511             : !> \param Ndata ...
   45512             : !> \param packed_data ...
   45513             : !> \param full_data ...
   45514             : ! **************************************************************************************************
   45515       23142 :    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       23142 :       idata = 0
   45526       23142 :       ipack = 0
   45527       23142 :       Ndata_rep = (Ndata/64)*64
   45528       23142 :       DO kdata = 1, Ndata_rep, 64
   45529      369150 :          pack_tmp = 0
   45530      369150 :          idata = idata + 1
   45531      369150 :          data_tmp = full_data(idata)
   45532      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45533      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45534      369150 :          pack_tmp = ISHFT(pack_tmp, -8)
   45535      369150 :          idata = idata + 1
   45536      369150 :          data_tmp = full_data(idata)
   45537      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45538      369150 :          data_tmp = IAND(data_tmp, mask_left(8))
   45539      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45540      369150 :          ipack = ipack + 1
   45541      369150 :          packed_data(ipack) = pack_tmp
   45542      369150 :          data_tmp = full_data(idata)
   45543      369150 :          pack_tmp = ISHFT(data_tmp, 16)
   45544      369150 :          pack_tmp = ISHFT(pack_tmp, -16)
   45545      369150 :          idata = idata + 1
   45546      369150 :          data_tmp = full_data(idata)
   45547      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45548      369150 :          data_tmp = IAND(data_tmp, mask_left(16))
   45549      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45550      369150 :          ipack = ipack + 1
   45551      369150 :          packed_data(ipack) = pack_tmp
   45552      369150 :          data_tmp = full_data(idata)
   45553      369150 :          pack_tmp = ISHFT(data_tmp, 24)
   45554      369150 :          pack_tmp = ISHFT(pack_tmp, -24)
   45555      369150 :          idata = idata + 1
   45556      369150 :          data_tmp = full_data(idata)
   45557      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45558      369150 :          data_tmp = IAND(data_tmp, mask_left(24))
   45559      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45560      369150 :          ipack = ipack + 1
   45561      369150 :          packed_data(ipack) = pack_tmp
   45562      369150 :          data_tmp = full_data(idata)
   45563      369150 :          pack_tmp = ISHFT(data_tmp, 32)
   45564      369150 :          pack_tmp = ISHFT(pack_tmp, -32)
   45565      369150 :          idata = idata + 1
   45566      369150 :          data_tmp = full_data(idata)
   45567      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45568      369150 :          data_tmp = IAND(data_tmp, mask_left(32))
   45569      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45570      369150 :          ipack = ipack + 1
   45571      369150 :          packed_data(ipack) = pack_tmp
   45572      369150 :          data_tmp = full_data(idata)
   45573      369150 :          pack_tmp = ISHFT(data_tmp, 40)
   45574      369150 :          pack_tmp = ISHFT(pack_tmp, -40)
   45575      369150 :          idata = idata + 1
   45576      369150 :          data_tmp = full_data(idata)
   45577      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45578      369150 :          data_tmp = IAND(data_tmp, mask_left(40))
   45579      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45580      369150 :          ipack = ipack + 1
   45581      369150 :          packed_data(ipack) = pack_tmp
   45582      369150 :          data_tmp = full_data(idata)
   45583      369150 :          pack_tmp = ISHFT(data_tmp, 48)
   45584      369150 :          pack_tmp = ISHFT(pack_tmp, -48)
   45585      369150 :          idata = idata + 1
   45586      369150 :          data_tmp = full_data(idata)
   45587      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45588      369150 :          data_tmp = IAND(data_tmp, mask_left(48))
   45589      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45590      369150 :          ipack = ipack + 1
   45591      369150 :          packed_data(ipack) = pack_tmp
   45592      369150 :          data_tmp = full_data(idata)
   45593      369150 :          pack_tmp = ISHFT(data_tmp, 56)
   45594      369150 :          pack_tmp = ISHFT(pack_tmp, -56)
   45595      369150 :          idata = idata + 1
   45596      369150 :          data_tmp = full_data(idata)
   45597      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45598      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45599      369150 :          pack_tmp = ISHFT(pack_tmp, 0)
   45600      369150 :          idata = idata + 1
   45601      369150 :          data_tmp = full_data(idata)
   45602             :          data_tmp = ISHFT(data_tmp, 8)
   45603      369150 :          data_tmp = IAND(data_tmp, mask_left(0))
   45604      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45605      369150 :          ipack = ipack + 1
   45606      369150 :          packed_data(ipack) = pack_tmp
   45607      369150 :          data_tmp = full_data(idata)
   45608      369150 :          pack_tmp = ISHFT(data_tmp, 8)
   45609      369150 :          pack_tmp = ISHFT(pack_tmp, -8)
   45610      369150 :          idata = idata + 1
   45611      369150 :          data_tmp = full_data(idata)
   45612      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45613      369150 :          data_tmp = IAND(data_tmp, mask_left(8))
   45614      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45615      369150 :          ipack = ipack + 1
   45616      369150 :          packed_data(ipack) = pack_tmp
   45617      369150 :          data_tmp = full_data(idata)
   45618      369150 :          pack_tmp = ISHFT(data_tmp, 16)
   45619      369150 :          pack_tmp = ISHFT(pack_tmp, -16)
   45620      369150 :          idata = idata + 1
   45621      369150 :          data_tmp = full_data(idata)
   45622      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45623      369150 :          data_tmp = IAND(data_tmp, mask_left(16))
   45624      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45625      369150 :          ipack = ipack + 1
   45626      369150 :          packed_data(ipack) = pack_tmp
   45627      369150 :          data_tmp = full_data(idata)
   45628      369150 :          pack_tmp = ISHFT(data_tmp, 24)
   45629      369150 :          pack_tmp = ISHFT(pack_tmp, -24)
   45630      369150 :          idata = idata + 1
   45631      369150 :          data_tmp = full_data(idata)
   45632      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45633      369150 :          data_tmp = IAND(data_tmp, mask_left(24))
   45634      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45635      369150 :          ipack = ipack + 1
   45636      369150 :          packed_data(ipack) = pack_tmp
   45637      369150 :          data_tmp = full_data(idata)
   45638      369150 :          pack_tmp = ISHFT(data_tmp, 32)
   45639      369150 :          pack_tmp = ISHFT(pack_tmp, -32)
   45640      369150 :          idata = idata + 1
   45641      369150 :          data_tmp = full_data(idata)
   45642      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45643      369150 :          data_tmp = IAND(data_tmp, mask_left(32))
   45644      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45645      369150 :          ipack = ipack + 1
   45646      369150 :          packed_data(ipack) = pack_tmp
   45647      369150 :          data_tmp = full_data(idata)
   45648      369150 :          pack_tmp = ISHFT(data_tmp, 40)
   45649      369150 :          pack_tmp = ISHFT(pack_tmp, -40)
   45650      369150 :          idata = idata + 1
   45651      369150 :          data_tmp = full_data(idata)
   45652      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45653      369150 :          data_tmp = IAND(data_tmp, mask_left(40))
   45654      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45655      369150 :          ipack = ipack + 1
   45656      369150 :          packed_data(ipack) = pack_tmp
   45657      369150 :          data_tmp = full_data(idata)
   45658      369150 :          pack_tmp = ISHFT(data_tmp, 48)
   45659      369150 :          pack_tmp = ISHFT(pack_tmp, -48)
   45660      369150 :          idata = idata + 1
   45661      369150 :          data_tmp = full_data(idata)
   45662      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45663      369150 :          data_tmp = IAND(data_tmp, mask_left(48))
   45664      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45665      369150 :          ipack = ipack + 1
   45666      369150 :          packed_data(ipack) = pack_tmp
   45667      369150 :          data_tmp = full_data(idata)
   45668      369150 :          pack_tmp = ISHFT(data_tmp, 56)
   45669      369150 :          pack_tmp = ISHFT(pack_tmp, -56)
   45670      369150 :          idata = idata + 1
   45671      369150 :          data_tmp = full_data(idata)
   45672      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45673      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45674      369150 :          pack_tmp = ISHFT(pack_tmp, 0)
   45675      369150 :          idata = idata + 1
   45676      369150 :          data_tmp = full_data(idata)
   45677             :          data_tmp = ISHFT(data_tmp, 8)
   45678      369150 :          data_tmp = IAND(data_tmp, mask_left(0))
   45679      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45680      369150 :          ipack = ipack + 1
   45681      369150 :          packed_data(ipack) = pack_tmp
   45682      369150 :          data_tmp = full_data(idata)
   45683      369150 :          pack_tmp = ISHFT(data_tmp, 8)
   45684      369150 :          pack_tmp = ISHFT(pack_tmp, -8)
   45685      369150 :          idata = idata + 1
   45686      369150 :          data_tmp = full_data(idata)
   45687      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45688      369150 :          data_tmp = IAND(data_tmp, mask_left(8))
   45689      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45690      369150 :          ipack = ipack + 1
   45691      369150 :          packed_data(ipack) = pack_tmp
   45692      369150 :          data_tmp = full_data(idata)
   45693      369150 :          pack_tmp = ISHFT(data_tmp, 16)
   45694      369150 :          pack_tmp = ISHFT(pack_tmp, -16)
   45695      369150 :          idata = idata + 1
   45696      369150 :          data_tmp = full_data(idata)
   45697      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45698      369150 :          data_tmp = IAND(data_tmp, mask_left(16))
   45699      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45700      369150 :          ipack = ipack + 1
   45701      369150 :          packed_data(ipack) = pack_tmp
   45702      369150 :          data_tmp = full_data(idata)
   45703      369150 :          pack_tmp = ISHFT(data_tmp, 24)
   45704      369150 :          pack_tmp = ISHFT(pack_tmp, -24)
   45705      369150 :          idata = idata + 1
   45706      369150 :          data_tmp = full_data(idata)
   45707      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45708      369150 :          data_tmp = IAND(data_tmp, mask_left(24))
   45709      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45710      369150 :          ipack = ipack + 1
   45711      369150 :          packed_data(ipack) = pack_tmp
   45712      369150 :          data_tmp = full_data(idata)
   45713      369150 :          pack_tmp = ISHFT(data_tmp, 32)
   45714      369150 :          pack_tmp = ISHFT(pack_tmp, -32)
   45715      369150 :          idata = idata + 1
   45716      369150 :          data_tmp = full_data(idata)
   45717      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45718      369150 :          data_tmp = IAND(data_tmp, mask_left(32))
   45719      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45720      369150 :          ipack = ipack + 1
   45721      369150 :          packed_data(ipack) = pack_tmp
   45722      369150 :          data_tmp = full_data(idata)
   45723      369150 :          pack_tmp = ISHFT(data_tmp, 40)
   45724      369150 :          pack_tmp = ISHFT(pack_tmp, -40)
   45725      369150 :          idata = idata + 1
   45726      369150 :          data_tmp = full_data(idata)
   45727      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45728      369150 :          data_tmp = IAND(data_tmp, mask_left(40))
   45729      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45730      369150 :          ipack = ipack + 1
   45731      369150 :          packed_data(ipack) = pack_tmp
   45732      369150 :          data_tmp = full_data(idata)
   45733      369150 :          pack_tmp = ISHFT(data_tmp, 48)
   45734      369150 :          pack_tmp = ISHFT(pack_tmp, -48)
   45735      369150 :          idata = idata + 1
   45736      369150 :          data_tmp = full_data(idata)
   45737      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45738      369150 :          data_tmp = IAND(data_tmp, mask_left(48))
   45739      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45740      369150 :          ipack = ipack + 1
   45741      369150 :          packed_data(ipack) = pack_tmp
   45742      369150 :          data_tmp = full_data(idata)
   45743      369150 :          pack_tmp = ISHFT(data_tmp, 56)
   45744      369150 :          pack_tmp = ISHFT(pack_tmp, -56)
   45745      369150 :          idata = idata + 1
   45746      369150 :          data_tmp = full_data(idata)
   45747      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45748      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45749      369150 :          pack_tmp = ISHFT(pack_tmp, 0)
   45750      369150 :          idata = idata + 1
   45751      369150 :          data_tmp = full_data(idata)
   45752             :          data_tmp = ISHFT(data_tmp, 8)
   45753      369150 :          data_tmp = IAND(data_tmp, mask_left(0))
   45754      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45755      369150 :          ipack = ipack + 1
   45756      369150 :          packed_data(ipack) = pack_tmp
   45757      369150 :          data_tmp = full_data(idata)
   45758      369150 :          pack_tmp = ISHFT(data_tmp, 8)
   45759      369150 :          pack_tmp = ISHFT(pack_tmp, -8)
   45760      369150 :          idata = idata + 1
   45761      369150 :          data_tmp = full_data(idata)
   45762      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45763      369150 :          data_tmp = IAND(data_tmp, mask_left(8))
   45764      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45765      369150 :          ipack = ipack + 1
   45766      369150 :          packed_data(ipack) = pack_tmp
   45767      369150 :          data_tmp = full_data(idata)
   45768      369150 :          pack_tmp = ISHFT(data_tmp, 16)
   45769      369150 :          pack_tmp = ISHFT(pack_tmp, -16)
   45770      369150 :          idata = idata + 1
   45771      369150 :          data_tmp = full_data(idata)
   45772      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45773      369150 :          data_tmp = IAND(data_tmp, mask_left(16))
   45774      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45775      369150 :          ipack = ipack + 1
   45776      369150 :          packed_data(ipack) = pack_tmp
   45777      369150 :          data_tmp = full_data(idata)
   45778      369150 :          pack_tmp = ISHFT(data_tmp, 24)
   45779      369150 :          pack_tmp = ISHFT(pack_tmp, -24)
   45780      369150 :          idata = idata + 1
   45781      369150 :          data_tmp = full_data(idata)
   45782      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45783      369150 :          data_tmp = IAND(data_tmp, mask_left(24))
   45784      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45785      369150 :          ipack = ipack + 1
   45786      369150 :          packed_data(ipack) = pack_tmp
   45787      369150 :          data_tmp = full_data(idata)
   45788      369150 :          pack_tmp = ISHFT(data_tmp, 32)
   45789      369150 :          pack_tmp = ISHFT(pack_tmp, -32)
   45790      369150 :          idata = idata + 1
   45791      369150 :          data_tmp = full_data(idata)
   45792      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45793      369150 :          data_tmp = IAND(data_tmp, mask_left(32))
   45794      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45795      369150 :          ipack = ipack + 1
   45796      369150 :          packed_data(ipack) = pack_tmp
   45797      369150 :          data_tmp = full_data(idata)
   45798      369150 :          pack_tmp = ISHFT(data_tmp, 40)
   45799      369150 :          pack_tmp = ISHFT(pack_tmp, -40)
   45800      369150 :          idata = idata + 1
   45801      369150 :          data_tmp = full_data(idata)
   45802      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45803      369150 :          data_tmp = IAND(data_tmp, mask_left(40))
   45804      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45805      369150 :          ipack = ipack + 1
   45806      369150 :          packed_data(ipack) = pack_tmp
   45807      369150 :          data_tmp = full_data(idata)
   45808      369150 :          pack_tmp = ISHFT(data_tmp, 48)
   45809      369150 :          pack_tmp = ISHFT(pack_tmp, -48)
   45810      369150 :          idata = idata + 1
   45811      369150 :          data_tmp = full_data(idata)
   45812      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45813      369150 :          data_tmp = IAND(data_tmp, mask_left(48))
   45814      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45815      369150 :          ipack = ipack + 1
   45816      369150 :          packed_data(ipack) = pack_tmp
   45817      369150 :          data_tmp = full_data(idata)
   45818      369150 :          pack_tmp = ISHFT(data_tmp, 56)
   45819      369150 :          pack_tmp = ISHFT(pack_tmp, -56)
   45820      369150 :          idata = idata + 1
   45821      369150 :          data_tmp = full_data(idata)
   45822      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45823      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45824      369150 :          pack_tmp = ISHFT(pack_tmp, 0)
   45825      369150 :          idata = idata + 1
   45826      369150 :          data_tmp = full_data(idata)
   45827             :          data_tmp = ISHFT(data_tmp, 8)
   45828      369150 :          data_tmp = IAND(data_tmp, mask_left(0))
   45829      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45830      369150 :          ipack = ipack + 1
   45831      369150 :          packed_data(ipack) = pack_tmp
   45832      369150 :          data_tmp = full_data(idata)
   45833      369150 :          pack_tmp = ISHFT(data_tmp, 8)
   45834      369150 :          pack_tmp = ISHFT(pack_tmp, -8)
   45835      369150 :          idata = idata + 1
   45836      369150 :          data_tmp = full_data(idata)
   45837      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45838      369150 :          data_tmp = IAND(data_tmp, mask_left(8))
   45839      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45840      369150 :          ipack = ipack + 1
   45841      369150 :          packed_data(ipack) = pack_tmp
   45842      369150 :          data_tmp = full_data(idata)
   45843      369150 :          pack_tmp = ISHFT(data_tmp, 16)
   45844      369150 :          pack_tmp = ISHFT(pack_tmp, -16)
   45845      369150 :          idata = idata + 1
   45846      369150 :          data_tmp = full_data(idata)
   45847      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45848      369150 :          data_tmp = IAND(data_tmp, mask_left(16))
   45849      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45850      369150 :          ipack = ipack + 1
   45851      369150 :          packed_data(ipack) = pack_tmp
   45852      369150 :          data_tmp = full_data(idata)
   45853      369150 :          pack_tmp = ISHFT(data_tmp, 24)
   45854      369150 :          pack_tmp = ISHFT(pack_tmp, -24)
   45855      369150 :          idata = idata + 1
   45856      369150 :          data_tmp = full_data(idata)
   45857      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45858      369150 :          data_tmp = IAND(data_tmp, mask_left(24))
   45859      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45860      369150 :          ipack = ipack + 1
   45861      369150 :          packed_data(ipack) = pack_tmp
   45862      369150 :          data_tmp = full_data(idata)
   45863      369150 :          pack_tmp = ISHFT(data_tmp, 32)
   45864      369150 :          pack_tmp = ISHFT(pack_tmp, -32)
   45865      369150 :          idata = idata + 1
   45866      369150 :          data_tmp = full_data(idata)
   45867      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45868      369150 :          data_tmp = IAND(data_tmp, mask_left(32))
   45869      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45870      369150 :          ipack = ipack + 1
   45871      369150 :          packed_data(ipack) = pack_tmp
   45872      369150 :          data_tmp = full_data(idata)
   45873      369150 :          pack_tmp = ISHFT(data_tmp, 40)
   45874      369150 :          pack_tmp = ISHFT(pack_tmp, -40)
   45875      369150 :          idata = idata + 1
   45876      369150 :          data_tmp = full_data(idata)
   45877      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45878      369150 :          data_tmp = IAND(data_tmp, mask_left(40))
   45879      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45880      369150 :          ipack = ipack + 1
   45881      369150 :          packed_data(ipack) = pack_tmp
   45882      369150 :          data_tmp = full_data(idata)
   45883      369150 :          pack_tmp = ISHFT(data_tmp, 48)
   45884      369150 :          pack_tmp = ISHFT(pack_tmp, -48)
   45885      369150 :          idata = idata + 1
   45886      369150 :          data_tmp = full_data(idata)
   45887      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45888      369150 :          data_tmp = IAND(data_tmp, mask_left(48))
   45889      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45890      369150 :          ipack = ipack + 1
   45891      369150 :          packed_data(ipack) = pack_tmp
   45892      369150 :          data_tmp = full_data(idata)
   45893      369150 :          pack_tmp = ISHFT(data_tmp, 56)
   45894      369150 :          pack_tmp = ISHFT(pack_tmp, -56)
   45895      369150 :          idata = idata + 1
   45896      369150 :          data_tmp = full_data(idata)
   45897      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45898      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45899      369150 :          pack_tmp = ISHFT(pack_tmp, 0)
   45900      369150 :          idata = idata + 1
   45901      369150 :          data_tmp = full_data(idata)
   45902             :          data_tmp = ISHFT(data_tmp, 8)
   45903      369150 :          data_tmp = IAND(data_tmp, mask_left(0))
   45904      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45905      369150 :          ipack = ipack + 1
   45906      369150 :          packed_data(ipack) = pack_tmp
   45907      369150 :          data_tmp = full_data(idata)
   45908      369150 :          pack_tmp = ISHFT(data_tmp, 8)
   45909      369150 :          pack_tmp = ISHFT(pack_tmp, -8)
   45910      369150 :          idata = idata + 1
   45911      369150 :          data_tmp = full_data(idata)
   45912      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45913      369150 :          data_tmp = IAND(data_tmp, mask_left(8))
   45914      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45915      369150 :          ipack = ipack + 1
   45916      369150 :          packed_data(ipack) = pack_tmp
   45917      369150 :          data_tmp = full_data(idata)
   45918      369150 :          pack_tmp = ISHFT(data_tmp, 16)
   45919      369150 :          pack_tmp = ISHFT(pack_tmp, -16)
   45920      369150 :          idata = idata + 1
   45921      369150 :          data_tmp = full_data(idata)
   45922      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45923      369150 :          data_tmp = IAND(data_tmp, mask_left(16))
   45924      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45925      369150 :          ipack = ipack + 1
   45926      369150 :          packed_data(ipack) = pack_tmp
   45927      369150 :          data_tmp = full_data(idata)
   45928      369150 :          pack_tmp = ISHFT(data_tmp, 24)
   45929      369150 :          pack_tmp = ISHFT(pack_tmp, -24)
   45930      369150 :          idata = idata + 1
   45931      369150 :          data_tmp = full_data(idata)
   45932      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45933      369150 :          data_tmp = IAND(data_tmp, mask_left(24))
   45934      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45935      369150 :          ipack = ipack + 1
   45936      369150 :          packed_data(ipack) = pack_tmp
   45937      369150 :          data_tmp = full_data(idata)
   45938      369150 :          pack_tmp = ISHFT(data_tmp, 32)
   45939      369150 :          pack_tmp = ISHFT(pack_tmp, -32)
   45940      369150 :          idata = idata + 1
   45941      369150 :          data_tmp = full_data(idata)
   45942      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45943      369150 :          data_tmp = IAND(data_tmp, mask_left(32))
   45944      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45945      369150 :          ipack = ipack + 1
   45946      369150 :          packed_data(ipack) = pack_tmp
   45947      369150 :          data_tmp = full_data(idata)
   45948      369150 :          pack_tmp = ISHFT(data_tmp, 40)
   45949      369150 :          pack_tmp = ISHFT(pack_tmp, -40)
   45950      369150 :          idata = idata + 1
   45951      369150 :          data_tmp = full_data(idata)
   45952      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45953      369150 :          data_tmp = IAND(data_tmp, mask_left(40))
   45954      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45955      369150 :          ipack = ipack + 1
   45956      369150 :          packed_data(ipack) = pack_tmp
   45957      369150 :          data_tmp = full_data(idata)
   45958      369150 :          pack_tmp = ISHFT(data_tmp, 48)
   45959      369150 :          pack_tmp = ISHFT(pack_tmp, -48)
   45960      369150 :          idata = idata + 1
   45961      369150 :          data_tmp = full_data(idata)
   45962      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45963      369150 :          data_tmp = IAND(data_tmp, mask_left(48))
   45964      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45965      369150 :          ipack = ipack + 1
   45966      369150 :          packed_data(ipack) = pack_tmp
   45967      369150 :          data_tmp = full_data(idata)
   45968      369150 :          pack_tmp = ISHFT(data_tmp, 56)
   45969      369150 :          pack_tmp = ISHFT(pack_tmp, -56)
   45970      369150 :          idata = idata + 1
   45971      369150 :          data_tmp = full_data(idata)
   45972      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45973      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45974      369150 :          pack_tmp = ISHFT(pack_tmp, 0)
   45975      369150 :          idata = idata + 1
   45976      369150 :          data_tmp = full_data(idata)
   45977             :          data_tmp = ISHFT(data_tmp, 8)
   45978      369150 :          data_tmp = IAND(data_tmp, mask_left(0))
   45979      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45980      369150 :          ipack = ipack + 1
   45981      369150 :          packed_data(ipack) = pack_tmp
   45982      369150 :          data_tmp = full_data(idata)
   45983      369150 :          pack_tmp = ISHFT(data_tmp, 8)
   45984      369150 :          pack_tmp = ISHFT(pack_tmp, -8)
   45985      369150 :          idata = idata + 1
   45986      369150 :          data_tmp = full_data(idata)
   45987      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45988      369150 :          data_tmp = IAND(data_tmp, mask_left(8))
   45989      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45990      369150 :          ipack = ipack + 1
   45991      369150 :          packed_data(ipack) = pack_tmp
   45992      369150 :          data_tmp = full_data(idata)
   45993      369150 :          pack_tmp = ISHFT(data_tmp, 16)
   45994      369150 :          pack_tmp = ISHFT(pack_tmp, -16)
   45995      369150 :          idata = idata + 1
   45996      369150 :          data_tmp = full_data(idata)
   45997      369150 :          data_tmp = ISHFT(data_tmp, 8)
   45998      369150 :          data_tmp = IAND(data_tmp, mask_left(16))
   45999      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46000      369150 :          ipack = ipack + 1
   46001      369150 :          packed_data(ipack) = pack_tmp
   46002      369150 :          data_tmp = full_data(idata)
   46003      369150 :          pack_tmp = ISHFT(data_tmp, 24)
   46004      369150 :          pack_tmp = ISHFT(pack_tmp, -24)
   46005      369150 :          idata = idata + 1
   46006      369150 :          data_tmp = full_data(idata)
   46007      369150 :          data_tmp = ISHFT(data_tmp, 8)
   46008      369150 :          data_tmp = IAND(data_tmp, mask_left(24))
   46009      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46010      369150 :          ipack = ipack + 1
   46011      369150 :          packed_data(ipack) = pack_tmp
   46012      369150 :          data_tmp = full_data(idata)
   46013      369150 :          pack_tmp = ISHFT(data_tmp, 32)
   46014      369150 :          pack_tmp = ISHFT(pack_tmp, -32)
   46015      369150 :          idata = idata + 1
   46016      369150 :          data_tmp = full_data(idata)
   46017      369150 :          data_tmp = ISHFT(data_tmp, 8)
   46018      369150 :          data_tmp = IAND(data_tmp, mask_left(32))
   46019      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46020      369150 :          ipack = ipack + 1
   46021      369150 :          packed_data(ipack) = pack_tmp
   46022      369150 :          data_tmp = full_data(idata)
   46023      369150 :          pack_tmp = ISHFT(data_tmp, 40)
   46024      369150 :          pack_tmp = ISHFT(pack_tmp, -40)
   46025      369150 :          idata = idata + 1
   46026      369150 :          data_tmp = full_data(idata)
   46027      369150 :          data_tmp = ISHFT(data_tmp, 8)
   46028      369150 :          data_tmp = IAND(data_tmp, mask_left(40))
   46029      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46030      369150 :          ipack = ipack + 1
   46031      369150 :          packed_data(ipack) = pack_tmp
   46032      369150 :          data_tmp = full_data(idata)
   46033      369150 :          pack_tmp = ISHFT(data_tmp, 48)
   46034      369150 :          pack_tmp = ISHFT(pack_tmp, -48)
   46035      369150 :          idata = idata + 1
   46036      369150 :          data_tmp = full_data(idata)
   46037      369150 :          data_tmp = ISHFT(data_tmp, 8)
   46038      369150 :          data_tmp = IAND(data_tmp, mask_left(48))
   46039      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46040      369150 :          ipack = ipack + 1
   46041      369150 :          packed_data(ipack) = pack_tmp
   46042      369150 :          data_tmp = full_data(idata)
   46043      369150 :          pack_tmp = ISHFT(data_tmp, 56)
   46044      369150 :          pack_tmp = ISHFT(pack_tmp, -56)
   46045      369150 :          idata = idata + 1
   46046      369150 :          data_tmp = full_data(idata)
   46047      369150 :          data_tmp = ISHFT(data_tmp, 8)
   46048      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46049      369150 :          pack_tmp = ISHFT(pack_tmp, 0)
   46050      369150 :          idata = idata + 1
   46051      369150 :          data_tmp = full_data(idata)
   46052             :          data_tmp = ISHFT(data_tmp, 8)
   46053      369150 :          data_tmp = IAND(data_tmp, mask_left(0))
   46054      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46055      369150 :          ipack = ipack + 1
   46056      369150 :          packed_data(ipack) = pack_tmp
   46057      369150 :          data_tmp = full_data(idata)
   46058      369150 :          pack_tmp = ISHFT(data_tmp, 8)
   46059      369150 :          pack_tmp = ISHFT(pack_tmp, -8)
   46060      369150 :          idata = idata + 1
   46061      369150 :          data_tmp = full_data(idata)
   46062      369150 :          data_tmp = ISHFT(data_tmp, 8)
   46063      369150 :          data_tmp = IAND(data_tmp, mask_left(8))
   46064      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46065      369150 :          ipack = ipack + 1
   46066      369150 :          packed_data(ipack) = pack_tmp
   46067      369150 :          data_tmp = full_data(idata)
   46068      369150 :          pack_tmp = ISHFT(data_tmp, 16)
   46069      369150 :          pack_tmp = ISHFT(pack_tmp, -16)
   46070      369150 :          idata = idata + 1
   46071      369150 :          data_tmp = full_data(idata)
   46072      369150 :          data_tmp = ISHFT(data_tmp, 8)
   46073      369150 :          data_tmp = IAND(data_tmp, mask_left(16))
   46074      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46075      369150 :          ipack = ipack + 1
   46076      369150 :          packed_data(ipack) = pack_tmp
   46077      369150 :          data_tmp = full_data(idata)
   46078      369150 :          pack_tmp = ISHFT(data_tmp, 24)
   46079      369150 :          pack_tmp = ISHFT(pack_tmp, -24)
   46080      369150 :          idata = idata + 1
   46081      369150 :          data_tmp = full_data(idata)
   46082      369150 :          data_tmp = ISHFT(data_tmp, 8)
   46083      369150 :          data_tmp = IAND(data_tmp, mask_left(24))
   46084      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46085      369150 :          ipack = ipack + 1
   46086      369150 :          packed_data(ipack) = pack_tmp
   46087      369150 :          data_tmp = full_data(idata)
   46088      369150 :          pack_tmp = ISHFT(data_tmp, 32)
   46089      369150 :          pack_tmp = ISHFT(pack_tmp, -32)
   46090      369150 :          idata = idata + 1
   46091      369150 :          data_tmp = full_data(idata)
   46092      369150 :          data_tmp = ISHFT(data_tmp, 8)
   46093      369150 :          data_tmp = IAND(data_tmp, mask_left(32))
   46094      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46095      369150 :          ipack = ipack + 1
   46096      369150 :          packed_data(ipack) = pack_tmp
   46097      369150 :          data_tmp = full_data(idata)
   46098      369150 :          pack_tmp = ISHFT(data_tmp, 40)
   46099      369150 :          pack_tmp = ISHFT(pack_tmp, -40)
   46100      369150 :          idata = idata + 1
   46101      369150 :          data_tmp = full_data(idata)
   46102      369150 :          data_tmp = ISHFT(data_tmp, 8)
   46103      369150 :          data_tmp = IAND(data_tmp, mask_left(40))
   46104      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46105      369150 :          ipack = ipack + 1
   46106      369150 :          packed_data(ipack) = pack_tmp
   46107      369150 :          data_tmp = full_data(idata)
   46108      369150 :          pack_tmp = ISHFT(data_tmp, 48)
   46109      369150 :          pack_tmp = ISHFT(pack_tmp, -48)
   46110      369150 :          idata = idata + 1
   46111      369150 :          data_tmp = full_data(idata)
   46112      369150 :          data_tmp = ISHFT(data_tmp, 8)
   46113      369150 :          data_tmp = IAND(data_tmp, mask_left(48))
   46114      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46115      369150 :          ipack = ipack + 1
   46116      369150 :          packed_data(ipack) = pack_tmp
   46117      369150 :          data_tmp = full_data(idata)
   46118      369150 :          pack_tmp = ISHFT(data_tmp, 56)
   46119      369150 :          pack_tmp = ISHFT(pack_tmp, -56)
   46120      369150 :          idata = idata + 1
   46121      369150 :          data_tmp = full_data(idata)
   46122      369150 :          data_tmp = ISHFT(data_tmp, 8)
   46123      369150 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46124             :          pack_tmp = ISHFT(pack_tmp, 0)
   46125      369150 :          pack_tmp = ISHFT(pack_tmp, 0)
   46126      369150 :          ipack = ipack + 1
   46127      369156 :          packed_data(ipack) = pack_tmp
   46128             :       END DO
   46129       23142 :       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       23142 :    END SUBROUTINE ints2bits_56
   46133             : 
   46134             : ! **************************************************************************************************
   46135             : !> \brief ...
   46136             : !> \param Ndata ...
   46137             : !> \param packed_data ...
   46138             : !> \param full_data ...
   46139             : ! **************************************************************************************************
   46140      100925 :    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      100925 :       ipack = 0
   46151      100925 :       idata = 0
   46152      100925 :       pack_tmp = 0
   46153      100925 :       Ndata_rep = (Ndata/64)*64
   46154      100925 :       DO kdata = 1, Ndata_rep, 64
   46155     1556558 :          idata = idata + 1
   46156     1556558 :          data_tmp = ISHFT(pack_tmp, 56)
   46157     1556558 :          ipack = ipack + 1
   46158     1556558 :          pack_tmp = packed_data(ipack)
   46159     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46160     1556558 :          pack_tmp = ISHFT(pack_tmp, -56)
   46161     1556558 :          idata = idata + 1
   46162     1556558 :          data_tmp = ISHFT(pack_tmp, 48)
   46163     1556558 :          ipack = ipack + 1
   46164     1556558 :          pack_tmp = packed_data(ipack)
   46165     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46166     1556558 :          pack_tmp = ISHFT(pack_tmp, -48)
   46167     1556558 :          idata = idata + 1
   46168     1556558 :          data_tmp = ISHFT(pack_tmp, 40)
   46169     1556558 :          ipack = ipack + 1
   46170     1556558 :          pack_tmp = packed_data(ipack)
   46171     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46172     1556558 :          pack_tmp = ISHFT(pack_tmp, -40)
   46173     1556558 :          idata = idata + 1
   46174     1556558 :          data_tmp = ISHFT(pack_tmp, 32)
   46175     1556558 :          ipack = ipack + 1
   46176     1556558 :          pack_tmp = packed_data(ipack)
   46177     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46178     1556558 :          pack_tmp = ISHFT(pack_tmp, -32)
   46179     1556558 :          idata = idata + 1
   46180     1556558 :          data_tmp = ISHFT(pack_tmp, 24)
   46181     1556558 :          ipack = ipack + 1
   46182     1556558 :          pack_tmp = packed_data(ipack)
   46183     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46184     1556558 :          pack_tmp = ISHFT(pack_tmp, -24)
   46185     1556558 :          idata = idata + 1
   46186     1556558 :          data_tmp = ISHFT(pack_tmp, 16)
   46187     1556558 :          ipack = ipack + 1
   46188     1556558 :          pack_tmp = packed_data(ipack)
   46189     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46190     1556558 :          pack_tmp = ISHFT(pack_tmp, -16)
   46191     1556558 :          idata = idata + 1
   46192     1556558 :          data_tmp = ISHFT(pack_tmp, 8)
   46193     1556558 :          ipack = ipack + 1
   46194     1556558 :          pack_tmp = packed_data(ipack)
   46195     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46196     1556558 :          pack_tmp = ISHFT(pack_tmp, -8)
   46197     1556558 :          idata = idata + 1
   46198     1556558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46199     1556558 :          full_data(idata) = data_tmp
   46200     1556558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46201     1556558 :          idata = idata + 1
   46202     1556558 :          data_tmp = ISHFT(pack_tmp, 56)
   46203     1556558 :          ipack = ipack + 1
   46204     1556558 :          pack_tmp = packed_data(ipack)
   46205     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46206     1556558 :          pack_tmp = ISHFT(pack_tmp, -56)
   46207     1556558 :          idata = idata + 1
   46208     1556558 :          data_tmp = ISHFT(pack_tmp, 48)
   46209     1556558 :          ipack = ipack + 1
   46210     1556558 :          pack_tmp = packed_data(ipack)
   46211     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46212     1556558 :          pack_tmp = ISHFT(pack_tmp, -48)
   46213     1556558 :          idata = idata + 1
   46214     1556558 :          data_tmp = ISHFT(pack_tmp, 40)
   46215     1556558 :          ipack = ipack + 1
   46216     1556558 :          pack_tmp = packed_data(ipack)
   46217     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46218     1556558 :          pack_tmp = ISHFT(pack_tmp, -40)
   46219     1556558 :          idata = idata + 1
   46220     1556558 :          data_tmp = ISHFT(pack_tmp, 32)
   46221     1556558 :          ipack = ipack + 1
   46222     1556558 :          pack_tmp = packed_data(ipack)
   46223     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46224     1556558 :          pack_tmp = ISHFT(pack_tmp, -32)
   46225     1556558 :          idata = idata + 1
   46226     1556558 :          data_tmp = ISHFT(pack_tmp, 24)
   46227     1556558 :          ipack = ipack + 1
   46228     1556558 :          pack_tmp = packed_data(ipack)
   46229     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46230     1556558 :          pack_tmp = ISHFT(pack_tmp, -24)
   46231     1556558 :          idata = idata + 1
   46232     1556558 :          data_tmp = ISHFT(pack_tmp, 16)
   46233     1556558 :          ipack = ipack + 1
   46234     1556558 :          pack_tmp = packed_data(ipack)
   46235     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46236     1556558 :          pack_tmp = ISHFT(pack_tmp, -16)
   46237     1556558 :          idata = idata + 1
   46238     1556558 :          data_tmp = ISHFT(pack_tmp, 8)
   46239     1556558 :          ipack = ipack + 1
   46240     1556558 :          pack_tmp = packed_data(ipack)
   46241     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46242     1556558 :          pack_tmp = ISHFT(pack_tmp, -8)
   46243     1556558 :          idata = idata + 1
   46244     1556558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46245     1556558 :          full_data(idata) = data_tmp
   46246     1556558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46247     1556558 :          idata = idata + 1
   46248     1556558 :          data_tmp = ISHFT(pack_tmp, 56)
   46249     1556558 :          ipack = ipack + 1
   46250     1556558 :          pack_tmp = packed_data(ipack)
   46251     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46252     1556558 :          pack_tmp = ISHFT(pack_tmp, -56)
   46253     1556558 :          idata = idata + 1
   46254     1556558 :          data_tmp = ISHFT(pack_tmp, 48)
   46255     1556558 :          ipack = ipack + 1
   46256     1556558 :          pack_tmp = packed_data(ipack)
   46257     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46258     1556558 :          pack_tmp = ISHFT(pack_tmp, -48)
   46259     1556558 :          idata = idata + 1
   46260     1556558 :          data_tmp = ISHFT(pack_tmp, 40)
   46261     1556558 :          ipack = ipack + 1
   46262     1556558 :          pack_tmp = packed_data(ipack)
   46263     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46264     1556558 :          pack_tmp = ISHFT(pack_tmp, -40)
   46265     1556558 :          idata = idata + 1
   46266     1556558 :          data_tmp = ISHFT(pack_tmp, 32)
   46267     1556558 :          ipack = ipack + 1
   46268     1556558 :          pack_tmp = packed_data(ipack)
   46269     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46270     1556558 :          pack_tmp = ISHFT(pack_tmp, -32)
   46271     1556558 :          idata = idata + 1
   46272     1556558 :          data_tmp = ISHFT(pack_tmp, 24)
   46273     1556558 :          ipack = ipack + 1
   46274     1556558 :          pack_tmp = packed_data(ipack)
   46275     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46276     1556558 :          pack_tmp = ISHFT(pack_tmp, -24)
   46277     1556558 :          idata = idata + 1
   46278     1556558 :          data_tmp = ISHFT(pack_tmp, 16)
   46279     1556558 :          ipack = ipack + 1
   46280     1556558 :          pack_tmp = packed_data(ipack)
   46281     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46282     1556558 :          pack_tmp = ISHFT(pack_tmp, -16)
   46283     1556558 :          idata = idata + 1
   46284     1556558 :          data_tmp = ISHFT(pack_tmp, 8)
   46285     1556558 :          ipack = ipack + 1
   46286     1556558 :          pack_tmp = packed_data(ipack)
   46287     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46288     1556558 :          pack_tmp = ISHFT(pack_tmp, -8)
   46289     1556558 :          idata = idata + 1
   46290     1556558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46291     1556558 :          full_data(idata) = data_tmp
   46292     1556558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46293     1556558 :          idata = idata + 1
   46294     1556558 :          data_tmp = ISHFT(pack_tmp, 56)
   46295     1556558 :          ipack = ipack + 1
   46296     1556558 :          pack_tmp = packed_data(ipack)
   46297     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46298     1556558 :          pack_tmp = ISHFT(pack_tmp, -56)
   46299     1556558 :          idata = idata + 1
   46300     1556558 :          data_tmp = ISHFT(pack_tmp, 48)
   46301     1556558 :          ipack = ipack + 1
   46302     1556558 :          pack_tmp = packed_data(ipack)
   46303     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46304     1556558 :          pack_tmp = ISHFT(pack_tmp, -48)
   46305     1556558 :          idata = idata + 1
   46306     1556558 :          data_tmp = ISHFT(pack_tmp, 40)
   46307     1556558 :          ipack = ipack + 1
   46308     1556558 :          pack_tmp = packed_data(ipack)
   46309     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46310     1556558 :          pack_tmp = ISHFT(pack_tmp, -40)
   46311     1556558 :          idata = idata + 1
   46312     1556558 :          data_tmp = ISHFT(pack_tmp, 32)
   46313     1556558 :          ipack = ipack + 1
   46314     1556558 :          pack_tmp = packed_data(ipack)
   46315     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46316     1556558 :          pack_tmp = ISHFT(pack_tmp, -32)
   46317     1556558 :          idata = idata + 1
   46318     1556558 :          data_tmp = ISHFT(pack_tmp, 24)
   46319     1556558 :          ipack = ipack + 1
   46320     1556558 :          pack_tmp = packed_data(ipack)
   46321     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46322     1556558 :          pack_tmp = ISHFT(pack_tmp, -24)
   46323     1556558 :          idata = idata + 1
   46324     1556558 :          data_tmp = ISHFT(pack_tmp, 16)
   46325     1556558 :          ipack = ipack + 1
   46326     1556558 :          pack_tmp = packed_data(ipack)
   46327     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46328     1556558 :          pack_tmp = ISHFT(pack_tmp, -16)
   46329     1556558 :          idata = idata + 1
   46330     1556558 :          data_tmp = ISHFT(pack_tmp, 8)
   46331     1556558 :          ipack = ipack + 1
   46332     1556558 :          pack_tmp = packed_data(ipack)
   46333     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46334     1556558 :          pack_tmp = ISHFT(pack_tmp, -8)
   46335     1556558 :          idata = idata + 1
   46336     1556558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46337     1556558 :          full_data(idata) = data_tmp
   46338     1556558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46339     1556558 :          idata = idata + 1
   46340     1556558 :          data_tmp = ISHFT(pack_tmp, 56)
   46341     1556558 :          ipack = ipack + 1
   46342     1556558 :          pack_tmp = packed_data(ipack)
   46343     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46344     1556558 :          pack_tmp = ISHFT(pack_tmp, -56)
   46345     1556558 :          idata = idata + 1
   46346     1556558 :          data_tmp = ISHFT(pack_tmp, 48)
   46347     1556558 :          ipack = ipack + 1
   46348     1556558 :          pack_tmp = packed_data(ipack)
   46349     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46350     1556558 :          pack_tmp = ISHFT(pack_tmp, -48)
   46351     1556558 :          idata = idata + 1
   46352     1556558 :          data_tmp = ISHFT(pack_tmp, 40)
   46353     1556558 :          ipack = ipack + 1
   46354     1556558 :          pack_tmp = packed_data(ipack)
   46355     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46356     1556558 :          pack_tmp = ISHFT(pack_tmp, -40)
   46357     1556558 :          idata = idata + 1
   46358     1556558 :          data_tmp = ISHFT(pack_tmp, 32)
   46359     1556558 :          ipack = ipack + 1
   46360     1556558 :          pack_tmp = packed_data(ipack)
   46361     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46362     1556558 :          pack_tmp = ISHFT(pack_tmp, -32)
   46363     1556558 :          idata = idata + 1
   46364     1556558 :          data_tmp = ISHFT(pack_tmp, 24)
   46365     1556558 :          ipack = ipack + 1
   46366     1556558 :          pack_tmp = packed_data(ipack)
   46367     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46368     1556558 :          pack_tmp = ISHFT(pack_tmp, -24)
   46369     1556558 :          idata = idata + 1
   46370     1556558 :          data_tmp = ISHFT(pack_tmp, 16)
   46371     1556558 :          ipack = ipack + 1
   46372     1556558 :          pack_tmp = packed_data(ipack)
   46373     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46374     1556558 :          pack_tmp = ISHFT(pack_tmp, -16)
   46375     1556558 :          idata = idata + 1
   46376     1556558 :          data_tmp = ISHFT(pack_tmp, 8)
   46377     1556558 :          ipack = ipack + 1
   46378     1556558 :          pack_tmp = packed_data(ipack)
   46379     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46380     1556558 :          pack_tmp = ISHFT(pack_tmp, -8)
   46381     1556558 :          idata = idata + 1
   46382     1556558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46383     1556558 :          full_data(idata) = data_tmp
   46384     1556558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46385     1556558 :          idata = idata + 1
   46386     1556558 :          data_tmp = ISHFT(pack_tmp, 56)
   46387     1556558 :          ipack = ipack + 1
   46388     1556558 :          pack_tmp = packed_data(ipack)
   46389     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46390     1556558 :          pack_tmp = ISHFT(pack_tmp, -56)
   46391     1556558 :          idata = idata + 1
   46392     1556558 :          data_tmp = ISHFT(pack_tmp, 48)
   46393     1556558 :          ipack = ipack + 1
   46394     1556558 :          pack_tmp = packed_data(ipack)
   46395     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46396     1556558 :          pack_tmp = ISHFT(pack_tmp, -48)
   46397     1556558 :          idata = idata + 1
   46398     1556558 :          data_tmp = ISHFT(pack_tmp, 40)
   46399     1556558 :          ipack = ipack + 1
   46400     1556558 :          pack_tmp = packed_data(ipack)
   46401     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46402     1556558 :          pack_tmp = ISHFT(pack_tmp, -40)
   46403     1556558 :          idata = idata + 1
   46404     1556558 :          data_tmp = ISHFT(pack_tmp, 32)
   46405     1556558 :          ipack = ipack + 1
   46406     1556558 :          pack_tmp = packed_data(ipack)
   46407     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46408     1556558 :          pack_tmp = ISHFT(pack_tmp, -32)
   46409     1556558 :          idata = idata + 1
   46410     1556558 :          data_tmp = ISHFT(pack_tmp, 24)
   46411     1556558 :          ipack = ipack + 1
   46412     1556558 :          pack_tmp = packed_data(ipack)
   46413     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46414     1556558 :          pack_tmp = ISHFT(pack_tmp, -24)
   46415     1556558 :          idata = idata + 1
   46416     1556558 :          data_tmp = ISHFT(pack_tmp, 16)
   46417     1556558 :          ipack = ipack + 1
   46418     1556558 :          pack_tmp = packed_data(ipack)
   46419     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46420     1556558 :          pack_tmp = ISHFT(pack_tmp, -16)
   46421     1556558 :          idata = idata + 1
   46422     1556558 :          data_tmp = ISHFT(pack_tmp, 8)
   46423     1556558 :          ipack = ipack + 1
   46424     1556558 :          pack_tmp = packed_data(ipack)
   46425     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46426     1556558 :          pack_tmp = ISHFT(pack_tmp, -8)
   46427     1556558 :          idata = idata + 1
   46428     1556558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46429     1556558 :          full_data(idata) = data_tmp
   46430     1556558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46431     1556558 :          idata = idata + 1
   46432     1556558 :          data_tmp = ISHFT(pack_tmp, 56)
   46433     1556558 :          ipack = ipack + 1
   46434     1556558 :          pack_tmp = packed_data(ipack)
   46435     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46436     1556558 :          pack_tmp = ISHFT(pack_tmp, -56)
   46437     1556558 :          idata = idata + 1
   46438     1556558 :          data_tmp = ISHFT(pack_tmp, 48)
   46439     1556558 :          ipack = ipack + 1
   46440     1556558 :          pack_tmp = packed_data(ipack)
   46441     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46442     1556558 :          pack_tmp = ISHFT(pack_tmp, -48)
   46443     1556558 :          idata = idata + 1
   46444     1556558 :          data_tmp = ISHFT(pack_tmp, 40)
   46445     1556558 :          ipack = ipack + 1
   46446     1556558 :          pack_tmp = packed_data(ipack)
   46447     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46448     1556558 :          pack_tmp = ISHFT(pack_tmp, -40)
   46449     1556558 :          idata = idata + 1
   46450     1556558 :          data_tmp = ISHFT(pack_tmp, 32)
   46451     1556558 :          ipack = ipack + 1
   46452     1556558 :          pack_tmp = packed_data(ipack)
   46453     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46454     1556558 :          pack_tmp = ISHFT(pack_tmp, -32)
   46455     1556558 :          idata = idata + 1
   46456     1556558 :          data_tmp = ISHFT(pack_tmp, 24)
   46457     1556558 :          ipack = ipack + 1
   46458     1556558 :          pack_tmp = packed_data(ipack)
   46459     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46460     1556558 :          pack_tmp = ISHFT(pack_tmp, -24)
   46461     1556558 :          idata = idata + 1
   46462     1556558 :          data_tmp = ISHFT(pack_tmp, 16)
   46463     1556558 :          ipack = ipack + 1
   46464     1556558 :          pack_tmp = packed_data(ipack)
   46465     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46466     1556558 :          pack_tmp = ISHFT(pack_tmp, -16)
   46467     1556558 :          idata = idata + 1
   46468     1556558 :          data_tmp = ISHFT(pack_tmp, 8)
   46469     1556558 :          ipack = ipack + 1
   46470     1556558 :          pack_tmp = packed_data(ipack)
   46471     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46472     1556558 :          pack_tmp = ISHFT(pack_tmp, -8)
   46473     1556558 :          idata = idata + 1
   46474     1556558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46475     1556558 :          full_data(idata) = data_tmp
   46476     1556558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46477     1556558 :          idata = idata + 1
   46478     1556558 :          data_tmp = ISHFT(pack_tmp, 56)
   46479     1556558 :          ipack = ipack + 1
   46480     1556558 :          pack_tmp = packed_data(ipack)
   46481     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46482     1556558 :          pack_tmp = ISHFT(pack_tmp, -56)
   46483     1556558 :          idata = idata + 1
   46484     1556558 :          data_tmp = ISHFT(pack_tmp, 48)
   46485     1556558 :          ipack = ipack + 1
   46486     1556558 :          pack_tmp = packed_data(ipack)
   46487     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46488     1556558 :          pack_tmp = ISHFT(pack_tmp, -48)
   46489     1556558 :          idata = idata + 1
   46490     1556558 :          data_tmp = ISHFT(pack_tmp, 40)
   46491     1556558 :          ipack = ipack + 1
   46492     1556558 :          pack_tmp = packed_data(ipack)
   46493     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46494     1556558 :          pack_tmp = ISHFT(pack_tmp, -40)
   46495     1556558 :          idata = idata + 1
   46496     1556558 :          data_tmp = ISHFT(pack_tmp, 32)
   46497     1556558 :          ipack = ipack + 1
   46498     1556558 :          pack_tmp = packed_data(ipack)
   46499     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46500     1556558 :          pack_tmp = ISHFT(pack_tmp, -32)
   46501     1556558 :          idata = idata + 1
   46502     1556558 :          data_tmp = ISHFT(pack_tmp, 24)
   46503     1556558 :          ipack = ipack + 1
   46504     1556558 :          pack_tmp = packed_data(ipack)
   46505     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46506     1556558 :          pack_tmp = ISHFT(pack_tmp, -24)
   46507     1556558 :          idata = idata + 1
   46508     1556558 :          data_tmp = ISHFT(pack_tmp, 16)
   46509     1556558 :          ipack = ipack + 1
   46510     1556558 :          pack_tmp = packed_data(ipack)
   46511     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46512     1556558 :          pack_tmp = ISHFT(pack_tmp, -16)
   46513     1556558 :          idata = idata + 1
   46514     1556558 :          data_tmp = ISHFT(pack_tmp, 8)
   46515     1556558 :          ipack = ipack + 1
   46516     1556558 :          pack_tmp = packed_data(ipack)
   46517     1556558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46518     1556558 :          pack_tmp = ISHFT(pack_tmp, -8)
   46519     1556558 :          idata = idata + 1
   46520     1556558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46521     1556558 :          full_data(idata) = data_tmp
   46522     1556924 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46523             :       END DO
   46524      100925 :       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      100925 :    END SUBROUTINE bits2ints_56
   46528             : 
   46529             : ! **************************************************************************************************
   46530             : !> \brief ...
   46531             : !> \param Ndata ...
   46532             : !> \param packed_data ...
   46533             : !> \param full_data ...
   46534             : ! **************************************************************************************************
   46535       23066 :    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       23066 :       idata = 0
   46546       23066 :       ipack = 0
   46547       23066 :       Ndata_rep = (Ndata/64)*64
   46548       23066 :       DO kdata = 1, Ndata_rep, 64
   46549      368546 :          pack_tmp = 0
   46550      368546 :          idata = idata + 1
   46551      368546 :          data_tmp = full_data(idata)
   46552      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46553      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46554      368546 :          pack_tmp = ISHFT(pack_tmp, -7)
   46555      368546 :          idata = idata + 1
   46556      368546 :          data_tmp = full_data(idata)
   46557      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46558      368546 :          data_tmp = IAND(data_tmp, mask_left(7))
   46559      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46560      368546 :          ipack = ipack + 1
   46561      368546 :          packed_data(ipack) = pack_tmp
   46562      368546 :          data_tmp = full_data(idata)
   46563      368546 :          pack_tmp = ISHFT(data_tmp, 14)
   46564      368546 :          pack_tmp = ISHFT(pack_tmp, -14)
   46565      368546 :          idata = idata + 1
   46566      368546 :          data_tmp = full_data(idata)
   46567      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46568      368546 :          data_tmp = IAND(data_tmp, mask_left(14))
   46569      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46570      368546 :          ipack = ipack + 1
   46571      368546 :          packed_data(ipack) = pack_tmp
   46572      368546 :          data_tmp = full_data(idata)
   46573      368546 :          pack_tmp = ISHFT(data_tmp, 21)
   46574      368546 :          pack_tmp = ISHFT(pack_tmp, -21)
   46575      368546 :          idata = idata + 1
   46576      368546 :          data_tmp = full_data(idata)
   46577      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46578      368546 :          data_tmp = IAND(data_tmp, mask_left(21))
   46579      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46580      368546 :          ipack = ipack + 1
   46581      368546 :          packed_data(ipack) = pack_tmp
   46582      368546 :          data_tmp = full_data(idata)
   46583      368546 :          pack_tmp = ISHFT(data_tmp, 28)
   46584      368546 :          pack_tmp = ISHFT(pack_tmp, -28)
   46585      368546 :          idata = idata + 1
   46586      368546 :          data_tmp = full_data(idata)
   46587      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46588      368546 :          data_tmp = IAND(data_tmp, mask_left(28))
   46589      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46590      368546 :          ipack = ipack + 1
   46591      368546 :          packed_data(ipack) = pack_tmp
   46592      368546 :          data_tmp = full_data(idata)
   46593      368546 :          pack_tmp = ISHFT(data_tmp, 35)
   46594      368546 :          pack_tmp = ISHFT(pack_tmp, -35)
   46595      368546 :          idata = idata + 1
   46596      368546 :          data_tmp = full_data(idata)
   46597      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46598      368546 :          data_tmp = IAND(data_tmp, mask_left(35))
   46599      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46600      368546 :          ipack = ipack + 1
   46601      368546 :          packed_data(ipack) = pack_tmp
   46602      368546 :          data_tmp = full_data(idata)
   46603      368546 :          pack_tmp = ISHFT(data_tmp, 42)
   46604      368546 :          pack_tmp = ISHFT(pack_tmp, -42)
   46605      368546 :          idata = idata + 1
   46606      368546 :          data_tmp = full_data(idata)
   46607      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46608      368546 :          data_tmp = IAND(data_tmp, mask_left(42))
   46609      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46610      368546 :          ipack = ipack + 1
   46611      368546 :          packed_data(ipack) = pack_tmp
   46612      368546 :          data_tmp = full_data(idata)
   46613      368546 :          pack_tmp = ISHFT(data_tmp, 49)
   46614      368546 :          pack_tmp = ISHFT(pack_tmp, -49)
   46615      368546 :          idata = idata + 1
   46616      368546 :          data_tmp = full_data(idata)
   46617      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46618      368546 :          data_tmp = IAND(data_tmp, mask_left(49))
   46619      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46620      368546 :          ipack = ipack + 1
   46621      368546 :          packed_data(ipack) = pack_tmp
   46622      368546 :          data_tmp = full_data(idata)
   46623      368546 :          pack_tmp = ISHFT(data_tmp, 56)
   46624      368546 :          pack_tmp = ISHFT(pack_tmp, -56)
   46625      368546 :          idata = idata + 1
   46626      368546 :          data_tmp = full_data(idata)
   46627      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46628      368546 :          data_tmp = IAND(data_tmp, mask_left(56))
   46629      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46630      368546 :          ipack = ipack + 1
   46631      368546 :          packed_data(ipack) = pack_tmp
   46632      368546 :          data_tmp = full_data(idata)
   46633      368546 :          pack_tmp = ISHFT(data_tmp, 63)
   46634      368546 :          pack_tmp = ISHFT(pack_tmp, -57)
   46635      368546 :          idata = idata + 1
   46636      368546 :          data_tmp = full_data(idata)
   46637      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46638      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46639      368546 :          pack_tmp = ISHFT(pack_tmp, -6)
   46640      368546 :          idata = idata + 1
   46641      368546 :          data_tmp = full_data(idata)
   46642      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46643      368546 :          data_tmp = IAND(data_tmp, mask_left(6))
   46644      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46645      368546 :          ipack = ipack + 1
   46646      368546 :          packed_data(ipack) = pack_tmp
   46647      368546 :          data_tmp = full_data(idata)
   46648      368546 :          pack_tmp = ISHFT(data_tmp, 13)
   46649      368546 :          pack_tmp = ISHFT(pack_tmp, -13)
   46650      368546 :          idata = idata + 1
   46651      368546 :          data_tmp = full_data(idata)
   46652      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46653      368546 :          data_tmp = IAND(data_tmp, mask_left(13))
   46654      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46655      368546 :          ipack = ipack + 1
   46656      368546 :          packed_data(ipack) = pack_tmp
   46657      368546 :          data_tmp = full_data(idata)
   46658      368546 :          pack_tmp = ISHFT(data_tmp, 20)
   46659      368546 :          pack_tmp = ISHFT(pack_tmp, -20)
   46660      368546 :          idata = idata + 1
   46661      368546 :          data_tmp = full_data(idata)
   46662      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46663      368546 :          data_tmp = IAND(data_tmp, mask_left(20))
   46664      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46665      368546 :          ipack = ipack + 1
   46666      368546 :          packed_data(ipack) = pack_tmp
   46667      368546 :          data_tmp = full_data(idata)
   46668      368546 :          pack_tmp = ISHFT(data_tmp, 27)
   46669      368546 :          pack_tmp = ISHFT(pack_tmp, -27)
   46670      368546 :          idata = idata + 1
   46671      368546 :          data_tmp = full_data(idata)
   46672      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46673      368546 :          data_tmp = IAND(data_tmp, mask_left(27))
   46674      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46675      368546 :          ipack = ipack + 1
   46676      368546 :          packed_data(ipack) = pack_tmp
   46677      368546 :          data_tmp = full_data(idata)
   46678      368546 :          pack_tmp = ISHFT(data_tmp, 34)
   46679      368546 :          pack_tmp = ISHFT(pack_tmp, -34)
   46680      368546 :          idata = idata + 1
   46681      368546 :          data_tmp = full_data(idata)
   46682      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46683      368546 :          data_tmp = IAND(data_tmp, mask_left(34))
   46684      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46685      368546 :          ipack = ipack + 1
   46686      368546 :          packed_data(ipack) = pack_tmp
   46687      368546 :          data_tmp = full_data(idata)
   46688      368546 :          pack_tmp = ISHFT(data_tmp, 41)
   46689      368546 :          pack_tmp = ISHFT(pack_tmp, -41)
   46690      368546 :          idata = idata + 1
   46691      368546 :          data_tmp = full_data(idata)
   46692      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46693      368546 :          data_tmp = IAND(data_tmp, mask_left(41))
   46694      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46695      368546 :          ipack = ipack + 1
   46696      368546 :          packed_data(ipack) = pack_tmp
   46697      368546 :          data_tmp = full_data(idata)
   46698      368546 :          pack_tmp = ISHFT(data_tmp, 48)
   46699      368546 :          pack_tmp = ISHFT(pack_tmp, -48)
   46700      368546 :          idata = idata + 1
   46701      368546 :          data_tmp = full_data(idata)
   46702      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46703      368546 :          data_tmp = IAND(data_tmp, mask_left(48))
   46704      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46705      368546 :          ipack = ipack + 1
   46706      368546 :          packed_data(ipack) = pack_tmp
   46707      368546 :          data_tmp = full_data(idata)
   46708      368546 :          pack_tmp = ISHFT(data_tmp, 55)
   46709      368546 :          pack_tmp = ISHFT(pack_tmp, -55)
   46710      368546 :          idata = idata + 1
   46711      368546 :          data_tmp = full_data(idata)
   46712      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46713      368546 :          data_tmp = IAND(data_tmp, mask_left(55))
   46714      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46715      368546 :          ipack = ipack + 1
   46716      368546 :          packed_data(ipack) = pack_tmp
   46717      368546 :          data_tmp = full_data(idata)
   46718      368546 :          pack_tmp = ISHFT(data_tmp, 62)
   46719      368546 :          pack_tmp = ISHFT(pack_tmp, -57)
   46720      368546 :          idata = idata + 1
   46721      368546 :          data_tmp = full_data(idata)
   46722      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46723      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46724      368546 :          pack_tmp = ISHFT(pack_tmp, -5)
   46725      368546 :          idata = idata + 1
   46726      368546 :          data_tmp = full_data(idata)
   46727      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46728      368546 :          data_tmp = IAND(data_tmp, mask_left(5))
   46729      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46730      368546 :          ipack = ipack + 1
   46731      368546 :          packed_data(ipack) = pack_tmp
   46732      368546 :          data_tmp = full_data(idata)
   46733      368546 :          pack_tmp = ISHFT(data_tmp, 12)
   46734      368546 :          pack_tmp = ISHFT(pack_tmp, -12)
   46735      368546 :          idata = idata + 1
   46736      368546 :          data_tmp = full_data(idata)
   46737      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46738      368546 :          data_tmp = IAND(data_tmp, mask_left(12))
   46739      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46740      368546 :          ipack = ipack + 1
   46741      368546 :          packed_data(ipack) = pack_tmp
   46742      368546 :          data_tmp = full_data(idata)
   46743      368546 :          pack_tmp = ISHFT(data_tmp, 19)
   46744      368546 :          pack_tmp = ISHFT(pack_tmp, -19)
   46745      368546 :          idata = idata + 1
   46746      368546 :          data_tmp = full_data(idata)
   46747      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46748      368546 :          data_tmp = IAND(data_tmp, mask_left(19))
   46749      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46750      368546 :          ipack = ipack + 1
   46751      368546 :          packed_data(ipack) = pack_tmp
   46752      368546 :          data_tmp = full_data(idata)
   46753      368546 :          pack_tmp = ISHFT(data_tmp, 26)
   46754      368546 :          pack_tmp = ISHFT(pack_tmp, -26)
   46755      368546 :          idata = idata + 1
   46756      368546 :          data_tmp = full_data(idata)
   46757      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46758      368546 :          data_tmp = IAND(data_tmp, mask_left(26))
   46759      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46760      368546 :          ipack = ipack + 1
   46761      368546 :          packed_data(ipack) = pack_tmp
   46762      368546 :          data_tmp = full_data(idata)
   46763      368546 :          pack_tmp = ISHFT(data_tmp, 33)
   46764      368546 :          pack_tmp = ISHFT(pack_tmp, -33)
   46765      368546 :          idata = idata + 1
   46766      368546 :          data_tmp = full_data(idata)
   46767      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46768      368546 :          data_tmp = IAND(data_tmp, mask_left(33))
   46769      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46770      368546 :          ipack = ipack + 1
   46771      368546 :          packed_data(ipack) = pack_tmp
   46772      368546 :          data_tmp = full_data(idata)
   46773      368546 :          pack_tmp = ISHFT(data_tmp, 40)
   46774      368546 :          pack_tmp = ISHFT(pack_tmp, -40)
   46775      368546 :          idata = idata + 1
   46776      368546 :          data_tmp = full_data(idata)
   46777      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46778      368546 :          data_tmp = IAND(data_tmp, mask_left(40))
   46779      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46780      368546 :          ipack = ipack + 1
   46781      368546 :          packed_data(ipack) = pack_tmp
   46782      368546 :          data_tmp = full_data(idata)
   46783      368546 :          pack_tmp = ISHFT(data_tmp, 47)
   46784      368546 :          pack_tmp = ISHFT(pack_tmp, -47)
   46785      368546 :          idata = idata + 1
   46786      368546 :          data_tmp = full_data(idata)
   46787      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46788      368546 :          data_tmp = IAND(data_tmp, mask_left(47))
   46789      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46790      368546 :          ipack = ipack + 1
   46791      368546 :          packed_data(ipack) = pack_tmp
   46792      368546 :          data_tmp = full_data(idata)
   46793      368546 :          pack_tmp = ISHFT(data_tmp, 54)
   46794      368546 :          pack_tmp = ISHFT(pack_tmp, -54)
   46795      368546 :          idata = idata + 1
   46796      368546 :          data_tmp = full_data(idata)
   46797      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46798      368546 :          data_tmp = IAND(data_tmp, mask_left(54))
   46799      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46800      368546 :          ipack = ipack + 1
   46801      368546 :          packed_data(ipack) = pack_tmp
   46802      368546 :          data_tmp = full_data(idata)
   46803      368546 :          pack_tmp = ISHFT(data_tmp, 61)
   46804      368546 :          pack_tmp = ISHFT(pack_tmp, -57)
   46805      368546 :          idata = idata + 1
   46806      368546 :          data_tmp = full_data(idata)
   46807      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46808      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46809      368546 :          pack_tmp = ISHFT(pack_tmp, -4)
   46810      368546 :          idata = idata + 1
   46811      368546 :          data_tmp = full_data(idata)
   46812      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46813      368546 :          data_tmp = IAND(data_tmp, mask_left(4))
   46814      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46815      368546 :          ipack = ipack + 1
   46816      368546 :          packed_data(ipack) = pack_tmp
   46817      368546 :          data_tmp = full_data(idata)
   46818      368546 :          pack_tmp = ISHFT(data_tmp, 11)
   46819      368546 :          pack_tmp = ISHFT(pack_tmp, -11)
   46820      368546 :          idata = idata + 1
   46821      368546 :          data_tmp = full_data(idata)
   46822      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46823      368546 :          data_tmp = IAND(data_tmp, mask_left(11))
   46824      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46825      368546 :          ipack = ipack + 1
   46826      368546 :          packed_data(ipack) = pack_tmp
   46827      368546 :          data_tmp = full_data(idata)
   46828      368546 :          pack_tmp = ISHFT(data_tmp, 18)
   46829      368546 :          pack_tmp = ISHFT(pack_tmp, -18)
   46830      368546 :          idata = idata + 1
   46831      368546 :          data_tmp = full_data(idata)
   46832      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46833      368546 :          data_tmp = IAND(data_tmp, mask_left(18))
   46834      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46835      368546 :          ipack = ipack + 1
   46836      368546 :          packed_data(ipack) = pack_tmp
   46837      368546 :          data_tmp = full_data(idata)
   46838      368546 :          pack_tmp = ISHFT(data_tmp, 25)
   46839      368546 :          pack_tmp = ISHFT(pack_tmp, -25)
   46840      368546 :          idata = idata + 1
   46841      368546 :          data_tmp = full_data(idata)
   46842      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46843      368546 :          data_tmp = IAND(data_tmp, mask_left(25))
   46844      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46845      368546 :          ipack = ipack + 1
   46846      368546 :          packed_data(ipack) = pack_tmp
   46847      368546 :          data_tmp = full_data(idata)
   46848      368546 :          pack_tmp = ISHFT(data_tmp, 32)
   46849      368546 :          pack_tmp = ISHFT(pack_tmp, -32)
   46850      368546 :          idata = idata + 1
   46851      368546 :          data_tmp = full_data(idata)
   46852      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46853      368546 :          data_tmp = IAND(data_tmp, mask_left(32))
   46854      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46855      368546 :          ipack = ipack + 1
   46856      368546 :          packed_data(ipack) = pack_tmp
   46857      368546 :          data_tmp = full_data(idata)
   46858      368546 :          pack_tmp = ISHFT(data_tmp, 39)
   46859      368546 :          pack_tmp = ISHFT(pack_tmp, -39)
   46860      368546 :          idata = idata + 1
   46861      368546 :          data_tmp = full_data(idata)
   46862      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46863      368546 :          data_tmp = IAND(data_tmp, mask_left(39))
   46864      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46865      368546 :          ipack = ipack + 1
   46866      368546 :          packed_data(ipack) = pack_tmp
   46867      368546 :          data_tmp = full_data(idata)
   46868      368546 :          pack_tmp = ISHFT(data_tmp, 46)
   46869      368546 :          pack_tmp = ISHFT(pack_tmp, -46)
   46870      368546 :          idata = idata + 1
   46871      368546 :          data_tmp = full_data(idata)
   46872      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46873      368546 :          data_tmp = IAND(data_tmp, mask_left(46))
   46874      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46875      368546 :          ipack = ipack + 1
   46876      368546 :          packed_data(ipack) = pack_tmp
   46877      368546 :          data_tmp = full_data(idata)
   46878      368546 :          pack_tmp = ISHFT(data_tmp, 53)
   46879      368546 :          pack_tmp = ISHFT(pack_tmp, -53)
   46880      368546 :          idata = idata + 1
   46881      368546 :          data_tmp = full_data(idata)
   46882      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46883      368546 :          data_tmp = IAND(data_tmp, mask_left(53))
   46884      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46885      368546 :          ipack = ipack + 1
   46886      368546 :          packed_data(ipack) = pack_tmp
   46887      368546 :          data_tmp = full_data(idata)
   46888      368546 :          pack_tmp = ISHFT(data_tmp, 60)
   46889      368546 :          pack_tmp = ISHFT(pack_tmp, -57)
   46890      368546 :          idata = idata + 1
   46891      368546 :          data_tmp = full_data(idata)
   46892      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46893      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46894      368546 :          pack_tmp = ISHFT(pack_tmp, -3)
   46895      368546 :          idata = idata + 1
   46896      368546 :          data_tmp = full_data(idata)
   46897      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46898      368546 :          data_tmp = IAND(data_tmp, mask_left(3))
   46899      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46900      368546 :          ipack = ipack + 1
   46901      368546 :          packed_data(ipack) = pack_tmp
   46902      368546 :          data_tmp = full_data(idata)
   46903      368546 :          pack_tmp = ISHFT(data_tmp, 10)
   46904      368546 :          pack_tmp = ISHFT(pack_tmp, -10)
   46905      368546 :          idata = idata + 1
   46906      368546 :          data_tmp = full_data(idata)
   46907      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46908      368546 :          data_tmp = IAND(data_tmp, mask_left(10))
   46909      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46910      368546 :          ipack = ipack + 1
   46911      368546 :          packed_data(ipack) = pack_tmp
   46912      368546 :          data_tmp = full_data(idata)
   46913      368546 :          pack_tmp = ISHFT(data_tmp, 17)
   46914      368546 :          pack_tmp = ISHFT(pack_tmp, -17)
   46915      368546 :          idata = idata + 1
   46916      368546 :          data_tmp = full_data(idata)
   46917      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46918      368546 :          data_tmp = IAND(data_tmp, mask_left(17))
   46919      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46920      368546 :          ipack = ipack + 1
   46921      368546 :          packed_data(ipack) = pack_tmp
   46922      368546 :          data_tmp = full_data(idata)
   46923      368546 :          pack_tmp = ISHFT(data_tmp, 24)
   46924      368546 :          pack_tmp = ISHFT(pack_tmp, -24)
   46925      368546 :          idata = idata + 1
   46926      368546 :          data_tmp = full_data(idata)
   46927      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46928      368546 :          data_tmp = IAND(data_tmp, mask_left(24))
   46929      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46930      368546 :          ipack = ipack + 1
   46931      368546 :          packed_data(ipack) = pack_tmp
   46932      368546 :          data_tmp = full_data(idata)
   46933      368546 :          pack_tmp = ISHFT(data_tmp, 31)
   46934      368546 :          pack_tmp = ISHFT(pack_tmp, -31)
   46935      368546 :          idata = idata + 1
   46936      368546 :          data_tmp = full_data(idata)
   46937      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46938      368546 :          data_tmp = IAND(data_tmp, mask_left(31))
   46939      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46940      368546 :          ipack = ipack + 1
   46941      368546 :          packed_data(ipack) = pack_tmp
   46942      368546 :          data_tmp = full_data(idata)
   46943      368546 :          pack_tmp = ISHFT(data_tmp, 38)
   46944      368546 :          pack_tmp = ISHFT(pack_tmp, -38)
   46945      368546 :          idata = idata + 1
   46946      368546 :          data_tmp = full_data(idata)
   46947      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46948      368546 :          data_tmp = IAND(data_tmp, mask_left(38))
   46949      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46950      368546 :          ipack = ipack + 1
   46951      368546 :          packed_data(ipack) = pack_tmp
   46952      368546 :          data_tmp = full_data(idata)
   46953      368546 :          pack_tmp = ISHFT(data_tmp, 45)
   46954      368546 :          pack_tmp = ISHFT(pack_tmp, -45)
   46955      368546 :          idata = idata + 1
   46956      368546 :          data_tmp = full_data(idata)
   46957      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46958      368546 :          data_tmp = IAND(data_tmp, mask_left(45))
   46959      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46960      368546 :          ipack = ipack + 1
   46961      368546 :          packed_data(ipack) = pack_tmp
   46962      368546 :          data_tmp = full_data(idata)
   46963      368546 :          pack_tmp = ISHFT(data_tmp, 52)
   46964      368546 :          pack_tmp = ISHFT(pack_tmp, -52)
   46965      368546 :          idata = idata + 1
   46966      368546 :          data_tmp = full_data(idata)
   46967      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46968      368546 :          data_tmp = IAND(data_tmp, mask_left(52))
   46969      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46970      368546 :          ipack = ipack + 1
   46971      368546 :          packed_data(ipack) = pack_tmp
   46972      368546 :          data_tmp = full_data(idata)
   46973      368546 :          pack_tmp = ISHFT(data_tmp, 59)
   46974      368546 :          pack_tmp = ISHFT(pack_tmp, -57)
   46975      368546 :          idata = idata + 1
   46976      368546 :          data_tmp = full_data(idata)
   46977      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46978      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46979      368546 :          pack_tmp = ISHFT(pack_tmp, -2)
   46980      368546 :          idata = idata + 1
   46981      368546 :          data_tmp = full_data(idata)
   46982      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46983      368546 :          data_tmp = IAND(data_tmp, mask_left(2))
   46984      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46985      368546 :          ipack = ipack + 1
   46986      368546 :          packed_data(ipack) = pack_tmp
   46987      368546 :          data_tmp = full_data(idata)
   46988      368546 :          pack_tmp = ISHFT(data_tmp, 9)
   46989      368546 :          pack_tmp = ISHFT(pack_tmp, -9)
   46990      368546 :          idata = idata + 1
   46991      368546 :          data_tmp = full_data(idata)
   46992      368546 :          data_tmp = ISHFT(data_tmp, 7)
   46993      368546 :          data_tmp = IAND(data_tmp, mask_left(9))
   46994      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46995      368546 :          ipack = ipack + 1
   46996      368546 :          packed_data(ipack) = pack_tmp
   46997      368546 :          data_tmp = full_data(idata)
   46998      368546 :          pack_tmp = ISHFT(data_tmp, 16)
   46999      368546 :          pack_tmp = ISHFT(pack_tmp, -16)
   47000      368546 :          idata = idata + 1
   47001      368546 :          data_tmp = full_data(idata)
   47002      368546 :          data_tmp = ISHFT(data_tmp, 7)
   47003      368546 :          data_tmp = IAND(data_tmp, mask_left(16))
   47004      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47005      368546 :          ipack = ipack + 1
   47006      368546 :          packed_data(ipack) = pack_tmp
   47007      368546 :          data_tmp = full_data(idata)
   47008      368546 :          pack_tmp = ISHFT(data_tmp, 23)
   47009      368546 :          pack_tmp = ISHFT(pack_tmp, -23)
   47010      368546 :          idata = idata + 1
   47011      368546 :          data_tmp = full_data(idata)
   47012      368546 :          data_tmp = ISHFT(data_tmp, 7)
   47013      368546 :          data_tmp = IAND(data_tmp, mask_left(23))
   47014      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47015      368546 :          ipack = ipack + 1
   47016      368546 :          packed_data(ipack) = pack_tmp
   47017      368546 :          data_tmp = full_data(idata)
   47018      368546 :          pack_tmp = ISHFT(data_tmp, 30)
   47019      368546 :          pack_tmp = ISHFT(pack_tmp, -30)
   47020      368546 :          idata = idata + 1
   47021      368546 :          data_tmp = full_data(idata)
   47022      368546 :          data_tmp = ISHFT(data_tmp, 7)
   47023      368546 :          data_tmp = IAND(data_tmp, mask_left(30))
   47024      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47025      368546 :          ipack = ipack + 1
   47026      368546 :          packed_data(ipack) = pack_tmp
   47027      368546 :          data_tmp = full_data(idata)
   47028      368546 :          pack_tmp = ISHFT(data_tmp, 37)
   47029      368546 :          pack_tmp = ISHFT(pack_tmp, -37)
   47030      368546 :          idata = idata + 1
   47031      368546 :          data_tmp = full_data(idata)
   47032      368546 :          data_tmp = ISHFT(data_tmp, 7)
   47033      368546 :          data_tmp = IAND(data_tmp, mask_left(37))
   47034      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47035      368546 :          ipack = ipack + 1
   47036      368546 :          packed_data(ipack) = pack_tmp
   47037      368546 :          data_tmp = full_data(idata)
   47038      368546 :          pack_tmp = ISHFT(data_tmp, 44)
   47039      368546 :          pack_tmp = ISHFT(pack_tmp, -44)
   47040      368546 :          idata = idata + 1
   47041      368546 :          data_tmp = full_data(idata)
   47042      368546 :          data_tmp = ISHFT(data_tmp, 7)
   47043      368546 :          data_tmp = IAND(data_tmp, mask_left(44))
   47044      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47045      368546 :          ipack = ipack + 1
   47046      368546 :          packed_data(ipack) = pack_tmp
   47047      368546 :          data_tmp = full_data(idata)
   47048      368546 :          pack_tmp = ISHFT(data_tmp, 51)
   47049      368546 :          pack_tmp = ISHFT(pack_tmp, -51)
   47050      368546 :          idata = idata + 1
   47051      368546 :          data_tmp = full_data(idata)
   47052      368546 :          data_tmp = ISHFT(data_tmp, 7)
   47053      368546 :          data_tmp = IAND(data_tmp, mask_left(51))
   47054      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47055      368546 :          ipack = ipack + 1
   47056      368546 :          packed_data(ipack) = pack_tmp
   47057      368546 :          data_tmp = full_data(idata)
   47058      368546 :          pack_tmp = ISHFT(data_tmp, 58)
   47059      368546 :          pack_tmp = ISHFT(pack_tmp, -57)
   47060      368546 :          idata = idata + 1
   47061      368546 :          data_tmp = full_data(idata)
   47062      368546 :          data_tmp = ISHFT(data_tmp, 7)
   47063      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47064      368546 :          pack_tmp = ISHFT(pack_tmp, -1)
   47065      368546 :          idata = idata + 1
   47066      368546 :          data_tmp = full_data(idata)
   47067      368546 :          data_tmp = ISHFT(data_tmp, 7)
   47068      368546 :          data_tmp = IAND(data_tmp, mask_left(1))
   47069      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47070      368546 :          ipack = ipack + 1
   47071      368546 :          packed_data(ipack) = pack_tmp
   47072      368546 :          data_tmp = full_data(idata)
   47073      368546 :          pack_tmp = ISHFT(data_tmp, 8)
   47074      368546 :          pack_tmp = ISHFT(pack_tmp, -8)
   47075      368546 :          idata = idata + 1
   47076      368546 :          data_tmp = full_data(idata)
   47077      368546 :          data_tmp = ISHFT(data_tmp, 7)
   47078      368546 :          data_tmp = IAND(data_tmp, mask_left(8))
   47079      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47080      368546 :          ipack = ipack + 1
   47081      368546 :          packed_data(ipack) = pack_tmp
   47082      368546 :          data_tmp = full_data(idata)
   47083      368546 :          pack_tmp = ISHFT(data_tmp, 15)
   47084      368546 :          pack_tmp = ISHFT(pack_tmp, -15)
   47085      368546 :          idata = idata + 1
   47086      368546 :          data_tmp = full_data(idata)
   47087      368546 :          data_tmp = ISHFT(data_tmp, 7)
   47088      368546 :          data_tmp = IAND(data_tmp, mask_left(15))
   47089      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47090      368546 :          ipack = ipack + 1
   47091      368546 :          packed_data(ipack) = pack_tmp
   47092      368546 :          data_tmp = full_data(idata)
   47093      368546 :          pack_tmp = ISHFT(data_tmp, 22)
   47094      368546 :          pack_tmp = ISHFT(pack_tmp, -22)
   47095      368546 :          idata = idata + 1
   47096      368546 :          data_tmp = full_data(idata)
   47097      368546 :          data_tmp = ISHFT(data_tmp, 7)
   47098      368546 :          data_tmp = IAND(data_tmp, mask_left(22))
   47099      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47100      368546 :          ipack = ipack + 1
   47101      368546 :          packed_data(ipack) = pack_tmp
   47102      368546 :          data_tmp = full_data(idata)
   47103      368546 :          pack_tmp = ISHFT(data_tmp, 29)
   47104      368546 :          pack_tmp = ISHFT(pack_tmp, -29)
   47105      368546 :          idata = idata + 1
   47106      368546 :          data_tmp = full_data(idata)
   47107      368546 :          data_tmp = ISHFT(data_tmp, 7)
   47108      368546 :          data_tmp = IAND(data_tmp, mask_left(29))
   47109      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47110      368546 :          ipack = ipack + 1
   47111      368546 :          packed_data(ipack) = pack_tmp
   47112      368546 :          data_tmp = full_data(idata)
   47113      368546 :          pack_tmp = ISHFT(data_tmp, 36)
   47114      368546 :          pack_tmp = ISHFT(pack_tmp, -36)
   47115      368546 :          idata = idata + 1
   47116      368546 :          data_tmp = full_data(idata)
   47117      368546 :          data_tmp = ISHFT(data_tmp, 7)
   47118      368546 :          data_tmp = IAND(data_tmp, mask_left(36))
   47119      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47120      368546 :          ipack = ipack + 1
   47121      368546 :          packed_data(ipack) = pack_tmp
   47122      368546 :          data_tmp = full_data(idata)
   47123      368546 :          pack_tmp = ISHFT(data_tmp, 43)
   47124      368546 :          pack_tmp = ISHFT(pack_tmp, -43)
   47125      368546 :          idata = idata + 1
   47126      368546 :          data_tmp = full_data(idata)
   47127      368546 :          data_tmp = ISHFT(data_tmp, 7)
   47128      368546 :          data_tmp = IAND(data_tmp, mask_left(43))
   47129      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47130      368546 :          ipack = ipack + 1
   47131      368546 :          packed_data(ipack) = pack_tmp
   47132      368546 :          data_tmp = full_data(idata)
   47133      368546 :          pack_tmp = ISHFT(data_tmp, 50)
   47134      368546 :          pack_tmp = ISHFT(pack_tmp, -50)
   47135      368546 :          idata = idata + 1
   47136      368546 :          data_tmp = full_data(idata)
   47137      368546 :          data_tmp = ISHFT(data_tmp, 7)
   47138      368546 :          data_tmp = IAND(data_tmp, mask_left(50))
   47139      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47140      368546 :          ipack = ipack + 1
   47141      368546 :          packed_data(ipack) = pack_tmp
   47142      368546 :          data_tmp = full_data(idata)
   47143      368546 :          pack_tmp = ISHFT(data_tmp, 57)
   47144      368546 :          pack_tmp = ISHFT(pack_tmp, -57)
   47145      368546 :          idata = idata + 1
   47146      368546 :          data_tmp = full_data(idata)
   47147      368546 :          data_tmp = ISHFT(data_tmp, 7)
   47148      368546 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47149             :          pack_tmp = ISHFT(pack_tmp, 0)
   47150      368546 :          pack_tmp = ISHFT(pack_tmp, 0)
   47151      368546 :          ipack = ipack + 1
   47152      368548 :          packed_data(ipack) = pack_tmp
   47153             :       END DO
   47154       23066 :       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       23066 :    END SUBROUTINE ints2bits_57
   47158             : 
   47159             : ! **************************************************************************************************
   47160             : !> \brief ...
   47161             : !> \param Ndata ...
   47162             : !> \param packed_data ...
   47163             : !> \param full_data ...
   47164             : ! **************************************************************************************************
   47165       97249 :    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       97249 :       ipack = 0
   47176       97249 :       idata = 0
   47177       97249 :       pack_tmp = 0
   47178       97249 :       Ndata_rep = (Ndata/64)*64
   47179       97249 :       DO kdata = 1, Ndata_rep, 64
   47180     1526914 :          idata = idata + 1
   47181     1526914 :          data_tmp = ISHFT(pack_tmp, 57)
   47182     1526914 :          ipack = ipack + 1
   47183     1526914 :          pack_tmp = packed_data(ipack)
   47184     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(57)))
   47185     1526914 :          pack_tmp = ISHFT(pack_tmp, -57)
   47186     1526914 :          idata = idata + 1
   47187     1526914 :          data_tmp = ISHFT(pack_tmp, 50)
   47188     1526914 :          ipack = ipack + 1
   47189     1526914 :          pack_tmp = packed_data(ipack)
   47190     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   47191     1526914 :          pack_tmp = ISHFT(pack_tmp, -50)
   47192     1526914 :          idata = idata + 1
   47193     1526914 :          data_tmp = ISHFT(pack_tmp, 43)
   47194     1526914 :          ipack = ipack + 1
   47195     1526914 :          pack_tmp = packed_data(ipack)
   47196     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   47197     1526914 :          pack_tmp = ISHFT(pack_tmp, -43)
   47198     1526914 :          idata = idata + 1
   47199     1526914 :          data_tmp = ISHFT(pack_tmp, 36)
   47200     1526914 :          ipack = ipack + 1
   47201     1526914 :          pack_tmp = packed_data(ipack)
   47202     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   47203     1526914 :          pack_tmp = ISHFT(pack_tmp, -36)
   47204     1526914 :          idata = idata + 1
   47205     1526914 :          data_tmp = ISHFT(pack_tmp, 29)
   47206     1526914 :          ipack = ipack + 1
   47207     1526914 :          pack_tmp = packed_data(ipack)
   47208     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   47209     1526914 :          pack_tmp = ISHFT(pack_tmp, -29)
   47210     1526914 :          idata = idata + 1
   47211     1526914 :          data_tmp = ISHFT(pack_tmp, 22)
   47212     1526914 :          ipack = ipack + 1
   47213     1526914 :          pack_tmp = packed_data(ipack)
   47214     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   47215     1526914 :          pack_tmp = ISHFT(pack_tmp, -22)
   47216     1526914 :          idata = idata + 1
   47217     1526914 :          data_tmp = ISHFT(pack_tmp, 15)
   47218     1526914 :          ipack = ipack + 1
   47219     1526914 :          pack_tmp = packed_data(ipack)
   47220     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   47221     1526914 :          pack_tmp = ISHFT(pack_tmp, -15)
   47222     1526914 :          idata = idata + 1
   47223     1526914 :          data_tmp = ISHFT(pack_tmp, 8)
   47224     1526914 :          ipack = ipack + 1
   47225     1526914 :          pack_tmp = packed_data(ipack)
   47226     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   47227     1526914 :          pack_tmp = ISHFT(pack_tmp, -8)
   47228     1526914 :          idata = idata + 1
   47229     1526914 :          data_tmp = ISHFT(pack_tmp, 1)
   47230     1526914 :          ipack = ipack + 1
   47231     1526914 :          pack_tmp = packed_data(ipack)
   47232     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   47233     1526914 :          pack_tmp = ISHFT(pack_tmp, -1)
   47234     1526914 :          idata = idata + 1
   47235     1526914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47236     1526914 :          full_data(idata) = data_tmp
   47237     1526914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47238     1526914 :          idata = idata + 1
   47239     1526914 :          data_tmp = ISHFT(pack_tmp, 51)
   47240     1526914 :          ipack = ipack + 1
   47241     1526914 :          pack_tmp = packed_data(ipack)
   47242     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   47243     1526914 :          pack_tmp = ISHFT(pack_tmp, -51)
   47244     1526914 :          idata = idata + 1
   47245     1526914 :          data_tmp = ISHFT(pack_tmp, 44)
   47246     1526914 :          ipack = ipack + 1
   47247     1526914 :          pack_tmp = packed_data(ipack)
   47248     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   47249     1526914 :          pack_tmp = ISHFT(pack_tmp, -44)
   47250     1526914 :          idata = idata + 1
   47251     1526914 :          data_tmp = ISHFT(pack_tmp, 37)
   47252     1526914 :          ipack = ipack + 1
   47253     1526914 :          pack_tmp = packed_data(ipack)
   47254     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   47255     1526914 :          pack_tmp = ISHFT(pack_tmp, -37)
   47256     1526914 :          idata = idata + 1
   47257     1526914 :          data_tmp = ISHFT(pack_tmp, 30)
   47258     1526914 :          ipack = ipack + 1
   47259     1526914 :          pack_tmp = packed_data(ipack)
   47260     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   47261     1526914 :          pack_tmp = ISHFT(pack_tmp, -30)
   47262     1526914 :          idata = idata + 1
   47263     1526914 :          data_tmp = ISHFT(pack_tmp, 23)
   47264     1526914 :          ipack = ipack + 1
   47265     1526914 :          pack_tmp = packed_data(ipack)
   47266     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   47267     1526914 :          pack_tmp = ISHFT(pack_tmp, -23)
   47268     1526914 :          idata = idata + 1
   47269     1526914 :          data_tmp = ISHFT(pack_tmp, 16)
   47270     1526914 :          ipack = ipack + 1
   47271     1526914 :          pack_tmp = packed_data(ipack)
   47272     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   47273     1526914 :          pack_tmp = ISHFT(pack_tmp, -16)
   47274     1526914 :          idata = idata + 1
   47275     1526914 :          data_tmp = ISHFT(pack_tmp, 9)
   47276     1526914 :          ipack = ipack + 1
   47277     1526914 :          pack_tmp = packed_data(ipack)
   47278     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   47279     1526914 :          pack_tmp = ISHFT(pack_tmp, -9)
   47280     1526914 :          idata = idata + 1
   47281     1526914 :          data_tmp = ISHFT(pack_tmp, 2)
   47282     1526914 :          ipack = ipack + 1
   47283     1526914 :          pack_tmp = packed_data(ipack)
   47284     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   47285     1526914 :          pack_tmp = ISHFT(pack_tmp, -2)
   47286     1526914 :          idata = idata + 1
   47287     1526914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47288     1526914 :          full_data(idata) = data_tmp
   47289     1526914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47290     1526914 :          idata = idata + 1
   47291     1526914 :          data_tmp = ISHFT(pack_tmp, 52)
   47292     1526914 :          ipack = ipack + 1
   47293     1526914 :          pack_tmp = packed_data(ipack)
   47294     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   47295     1526914 :          pack_tmp = ISHFT(pack_tmp, -52)
   47296     1526914 :          idata = idata + 1
   47297     1526914 :          data_tmp = ISHFT(pack_tmp, 45)
   47298     1526914 :          ipack = ipack + 1
   47299     1526914 :          pack_tmp = packed_data(ipack)
   47300     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   47301     1526914 :          pack_tmp = ISHFT(pack_tmp, -45)
   47302     1526914 :          idata = idata + 1
   47303     1526914 :          data_tmp = ISHFT(pack_tmp, 38)
   47304     1526914 :          ipack = ipack + 1
   47305     1526914 :          pack_tmp = packed_data(ipack)
   47306     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   47307     1526914 :          pack_tmp = ISHFT(pack_tmp, -38)
   47308     1526914 :          idata = idata + 1
   47309     1526914 :          data_tmp = ISHFT(pack_tmp, 31)
   47310     1526914 :          ipack = ipack + 1
   47311     1526914 :          pack_tmp = packed_data(ipack)
   47312     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   47313     1526914 :          pack_tmp = ISHFT(pack_tmp, -31)
   47314     1526914 :          idata = idata + 1
   47315     1526914 :          data_tmp = ISHFT(pack_tmp, 24)
   47316     1526914 :          ipack = ipack + 1
   47317     1526914 :          pack_tmp = packed_data(ipack)
   47318     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   47319     1526914 :          pack_tmp = ISHFT(pack_tmp, -24)
   47320     1526914 :          idata = idata + 1
   47321     1526914 :          data_tmp = ISHFT(pack_tmp, 17)
   47322     1526914 :          ipack = ipack + 1
   47323     1526914 :          pack_tmp = packed_data(ipack)
   47324     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   47325     1526914 :          pack_tmp = ISHFT(pack_tmp, -17)
   47326     1526914 :          idata = idata + 1
   47327     1526914 :          data_tmp = ISHFT(pack_tmp, 10)
   47328     1526914 :          ipack = ipack + 1
   47329     1526914 :          pack_tmp = packed_data(ipack)
   47330     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   47331     1526914 :          pack_tmp = ISHFT(pack_tmp, -10)
   47332     1526914 :          idata = idata + 1
   47333     1526914 :          data_tmp = ISHFT(pack_tmp, 3)
   47334     1526914 :          ipack = ipack + 1
   47335     1526914 :          pack_tmp = packed_data(ipack)
   47336     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   47337     1526914 :          pack_tmp = ISHFT(pack_tmp, -3)
   47338     1526914 :          idata = idata + 1
   47339     1526914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47340     1526914 :          full_data(idata) = data_tmp
   47341     1526914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47342     1526914 :          idata = idata + 1
   47343     1526914 :          data_tmp = ISHFT(pack_tmp, 53)
   47344     1526914 :          ipack = ipack + 1
   47345     1526914 :          pack_tmp = packed_data(ipack)
   47346     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   47347     1526914 :          pack_tmp = ISHFT(pack_tmp, -53)
   47348     1526914 :          idata = idata + 1
   47349     1526914 :          data_tmp = ISHFT(pack_tmp, 46)
   47350     1526914 :          ipack = ipack + 1
   47351     1526914 :          pack_tmp = packed_data(ipack)
   47352     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   47353     1526914 :          pack_tmp = ISHFT(pack_tmp, -46)
   47354     1526914 :          idata = idata + 1
   47355     1526914 :          data_tmp = ISHFT(pack_tmp, 39)
   47356     1526914 :          ipack = ipack + 1
   47357     1526914 :          pack_tmp = packed_data(ipack)
   47358     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   47359     1526914 :          pack_tmp = ISHFT(pack_tmp, -39)
   47360     1526914 :          idata = idata + 1
   47361     1526914 :          data_tmp = ISHFT(pack_tmp, 32)
   47362     1526914 :          ipack = ipack + 1
   47363     1526914 :          pack_tmp = packed_data(ipack)
   47364     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   47365     1526914 :          pack_tmp = ISHFT(pack_tmp, -32)
   47366     1526914 :          idata = idata + 1
   47367     1526914 :          data_tmp = ISHFT(pack_tmp, 25)
   47368     1526914 :          ipack = ipack + 1
   47369     1526914 :          pack_tmp = packed_data(ipack)
   47370     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   47371     1526914 :          pack_tmp = ISHFT(pack_tmp, -25)
   47372     1526914 :          idata = idata + 1
   47373     1526914 :          data_tmp = ISHFT(pack_tmp, 18)
   47374     1526914 :          ipack = ipack + 1
   47375     1526914 :          pack_tmp = packed_data(ipack)
   47376     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   47377     1526914 :          pack_tmp = ISHFT(pack_tmp, -18)
   47378     1526914 :          idata = idata + 1
   47379     1526914 :          data_tmp = ISHFT(pack_tmp, 11)
   47380     1526914 :          ipack = ipack + 1
   47381     1526914 :          pack_tmp = packed_data(ipack)
   47382     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   47383     1526914 :          pack_tmp = ISHFT(pack_tmp, -11)
   47384     1526914 :          idata = idata + 1
   47385     1526914 :          data_tmp = ISHFT(pack_tmp, 4)
   47386     1526914 :          ipack = ipack + 1
   47387     1526914 :          pack_tmp = packed_data(ipack)
   47388     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   47389     1526914 :          pack_tmp = ISHFT(pack_tmp, -4)
   47390     1526914 :          idata = idata + 1
   47391     1526914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47392     1526914 :          full_data(idata) = data_tmp
   47393     1526914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47394     1526914 :          idata = idata + 1
   47395     1526914 :          data_tmp = ISHFT(pack_tmp, 54)
   47396     1526914 :          ipack = ipack + 1
   47397     1526914 :          pack_tmp = packed_data(ipack)
   47398     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   47399     1526914 :          pack_tmp = ISHFT(pack_tmp, -54)
   47400     1526914 :          idata = idata + 1
   47401     1526914 :          data_tmp = ISHFT(pack_tmp, 47)
   47402     1526914 :          ipack = ipack + 1
   47403     1526914 :          pack_tmp = packed_data(ipack)
   47404     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   47405     1526914 :          pack_tmp = ISHFT(pack_tmp, -47)
   47406     1526914 :          idata = idata + 1
   47407     1526914 :          data_tmp = ISHFT(pack_tmp, 40)
   47408     1526914 :          ipack = ipack + 1
   47409     1526914 :          pack_tmp = packed_data(ipack)
   47410     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   47411     1526914 :          pack_tmp = ISHFT(pack_tmp, -40)
   47412     1526914 :          idata = idata + 1
   47413     1526914 :          data_tmp = ISHFT(pack_tmp, 33)
   47414     1526914 :          ipack = ipack + 1
   47415     1526914 :          pack_tmp = packed_data(ipack)
   47416     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   47417     1526914 :          pack_tmp = ISHFT(pack_tmp, -33)
   47418     1526914 :          idata = idata + 1
   47419     1526914 :          data_tmp = ISHFT(pack_tmp, 26)
   47420     1526914 :          ipack = ipack + 1
   47421     1526914 :          pack_tmp = packed_data(ipack)
   47422     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   47423     1526914 :          pack_tmp = ISHFT(pack_tmp, -26)
   47424     1526914 :          idata = idata + 1
   47425     1526914 :          data_tmp = ISHFT(pack_tmp, 19)
   47426     1526914 :          ipack = ipack + 1
   47427     1526914 :          pack_tmp = packed_data(ipack)
   47428     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   47429     1526914 :          pack_tmp = ISHFT(pack_tmp, -19)
   47430     1526914 :          idata = idata + 1
   47431     1526914 :          data_tmp = ISHFT(pack_tmp, 12)
   47432     1526914 :          ipack = ipack + 1
   47433     1526914 :          pack_tmp = packed_data(ipack)
   47434     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   47435     1526914 :          pack_tmp = ISHFT(pack_tmp, -12)
   47436     1526914 :          idata = idata + 1
   47437     1526914 :          data_tmp = ISHFT(pack_tmp, 5)
   47438     1526914 :          ipack = ipack + 1
   47439     1526914 :          pack_tmp = packed_data(ipack)
   47440     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   47441     1526914 :          pack_tmp = ISHFT(pack_tmp, -5)
   47442     1526914 :          idata = idata + 1
   47443     1526914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47444     1526914 :          full_data(idata) = data_tmp
   47445     1526914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47446     1526914 :          idata = idata + 1
   47447     1526914 :          data_tmp = ISHFT(pack_tmp, 55)
   47448     1526914 :          ipack = ipack + 1
   47449     1526914 :          pack_tmp = packed_data(ipack)
   47450     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(55)))
   47451     1526914 :          pack_tmp = ISHFT(pack_tmp, -55)
   47452     1526914 :          idata = idata + 1
   47453     1526914 :          data_tmp = ISHFT(pack_tmp, 48)
   47454     1526914 :          ipack = ipack + 1
   47455     1526914 :          pack_tmp = packed_data(ipack)
   47456     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   47457     1526914 :          pack_tmp = ISHFT(pack_tmp, -48)
   47458     1526914 :          idata = idata + 1
   47459     1526914 :          data_tmp = ISHFT(pack_tmp, 41)
   47460     1526914 :          ipack = ipack + 1
   47461     1526914 :          pack_tmp = packed_data(ipack)
   47462     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   47463     1526914 :          pack_tmp = ISHFT(pack_tmp, -41)
   47464     1526914 :          idata = idata + 1
   47465     1526914 :          data_tmp = ISHFT(pack_tmp, 34)
   47466     1526914 :          ipack = ipack + 1
   47467     1526914 :          pack_tmp = packed_data(ipack)
   47468     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   47469     1526914 :          pack_tmp = ISHFT(pack_tmp, -34)
   47470     1526914 :          idata = idata + 1
   47471     1526914 :          data_tmp = ISHFT(pack_tmp, 27)
   47472     1526914 :          ipack = ipack + 1
   47473     1526914 :          pack_tmp = packed_data(ipack)
   47474     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   47475     1526914 :          pack_tmp = ISHFT(pack_tmp, -27)
   47476     1526914 :          idata = idata + 1
   47477     1526914 :          data_tmp = ISHFT(pack_tmp, 20)
   47478     1526914 :          ipack = ipack + 1
   47479     1526914 :          pack_tmp = packed_data(ipack)
   47480     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   47481     1526914 :          pack_tmp = ISHFT(pack_tmp, -20)
   47482     1526914 :          idata = idata + 1
   47483     1526914 :          data_tmp = ISHFT(pack_tmp, 13)
   47484     1526914 :          ipack = ipack + 1
   47485     1526914 :          pack_tmp = packed_data(ipack)
   47486     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   47487     1526914 :          pack_tmp = ISHFT(pack_tmp, -13)
   47488     1526914 :          idata = idata + 1
   47489     1526914 :          data_tmp = ISHFT(pack_tmp, 6)
   47490     1526914 :          ipack = ipack + 1
   47491     1526914 :          pack_tmp = packed_data(ipack)
   47492     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   47493     1526914 :          pack_tmp = ISHFT(pack_tmp, -6)
   47494     1526914 :          idata = idata + 1
   47495     1526914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47496     1526914 :          full_data(idata) = data_tmp
   47497     1526914 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47498     1526914 :          idata = idata + 1
   47499     1526914 :          data_tmp = ISHFT(pack_tmp, 56)
   47500     1526914 :          ipack = ipack + 1
   47501     1526914 :          pack_tmp = packed_data(ipack)
   47502     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   47503     1526914 :          pack_tmp = ISHFT(pack_tmp, -56)
   47504     1526914 :          idata = idata + 1
   47505     1526914 :          data_tmp = ISHFT(pack_tmp, 49)
   47506     1526914 :          ipack = ipack + 1
   47507     1526914 :          pack_tmp = packed_data(ipack)
   47508     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   47509     1526914 :          pack_tmp = ISHFT(pack_tmp, -49)
   47510     1526914 :          idata = idata + 1
   47511     1526914 :          data_tmp = ISHFT(pack_tmp, 42)
   47512     1526914 :          ipack = ipack + 1
   47513     1526914 :          pack_tmp = packed_data(ipack)
   47514     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   47515     1526914 :          pack_tmp = ISHFT(pack_tmp, -42)
   47516     1526914 :          idata = idata + 1
   47517     1526914 :          data_tmp = ISHFT(pack_tmp, 35)
   47518     1526914 :          ipack = ipack + 1
   47519     1526914 :          pack_tmp = packed_data(ipack)
   47520     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   47521     1526914 :          pack_tmp = ISHFT(pack_tmp, -35)
   47522     1526914 :          idata = idata + 1
   47523     1526914 :          data_tmp = ISHFT(pack_tmp, 28)
   47524     1526914 :          ipack = ipack + 1
   47525     1526914 :          pack_tmp = packed_data(ipack)
   47526     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   47527     1526914 :          pack_tmp = ISHFT(pack_tmp, -28)
   47528     1526914 :          idata = idata + 1
   47529     1526914 :          data_tmp = ISHFT(pack_tmp, 21)
   47530     1526914 :          ipack = ipack + 1
   47531     1526914 :          pack_tmp = packed_data(ipack)
   47532     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   47533     1526914 :          pack_tmp = ISHFT(pack_tmp, -21)
   47534     1526914 :          idata = idata + 1
   47535     1526914 :          data_tmp = ISHFT(pack_tmp, 14)
   47536     1526914 :          ipack = ipack + 1
   47537     1526914 :          pack_tmp = packed_data(ipack)
   47538     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   47539     1526914 :          pack_tmp = ISHFT(pack_tmp, -14)
   47540     1526914 :          idata = idata + 1
   47541     1526914 :          data_tmp = ISHFT(pack_tmp, 7)
   47542     1526914 :          ipack = ipack + 1
   47543     1526914 :          pack_tmp = packed_data(ipack)
   47544     1526914 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   47545     1526914 :          pack_tmp = ISHFT(pack_tmp, -7)
   47546     1526914 :          idata = idata + 1
   47547     1526914 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47548     1526914 :          full_data(idata) = data_tmp
   47549     1527036 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47550             :       END DO
   47551       97249 :       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       97249 :    END SUBROUTINE bits2ints_57
   47555             : 
   47556             : ! **************************************************************************************************
   47557             : !> \brief ...
   47558             : !> \param Ndata ...
   47559             : !> \param packed_data ...
   47560             : !> \param full_data ...
   47561             : ! **************************************************************************************************
   47562       23028 :    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       23028 :       idata = 0
   47573       23028 :       ipack = 0
   47574       23028 :       Ndata_rep = (Ndata/64)*64
   47575       23028 :       DO kdata = 1, Ndata_rep, 64
   47576      368244 :          pack_tmp = 0
   47577      368244 :          idata = idata + 1
   47578      368244 :          data_tmp = full_data(idata)
   47579      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47580      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47581      368244 :          pack_tmp = ISHFT(pack_tmp, -6)
   47582      368244 :          idata = idata + 1
   47583      368244 :          data_tmp = full_data(idata)
   47584      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47585      368244 :          data_tmp = IAND(data_tmp, mask_left(6))
   47586      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47587      368244 :          ipack = ipack + 1
   47588      368244 :          packed_data(ipack) = pack_tmp
   47589      368244 :          data_tmp = full_data(idata)
   47590      368244 :          pack_tmp = ISHFT(data_tmp, 12)
   47591      368244 :          pack_tmp = ISHFT(pack_tmp, -12)
   47592      368244 :          idata = idata + 1
   47593      368244 :          data_tmp = full_data(idata)
   47594      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47595      368244 :          data_tmp = IAND(data_tmp, mask_left(12))
   47596      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47597      368244 :          ipack = ipack + 1
   47598      368244 :          packed_data(ipack) = pack_tmp
   47599      368244 :          data_tmp = full_data(idata)
   47600      368244 :          pack_tmp = ISHFT(data_tmp, 18)
   47601      368244 :          pack_tmp = ISHFT(pack_tmp, -18)
   47602      368244 :          idata = idata + 1
   47603      368244 :          data_tmp = full_data(idata)
   47604      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47605      368244 :          data_tmp = IAND(data_tmp, mask_left(18))
   47606      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47607      368244 :          ipack = ipack + 1
   47608      368244 :          packed_data(ipack) = pack_tmp
   47609      368244 :          data_tmp = full_data(idata)
   47610      368244 :          pack_tmp = ISHFT(data_tmp, 24)
   47611      368244 :          pack_tmp = ISHFT(pack_tmp, -24)
   47612      368244 :          idata = idata + 1
   47613      368244 :          data_tmp = full_data(idata)
   47614      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47615      368244 :          data_tmp = IAND(data_tmp, mask_left(24))
   47616      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47617      368244 :          ipack = ipack + 1
   47618      368244 :          packed_data(ipack) = pack_tmp
   47619      368244 :          data_tmp = full_data(idata)
   47620      368244 :          pack_tmp = ISHFT(data_tmp, 30)
   47621      368244 :          pack_tmp = ISHFT(pack_tmp, -30)
   47622      368244 :          idata = idata + 1
   47623      368244 :          data_tmp = full_data(idata)
   47624      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47625      368244 :          data_tmp = IAND(data_tmp, mask_left(30))
   47626      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47627      368244 :          ipack = ipack + 1
   47628      368244 :          packed_data(ipack) = pack_tmp
   47629      368244 :          data_tmp = full_data(idata)
   47630      368244 :          pack_tmp = ISHFT(data_tmp, 36)
   47631      368244 :          pack_tmp = ISHFT(pack_tmp, -36)
   47632      368244 :          idata = idata + 1
   47633      368244 :          data_tmp = full_data(idata)
   47634      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47635      368244 :          data_tmp = IAND(data_tmp, mask_left(36))
   47636      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47637      368244 :          ipack = ipack + 1
   47638      368244 :          packed_data(ipack) = pack_tmp
   47639      368244 :          data_tmp = full_data(idata)
   47640      368244 :          pack_tmp = ISHFT(data_tmp, 42)
   47641      368244 :          pack_tmp = ISHFT(pack_tmp, -42)
   47642      368244 :          idata = idata + 1
   47643      368244 :          data_tmp = full_data(idata)
   47644      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47645      368244 :          data_tmp = IAND(data_tmp, mask_left(42))
   47646      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47647      368244 :          ipack = ipack + 1
   47648      368244 :          packed_data(ipack) = pack_tmp
   47649      368244 :          data_tmp = full_data(idata)
   47650      368244 :          pack_tmp = ISHFT(data_tmp, 48)
   47651      368244 :          pack_tmp = ISHFT(pack_tmp, -48)
   47652      368244 :          idata = idata + 1
   47653      368244 :          data_tmp = full_data(idata)
   47654      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47655      368244 :          data_tmp = IAND(data_tmp, mask_left(48))
   47656      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47657      368244 :          ipack = ipack + 1
   47658      368244 :          packed_data(ipack) = pack_tmp
   47659      368244 :          data_tmp = full_data(idata)
   47660      368244 :          pack_tmp = ISHFT(data_tmp, 54)
   47661      368244 :          pack_tmp = ISHFT(pack_tmp, -54)
   47662      368244 :          idata = idata + 1
   47663      368244 :          data_tmp = full_data(idata)
   47664      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47665      368244 :          data_tmp = IAND(data_tmp, mask_left(54))
   47666      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47667      368244 :          ipack = ipack + 1
   47668      368244 :          packed_data(ipack) = pack_tmp
   47669      368244 :          data_tmp = full_data(idata)
   47670      368244 :          pack_tmp = ISHFT(data_tmp, 60)
   47671      368244 :          pack_tmp = ISHFT(pack_tmp, -58)
   47672      368244 :          idata = idata + 1
   47673      368244 :          data_tmp = full_data(idata)
   47674      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47675      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47676      368244 :          pack_tmp = ISHFT(pack_tmp, -2)
   47677      368244 :          idata = idata + 1
   47678      368244 :          data_tmp = full_data(idata)
   47679      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47680      368244 :          data_tmp = IAND(data_tmp, mask_left(2))
   47681      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47682      368244 :          ipack = ipack + 1
   47683      368244 :          packed_data(ipack) = pack_tmp
   47684      368244 :          data_tmp = full_data(idata)
   47685      368244 :          pack_tmp = ISHFT(data_tmp, 8)
   47686      368244 :          pack_tmp = ISHFT(pack_tmp, -8)
   47687      368244 :          idata = idata + 1
   47688      368244 :          data_tmp = full_data(idata)
   47689      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47690      368244 :          data_tmp = IAND(data_tmp, mask_left(8))
   47691      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47692      368244 :          ipack = ipack + 1
   47693      368244 :          packed_data(ipack) = pack_tmp
   47694      368244 :          data_tmp = full_data(idata)
   47695      368244 :          pack_tmp = ISHFT(data_tmp, 14)
   47696      368244 :          pack_tmp = ISHFT(pack_tmp, -14)
   47697      368244 :          idata = idata + 1
   47698      368244 :          data_tmp = full_data(idata)
   47699      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47700      368244 :          data_tmp = IAND(data_tmp, mask_left(14))
   47701      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47702      368244 :          ipack = ipack + 1
   47703      368244 :          packed_data(ipack) = pack_tmp
   47704      368244 :          data_tmp = full_data(idata)
   47705      368244 :          pack_tmp = ISHFT(data_tmp, 20)
   47706      368244 :          pack_tmp = ISHFT(pack_tmp, -20)
   47707      368244 :          idata = idata + 1
   47708      368244 :          data_tmp = full_data(idata)
   47709      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47710      368244 :          data_tmp = IAND(data_tmp, mask_left(20))
   47711      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47712      368244 :          ipack = ipack + 1
   47713      368244 :          packed_data(ipack) = pack_tmp
   47714      368244 :          data_tmp = full_data(idata)
   47715      368244 :          pack_tmp = ISHFT(data_tmp, 26)
   47716      368244 :          pack_tmp = ISHFT(pack_tmp, -26)
   47717      368244 :          idata = idata + 1
   47718      368244 :          data_tmp = full_data(idata)
   47719      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47720      368244 :          data_tmp = IAND(data_tmp, mask_left(26))
   47721      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47722      368244 :          ipack = ipack + 1
   47723      368244 :          packed_data(ipack) = pack_tmp
   47724      368244 :          data_tmp = full_data(idata)
   47725      368244 :          pack_tmp = ISHFT(data_tmp, 32)
   47726      368244 :          pack_tmp = ISHFT(pack_tmp, -32)
   47727      368244 :          idata = idata + 1
   47728      368244 :          data_tmp = full_data(idata)
   47729      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47730      368244 :          data_tmp = IAND(data_tmp, mask_left(32))
   47731      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47732      368244 :          ipack = ipack + 1
   47733      368244 :          packed_data(ipack) = pack_tmp
   47734      368244 :          data_tmp = full_data(idata)
   47735      368244 :          pack_tmp = ISHFT(data_tmp, 38)
   47736      368244 :          pack_tmp = ISHFT(pack_tmp, -38)
   47737      368244 :          idata = idata + 1
   47738      368244 :          data_tmp = full_data(idata)
   47739      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47740      368244 :          data_tmp = IAND(data_tmp, mask_left(38))
   47741      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47742      368244 :          ipack = ipack + 1
   47743      368244 :          packed_data(ipack) = pack_tmp
   47744      368244 :          data_tmp = full_data(idata)
   47745      368244 :          pack_tmp = ISHFT(data_tmp, 44)
   47746      368244 :          pack_tmp = ISHFT(pack_tmp, -44)
   47747      368244 :          idata = idata + 1
   47748      368244 :          data_tmp = full_data(idata)
   47749      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47750      368244 :          data_tmp = IAND(data_tmp, mask_left(44))
   47751      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47752      368244 :          ipack = ipack + 1
   47753      368244 :          packed_data(ipack) = pack_tmp
   47754      368244 :          data_tmp = full_data(idata)
   47755      368244 :          pack_tmp = ISHFT(data_tmp, 50)
   47756      368244 :          pack_tmp = ISHFT(pack_tmp, -50)
   47757      368244 :          idata = idata + 1
   47758      368244 :          data_tmp = full_data(idata)
   47759      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47760      368244 :          data_tmp = IAND(data_tmp, mask_left(50))
   47761      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47762      368244 :          ipack = ipack + 1
   47763      368244 :          packed_data(ipack) = pack_tmp
   47764      368244 :          data_tmp = full_data(idata)
   47765      368244 :          pack_tmp = ISHFT(data_tmp, 56)
   47766      368244 :          pack_tmp = ISHFT(pack_tmp, -56)
   47767      368244 :          idata = idata + 1
   47768      368244 :          data_tmp = full_data(idata)
   47769      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47770      368244 :          data_tmp = IAND(data_tmp, mask_left(56))
   47771      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47772      368244 :          ipack = ipack + 1
   47773      368244 :          packed_data(ipack) = pack_tmp
   47774      368244 :          data_tmp = full_data(idata)
   47775      368244 :          pack_tmp = ISHFT(data_tmp, 62)
   47776      368244 :          pack_tmp = ISHFT(pack_tmp, -58)
   47777      368244 :          idata = idata + 1
   47778      368244 :          data_tmp = full_data(idata)
   47779      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47780      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47781      368244 :          pack_tmp = ISHFT(pack_tmp, -4)
   47782      368244 :          idata = idata + 1
   47783      368244 :          data_tmp = full_data(idata)
   47784      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47785      368244 :          data_tmp = IAND(data_tmp, mask_left(4))
   47786      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47787      368244 :          ipack = ipack + 1
   47788      368244 :          packed_data(ipack) = pack_tmp
   47789      368244 :          data_tmp = full_data(idata)
   47790      368244 :          pack_tmp = ISHFT(data_tmp, 10)
   47791      368244 :          pack_tmp = ISHFT(pack_tmp, -10)
   47792      368244 :          idata = idata + 1
   47793      368244 :          data_tmp = full_data(idata)
   47794      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47795      368244 :          data_tmp = IAND(data_tmp, mask_left(10))
   47796      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47797      368244 :          ipack = ipack + 1
   47798      368244 :          packed_data(ipack) = pack_tmp
   47799      368244 :          data_tmp = full_data(idata)
   47800      368244 :          pack_tmp = ISHFT(data_tmp, 16)
   47801      368244 :          pack_tmp = ISHFT(pack_tmp, -16)
   47802      368244 :          idata = idata + 1
   47803      368244 :          data_tmp = full_data(idata)
   47804      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47805      368244 :          data_tmp = IAND(data_tmp, mask_left(16))
   47806      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47807      368244 :          ipack = ipack + 1
   47808      368244 :          packed_data(ipack) = pack_tmp
   47809      368244 :          data_tmp = full_data(idata)
   47810      368244 :          pack_tmp = ISHFT(data_tmp, 22)
   47811      368244 :          pack_tmp = ISHFT(pack_tmp, -22)
   47812      368244 :          idata = idata + 1
   47813      368244 :          data_tmp = full_data(idata)
   47814      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47815      368244 :          data_tmp = IAND(data_tmp, mask_left(22))
   47816      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47817      368244 :          ipack = ipack + 1
   47818      368244 :          packed_data(ipack) = pack_tmp
   47819      368244 :          data_tmp = full_data(idata)
   47820      368244 :          pack_tmp = ISHFT(data_tmp, 28)
   47821      368244 :          pack_tmp = ISHFT(pack_tmp, -28)
   47822      368244 :          idata = idata + 1
   47823      368244 :          data_tmp = full_data(idata)
   47824      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47825      368244 :          data_tmp = IAND(data_tmp, mask_left(28))
   47826      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47827      368244 :          ipack = ipack + 1
   47828      368244 :          packed_data(ipack) = pack_tmp
   47829      368244 :          data_tmp = full_data(idata)
   47830      368244 :          pack_tmp = ISHFT(data_tmp, 34)
   47831      368244 :          pack_tmp = ISHFT(pack_tmp, -34)
   47832      368244 :          idata = idata + 1
   47833      368244 :          data_tmp = full_data(idata)
   47834      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47835      368244 :          data_tmp = IAND(data_tmp, mask_left(34))
   47836      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47837      368244 :          ipack = ipack + 1
   47838      368244 :          packed_data(ipack) = pack_tmp
   47839      368244 :          data_tmp = full_data(idata)
   47840      368244 :          pack_tmp = ISHFT(data_tmp, 40)
   47841      368244 :          pack_tmp = ISHFT(pack_tmp, -40)
   47842      368244 :          idata = idata + 1
   47843      368244 :          data_tmp = full_data(idata)
   47844      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47845      368244 :          data_tmp = IAND(data_tmp, mask_left(40))
   47846      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47847      368244 :          ipack = ipack + 1
   47848      368244 :          packed_data(ipack) = pack_tmp
   47849      368244 :          data_tmp = full_data(idata)
   47850      368244 :          pack_tmp = ISHFT(data_tmp, 46)
   47851      368244 :          pack_tmp = ISHFT(pack_tmp, -46)
   47852      368244 :          idata = idata + 1
   47853      368244 :          data_tmp = full_data(idata)
   47854      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47855      368244 :          data_tmp = IAND(data_tmp, mask_left(46))
   47856      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47857      368244 :          ipack = ipack + 1
   47858      368244 :          packed_data(ipack) = pack_tmp
   47859      368244 :          data_tmp = full_data(idata)
   47860      368244 :          pack_tmp = ISHFT(data_tmp, 52)
   47861      368244 :          pack_tmp = ISHFT(pack_tmp, -52)
   47862      368244 :          idata = idata + 1
   47863      368244 :          data_tmp = full_data(idata)
   47864      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47865      368244 :          data_tmp = IAND(data_tmp, mask_left(52))
   47866      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47867      368244 :          ipack = ipack + 1
   47868      368244 :          packed_data(ipack) = pack_tmp
   47869      368244 :          data_tmp = full_data(idata)
   47870      368244 :          pack_tmp = ISHFT(data_tmp, 58)
   47871      368244 :          pack_tmp = ISHFT(pack_tmp, -58)
   47872      368244 :          idata = idata + 1
   47873      368244 :          data_tmp = full_data(idata)
   47874      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47875      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47876      368244 :          pack_tmp = ISHFT(pack_tmp, 0)
   47877      368244 :          idata = idata + 1
   47878      368244 :          data_tmp = full_data(idata)
   47879             :          data_tmp = ISHFT(data_tmp, 6)
   47880      368244 :          data_tmp = IAND(data_tmp, mask_left(0))
   47881      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47882      368244 :          ipack = ipack + 1
   47883      368244 :          packed_data(ipack) = pack_tmp
   47884      368244 :          data_tmp = full_data(idata)
   47885      368244 :          pack_tmp = ISHFT(data_tmp, 6)
   47886      368244 :          pack_tmp = ISHFT(pack_tmp, -6)
   47887      368244 :          idata = idata + 1
   47888      368244 :          data_tmp = full_data(idata)
   47889      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47890      368244 :          data_tmp = IAND(data_tmp, mask_left(6))
   47891      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47892      368244 :          ipack = ipack + 1
   47893      368244 :          packed_data(ipack) = pack_tmp
   47894      368244 :          data_tmp = full_data(idata)
   47895      368244 :          pack_tmp = ISHFT(data_tmp, 12)
   47896      368244 :          pack_tmp = ISHFT(pack_tmp, -12)
   47897      368244 :          idata = idata + 1
   47898      368244 :          data_tmp = full_data(idata)
   47899      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47900      368244 :          data_tmp = IAND(data_tmp, mask_left(12))
   47901      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47902      368244 :          ipack = ipack + 1
   47903      368244 :          packed_data(ipack) = pack_tmp
   47904      368244 :          data_tmp = full_data(idata)
   47905      368244 :          pack_tmp = ISHFT(data_tmp, 18)
   47906      368244 :          pack_tmp = ISHFT(pack_tmp, -18)
   47907      368244 :          idata = idata + 1
   47908      368244 :          data_tmp = full_data(idata)
   47909      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47910      368244 :          data_tmp = IAND(data_tmp, mask_left(18))
   47911      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47912      368244 :          ipack = ipack + 1
   47913      368244 :          packed_data(ipack) = pack_tmp
   47914      368244 :          data_tmp = full_data(idata)
   47915      368244 :          pack_tmp = ISHFT(data_tmp, 24)
   47916      368244 :          pack_tmp = ISHFT(pack_tmp, -24)
   47917      368244 :          idata = idata + 1
   47918      368244 :          data_tmp = full_data(idata)
   47919      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47920      368244 :          data_tmp = IAND(data_tmp, mask_left(24))
   47921      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47922      368244 :          ipack = ipack + 1
   47923      368244 :          packed_data(ipack) = pack_tmp
   47924      368244 :          data_tmp = full_data(idata)
   47925      368244 :          pack_tmp = ISHFT(data_tmp, 30)
   47926      368244 :          pack_tmp = ISHFT(pack_tmp, -30)
   47927      368244 :          idata = idata + 1
   47928      368244 :          data_tmp = full_data(idata)
   47929      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47930      368244 :          data_tmp = IAND(data_tmp, mask_left(30))
   47931      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47932      368244 :          ipack = ipack + 1
   47933      368244 :          packed_data(ipack) = pack_tmp
   47934      368244 :          data_tmp = full_data(idata)
   47935      368244 :          pack_tmp = ISHFT(data_tmp, 36)
   47936      368244 :          pack_tmp = ISHFT(pack_tmp, -36)
   47937      368244 :          idata = idata + 1
   47938      368244 :          data_tmp = full_data(idata)
   47939      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47940      368244 :          data_tmp = IAND(data_tmp, mask_left(36))
   47941      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47942      368244 :          ipack = ipack + 1
   47943      368244 :          packed_data(ipack) = pack_tmp
   47944      368244 :          data_tmp = full_data(idata)
   47945      368244 :          pack_tmp = ISHFT(data_tmp, 42)
   47946      368244 :          pack_tmp = ISHFT(pack_tmp, -42)
   47947      368244 :          idata = idata + 1
   47948      368244 :          data_tmp = full_data(idata)
   47949      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47950      368244 :          data_tmp = IAND(data_tmp, mask_left(42))
   47951      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47952      368244 :          ipack = ipack + 1
   47953      368244 :          packed_data(ipack) = pack_tmp
   47954      368244 :          data_tmp = full_data(idata)
   47955      368244 :          pack_tmp = ISHFT(data_tmp, 48)
   47956      368244 :          pack_tmp = ISHFT(pack_tmp, -48)
   47957      368244 :          idata = idata + 1
   47958      368244 :          data_tmp = full_data(idata)
   47959      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47960      368244 :          data_tmp = IAND(data_tmp, mask_left(48))
   47961      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47962      368244 :          ipack = ipack + 1
   47963      368244 :          packed_data(ipack) = pack_tmp
   47964      368244 :          data_tmp = full_data(idata)
   47965      368244 :          pack_tmp = ISHFT(data_tmp, 54)
   47966      368244 :          pack_tmp = ISHFT(pack_tmp, -54)
   47967      368244 :          idata = idata + 1
   47968      368244 :          data_tmp = full_data(idata)
   47969      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47970      368244 :          data_tmp = IAND(data_tmp, mask_left(54))
   47971      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47972      368244 :          ipack = ipack + 1
   47973      368244 :          packed_data(ipack) = pack_tmp
   47974      368244 :          data_tmp = full_data(idata)
   47975      368244 :          pack_tmp = ISHFT(data_tmp, 60)
   47976      368244 :          pack_tmp = ISHFT(pack_tmp, -58)
   47977      368244 :          idata = idata + 1
   47978      368244 :          data_tmp = full_data(idata)
   47979      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47980      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47981      368244 :          pack_tmp = ISHFT(pack_tmp, -2)
   47982      368244 :          idata = idata + 1
   47983      368244 :          data_tmp = full_data(idata)
   47984      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47985      368244 :          data_tmp = IAND(data_tmp, mask_left(2))
   47986      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47987      368244 :          ipack = ipack + 1
   47988      368244 :          packed_data(ipack) = pack_tmp
   47989      368244 :          data_tmp = full_data(idata)
   47990      368244 :          pack_tmp = ISHFT(data_tmp, 8)
   47991      368244 :          pack_tmp = ISHFT(pack_tmp, -8)
   47992      368244 :          idata = idata + 1
   47993      368244 :          data_tmp = full_data(idata)
   47994      368244 :          data_tmp = ISHFT(data_tmp, 6)
   47995      368244 :          data_tmp = IAND(data_tmp, mask_left(8))
   47996      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47997      368244 :          ipack = ipack + 1
   47998      368244 :          packed_data(ipack) = pack_tmp
   47999      368244 :          data_tmp = full_data(idata)
   48000      368244 :          pack_tmp = ISHFT(data_tmp, 14)
   48001      368244 :          pack_tmp = ISHFT(pack_tmp, -14)
   48002      368244 :          idata = idata + 1
   48003      368244 :          data_tmp = full_data(idata)
   48004      368244 :          data_tmp = ISHFT(data_tmp, 6)
   48005      368244 :          data_tmp = IAND(data_tmp, mask_left(14))
   48006      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48007      368244 :          ipack = ipack + 1
   48008      368244 :          packed_data(ipack) = pack_tmp
   48009      368244 :          data_tmp = full_data(idata)
   48010      368244 :          pack_tmp = ISHFT(data_tmp, 20)
   48011      368244 :          pack_tmp = ISHFT(pack_tmp, -20)
   48012      368244 :          idata = idata + 1
   48013      368244 :          data_tmp = full_data(idata)
   48014      368244 :          data_tmp = ISHFT(data_tmp, 6)
   48015      368244 :          data_tmp = IAND(data_tmp, mask_left(20))
   48016      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48017      368244 :          ipack = ipack + 1
   48018      368244 :          packed_data(ipack) = pack_tmp
   48019      368244 :          data_tmp = full_data(idata)
   48020      368244 :          pack_tmp = ISHFT(data_tmp, 26)
   48021      368244 :          pack_tmp = ISHFT(pack_tmp, -26)
   48022      368244 :          idata = idata + 1
   48023      368244 :          data_tmp = full_data(idata)
   48024      368244 :          data_tmp = ISHFT(data_tmp, 6)
   48025      368244 :          data_tmp = IAND(data_tmp, mask_left(26))
   48026      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48027      368244 :          ipack = ipack + 1
   48028      368244 :          packed_data(ipack) = pack_tmp
   48029      368244 :          data_tmp = full_data(idata)
   48030      368244 :          pack_tmp = ISHFT(data_tmp, 32)
   48031      368244 :          pack_tmp = ISHFT(pack_tmp, -32)
   48032      368244 :          idata = idata + 1
   48033      368244 :          data_tmp = full_data(idata)
   48034      368244 :          data_tmp = ISHFT(data_tmp, 6)
   48035      368244 :          data_tmp = IAND(data_tmp, mask_left(32))
   48036      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48037      368244 :          ipack = ipack + 1
   48038      368244 :          packed_data(ipack) = pack_tmp
   48039      368244 :          data_tmp = full_data(idata)
   48040      368244 :          pack_tmp = ISHFT(data_tmp, 38)
   48041      368244 :          pack_tmp = ISHFT(pack_tmp, -38)
   48042      368244 :          idata = idata + 1
   48043      368244 :          data_tmp = full_data(idata)
   48044      368244 :          data_tmp = ISHFT(data_tmp, 6)
   48045      368244 :          data_tmp = IAND(data_tmp, mask_left(38))
   48046      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48047      368244 :          ipack = ipack + 1
   48048      368244 :          packed_data(ipack) = pack_tmp
   48049      368244 :          data_tmp = full_data(idata)
   48050      368244 :          pack_tmp = ISHFT(data_tmp, 44)
   48051      368244 :          pack_tmp = ISHFT(pack_tmp, -44)
   48052      368244 :          idata = idata + 1
   48053      368244 :          data_tmp = full_data(idata)
   48054      368244 :          data_tmp = ISHFT(data_tmp, 6)
   48055      368244 :          data_tmp = IAND(data_tmp, mask_left(44))
   48056      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48057      368244 :          ipack = ipack + 1
   48058      368244 :          packed_data(ipack) = pack_tmp
   48059      368244 :          data_tmp = full_data(idata)
   48060      368244 :          pack_tmp = ISHFT(data_tmp, 50)
   48061      368244 :          pack_tmp = ISHFT(pack_tmp, -50)
   48062      368244 :          idata = idata + 1
   48063      368244 :          data_tmp = full_data(idata)
   48064      368244 :          data_tmp = ISHFT(data_tmp, 6)
   48065      368244 :          data_tmp = IAND(data_tmp, mask_left(50))
   48066      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48067      368244 :          ipack = ipack + 1
   48068      368244 :          packed_data(ipack) = pack_tmp
   48069      368244 :          data_tmp = full_data(idata)
   48070      368244 :          pack_tmp = ISHFT(data_tmp, 56)
   48071      368244 :          pack_tmp = ISHFT(pack_tmp, -56)
   48072      368244 :          idata = idata + 1
   48073      368244 :          data_tmp = full_data(idata)
   48074      368244 :          data_tmp = ISHFT(data_tmp, 6)
   48075      368244 :          data_tmp = IAND(data_tmp, mask_left(56))
   48076      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48077      368244 :          ipack = ipack + 1
   48078      368244 :          packed_data(ipack) = pack_tmp
   48079      368244 :          data_tmp = full_data(idata)
   48080      368244 :          pack_tmp = ISHFT(data_tmp, 62)
   48081      368244 :          pack_tmp = ISHFT(pack_tmp, -58)
   48082      368244 :          idata = idata + 1
   48083      368244 :          data_tmp = full_data(idata)
   48084      368244 :          data_tmp = ISHFT(data_tmp, 6)
   48085      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48086      368244 :          pack_tmp = ISHFT(pack_tmp, -4)
   48087      368244 :          idata = idata + 1
   48088      368244 :          data_tmp = full_data(idata)
   48089      368244 :          data_tmp = ISHFT(data_tmp, 6)
   48090      368244 :          data_tmp = IAND(data_tmp, mask_left(4))
   48091      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48092      368244 :          ipack = ipack + 1
   48093      368244 :          packed_data(ipack) = pack_tmp
   48094      368244 :          data_tmp = full_data(idata)
   48095      368244 :          pack_tmp = ISHFT(data_tmp, 10)
   48096      368244 :          pack_tmp = ISHFT(pack_tmp, -10)
   48097      368244 :          idata = idata + 1
   48098      368244 :          data_tmp = full_data(idata)
   48099      368244 :          data_tmp = ISHFT(data_tmp, 6)
   48100      368244 :          data_tmp = IAND(data_tmp, mask_left(10))
   48101      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48102      368244 :          ipack = ipack + 1
   48103      368244 :          packed_data(ipack) = pack_tmp
   48104      368244 :          data_tmp = full_data(idata)
   48105      368244 :          pack_tmp = ISHFT(data_tmp, 16)
   48106      368244 :          pack_tmp = ISHFT(pack_tmp, -16)
   48107      368244 :          idata = idata + 1
   48108      368244 :          data_tmp = full_data(idata)
   48109      368244 :          data_tmp = ISHFT(data_tmp, 6)
   48110      368244 :          data_tmp = IAND(data_tmp, mask_left(16))
   48111      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48112      368244 :          ipack = ipack + 1
   48113      368244 :          packed_data(ipack) = pack_tmp
   48114      368244 :          data_tmp = full_data(idata)
   48115      368244 :          pack_tmp = ISHFT(data_tmp, 22)
   48116      368244 :          pack_tmp = ISHFT(pack_tmp, -22)
   48117      368244 :          idata = idata + 1
   48118      368244 :          data_tmp = full_data(idata)
   48119      368244 :          data_tmp = ISHFT(data_tmp, 6)
   48120      368244 :          data_tmp = IAND(data_tmp, mask_left(22))
   48121      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48122      368244 :          ipack = ipack + 1
   48123      368244 :          packed_data(ipack) = pack_tmp
   48124      368244 :          data_tmp = full_data(idata)
   48125      368244 :          pack_tmp = ISHFT(data_tmp, 28)
   48126      368244 :          pack_tmp = ISHFT(pack_tmp, -28)
   48127      368244 :          idata = idata + 1
   48128      368244 :          data_tmp = full_data(idata)
   48129      368244 :          data_tmp = ISHFT(data_tmp, 6)
   48130      368244 :          data_tmp = IAND(data_tmp, mask_left(28))
   48131      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48132      368244 :          ipack = ipack + 1
   48133      368244 :          packed_data(ipack) = pack_tmp
   48134      368244 :          data_tmp = full_data(idata)
   48135      368244 :          pack_tmp = ISHFT(data_tmp, 34)
   48136      368244 :          pack_tmp = ISHFT(pack_tmp, -34)
   48137      368244 :          idata = idata + 1
   48138      368244 :          data_tmp = full_data(idata)
   48139      368244 :          data_tmp = ISHFT(data_tmp, 6)
   48140      368244 :          data_tmp = IAND(data_tmp, mask_left(34))
   48141      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48142      368244 :          ipack = ipack + 1
   48143      368244 :          packed_data(ipack) = pack_tmp
   48144      368244 :          data_tmp = full_data(idata)
   48145      368244 :          pack_tmp = ISHFT(data_tmp, 40)
   48146      368244 :          pack_tmp = ISHFT(pack_tmp, -40)
   48147      368244 :          idata = idata + 1
   48148      368244 :          data_tmp = full_data(idata)
   48149      368244 :          data_tmp = ISHFT(data_tmp, 6)
   48150      368244 :          data_tmp = IAND(data_tmp, mask_left(40))
   48151      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48152      368244 :          ipack = ipack + 1
   48153      368244 :          packed_data(ipack) = pack_tmp
   48154      368244 :          data_tmp = full_data(idata)
   48155      368244 :          pack_tmp = ISHFT(data_tmp, 46)
   48156      368244 :          pack_tmp = ISHFT(pack_tmp, -46)
   48157      368244 :          idata = idata + 1
   48158      368244 :          data_tmp = full_data(idata)
   48159      368244 :          data_tmp = ISHFT(data_tmp, 6)
   48160      368244 :          data_tmp = IAND(data_tmp, mask_left(46))
   48161      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48162      368244 :          ipack = ipack + 1
   48163      368244 :          packed_data(ipack) = pack_tmp
   48164      368244 :          data_tmp = full_data(idata)
   48165      368244 :          pack_tmp = ISHFT(data_tmp, 52)
   48166      368244 :          pack_tmp = ISHFT(pack_tmp, -52)
   48167      368244 :          idata = idata + 1
   48168      368244 :          data_tmp = full_data(idata)
   48169      368244 :          data_tmp = ISHFT(data_tmp, 6)
   48170      368244 :          data_tmp = IAND(data_tmp, mask_left(52))
   48171      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48172      368244 :          ipack = ipack + 1
   48173      368244 :          packed_data(ipack) = pack_tmp
   48174      368244 :          data_tmp = full_data(idata)
   48175      368244 :          pack_tmp = ISHFT(data_tmp, 58)
   48176      368244 :          pack_tmp = ISHFT(pack_tmp, -58)
   48177      368244 :          idata = idata + 1
   48178      368244 :          data_tmp = full_data(idata)
   48179      368244 :          data_tmp = ISHFT(data_tmp, 6)
   48180      368244 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48181             :          pack_tmp = ISHFT(pack_tmp, 0)
   48182      368244 :          pack_tmp = ISHFT(pack_tmp, 0)
   48183      368244 :          ipack = ipack + 1
   48184      368244 :          packed_data(ipack) = pack_tmp
   48185             :       END DO
   48186       23028 :       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       23028 :    END SUBROUTINE ints2bits_58
   48190             : 
   48191             : ! **************************************************************************************************
   48192             : !> \brief ...
   48193             : !> \param Ndata ...
   48194             : !> \param packed_data ...
   48195             : !> \param full_data ...
   48196             : ! **************************************************************************************************
   48197       95171 :    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       95171 :       ipack = 0
   48208       95171 :       idata = 0
   48209       95171 :       pack_tmp = 0
   48210       95171 :       Ndata_rep = (Ndata/64)*64
   48211       95171 :       DO kdata = 1, Ndata_rep, 64
   48212     1510292 :          idata = idata + 1
   48213     1510292 :          data_tmp = ISHFT(pack_tmp, 58)
   48214     1510292 :          ipack = ipack + 1
   48215     1510292 :          pack_tmp = packed_data(ipack)
   48216     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   48217     1510292 :          pack_tmp = ISHFT(pack_tmp, -58)
   48218     1510292 :          idata = idata + 1
   48219     1510292 :          data_tmp = ISHFT(pack_tmp, 52)
   48220     1510292 :          ipack = ipack + 1
   48221     1510292 :          pack_tmp = packed_data(ipack)
   48222     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   48223     1510292 :          pack_tmp = ISHFT(pack_tmp, -52)
   48224     1510292 :          idata = idata + 1
   48225     1510292 :          data_tmp = ISHFT(pack_tmp, 46)
   48226     1510292 :          ipack = ipack + 1
   48227     1510292 :          pack_tmp = packed_data(ipack)
   48228     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   48229     1510292 :          pack_tmp = ISHFT(pack_tmp, -46)
   48230     1510292 :          idata = idata + 1
   48231     1510292 :          data_tmp = ISHFT(pack_tmp, 40)
   48232     1510292 :          ipack = ipack + 1
   48233     1510292 :          pack_tmp = packed_data(ipack)
   48234     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   48235     1510292 :          pack_tmp = ISHFT(pack_tmp, -40)
   48236     1510292 :          idata = idata + 1
   48237     1510292 :          data_tmp = ISHFT(pack_tmp, 34)
   48238     1510292 :          ipack = ipack + 1
   48239     1510292 :          pack_tmp = packed_data(ipack)
   48240     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   48241     1510292 :          pack_tmp = ISHFT(pack_tmp, -34)
   48242     1510292 :          idata = idata + 1
   48243     1510292 :          data_tmp = ISHFT(pack_tmp, 28)
   48244     1510292 :          ipack = ipack + 1
   48245     1510292 :          pack_tmp = packed_data(ipack)
   48246     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   48247     1510292 :          pack_tmp = ISHFT(pack_tmp, -28)
   48248     1510292 :          idata = idata + 1
   48249     1510292 :          data_tmp = ISHFT(pack_tmp, 22)
   48250     1510292 :          ipack = ipack + 1
   48251     1510292 :          pack_tmp = packed_data(ipack)
   48252     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   48253     1510292 :          pack_tmp = ISHFT(pack_tmp, -22)
   48254     1510292 :          idata = idata + 1
   48255     1510292 :          data_tmp = ISHFT(pack_tmp, 16)
   48256     1510292 :          ipack = ipack + 1
   48257     1510292 :          pack_tmp = packed_data(ipack)
   48258     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   48259     1510292 :          pack_tmp = ISHFT(pack_tmp, -16)
   48260     1510292 :          idata = idata + 1
   48261     1510292 :          data_tmp = ISHFT(pack_tmp, 10)
   48262     1510292 :          ipack = ipack + 1
   48263     1510292 :          pack_tmp = packed_data(ipack)
   48264     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   48265     1510292 :          pack_tmp = ISHFT(pack_tmp, -10)
   48266     1510292 :          idata = idata + 1
   48267     1510292 :          data_tmp = ISHFT(pack_tmp, 4)
   48268     1510292 :          ipack = ipack + 1
   48269     1510292 :          pack_tmp = packed_data(ipack)
   48270     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   48271     1510292 :          pack_tmp = ISHFT(pack_tmp, -4)
   48272     1510292 :          idata = idata + 1
   48273     1510292 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48274     1510292 :          full_data(idata) = data_tmp
   48275     1510292 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48276     1510292 :          idata = idata + 1
   48277     1510292 :          data_tmp = ISHFT(pack_tmp, 56)
   48278     1510292 :          ipack = ipack + 1
   48279     1510292 :          pack_tmp = packed_data(ipack)
   48280     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   48281     1510292 :          pack_tmp = ISHFT(pack_tmp, -56)
   48282     1510292 :          idata = idata + 1
   48283     1510292 :          data_tmp = ISHFT(pack_tmp, 50)
   48284     1510292 :          ipack = ipack + 1
   48285     1510292 :          pack_tmp = packed_data(ipack)
   48286     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   48287     1510292 :          pack_tmp = ISHFT(pack_tmp, -50)
   48288     1510292 :          idata = idata + 1
   48289     1510292 :          data_tmp = ISHFT(pack_tmp, 44)
   48290     1510292 :          ipack = ipack + 1
   48291     1510292 :          pack_tmp = packed_data(ipack)
   48292     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   48293     1510292 :          pack_tmp = ISHFT(pack_tmp, -44)
   48294     1510292 :          idata = idata + 1
   48295     1510292 :          data_tmp = ISHFT(pack_tmp, 38)
   48296     1510292 :          ipack = ipack + 1
   48297     1510292 :          pack_tmp = packed_data(ipack)
   48298     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   48299     1510292 :          pack_tmp = ISHFT(pack_tmp, -38)
   48300     1510292 :          idata = idata + 1
   48301     1510292 :          data_tmp = ISHFT(pack_tmp, 32)
   48302     1510292 :          ipack = ipack + 1
   48303     1510292 :          pack_tmp = packed_data(ipack)
   48304     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   48305     1510292 :          pack_tmp = ISHFT(pack_tmp, -32)
   48306     1510292 :          idata = idata + 1
   48307     1510292 :          data_tmp = ISHFT(pack_tmp, 26)
   48308     1510292 :          ipack = ipack + 1
   48309     1510292 :          pack_tmp = packed_data(ipack)
   48310     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   48311     1510292 :          pack_tmp = ISHFT(pack_tmp, -26)
   48312     1510292 :          idata = idata + 1
   48313     1510292 :          data_tmp = ISHFT(pack_tmp, 20)
   48314     1510292 :          ipack = ipack + 1
   48315     1510292 :          pack_tmp = packed_data(ipack)
   48316     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   48317     1510292 :          pack_tmp = ISHFT(pack_tmp, -20)
   48318     1510292 :          idata = idata + 1
   48319     1510292 :          data_tmp = ISHFT(pack_tmp, 14)
   48320     1510292 :          ipack = ipack + 1
   48321     1510292 :          pack_tmp = packed_data(ipack)
   48322     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   48323     1510292 :          pack_tmp = ISHFT(pack_tmp, -14)
   48324     1510292 :          idata = idata + 1
   48325     1510292 :          data_tmp = ISHFT(pack_tmp, 8)
   48326     1510292 :          ipack = ipack + 1
   48327     1510292 :          pack_tmp = packed_data(ipack)
   48328     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   48329     1510292 :          pack_tmp = ISHFT(pack_tmp, -8)
   48330     1510292 :          idata = idata + 1
   48331     1510292 :          data_tmp = ISHFT(pack_tmp, 2)
   48332     1510292 :          ipack = ipack + 1
   48333     1510292 :          pack_tmp = packed_data(ipack)
   48334     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   48335     1510292 :          pack_tmp = ISHFT(pack_tmp, -2)
   48336     1510292 :          idata = idata + 1
   48337     1510292 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48338     1510292 :          full_data(idata) = data_tmp
   48339     1510292 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48340     1510292 :          idata = idata + 1
   48341     1510292 :          data_tmp = ISHFT(pack_tmp, 54)
   48342     1510292 :          ipack = ipack + 1
   48343     1510292 :          pack_tmp = packed_data(ipack)
   48344     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   48345     1510292 :          pack_tmp = ISHFT(pack_tmp, -54)
   48346     1510292 :          idata = idata + 1
   48347     1510292 :          data_tmp = ISHFT(pack_tmp, 48)
   48348     1510292 :          ipack = ipack + 1
   48349     1510292 :          pack_tmp = packed_data(ipack)
   48350     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   48351     1510292 :          pack_tmp = ISHFT(pack_tmp, -48)
   48352     1510292 :          idata = idata + 1
   48353     1510292 :          data_tmp = ISHFT(pack_tmp, 42)
   48354     1510292 :          ipack = ipack + 1
   48355     1510292 :          pack_tmp = packed_data(ipack)
   48356     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   48357     1510292 :          pack_tmp = ISHFT(pack_tmp, -42)
   48358     1510292 :          idata = idata + 1
   48359     1510292 :          data_tmp = ISHFT(pack_tmp, 36)
   48360     1510292 :          ipack = ipack + 1
   48361     1510292 :          pack_tmp = packed_data(ipack)
   48362     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   48363     1510292 :          pack_tmp = ISHFT(pack_tmp, -36)
   48364     1510292 :          idata = idata + 1
   48365     1510292 :          data_tmp = ISHFT(pack_tmp, 30)
   48366     1510292 :          ipack = ipack + 1
   48367     1510292 :          pack_tmp = packed_data(ipack)
   48368     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   48369     1510292 :          pack_tmp = ISHFT(pack_tmp, -30)
   48370     1510292 :          idata = idata + 1
   48371     1510292 :          data_tmp = ISHFT(pack_tmp, 24)
   48372     1510292 :          ipack = ipack + 1
   48373     1510292 :          pack_tmp = packed_data(ipack)
   48374     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   48375     1510292 :          pack_tmp = ISHFT(pack_tmp, -24)
   48376     1510292 :          idata = idata + 1
   48377     1510292 :          data_tmp = ISHFT(pack_tmp, 18)
   48378     1510292 :          ipack = ipack + 1
   48379     1510292 :          pack_tmp = packed_data(ipack)
   48380     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   48381     1510292 :          pack_tmp = ISHFT(pack_tmp, -18)
   48382     1510292 :          idata = idata + 1
   48383     1510292 :          data_tmp = ISHFT(pack_tmp, 12)
   48384     1510292 :          ipack = ipack + 1
   48385     1510292 :          pack_tmp = packed_data(ipack)
   48386     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   48387     1510292 :          pack_tmp = ISHFT(pack_tmp, -12)
   48388     1510292 :          idata = idata + 1
   48389     1510292 :          data_tmp = ISHFT(pack_tmp, 6)
   48390     1510292 :          ipack = ipack + 1
   48391     1510292 :          pack_tmp = packed_data(ipack)
   48392     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   48393     1510292 :          pack_tmp = ISHFT(pack_tmp, -6)
   48394     1510292 :          idata = idata + 1
   48395     1510292 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48396     1510292 :          full_data(idata) = data_tmp
   48397     1510292 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48398     1510292 :          idata = idata + 1
   48399     1510292 :          data_tmp = ISHFT(pack_tmp, 58)
   48400     1510292 :          ipack = ipack + 1
   48401     1510292 :          pack_tmp = packed_data(ipack)
   48402     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   48403     1510292 :          pack_tmp = ISHFT(pack_tmp, -58)
   48404     1510292 :          idata = idata + 1
   48405     1510292 :          data_tmp = ISHFT(pack_tmp, 52)
   48406     1510292 :          ipack = ipack + 1
   48407     1510292 :          pack_tmp = packed_data(ipack)
   48408     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   48409     1510292 :          pack_tmp = ISHFT(pack_tmp, -52)
   48410     1510292 :          idata = idata + 1
   48411     1510292 :          data_tmp = ISHFT(pack_tmp, 46)
   48412     1510292 :          ipack = ipack + 1
   48413     1510292 :          pack_tmp = packed_data(ipack)
   48414     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   48415     1510292 :          pack_tmp = ISHFT(pack_tmp, -46)
   48416     1510292 :          idata = idata + 1
   48417     1510292 :          data_tmp = ISHFT(pack_tmp, 40)
   48418     1510292 :          ipack = ipack + 1
   48419     1510292 :          pack_tmp = packed_data(ipack)
   48420     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   48421     1510292 :          pack_tmp = ISHFT(pack_tmp, -40)
   48422     1510292 :          idata = idata + 1
   48423     1510292 :          data_tmp = ISHFT(pack_tmp, 34)
   48424     1510292 :          ipack = ipack + 1
   48425     1510292 :          pack_tmp = packed_data(ipack)
   48426     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   48427     1510292 :          pack_tmp = ISHFT(pack_tmp, -34)
   48428     1510292 :          idata = idata + 1
   48429     1510292 :          data_tmp = ISHFT(pack_tmp, 28)
   48430     1510292 :          ipack = ipack + 1
   48431     1510292 :          pack_tmp = packed_data(ipack)
   48432     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   48433     1510292 :          pack_tmp = ISHFT(pack_tmp, -28)
   48434     1510292 :          idata = idata + 1
   48435     1510292 :          data_tmp = ISHFT(pack_tmp, 22)
   48436     1510292 :          ipack = ipack + 1
   48437     1510292 :          pack_tmp = packed_data(ipack)
   48438     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   48439     1510292 :          pack_tmp = ISHFT(pack_tmp, -22)
   48440     1510292 :          idata = idata + 1
   48441     1510292 :          data_tmp = ISHFT(pack_tmp, 16)
   48442     1510292 :          ipack = ipack + 1
   48443     1510292 :          pack_tmp = packed_data(ipack)
   48444     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   48445     1510292 :          pack_tmp = ISHFT(pack_tmp, -16)
   48446     1510292 :          idata = idata + 1
   48447     1510292 :          data_tmp = ISHFT(pack_tmp, 10)
   48448     1510292 :          ipack = ipack + 1
   48449     1510292 :          pack_tmp = packed_data(ipack)
   48450     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   48451     1510292 :          pack_tmp = ISHFT(pack_tmp, -10)
   48452     1510292 :          idata = idata + 1
   48453     1510292 :          data_tmp = ISHFT(pack_tmp, 4)
   48454     1510292 :          ipack = ipack + 1
   48455     1510292 :          pack_tmp = packed_data(ipack)
   48456     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   48457     1510292 :          pack_tmp = ISHFT(pack_tmp, -4)
   48458     1510292 :          idata = idata + 1
   48459     1510292 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48460     1510292 :          full_data(idata) = data_tmp
   48461     1510292 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48462     1510292 :          idata = idata + 1
   48463     1510292 :          data_tmp = ISHFT(pack_tmp, 56)
   48464     1510292 :          ipack = ipack + 1
   48465     1510292 :          pack_tmp = packed_data(ipack)
   48466     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   48467     1510292 :          pack_tmp = ISHFT(pack_tmp, -56)
   48468     1510292 :          idata = idata + 1
   48469     1510292 :          data_tmp = ISHFT(pack_tmp, 50)
   48470     1510292 :          ipack = ipack + 1
   48471     1510292 :          pack_tmp = packed_data(ipack)
   48472     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   48473     1510292 :          pack_tmp = ISHFT(pack_tmp, -50)
   48474     1510292 :          idata = idata + 1
   48475     1510292 :          data_tmp = ISHFT(pack_tmp, 44)
   48476     1510292 :          ipack = ipack + 1
   48477     1510292 :          pack_tmp = packed_data(ipack)
   48478     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   48479     1510292 :          pack_tmp = ISHFT(pack_tmp, -44)
   48480     1510292 :          idata = idata + 1
   48481     1510292 :          data_tmp = ISHFT(pack_tmp, 38)
   48482     1510292 :          ipack = ipack + 1
   48483     1510292 :          pack_tmp = packed_data(ipack)
   48484     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   48485     1510292 :          pack_tmp = ISHFT(pack_tmp, -38)
   48486     1510292 :          idata = idata + 1
   48487     1510292 :          data_tmp = ISHFT(pack_tmp, 32)
   48488     1510292 :          ipack = ipack + 1
   48489     1510292 :          pack_tmp = packed_data(ipack)
   48490     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   48491     1510292 :          pack_tmp = ISHFT(pack_tmp, -32)
   48492     1510292 :          idata = idata + 1
   48493     1510292 :          data_tmp = ISHFT(pack_tmp, 26)
   48494     1510292 :          ipack = ipack + 1
   48495     1510292 :          pack_tmp = packed_data(ipack)
   48496     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   48497     1510292 :          pack_tmp = ISHFT(pack_tmp, -26)
   48498     1510292 :          idata = idata + 1
   48499     1510292 :          data_tmp = ISHFT(pack_tmp, 20)
   48500     1510292 :          ipack = ipack + 1
   48501     1510292 :          pack_tmp = packed_data(ipack)
   48502     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   48503     1510292 :          pack_tmp = ISHFT(pack_tmp, -20)
   48504     1510292 :          idata = idata + 1
   48505     1510292 :          data_tmp = ISHFT(pack_tmp, 14)
   48506     1510292 :          ipack = ipack + 1
   48507     1510292 :          pack_tmp = packed_data(ipack)
   48508     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   48509     1510292 :          pack_tmp = ISHFT(pack_tmp, -14)
   48510     1510292 :          idata = idata + 1
   48511     1510292 :          data_tmp = ISHFT(pack_tmp, 8)
   48512     1510292 :          ipack = ipack + 1
   48513     1510292 :          pack_tmp = packed_data(ipack)
   48514     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   48515     1510292 :          pack_tmp = ISHFT(pack_tmp, -8)
   48516     1510292 :          idata = idata + 1
   48517     1510292 :          data_tmp = ISHFT(pack_tmp, 2)
   48518     1510292 :          ipack = ipack + 1
   48519     1510292 :          pack_tmp = packed_data(ipack)
   48520     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   48521     1510292 :          pack_tmp = ISHFT(pack_tmp, -2)
   48522     1510292 :          idata = idata + 1
   48523     1510292 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48524     1510292 :          full_data(idata) = data_tmp
   48525     1510292 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48526     1510292 :          idata = idata + 1
   48527     1510292 :          data_tmp = ISHFT(pack_tmp, 54)
   48528     1510292 :          ipack = ipack + 1
   48529     1510292 :          pack_tmp = packed_data(ipack)
   48530     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   48531     1510292 :          pack_tmp = ISHFT(pack_tmp, -54)
   48532     1510292 :          idata = idata + 1
   48533     1510292 :          data_tmp = ISHFT(pack_tmp, 48)
   48534     1510292 :          ipack = ipack + 1
   48535     1510292 :          pack_tmp = packed_data(ipack)
   48536     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   48537     1510292 :          pack_tmp = ISHFT(pack_tmp, -48)
   48538     1510292 :          idata = idata + 1
   48539     1510292 :          data_tmp = ISHFT(pack_tmp, 42)
   48540     1510292 :          ipack = ipack + 1
   48541     1510292 :          pack_tmp = packed_data(ipack)
   48542     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   48543     1510292 :          pack_tmp = ISHFT(pack_tmp, -42)
   48544     1510292 :          idata = idata + 1
   48545     1510292 :          data_tmp = ISHFT(pack_tmp, 36)
   48546     1510292 :          ipack = ipack + 1
   48547     1510292 :          pack_tmp = packed_data(ipack)
   48548     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   48549     1510292 :          pack_tmp = ISHFT(pack_tmp, -36)
   48550     1510292 :          idata = idata + 1
   48551     1510292 :          data_tmp = ISHFT(pack_tmp, 30)
   48552     1510292 :          ipack = ipack + 1
   48553     1510292 :          pack_tmp = packed_data(ipack)
   48554     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   48555     1510292 :          pack_tmp = ISHFT(pack_tmp, -30)
   48556     1510292 :          idata = idata + 1
   48557     1510292 :          data_tmp = ISHFT(pack_tmp, 24)
   48558     1510292 :          ipack = ipack + 1
   48559     1510292 :          pack_tmp = packed_data(ipack)
   48560     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   48561     1510292 :          pack_tmp = ISHFT(pack_tmp, -24)
   48562     1510292 :          idata = idata + 1
   48563     1510292 :          data_tmp = ISHFT(pack_tmp, 18)
   48564     1510292 :          ipack = ipack + 1
   48565     1510292 :          pack_tmp = packed_data(ipack)
   48566     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   48567     1510292 :          pack_tmp = ISHFT(pack_tmp, -18)
   48568     1510292 :          idata = idata + 1
   48569     1510292 :          data_tmp = ISHFT(pack_tmp, 12)
   48570     1510292 :          ipack = ipack + 1
   48571     1510292 :          pack_tmp = packed_data(ipack)
   48572     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   48573     1510292 :          pack_tmp = ISHFT(pack_tmp, -12)
   48574     1510292 :          idata = idata + 1
   48575     1510292 :          data_tmp = ISHFT(pack_tmp, 6)
   48576     1510292 :          ipack = ipack + 1
   48577     1510292 :          pack_tmp = packed_data(ipack)
   48578     1510292 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   48579     1510292 :          pack_tmp = ISHFT(pack_tmp, -6)
   48580     1510292 :          idata = idata + 1
   48581     1510292 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48582     1510292 :          full_data(idata) = data_tmp
   48583     1510292 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48584             :       END DO
   48585       95171 :       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       95171 :    END SUBROUTINE bits2ints_58
   48589             : 
   48590             : ! **************************************************************************************************
   48591             : !> \brief ...
   48592             : !> \param Ndata ...
   48593             : !> \param packed_data ...
   48594             : !> \param full_data ...
   48595             : ! **************************************************************************************************
   48596       23004 :    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       23004 :       idata = 0
   48607       23004 :       ipack = 0
   48608       23004 :       Ndata_rep = (Ndata/64)*64
   48609       23004 :       DO kdata = 1, Ndata_rep, 64
   48610      368064 :          pack_tmp = 0
   48611      368064 :          idata = idata + 1
   48612      368064 :          data_tmp = full_data(idata)
   48613      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48614      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48615      368064 :          pack_tmp = ISHFT(pack_tmp, -5)
   48616      368064 :          idata = idata + 1
   48617      368064 :          data_tmp = full_data(idata)
   48618      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48619      368064 :          data_tmp = IAND(data_tmp, mask_left(5))
   48620      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48621      368064 :          ipack = ipack + 1
   48622      368064 :          packed_data(ipack) = pack_tmp
   48623      368064 :          data_tmp = full_data(idata)
   48624      368064 :          pack_tmp = ISHFT(data_tmp, 10)
   48625      368064 :          pack_tmp = ISHFT(pack_tmp, -10)
   48626      368064 :          idata = idata + 1
   48627      368064 :          data_tmp = full_data(idata)
   48628      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48629      368064 :          data_tmp = IAND(data_tmp, mask_left(10))
   48630      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48631      368064 :          ipack = ipack + 1
   48632      368064 :          packed_data(ipack) = pack_tmp
   48633      368064 :          data_tmp = full_data(idata)
   48634      368064 :          pack_tmp = ISHFT(data_tmp, 15)
   48635      368064 :          pack_tmp = ISHFT(pack_tmp, -15)
   48636      368064 :          idata = idata + 1
   48637      368064 :          data_tmp = full_data(idata)
   48638      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48639      368064 :          data_tmp = IAND(data_tmp, mask_left(15))
   48640      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48641      368064 :          ipack = ipack + 1
   48642      368064 :          packed_data(ipack) = pack_tmp
   48643      368064 :          data_tmp = full_data(idata)
   48644      368064 :          pack_tmp = ISHFT(data_tmp, 20)
   48645      368064 :          pack_tmp = ISHFT(pack_tmp, -20)
   48646      368064 :          idata = idata + 1
   48647      368064 :          data_tmp = full_data(idata)
   48648      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48649      368064 :          data_tmp = IAND(data_tmp, mask_left(20))
   48650      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48651      368064 :          ipack = ipack + 1
   48652      368064 :          packed_data(ipack) = pack_tmp
   48653      368064 :          data_tmp = full_data(idata)
   48654      368064 :          pack_tmp = ISHFT(data_tmp, 25)
   48655      368064 :          pack_tmp = ISHFT(pack_tmp, -25)
   48656      368064 :          idata = idata + 1
   48657      368064 :          data_tmp = full_data(idata)
   48658      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48659      368064 :          data_tmp = IAND(data_tmp, mask_left(25))
   48660      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48661      368064 :          ipack = ipack + 1
   48662      368064 :          packed_data(ipack) = pack_tmp
   48663      368064 :          data_tmp = full_data(idata)
   48664      368064 :          pack_tmp = ISHFT(data_tmp, 30)
   48665      368064 :          pack_tmp = ISHFT(pack_tmp, -30)
   48666      368064 :          idata = idata + 1
   48667      368064 :          data_tmp = full_data(idata)
   48668      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48669      368064 :          data_tmp = IAND(data_tmp, mask_left(30))
   48670      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48671      368064 :          ipack = ipack + 1
   48672      368064 :          packed_data(ipack) = pack_tmp
   48673      368064 :          data_tmp = full_data(idata)
   48674      368064 :          pack_tmp = ISHFT(data_tmp, 35)
   48675      368064 :          pack_tmp = ISHFT(pack_tmp, -35)
   48676      368064 :          idata = idata + 1
   48677      368064 :          data_tmp = full_data(idata)
   48678      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48679      368064 :          data_tmp = IAND(data_tmp, mask_left(35))
   48680      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48681      368064 :          ipack = ipack + 1
   48682      368064 :          packed_data(ipack) = pack_tmp
   48683      368064 :          data_tmp = full_data(idata)
   48684      368064 :          pack_tmp = ISHFT(data_tmp, 40)
   48685      368064 :          pack_tmp = ISHFT(pack_tmp, -40)
   48686      368064 :          idata = idata + 1
   48687      368064 :          data_tmp = full_data(idata)
   48688      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48689      368064 :          data_tmp = IAND(data_tmp, mask_left(40))
   48690      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48691      368064 :          ipack = ipack + 1
   48692      368064 :          packed_data(ipack) = pack_tmp
   48693      368064 :          data_tmp = full_data(idata)
   48694      368064 :          pack_tmp = ISHFT(data_tmp, 45)
   48695      368064 :          pack_tmp = ISHFT(pack_tmp, -45)
   48696      368064 :          idata = idata + 1
   48697      368064 :          data_tmp = full_data(idata)
   48698      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48699      368064 :          data_tmp = IAND(data_tmp, mask_left(45))
   48700      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48701      368064 :          ipack = ipack + 1
   48702      368064 :          packed_data(ipack) = pack_tmp
   48703      368064 :          data_tmp = full_data(idata)
   48704      368064 :          pack_tmp = ISHFT(data_tmp, 50)
   48705      368064 :          pack_tmp = ISHFT(pack_tmp, -50)
   48706      368064 :          idata = idata + 1
   48707      368064 :          data_tmp = full_data(idata)
   48708      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48709      368064 :          data_tmp = IAND(data_tmp, mask_left(50))
   48710      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48711      368064 :          ipack = ipack + 1
   48712      368064 :          packed_data(ipack) = pack_tmp
   48713      368064 :          data_tmp = full_data(idata)
   48714      368064 :          pack_tmp = ISHFT(data_tmp, 55)
   48715      368064 :          pack_tmp = ISHFT(pack_tmp, -55)
   48716      368064 :          idata = idata + 1
   48717      368064 :          data_tmp = full_data(idata)
   48718      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48719      368064 :          data_tmp = IAND(data_tmp, mask_left(55))
   48720      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48721      368064 :          ipack = ipack + 1
   48722      368064 :          packed_data(ipack) = pack_tmp
   48723      368064 :          data_tmp = full_data(idata)
   48724      368064 :          pack_tmp = ISHFT(data_tmp, 60)
   48725      368064 :          pack_tmp = ISHFT(pack_tmp, -59)
   48726      368064 :          idata = idata + 1
   48727      368064 :          data_tmp = full_data(idata)
   48728      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48729      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48730      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
   48731      368064 :          idata = idata + 1
   48732      368064 :          data_tmp = full_data(idata)
   48733      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48734      368064 :          data_tmp = IAND(data_tmp, mask_left(1))
   48735      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48736      368064 :          ipack = ipack + 1
   48737      368064 :          packed_data(ipack) = pack_tmp
   48738      368064 :          data_tmp = full_data(idata)
   48739      368064 :          pack_tmp = ISHFT(data_tmp, 6)
   48740      368064 :          pack_tmp = ISHFT(pack_tmp, -6)
   48741      368064 :          idata = idata + 1
   48742      368064 :          data_tmp = full_data(idata)
   48743      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48744      368064 :          data_tmp = IAND(data_tmp, mask_left(6))
   48745      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48746      368064 :          ipack = ipack + 1
   48747      368064 :          packed_data(ipack) = pack_tmp
   48748      368064 :          data_tmp = full_data(idata)
   48749      368064 :          pack_tmp = ISHFT(data_tmp, 11)
   48750      368064 :          pack_tmp = ISHFT(pack_tmp, -11)
   48751      368064 :          idata = idata + 1
   48752      368064 :          data_tmp = full_data(idata)
   48753      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48754      368064 :          data_tmp = IAND(data_tmp, mask_left(11))
   48755      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48756      368064 :          ipack = ipack + 1
   48757      368064 :          packed_data(ipack) = pack_tmp
   48758      368064 :          data_tmp = full_data(idata)
   48759      368064 :          pack_tmp = ISHFT(data_tmp, 16)
   48760      368064 :          pack_tmp = ISHFT(pack_tmp, -16)
   48761      368064 :          idata = idata + 1
   48762      368064 :          data_tmp = full_data(idata)
   48763      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48764      368064 :          data_tmp = IAND(data_tmp, mask_left(16))
   48765      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48766      368064 :          ipack = ipack + 1
   48767      368064 :          packed_data(ipack) = pack_tmp
   48768      368064 :          data_tmp = full_data(idata)
   48769      368064 :          pack_tmp = ISHFT(data_tmp, 21)
   48770      368064 :          pack_tmp = ISHFT(pack_tmp, -21)
   48771      368064 :          idata = idata + 1
   48772      368064 :          data_tmp = full_data(idata)
   48773      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48774      368064 :          data_tmp = IAND(data_tmp, mask_left(21))
   48775      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48776      368064 :          ipack = ipack + 1
   48777      368064 :          packed_data(ipack) = pack_tmp
   48778      368064 :          data_tmp = full_data(idata)
   48779      368064 :          pack_tmp = ISHFT(data_tmp, 26)
   48780      368064 :          pack_tmp = ISHFT(pack_tmp, -26)
   48781      368064 :          idata = idata + 1
   48782      368064 :          data_tmp = full_data(idata)
   48783      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48784      368064 :          data_tmp = IAND(data_tmp, mask_left(26))
   48785      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48786      368064 :          ipack = ipack + 1
   48787      368064 :          packed_data(ipack) = pack_tmp
   48788      368064 :          data_tmp = full_data(idata)
   48789      368064 :          pack_tmp = ISHFT(data_tmp, 31)
   48790      368064 :          pack_tmp = ISHFT(pack_tmp, -31)
   48791      368064 :          idata = idata + 1
   48792      368064 :          data_tmp = full_data(idata)
   48793      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48794      368064 :          data_tmp = IAND(data_tmp, mask_left(31))
   48795      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48796      368064 :          ipack = ipack + 1
   48797      368064 :          packed_data(ipack) = pack_tmp
   48798      368064 :          data_tmp = full_data(idata)
   48799      368064 :          pack_tmp = ISHFT(data_tmp, 36)
   48800      368064 :          pack_tmp = ISHFT(pack_tmp, -36)
   48801      368064 :          idata = idata + 1
   48802      368064 :          data_tmp = full_data(idata)
   48803      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48804      368064 :          data_tmp = IAND(data_tmp, mask_left(36))
   48805      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48806      368064 :          ipack = ipack + 1
   48807      368064 :          packed_data(ipack) = pack_tmp
   48808      368064 :          data_tmp = full_data(idata)
   48809      368064 :          pack_tmp = ISHFT(data_tmp, 41)
   48810      368064 :          pack_tmp = ISHFT(pack_tmp, -41)
   48811      368064 :          idata = idata + 1
   48812      368064 :          data_tmp = full_data(idata)
   48813      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48814      368064 :          data_tmp = IAND(data_tmp, mask_left(41))
   48815      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48816      368064 :          ipack = ipack + 1
   48817      368064 :          packed_data(ipack) = pack_tmp
   48818      368064 :          data_tmp = full_data(idata)
   48819      368064 :          pack_tmp = ISHFT(data_tmp, 46)
   48820      368064 :          pack_tmp = ISHFT(pack_tmp, -46)
   48821      368064 :          idata = idata + 1
   48822      368064 :          data_tmp = full_data(idata)
   48823      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48824      368064 :          data_tmp = IAND(data_tmp, mask_left(46))
   48825      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48826      368064 :          ipack = ipack + 1
   48827      368064 :          packed_data(ipack) = pack_tmp
   48828      368064 :          data_tmp = full_data(idata)
   48829      368064 :          pack_tmp = ISHFT(data_tmp, 51)
   48830      368064 :          pack_tmp = ISHFT(pack_tmp, -51)
   48831      368064 :          idata = idata + 1
   48832      368064 :          data_tmp = full_data(idata)
   48833      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48834      368064 :          data_tmp = IAND(data_tmp, mask_left(51))
   48835      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48836      368064 :          ipack = ipack + 1
   48837      368064 :          packed_data(ipack) = pack_tmp
   48838      368064 :          data_tmp = full_data(idata)
   48839      368064 :          pack_tmp = ISHFT(data_tmp, 56)
   48840      368064 :          pack_tmp = ISHFT(pack_tmp, -56)
   48841      368064 :          idata = idata + 1
   48842      368064 :          data_tmp = full_data(idata)
   48843      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48844      368064 :          data_tmp = IAND(data_tmp, mask_left(56))
   48845      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48846      368064 :          ipack = ipack + 1
   48847      368064 :          packed_data(ipack) = pack_tmp
   48848      368064 :          data_tmp = full_data(idata)
   48849      368064 :          pack_tmp = ISHFT(data_tmp, 61)
   48850      368064 :          pack_tmp = ISHFT(pack_tmp, -59)
   48851      368064 :          idata = idata + 1
   48852      368064 :          data_tmp = full_data(idata)
   48853      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48854      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48855      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
   48856      368064 :          idata = idata + 1
   48857      368064 :          data_tmp = full_data(idata)
   48858      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48859      368064 :          data_tmp = IAND(data_tmp, mask_left(2))
   48860      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48861      368064 :          ipack = ipack + 1
   48862      368064 :          packed_data(ipack) = pack_tmp
   48863      368064 :          data_tmp = full_data(idata)
   48864      368064 :          pack_tmp = ISHFT(data_tmp, 7)
   48865      368064 :          pack_tmp = ISHFT(pack_tmp, -7)
   48866      368064 :          idata = idata + 1
   48867      368064 :          data_tmp = full_data(idata)
   48868      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48869      368064 :          data_tmp = IAND(data_tmp, mask_left(7))
   48870      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48871      368064 :          ipack = ipack + 1
   48872      368064 :          packed_data(ipack) = pack_tmp
   48873      368064 :          data_tmp = full_data(idata)
   48874      368064 :          pack_tmp = ISHFT(data_tmp, 12)
   48875      368064 :          pack_tmp = ISHFT(pack_tmp, -12)
   48876      368064 :          idata = idata + 1
   48877      368064 :          data_tmp = full_data(idata)
   48878      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48879      368064 :          data_tmp = IAND(data_tmp, mask_left(12))
   48880      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48881      368064 :          ipack = ipack + 1
   48882      368064 :          packed_data(ipack) = pack_tmp
   48883      368064 :          data_tmp = full_data(idata)
   48884      368064 :          pack_tmp = ISHFT(data_tmp, 17)
   48885      368064 :          pack_tmp = ISHFT(pack_tmp, -17)
   48886      368064 :          idata = idata + 1
   48887      368064 :          data_tmp = full_data(idata)
   48888      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48889      368064 :          data_tmp = IAND(data_tmp, mask_left(17))
   48890      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48891      368064 :          ipack = ipack + 1
   48892      368064 :          packed_data(ipack) = pack_tmp
   48893      368064 :          data_tmp = full_data(idata)
   48894      368064 :          pack_tmp = ISHFT(data_tmp, 22)
   48895      368064 :          pack_tmp = ISHFT(pack_tmp, -22)
   48896      368064 :          idata = idata + 1
   48897      368064 :          data_tmp = full_data(idata)
   48898      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48899      368064 :          data_tmp = IAND(data_tmp, mask_left(22))
   48900      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48901      368064 :          ipack = ipack + 1
   48902      368064 :          packed_data(ipack) = pack_tmp
   48903      368064 :          data_tmp = full_data(idata)
   48904      368064 :          pack_tmp = ISHFT(data_tmp, 27)
   48905      368064 :          pack_tmp = ISHFT(pack_tmp, -27)
   48906      368064 :          idata = idata + 1
   48907      368064 :          data_tmp = full_data(idata)
   48908      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48909      368064 :          data_tmp = IAND(data_tmp, mask_left(27))
   48910      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48911      368064 :          ipack = ipack + 1
   48912      368064 :          packed_data(ipack) = pack_tmp
   48913      368064 :          data_tmp = full_data(idata)
   48914      368064 :          pack_tmp = ISHFT(data_tmp, 32)
   48915      368064 :          pack_tmp = ISHFT(pack_tmp, -32)
   48916      368064 :          idata = idata + 1
   48917      368064 :          data_tmp = full_data(idata)
   48918      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48919      368064 :          data_tmp = IAND(data_tmp, mask_left(32))
   48920      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48921      368064 :          ipack = ipack + 1
   48922      368064 :          packed_data(ipack) = pack_tmp
   48923      368064 :          data_tmp = full_data(idata)
   48924      368064 :          pack_tmp = ISHFT(data_tmp, 37)
   48925      368064 :          pack_tmp = ISHFT(pack_tmp, -37)
   48926      368064 :          idata = idata + 1
   48927      368064 :          data_tmp = full_data(idata)
   48928      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48929      368064 :          data_tmp = IAND(data_tmp, mask_left(37))
   48930      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48931      368064 :          ipack = ipack + 1
   48932      368064 :          packed_data(ipack) = pack_tmp
   48933      368064 :          data_tmp = full_data(idata)
   48934      368064 :          pack_tmp = ISHFT(data_tmp, 42)
   48935      368064 :          pack_tmp = ISHFT(pack_tmp, -42)
   48936      368064 :          idata = idata + 1
   48937      368064 :          data_tmp = full_data(idata)
   48938      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48939      368064 :          data_tmp = IAND(data_tmp, mask_left(42))
   48940      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48941      368064 :          ipack = ipack + 1
   48942      368064 :          packed_data(ipack) = pack_tmp
   48943      368064 :          data_tmp = full_data(idata)
   48944      368064 :          pack_tmp = ISHFT(data_tmp, 47)
   48945      368064 :          pack_tmp = ISHFT(pack_tmp, -47)
   48946      368064 :          idata = idata + 1
   48947      368064 :          data_tmp = full_data(idata)
   48948      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48949      368064 :          data_tmp = IAND(data_tmp, mask_left(47))
   48950      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48951      368064 :          ipack = ipack + 1
   48952      368064 :          packed_data(ipack) = pack_tmp
   48953      368064 :          data_tmp = full_data(idata)
   48954      368064 :          pack_tmp = ISHFT(data_tmp, 52)
   48955      368064 :          pack_tmp = ISHFT(pack_tmp, -52)
   48956      368064 :          idata = idata + 1
   48957      368064 :          data_tmp = full_data(idata)
   48958      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48959      368064 :          data_tmp = IAND(data_tmp, mask_left(52))
   48960      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48961      368064 :          ipack = ipack + 1
   48962      368064 :          packed_data(ipack) = pack_tmp
   48963      368064 :          data_tmp = full_data(idata)
   48964      368064 :          pack_tmp = ISHFT(data_tmp, 57)
   48965      368064 :          pack_tmp = ISHFT(pack_tmp, -57)
   48966      368064 :          idata = idata + 1
   48967      368064 :          data_tmp = full_data(idata)
   48968      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48969      368064 :          data_tmp = IAND(data_tmp, mask_left(57))
   48970      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48971      368064 :          ipack = ipack + 1
   48972      368064 :          packed_data(ipack) = pack_tmp
   48973      368064 :          data_tmp = full_data(idata)
   48974      368064 :          pack_tmp = ISHFT(data_tmp, 62)
   48975      368064 :          pack_tmp = ISHFT(pack_tmp, -59)
   48976      368064 :          idata = idata + 1
   48977      368064 :          data_tmp = full_data(idata)
   48978      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48979      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48980      368064 :          pack_tmp = ISHFT(pack_tmp, -3)
   48981      368064 :          idata = idata + 1
   48982      368064 :          data_tmp = full_data(idata)
   48983      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48984      368064 :          data_tmp = IAND(data_tmp, mask_left(3))
   48985      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48986      368064 :          ipack = ipack + 1
   48987      368064 :          packed_data(ipack) = pack_tmp
   48988      368064 :          data_tmp = full_data(idata)
   48989      368064 :          pack_tmp = ISHFT(data_tmp, 8)
   48990      368064 :          pack_tmp = ISHFT(pack_tmp, -8)
   48991      368064 :          idata = idata + 1
   48992      368064 :          data_tmp = full_data(idata)
   48993      368064 :          data_tmp = ISHFT(data_tmp, 5)
   48994      368064 :          data_tmp = IAND(data_tmp, mask_left(8))
   48995      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48996      368064 :          ipack = ipack + 1
   48997      368064 :          packed_data(ipack) = pack_tmp
   48998      368064 :          data_tmp = full_data(idata)
   48999      368064 :          pack_tmp = ISHFT(data_tmp, 13)
   49000      368064 :          pack_tmp = ISHFT(pack_tmp, -13)
   49001      368064 :          idata = idata + 1
   49002      368064 :          data_tmp = full_data(idata)
   49003      368064 :          data_tmp = ISHFT(data_tmp, 5)
   49004      368064 :          data_tmp = IAND(data_tmp, mask_left(13))
   49005      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49006      368064 :          ipack = ipack + 1
   49007      368064 :          packed_data(ipack) = pack_tmp
   49008      368064 :          data_tmp = full_data(idata)
   49009      368064 :          pack_tmp = ISHFT(data_tmp, 18)
   49010      368064 :          pack_tmp = ISHFT(pack_tmp, -18)
   49011      368064 :          idata = idata + 1
   49012      368064 :          data_tmp = full_data(idata)
   49013      368064 :          data_tmp = ISHFT(data_tmp, 5)
   49014      368064 :          data_tmp = IAND(data_tmp, mask_left(18))
   49015      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49016      368064 :          ipack = ipack + 1
   49017      368064 :          packed_data(ipack) = pack_tmp
   49018      368064 :          data_tmp = full_data(idata)
   49019      368064 :          pack_tmp = ISHFT(data_tmp, 23)
   49020      368064 :          pack_tmp = ISHFT(pack_tmp, -23)
   49021      368064 :          idata = idata + 1
   49022      368064 :          data_tmp = full_data(idata)
   49023      368064 :          data_tmp = ISHFT(data_tmp, 5)
   49024      368064 :          data_tmp = IAND(data_tmp, mask_left(23))
   49025      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49026      368064 :          ipack = ipack + 1
   49027      368064 :          packed_data(ipack) = pack_tmp
   49028      368064 :          data_tmp = full_data(idata)
   49029      368064 :          pack_tmp = ISHFT(data_tmp, 28)
   49030      368064 :          pack_tmp = ISHFT(pack_tmp, -28)
   49031      368064 :          idata = idata + 1
   49032      368064 :          data_tmp = full_data(idata)
   49033      368064 :          data_tmp = ISHFT(data_tmp, 5)
   49034      368064 :          data_tmp = IAND(data_tmp, mask_left(28))
   49035      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49036      368064 :          ipack = ipack + 1
   49037      368064 :          packed_data(ipack) = pack_tmp
   49038      368064 :          data_tmp = full_data(idata)
   49039      368064 :          pack_tmp = ISHFT(data_tmp, 33)
   49040      368064 :          pack_tmp = ISHFT(pack_tmp, -33)
   49041      368064 :          idata = idata + 1
   49042      368064 :          data_tmp = full_data(idata)
   49043      368064 :          data_tmp = ISHFT(data_tmp, 5)
   49044      368064 :          data_tmp = IAND(data_tmp, mask_left(33))
   49045      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49046      368064 :          ipack = ipack + 1
   49047      368064 :          packed_data(ipack) = pack_tmp
   49048      368064 :          data_tmp = full_data(idata)
   49049      368064 :          pack_tmp = ISHFT(data_tmp, 38)
   49050      368064 :          pack_tmp = ISHFT(pack_tmp, -38)
   49051      368064 :          idata = idata + 1
   49052      368064 :          data_tmp = full_data(idata)
   49053      368064 :          data_tmp = ISHFT(data_tmp, 5)
   49054      368064 :          data_tmp = IAND(data_tmp, mask_left(38))
   49055      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49056      368064 :          ipack = ipack + 1
   49057      368064 :          packed_data(ipack) = pack_tmp
   49058      368064 :          data_tmp = full_data(idata)
   49059      368064 :          pack_tmp = ISHFT(data_tmp, 43)
   49060      368064 :          pack_tmp = ISHFT(pack_tmp, -43)
   49061      368064 :          idata = idata + 1
   49062      368064 :          data_tmp = full_data(idata)
   49063      368064 :          data_tmp = ISHFT(data_tmp, 5)
   49064      368064 :          data_tmp = IAND(data_tmp, mask_left(43))
   49065      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49066      368064 :          ipack = ipack + 1
   49067      368064 :          packed_data(ipack) = pack_tmp
   49068      368064 :          data_tmp = full_data(idata)
   49069      368064 :          pack_tmp = ISHFT(data_tmp, 48)
   49070      368064 :          pack_tmp = ISHFT(pack_tmp, -48)
   49071      368064 :          idata = idata + 1
   49072      368064 :          data_tmp = full_data(idata)
   49073      368064 :          data_tmp = ISHFT(data_tmp, 5)
   49074      368064 :          data_tmp = IAND(data_tmp, mask_left(48))
   49075      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49076      368064 :          ipack = ipack + 1
   49077      368064 :          packed_data(ipack) = pack_tmp
   49078      368064 :          data_tmp = full_data(idata)
   49079      368064 :          pack_tmp = ISHFT(data_tmp, 53)
   49080      368064 :          pack_tmp = ISHFT(pack_tmp, -53)
   49081      368064 :          idata = idata + 1
   49082      368064 :          data_tmp = full_data(idata)
   49083      368064 :          data_tmp = ISHFT(data_tmp, 5)
   49084      368064 :          data_tmp = IAND(data_tmp, mask_left(53))
   49085      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49086      368064 :          ipack = ipack + 1
   49087      368064 :          packed_data(ipack) = pack_tmp
   49088      368064 :          data_tmp = full_data(idata)
   49089      368064 :          pack_tmp = ISHFT(data_tmp, 58)
   49090      368064 :          pack_tmp = ISHFT(pack_tmp, -58)
   49091      368064 :          idata = idata + 1
   49092      368064 :          data_tmp = full_data(idata)
   49093      368064 :          data_tmp = ISHFT(data_tmp, 5)
   49094      368064 :          data_tmp = IAND(data_tmp, mask_left(58))
   49095      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49096      368064 :          ipack = ipack + 1
   49097      368064 :          packed_data(ipack) = pack_tmp
   49098      368064 :          data_tmp = full_data(idata)
   49099      368064 :          pack_tmp = ISHFT(data_tmp, 63)
   49100      368064 :          pack_tmp = ISHFT(pack_tmp, -59)
   49101      368064 :          idata = idata + 1
   49102      368064 :          data_tmp = full_data(idata)
   49103      368064 :          data_tmp = ISHFT(data_tmp, 5)
   49104      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49105      368064 :          pack_tmp = ISHFT(pack_tmp, -4)
   49106      368064 :          idata = idata + 1
   49107      368064 :          data_tmp = full_data(idata)
   49108      368064 :          data_tmp = ISHFT(data_tmp, 5)
   49109      368064 :          data_tmp = IAND(data_tmp, mask_left(4))
   49110      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49111      368064 :          ipack = ipack + 1
   49112      368064 :          packed_data(ipack) = pack_tmp
   49113      368064 :          data_tmp = full_data(idata)
   49114      368064 :          pack_tmp = ISHFT(data_tmp, 9)
   49115      368064 :          pack_tmp = ISHFT(pack_tmp, -9)
   49116      368064 :          idata = idata + 1
   49117      368064 :          data_tmp = full_data(idata)
   49118      368064 :          data_tmp = ISHFT(data_tmp, 5)
   49119      368064 :          data_tmp = IAND(data_tmp, mask_left(9))
   49120      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49121      368064 :          ipack = ipack + 1
   49122      368064 :          packed_data(ipack) = pack_tmp
   49123      368064 :          data_tmp = full_data(idata)
   49124      368064 :          pack_tmp = ISHFT(data_tmp, 14)
   49125      368064 :          pack_tmp = ISHFT(pack_tmp, -14)
   49126      368064 :          idata = idata + 1
   49127      368064 :          data_tmp = full_data(idata)
   49128      368064 :          data_tmp = ISHFT(data_tmp, 5)
   49129      368064 :          data_tmp = IAND(data_tmp, mask_left(14))
   49130      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49131      368064 :          ipack = ipack + 1
   49132      368064 :          packed_data(ipack) = pack_tmp
   49133      368064 :          data_tmp = full_data(idata)
   49134      368064 :          pack_tmp = ISHFT(data_tmp, 19)
   49135      368064 :          pack_tmp = ISHFT(pack_tmp, -19)
   49136      368064 :          idata = idata + 1
   49137      368064 :          data_tmp = full_data(idata)
   49138      368064 :          data_tmp = ISHFT(data_tmp, 5)
   49139      368064 :          data_tmp = IAND(data_tmp, mask_left(19))
   49140      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49141      368064 :          ipack = ipack + 1
   49142      368064 :          packed_data(ipack) = pack_tmp
   49143      368064 :          data_tmp = full_data(idata)
   49144      368064 :          pack_tmp = ISHFT(data_tmp, 24)
   49145      368064 :          pack_tmp = ISHFT(pack_tmp, -24)
   49146      368064 :          idata = idata + 1
   49147      368064 :          data_tmp = full_data(idata)
   49148      368064 :          data_tmp = ISHFT(data_tmp, 5)
   49149      368064 :          data_tmp = IAND(data_tmp, mask_left(24))
   49150      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49151      368064 :          ipack = ipack + 1
   49152      368064 :          packed_data(ipack) = pack_tmp
   49153      368064 :          data_tmp = full_data(idata)
   49154      368064 :          pack_tmp = ISHFT(data_tmp, 29)
   49155      368064 :          pack_tmp = ISHFT(pack_tmp, -29)
   49156      368064 :          idata = idata + 1
   49157      368064 :          data_tmp = full_data(idata)
   49158      368064 :          data_tmp = ISHFT(data_tmp, 5)
   49159      368064 :          data_tmp = IAND(data_tmp, mask_left(29))
   49160      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49161      368064 :          ipack = ipack + 1
   49162      368064 :          packed_data(ipack) = pack_tmp
   49163      368064 :          data_tmp = full_data(idata)
   49164      368064 :          pack_tmp = ISHFT(data_tmp, 34)
   49165      368064 :          pack_tmp = ISHFT(pack_tmp, -34)
   49166      368064 :          idata = idata + 1
   49167      368064 :          data_tmp = full_data(idata)
   49168      368064 :          data_tmp = ISHFT(data_tmp, 5)
   49169      368064 :          data_tmp = IAND(data_tmp, mask_left(34))
   49170      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49171      368064 :          ipack = ipack + 1
   49172      368064 :          packed_data(ipack) = pack_tmp
   49173      368064 :          data_tmp = full_data(idata)
   49174      368064 :          pack_tmp = ISHFT(data_tmp, 39)
   49175      368064 :          pack_tmp = ISHFT(pack_tmp, -39)
   49176      368064 :          idata = idata + 1
   49177      368064 :          data_tmp = full_data(idata)
   49178      368064 :          data_tmp = ISHFT(data_tmp, 5)
   49179      368064 :          data_tmp = IAND(data_tmp, mask_left(39))
   49180      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49181      368064 :          ipack = ipack + 1
   49182      368064 :          packed_data(ipack) = pack_tmp
   49183      368064 :          data_tmp = full_data(idata)
   49184      368064 :          pack_tmp = ISHFT(data_tmp, 44)
   49185      368064 :          pack_tmp = ISHFT(pack_tmp, -44)
   49186      368064 :          idata = idata + 1
   49187      368064 :          data_tmp = full_data(idata)
   49188      368064 :          data_tmp = ISHFT(data_tmp, 5)
   49189      368064 :          data_tmp = IAND(data_tmp, mask_left(44))
   49190      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49191      368064 :          ipack = ipack + 1
   49192      368064 :          packed_data(ipack) = pack_tmp
   49193      368064 :          data_tmp = full_data(idata)
   49194      368064 :          pack_tmp = ISHFT(data_tmp, 49)
   49195      368064 :          pack_tmp = ISHFT(pack_tmp, -49)
   49196      368064 :          idata = idata + 1
   49197      368064 :          data_tmp = full_data(idata)
   49198      368064 :          data_tmp = ISHFT(data_tmp, 5)
   49199      368064 :          data_tmp = IAND(data_tmp, mask_left(49))
   49200      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49201      368064 :          ipack = ipack + 1
   49202      368064 :          packed_data(ipack) = pack_tmp
   49203      368064 :          data_tmp = full_data(idata)
   49204      368064 :          pack_tmp = ISHFT(data_tmp, 54)
   49205      368064 :          pack_tmp = ISHFT(pack_tmp, -54)
   49206      368064 :          idata = idata + 1
   49207      368064 :          data_tmp = full_data(idata)
   49208      368064 :          data_tmp = ISHFT(data_tmp, 5)
   49209      368064 :          data_tmp = IAND(data_tmp, mask_left(54))
   49210      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49211      368064 :          ipack = ipack + 1
   49212      368064 :          packed_data(ipack) = pack_tmp
   49213      368064 :          data_tmp = full_data(idata)
   49214      368064 :          pack_tmp = ISHFT(data_tmp, 59)
   49215      368064 :          pack_tmp = ISHFT(pack_tmp, -59)
   49216      368064 :          idata = idata + 1
   49217      368064 :          data_tmp = full_data(idata)
   49218      368064 :          data_tmp = ISHFT(data_tmp, 5)
   49219      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49220             :          pack_tmp = ISHFT(pack_tmp, 0)
   49221      368064 :          pack_tmp = ISHFT(pack_tmp, 0)
   49222      368064 :          ipack = ipack + 1
   49223      368064 :          packed_data(ipack) = pack_tmp
   49224             :       END DO
   49225       23004 :       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       23004 :    END SUBROUTINE ints2bits_59
   49229             : 
   49230             : ! **************************************************************************************************
   49231             : !> \brief ...
   49232             : !> \param Ndata ...
   49233             : !> \param packed_data ...
   49234             : !> \param full_data ...
   49235             : ! **************************************************************************************************
   49236       93707 :    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       93707 :       ipack = 0
   49247       93707 :       idata = 0
   49248       93707 :       pack_tmp = 0
   49249       93707 :       Ndata_rep = (Ndata/64)*64
   49250       93707 :       DO kdata = 1, Ndata_rep, 64
   49251     1499312 :          idata = idata + 1
   49252     1499312 :          data_tmp = ISHFT(pack_tmp, 59)
   49253     1499312 :          ipack = ipack + 1
   49254     1499312 :          pack_tmp = packed_data(ipack)
   49255     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(59)))
   49256     1499312 :          pack_tmp = ISHFT(pack_tmp, -59)
   49257     1499312 :          idata = idata + 1
   49258     1499312 :          data_tmp = ISHFT(pack_tmp, 54)
   49259     1499312 :          ipack = ipack + 1
   49260     1499312 :          pack_tmp = packed_data(ipack)
   49261     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   49262     1499312 :          pack_tmp = ISHFT(pack_tmp, -54)
   49263     1499312 :          idata = idata + 1
   49264     1499312 :          data_tmp = ISHFT(pack_tmp, 49)
   49265     1499312 :          ipack = ipack + 1
   49266     1499312 :          pack_tmp = packed_data(ipack)
   49267     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   49268     1499312 :          pack_tmp = ISHFT(pack_tmp, -49)
   49269     1499312 :          idata = idata + 1
   49270     1499312 :          data_tmp = ISHFT(pack_tmp, 44)
   49271     1499312 :          ipack = ipack + 1
   49272     1499312 :          pack_tmp = packed_data(ipack)
   49273     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   49274     1499312 :          pack_tmp = ISHFT(pack_tmp, -44)
   49275     1499312 :          idata = idata + 1
   49276     1499312 :          data_tmp = ISHFT(pack_tmp, 39)
   49277     1499312 :          ipack = ipack + 1
   49278     1499312 :          pack_tmp = packed_data(ipack)
   49279     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   49280     1499312 :          pack_tmp = ISHFT(pack_tmp, -39)
   49281     1499312 :          idata = idata + 1
   49282     1499312 :          data_tmp = ISHFT(pack_tmp, 34)
   49283     1499312 :          ipack = ipack + 1
   49284     1499312 :          pack_tmp = packed_data(ipack)
   49285     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   49286     1499312 :          pack_tmp = ISHFT(pack_tmp, -34)
   49287     1499312 :          idata = idata + 1
   49288     1499312 :          data_tmp = ISHFT(pack_tmp, 29)
   49289     1499312 :          ipack = ipack + 1
   49290     1499312 :          pack_tmp = packed_data(ipack)
   49291     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   49292     1499312 :          pack_tmp = ISHFT(pack_tmp, -29)
   49293     1499312 :          idata = idata + 1
   49294     1499312 :          data_tmp = ISHFT(pack_tmp, 24)
   49295     1499312 :          ipack = ipack + 1
   49296     1499312 :          pack_tmp = packed_data(ipack)
   49297     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   49298     1499312 :          pack_tmp = ISHFT(pack_tmp, -24)
   49299     1499312 :          idata = idata + 1
   49300     1499312 :          data_tmp = ISHFT(pack_tmp, 19)
   49301     1499312 :          ipack = ipack + 1
   49302     1499312 :          pack_tmp = packed_data(ipack)
   49303     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   49304     1499312 :          pack_tmp = ISHFT(pack_tmp, -19)
   49305     1499312 :          idata = idata + 1
   49306     1499312 :          data_tmp = ISHFT(pack_tmp, 14)
   49307     1499312 :          ipack = ipack + 1
   49308     1499312 :          pack_tmp = packed_data(ipack)
   49309     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   49310     1499312 :          pack_tmp = ISHFT(pack_tmp, -14)
   49311     1499312 :          idata = idata + 1
   49312     1499312 :          data_tmp = ISHFT(pack_tmp, 9)
   49313     1499312 :          ipack = ipack + 1
   49314     1499312 :          pack_tmp = packed_data(ipack)
   49315     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   49316     1499312 :          pack_tmp = ISHFT(pack_tmp, -9)
   49317     1499312 :          idata = idata + 1
   49318     1499312 :          data_tmp = ISHFT(pack_tmp, 4)
   49319     1499312 :          ipack = ipack + 1
   49320     1499312 :          pack_tmp = packed_data(ipack)
   49321     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   49322     1499312 :          pack_tmp = ISHFT(pack_tmp, -4)
   49323     1499312 :          idata = idata + 1
   49324     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   49325     1499312 :          full_data(idata) = data_tmp
   49326     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   49327     1499312 :          idata = idata + 1
   49328     1499312 :          data_tmp = ISHFT(pack_tmp, 58)
   49329     1499312 :          ipack = ipack + 1
   49330     1499312 :          pack_tmp = packed_data(ipack)
   49331     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   49332     1499312 :          pack_tmp = ISHFT(pack_tmp, -58)
   49333     1499312 :          idata = idata + 1
   49334     1499312 :          data_tmp = ISHFT(pack_tmp, 53)
   49335     1499312 :          ipack = ipack + 1
   49336     1499312 :          pack_tmp = packed_data(ipack)
   49337     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   49338     1499312 :          pack_tmp = ISHFT(pack_tmp, -53)
   49339     1499312 :          idata = idata + 1
   49340     1499312 :          data_tmp = ISHFT(pack_tmp, 48)
   49341     1499312 :          ipack = ipack + 1
   49342     1499312 :          pack_tmp = packed_data(ipack)
   49343     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   49344     1499312 :          pack_tmp = ISHFT(pack_tmp, -48)
   49345     1499312 :          idata = idata + 1
   49346     1499312 :          data_tmp = ISHFT(pack_tmp, 43)
   49347     1499312 :          ipack = ipack + 1
   49348     1499312 :          pack_tmp = packed_data(ipack)
   49349     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   49350     1499312 :          pack_tmp = ISHFT(pack_tmp, -43)
   49351     1499312 :          idata = idata + 1
   49352     1499312 :          data_tmp = ISHFT(pack_tmp, 38)
   49353     1499312 :          ipack = ipack + 1
   49354     1499312 :          pack_tmp = packed_data(ipack)
   49355     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   49356     1499312 :          pack_tmp = ISHFT(pack_tmp, -38)
   49357     1499312 :          idata = idata + 1
   49358     1499312 :          data_tmp = ISHFT(pack_tmp, 33)
   49359     1499312 :          ipack = ipack + 1
   49360     1499312 :          pack_tmp = packed_data(ipack)
   49361     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   49362     1499312 :          pack_tmp = ISHFT(pack_tmp, -33)
   49363     1499312 :          idata = idata + 1
   49364     1499312 :          data_tmp = ISHFT(pack_tmp, 28)
   49365     1499312 :          ipack = ipack + 1
   49366     1499312 :          pack_tmp = packed_data(ipack)
   49367     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   49368     1499312 :          pack_tmp = ISHFT(pack_tmp, -28)
   49369     1499312 :          idata = idata + 1
   49370     1499312 :          data_tmp = ISHFT(pack_tmp, 23)
   49371     1499312 :          ipack = ipack + 1
   49372     1499312 :          pack_tmp = packed_data(ipack)
   49373     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   49374     1499312 :          pack_tmp = ISHFT(pack_tmp, -23)
   49375     1499312 :          idata = idata + 1
   49376     1499312 :          data_tmp = ISHFT(pack_tmp, 18)
   49377     1499312 :          ipack = ipack + 1
   49378     1499312 :          pack_tmp = packed_data(ipack)
   49379     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   49380     1499312 :          pack_tmp = ISHFT(pack_tmp, -18)
   49381     1499312 :          idata = idata + 1
   49382     1499312 :          data_tmp = ISHFT(pack_tmp, 13)
   49383     1499312 :          ipack = ipack + 1
   49384     1499312 :          pack_tmp = packed_data(ipack)
   49385     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   49386     1499312 :          pack_tmp = ISHFT(pack_tmp, -13)
   49387     1499312 :          idata = idata + 1
   49388     1499312 :          data_tmp = ISHFT(pack_tmp, 8)
   49389     1499312 :          ipack = ipack + 1
   49390     1499312 :          pack_tmp = packed_data(ipack)
   49391     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   49392     1499312 :          pack_tmp = ISHFT(pack_tmp, -8)
   49393     1499312 :          idata = idata + 1
   49394     1499312 :          data_tmp = ISHFT(pack_tmp, 3)
   49395     1499312 :          ipack = ipack + 1
   49396     1499312 :          pack_tmp = packed_data(ipack)
   49397     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   49398     1499312 :          pack_tmp = ISHFT(pack_tmp, -3)
   49399     1499312 :          idata = idata + 1
   49400     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   49401     1499312 :          full_data(idata) = data_tmp
   49402     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   49403     1499312 :          idata = idata + 1
   49404     1499312 :          data_tmp = ISHFT(pack_tmp, 57)
   49405     1499312 :          ipack = ipack + 1
   49406     1499312 :          pack_tmp = packed_data(ipack)
   49407     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(57)))
   49408     1499312 :          pack_tmp = ISHFT(pack_tmp, -57)
   49409     1499312 :          idata = idata + 1
   49410     1499312 :          data_tmp = ISHFT(pack_tmp, 52)
   49411     1499312 :          ipack = ipack + 1
   49412     1499312 :          pack_tmp = packed_data(ipack)
   49413     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   49414     1499312 :          pack_tmp = ISHFT(pack_tmp, -52)
   49415     1499312 :          idata = idata + 1
   49416     1499312 :          data_tmp = ISHFT(pack_tmp, 47)
   49417     1499312 :          ipack = ipack + 1
   49418     1499312 :          pack_tmp = packed_data(ipack)
   49419     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   49420     1499312 :          pack_tmp = ISHFT(pack_tmp, -47)
   49421     1499312 :          idata = idata + 1
   49422     1499312 :          data_tmp = ISHFT(pack_tmp, 42)
   49423     1499312 :          ipack = ipack + 1
   49424     1499312 :          pack_tmp = packed_data(ipack)
   49425     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   49426     1499312 :          pack_tmp = ISHFT(pack_tmp, -42)
   49427     1499312 :          idata = idata + 1
   49428     1499312 :          data_tmp = ISHFT(pack_tmp, 37)
   49429     1499312 :          ipack = ipack + 1
   49430     1499312 :          pack_tmp = packed_data(ipack)
   49431     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   49432     1499312 :          pack_tmp = ISHFT(pack_tmp, -37)
   49433     1499312 :          idata = idata + 1
   49434     1499312 :          data_tmp = ISHFT(pack_tmp, 32)
   49435     1499312 :          ipack = ipack + 1
   49436     1499312 :          pack_tmp = packed_data(ipack)
   49437     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   49438     1499312 :          pack_tmp = ISHFT(pack_tmp, -32)
   49439     1499312 :          idata = idata + 1
   49440     1499312 :          data_tmp = ISHFT(pack_tmp, 27)
   49441     1499312 :          ipack = ipack + 1
   49442     1499312 :          pack_tmp = packed_data(ipack)
   49443     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   49444     1499312 :          pack_tmp = ISHFT(pack_tmp, -27)
   49445     1499312 :          idata = idata + 1
   49446     1499312 :          data_tmp = ISHFT(pack_tmp, 22)
   49447     1499312 :          ipack = ipack + 1
   49448     1499312 :          pack_tmp = packed_data(ipack)
   49449     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   49450     1499312 :          pack_tmp = ISHFT(pack_tmp, -22)
   49451     1499312 :          idata = idata + 1
   49452     1499312 :          data_tmp = ISHFT(pack_tmp, 17)
   49453     1499312 :          ipack = ipack + 1
   49454     1499312 :          pack_tmp = packed_data(ipack)
   49455     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   49456     1499312 :          pack_tmp = ISHFT(pack_tmp, -17)
   49457     1499312 :          idata = idata + 1
   49458     1499312 :          data_tmp = ISHFT(pack_tmp, 12)
   49459     1499312 :          ipack = ipack + 1
   49460     1499312 :          pack_tmp = packed_data(ipack)
   49461     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   49462     1499312 :          pack_tmp = ISHFT(pack_tmp, -12)
   49463     1499312 :          idata = idata + 1
   49464     1499312 :          data_tmp = ISHFT(pack_tmp, 7)
   49465     1499312 :          ipack = ipack + 1
   49466     1499312 :          pack_tmp = packed_data(ipack)
   49467     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   49468     1499312 :          pack_tmp = ISHFT(pack_tmp, -7)
   49469     1499312 :          idata = idata + 1
   49470     1499312 :          data_tmp = ISHFT(pack_tmp, 2)
   49471     1499312 :          ipack = ipack + 1
   49472     1499312 :          pack_tmp = packed_data(ipack)
   49473     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   49474     1499312 :          pack_tmp = ISHFT(pack_tmp, -2)
   49475     1499312 :          idata = idata + 1
   49476     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   49477     1499312 :          full_data(idata) = data_tmp
   49478     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   49479     1499312 :          idata = idata + 1
   49480     1499312 :          data_tmp = ISHFT(pack_tmp, 56)
   49481     1499312 :          ipack = ipack + 1
   49482     1499312 :          pack_tmp = packed_data(ipack)
   49483     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   49484     1499312 :          pack_tmp = ISHFT(pack_tmp, -56)
   49485     1499312 :          idata = idata + 1
   49486     1499312 :          data_tmp = ISHFT(pack_tmp, 51)
   49487     1499312 :          ipack = ipack + 1
   49488     1499312 :          pack_tmp = packed_data(ipack)
   49489     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   49490     1499312 :          pack_tmp = ISHFT(pack_tmp, -51)
   49491     1499312 :          idata = idata + 1
   49492     1499312 :          data_tmp = ISHFT(pack_tmp, 46)
   49493     1499312 :          ipack = ipack + 1
   49494     1499312 :          pack_tmp = packed_data(ipack)
   49495     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   49496     1499312 :          pack_tmp = ISHFT(pack_tmp, -46)
   49497     1499312 :          idata = idata + 1
   49498     1499312 :          data_tmp = ISHFT(pack_tmp, 41)
   49499     1499312 :          ipack = ipack + 1
   49500     1499312 :          pack_tmp = packed_data(ipack)
   49501     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   49502     1499312 :          pack_tmp = ISHFT(pack_tmp, -41)
   49503     1499312 :          idata = idata + 1
   49504     1499312 :          data_tmp = ISHFT(pack_tmp, 36)
   49505     1499312 :          ipack = ipack + 1
   49506     1499312 :          pack_tmp = packed_data(ipack)
   49507     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   49508     1499312 :          pack_tmp = ISHFT(pack_tmp, -36)
   49509     1499312 :          idata = idata + 1
   49510     1499312 :          data_tmp = ISHFT(pack_tmp, 31)
   49511     1499312 :          ipack = ipack + 1
   49512     1499312 :          pack_tmp = packed_data(ipack)
   49513     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   49514     1499312 :          pack_tmp = ISHFT(pack_tmp, -31)
   49515     1499312 :          idata = idata + 1
   49516     1499312 :          data_tmp = ISHFT(pack_tmp, 26)
   49517     1499312 :          ipack = ipack + 1
   49518     1499312 :          pack_tmp = packed_data(ipack)
   49519     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   49520     1499312 :          pack_tmp = ISHFT(pack_tmp, -26)
   49521     1499312 :          idata = idata + 1
   49522     1499312 :          data_tmp = ISHFT(pack_tmp, 21)
   49523     1499312 :          ipack = ipack + 1
   49524     1499312 :          pack_tmp = packed_data(ipack)
   49525     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   49526     1499312 :          pack_tmp = ISHFT(pack_tmp, -21)
   49527     1499312 :          idata = idata + 1
   49528     1499312 :          data_tmp = ISHFT(pack_tmp, 16)
   49529     1499312 :          ipack = ipack + 1
   49530     1499312 :          pack_tmp = packed_data(ipack)
   49531     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   49532     1499312 :          pack_tmp = ISHFT(pack_tmp, -16)
   49533     1499312 :          idata = idata + 1
   49534     1499312 :          data_tmp = ISHFT(pack_tmp, 11)
   49535     1499312 :          ipack = ipack + 1
   49536     1499312 :          pack_tmp = packed_data(ipack)
   49537     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   49538     1499312 :          pack_tmp = ISHFT(pack_tmp, -11)
   49539     1499312 :          idata = idata + 1
   49540     1499312 :          data_tmp = ISHFT(pack_tmp, 6)
   49541     1499312 :          ipack = ipack + 1
   49542     1499312 :          pack_tmp = packed_data(ipack)
   49543     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   49544     1499312 :          pack_tmp = ISHFT(pack_tmp, -6)
   49545     1499312 :          idata = idata + 1
   49546     1499312 :          data_tmp = ISHFT(pack_tmp, 1)
   49547     1499312 :          ipack = ipack + 1
   49548     1499312 :          pack_tmp = packed_data(ipack)
   49549     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   49550     1499312 :          pack_tmp = ISHFT(pack_tmp, -1)
   49551     1499312 :          idata = idata + 1
   49552     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   49553     1499312 :          full_data(idata) = data_tmp
   49554     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   49555     1499312 :          idata = idata + 1
   49556     1499312 :          data_tmp = ISHFT(pack_tmp, 55)
   49557     1499312 :          ipack = ipack + 1
   49558     1499312 :          pack_tmp = packed_data(ipack)
   49559     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(55)))
   49560     1499312 :          pack_tmp = ISHFT(pack_tmp, -55)
   49561     1499312 :          idata = idata + 1
   49562     1499312 :          data_tmp = ISHFT(pack_tmp, 50)
   49563     1499312 :          ipack = ipack + 1
   49564     1499312 :          pack_tmp = packed_data(ipack)
   49565     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   49566     1499312 :          pack_tmp = ISHFT(pack_tmp, -50)
   49567     1499312 :          idata = idata + 1
   49568     1499312 :          data_tmp = ISHFT(pack_tmp, 45)
   49569     1499312 :          ipack = ipack + 1
   49570     1499312 :          pack_tmp = packed_data(ipack)
   49571     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   49572     1499312 :          pack_tmp = ISHFT(pack_tmp, -45)
   49573     1499312 :          idata = idata + 1
   49574     1499312 :          data_tmp = ISHFT(pack_tmp, 40)
   49575     1499312 :          ipack = ipack + 1
   49576     1499312 :          pack_tmp = packed_data(ipack)
   49577     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   49578     1499312 :          pack_tmp = ISHFT(pack_tmp, -40)
   49579     1499312 :          idata = idata + 1
   49580     1499312 :          data_tmp = ISHFT(pack_tmp, 35)
   49581     1499312 :          ipack = ipack + 1
   49582     1499312 :          pack_tmp = packed_data(ipack)
   49583     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   49584     1499312 :          pack_tmp = ISHFT(pack_tmp, -35)
   49585     1499312 :          idata = idata + 1
   49586     1499312 :          data_tmp = ISHFT(pack_tmp, 30)
   49587     1499312 :          ipack = ipack + 1
   49588     1499312 :          pack_tmp = packed_data(ipack)
   49589     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   49590     1499312 :          pack_tmp = ISHFT(pack_tmp, -30)
   49591     1499312 :          idata = idata + 1
   49592     1499312 :          data_tmp = ISHFT(pack_tmp, 25)
   49593     1499312 :          ipack = ipack + 1
   49594     1499312 :          pack_tmp = packed_data(ipack)
   49595     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   49596     1499312 :          pack_tmp = ISHFT(pack_tmp, -25)
   49597     1499312 :          idata = idata + 1
   49598     1499312 :          data_tmp = ISHFT(pack_tmp, 20)
   49599     1499312 :          ipack = ipack + 1
   49600     1499312 :          pack_tmp = packed_data(ipack)
   49601     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   49602     1499312 :          pack_tmp = ISHFT(pack_tmp, -20)
   49603     1499312 :          idata = idata + 1
   49604     1499312 :          data_tmp = ISHFT(pack_tmp, 15)
   49605     1499312 :          ipack = ipack + 1
   49606     1499312 :          pack_tmp = packed_data(ipack)
   49607     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   49608     1499312 :          pack_tmp = ISHFT(pack_tmp, -15)
   49609     1499312 :          idata = idata + 1
   49610     1499312 :          data_tmp = ISHFT(pack_tmp, 10)
   49611     1499312 :          ipack = ipack + 1
   49612     1499312 :          pack_tmp = packed_data(ipack)
   49613     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   49614     1499312 :          pack_tmp = ISHFT(pack_tmp, -10)
   49615     1499312 :          idata = idata + 1
   49616     1499312 :          data_tmp = ISHFT(pack_tmp, 5)
   49617     1499312 :          ipack = ipack + 1
   49618     1499312 :          pack_tmp = packed_data(ipack)
   49619     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   49620     1499312 :          pack_tmp = ISHFT(pack_tmp, -5)
   49621     1499312 :          idata = idata + 1
   49622     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   49623     1499312 :          full_data(idata) = data_tmp
   49624     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   49625             :       END DO
   49626       93707 :       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       93707 :    END SUBROUTINE bits2ints_59
   49630             : 
   49631             : ! **************************************************************************************************
   49632             : !> \brief ...
   49633             : !> \param Ndata ...
   49634             : !> \param packed_data ...
   49635             : !> \param full_data ...
   49636             : ! **************************************************************************************************
   49637       23004 :    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       23004 :       idata = 0
   49648       23004 :       ipack = 0
   49649       23004 :       Ndata_rep = (Ndata/64)*64
   49650       23004 :       DO kdata = 1, Ndata_rep, 64
   49651      368064 :          pack_tmp = 0
   49652      368064 :          idata = idata + 1
   49653      368064 :          data_tmp = full_data(idata)
   49654      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49655      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49656      368064 :          pack_tmp = ISHFT(pack_tmp, -4)
   49657      368064 :          idata = idata + 1
   49658      368064 :          data_tmp = full_data(idata)
   49659      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49660      368064 :          data_tmp = IAND(data_tmp, mask_left(4))
   49661      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49662      368064 :          ipack = ipack + 1
   49663      368064 :          packed_data(ipack) = pack_tmp
   49664      368064 :          data_tmp = full_data(idata)
   49665      368064 :          pack_tmp = ISHFT(data_tmp, 8)
   49666      368064 :          pack_tmp = ISHFT(pack_tmp, -8)
   49667      368064 :          idata = idata + 1
   49668      368064 :          data_tmp = full_data(idata)
   49669      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49670      368064 :          data_tmp = IAND(data_tmp, mask_left(8))
   49671      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49672      368064 :          ipack = ipack + 1
   49673      368064 :          packed_data(ipack) = pack_tmp
   49674      368064 :          data_tmp = full_data(idata)
   49675      368064 :          pack_tmp = ISHFT(data_tmp, 12)
   49676      368064 :          pack_tmp = ISHFT(pack_tmp, -12)
   49677      368064 :          idata = idata + 1
   49678      368064 :          data_tmp = full_data(idata)
   49679      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49680      368064 :          data_tmp = IAND(data_tmp, mask_left(12))
   49681      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49682      368064 :          ipack = ipack + 1
   49683      368064 :          packed_data(ipack) = pack_tmp
   49684      368064 :          data_tmp = full_data(idata)
   49685      368064 :          pack_tmp = ISHFT(data_tmp, 16)
   49686      368064 :          pack_tmp = ISHFT(pack_tmp, -16)
   49687      368064 :          idata = idata + 1
   49688      368064 :          data_tmp = full_data(idata)
   49689      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49690      368064 :          data_tmp = IAND(data_tmp, mask_left(16))
   49691      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49692      368064 :          ipack = ipack + 1
   49693      368064 :          packed_data(ipack) = pack_tmp
   49694      368064 :          data_tmp = full_data(idata)
   49695      368064 :          pack_tmp = ISHFT(data_tmp, 20)
   49696      368064 :          pack_tmp = ISHFT(pack_tmp, -20)
   49697      368064 :          idata = idata + 1
   49698      368064 :          data_tmp = full_data(idata)
   49699      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49700      368064 :          data_tmp = IAND(data_tmp, mask_left(20))
   49701      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49702      368064 :          ipack = ipack + 1
   49703      368064 :          packed_data(ipack) = pack_tmp
   49704      368064 :          data_tmp = full_data(idata)
   49705      368064 :          pack_tmp = ISHFT(data_tmp, 24)
   49706      368064 :          pack_tmp = ISHFT(pack_tmp, -24)
   49707      368064 :          idata = idata + 1
   49708      368064 :          data_tmp = full_data(idata)
   49709      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49710      368064 :          data_tmp = IAND(data_tmp, mask_left(24))
   49711      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49712      368064 :          ipack = ipack + 1
   49713      368064 :          packed_data(ipack) = pack_tmp
   49714      368064 :          data_tmp = full_data(idata)
   49715      368064 :          pack_tmp = ISHFT(data_tmp, 28)
   49716      368064 :          pack_tmp = ISHFT(pack_tmp, -28)
   49717      368064 :          idata = idata + 1
   49718      368064 :          data_tmp = full_data(idata)
   49719      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49720      368064 :          data_tmp = IAND(data_tmp, mask_left(28))
   49721      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49722      368064 :          ipack = ipack + 1
   49723      368064 :          packed_data(ipack) = pack_tmp
   49724      368064 :          data_tmp = full_data(idata)
   49725      368064 :          pack_tmp = ISHFT(data_tmp, 32)
   49726      368064 :          pack_tmp = ISHFT(pack_tmp, -32)
   49727      368064 :          idata = idata + 1
   49728      368064 :          data_tmp = full_data(idata)
   49729      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49730      368064 :          data_tmp = IAND(data_tmp, mask_left(32))
   49731      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49732      368064 :          ipack = ipack + 1
   49733      368064 :          packed_data(ipack) = pack_tmp
   49734      368064 :          data_tmp = full_data(idata)
   49735      368064 :          pack_tmp = ISHFT(data_tmp, 36)
   49736      368064 :          pack_tmp = ISHFT(pack_tmp, -36)
   49737      368064 :          idata = idata + 1
   49738      368064 :          data_tmp = full_data(idata)
   49739      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49740      368064 :          data_tmp = IAND(data_tmp, mask_left(36))
   49741      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49742      368064 :          ipack = ipack + 1
   49743      368064 :          packed_data(ipack) = pack_tmp
   49744      368064 :          data_tmp = full_data(idata)
   49745      368064 :          pack_tmp = ISHFT(data_tmp, 40)
   49746      368064 :          pack_tmp = ISHFT(pack_tmp, -40)
   49747      368064 :          idata = idata + 1
   49748      368064 :          data_tmp = full_data(idata)
   49749      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49750      368064 :          data_tmp = IAND(data_tmp, mask_left(40))
   49751      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49752      368064 :          ipack = ipack + 1
   49753      368064 :          packed_data(ipack) = pack_tmp
   49754      368064 :          data_tmp = full_data(idata)
   49755      368064 :          pack_tmp = ISHFT(data_tmp, 44)
   49756      368064 :          pack_tmp = ISHFT(pack_tmp, -44)
   49757      368064 :          idata = idata + 1
   49758      368064 :          data_tmp = full_data(idata)
   49759      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49760      368064 :          data_tmp = IAND(data_tmp, mask_left(44))
   49761      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49762      368064 :          ipack = ipack + 1
   49763      368064 :          packed_data(ipack) = pack_tmp
   49764      368064 :          data_tmp = full_data(idata)
   49765      368064 :          pack_tmp = ISHFT(data_tmp, 48)
   49766      368064 :          pack_tmp = ISHFT(pack_tmp, -48)
   49767      368064 :          idata = idata + 1
   49768      368064 :          data_tmp = full_data(idata)
   49769      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49770      368064 :          data_tmp = IAND(data_tmp, mask_left(48))
   49771      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49772      368064 :          ipack = ipack + 1
   49773      368064 :          packed_data(ipack) = pack_tmp
   49774      368064 :          data_tmp = full_data(idata)
   49775      368064 :          pack_tmp = ISHFT(data_tmp, 52)
   49776      368064 :          pack_tmp = ISHFT(pack_tmp, -52)
   49777      368064 :          idata = idata + 1
   49778      368064 :          data_tmp = full_data(idata)
   49779      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49780      368064 :          data_tmp = IAND(data_tmp, mask_left(52))
   49781      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49782      368064 :          ipack = ipack + 1
   49783      368064 :          packed_data(ipack) = pack_tmp
   49784      368064 :          data_tmp = full_data(idata)
   49785      368064 :          pack_tmp = ISHFT(data_tmp, 56)
   49786      368064 :          pack_tmp = ISHFT(pack_tmp, -56)
   49787      368064 :          idata = idata + 1
   49788      368064 :          data_tmp = full_data(idata)
   49789      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49790      368064 :          data_tmp = IAND(data_tmp, mask_left(56))
   49791      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49792      368064 :          ipack = ipack + 1
   49793      368064 :          packed_data(ipack) = pack_tmp
   49794      368064 :          data_tmp = full_data(idata)
   49795      368064 :          pack_tmp = ISHFT(data_tmp, 60)
   49796      368064 :          pack_tmp = ISHFT(pack_tmp, -60)
   49797      368064 :          idata = idata + 1
   49798      368064 :          data_tmp = full_data(idata)
   49799      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49800      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49801      368064 :          pack_tmp = ISHFT(pack_tmp, 0)
   49802      368064 :          idata = idata + 1
   49803      368064 :          data_tmp = full_data(idata)
   49804             :          data_tmp = ISHFT(data_tmp, 4)
   49805      368064 :          data_tmp = IAND(data_tmp, mask_left(0))
   49806      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49807      368064 :          ipack = ipack + 1
   49808      368064 :          packed_data(ipack) = pack_tmp
   49809      368064 :          data_tmp = full_data(idata)
   49810      368064 :          pack_tmp = ISHFT(data_tmp, 4)
   49811      368064 :          pack_tmp = ISHFT(pack_tmp, -4)
   49812      368064 :          idata = idata + 1
   49813      368064 :          data_tmp = full_data(idata)
   49814      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49815      368064 :          data_tmp = IAND(data_tmp, mask_left(4))
   49816      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49817      368064 :          ipack = ipack + 1
   49818      368064 :          packed_data(ipack) = pack_tmp
   49819      368064 :          data_tmp = full_data(idata)
   49820      368064 :          pack_tmp = ISHFT(data_tmp, 8)
   49821      368064 :          pack_tmp = ISHFT(pack_tmp, -8)
   49822      368064 :          idata = idata + 1
   49823      368064 :          data_tmp = full_data(idata)
   49824      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49825      368064 :          data_tmp = IAND(data_tmp, mask_left(8))
   49826      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49827      368064 :          ipack = ipack + 1
   49828      368064 :          packed_data(ipack) = pack_tmp
   49829      368064 :          data_tmp = full_data(idata)
   49830      368064 :          pack_tmp = ISHFT(data_tmp, 12)
   49831      368064 :          pack_tmp = ISHFT(pack_tmp, -12)
   49832      368064 :          idata = idata + 1
   49833      368064 :          data_tmp = full_data(idata)
   49834      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49835      368064 :          data_tmp = IAND(data_tmp, mask_left(12))
   49836      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49837      368064 :          ipack = ipack + 1
   49838      368064 :          packed_data(ipack) = pack_tmp
   49839      368064 :          data_tmp = full_data(idata)
   49840      368064 :          pack_tmp = ISHFT(data_tmp, 16)
   49841      368064 :          pack_tmp = ISHFT(pack_tmp, -16)
   49842      368064 :          idata = idata + 1
   49843      368064 :          data_tmp = full_data(idata)
   49844      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49845      368064 :          data_tmp = IAND(data_tmp, mask_left(16))
   49846      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49847      368064 :          ipack = ipack + 1
   49848      368064 :          packed_data(ipack) = pack_tmp
   49849      368064 :          data_tmp = full_data(idata)
   49850      368064 :          pack_tmp = ISHFT(data_tmp, 20)
   49851      368064 :          pack_tmp = ISHFT(pack_tmp, -20)
   49852      368064 :          idata = idata + 1
   49853      368064 :          data_tmp = full_data(idata)
   49854      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49855      368064 :          data_tmp = IAND(data_tmp, mask_left(20))
   49856      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49857      368064 :          ipack = ipack + 1
   49858      368064 :          packed_data(ipack) = pack_tmp
   49859      368064 :          data_tmp = full_data(idata)
   49860      368064 :          pack_tmp = ISHFT(data_tmp, 24)
   49861      368064 :          pack_tmp = ISHFT(pack_tmp, -24)
   49862      368064 :          idata = idata + 1
   49863      368064 :          data_tmp = full_data(idata)
   49864      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49865      368064 :          data_tmp = IAND(data_tmp, mask_left(24))
   49866      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49867      368064 :          ipack = ipack + 1
   49868      368064 :          packed_data(ipack) = pack_tmp
   49869      368064 :          data_tmp = full_data(idata)
   49870      368064 :          pack_tmp = ISHFT(data_tmp, 28)
   49871      368064 :          pack_tmp = ISHFT(pack_tmp, -28)
   49872      368064 :          idata = idata + 1
   49873      368064 :          data_tmp = full_data(idata)
   49874      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49875      368064 :          data_tmp = IAND(data_tmp, mask_left(28))
   49876      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49877      368064 :          ipack = ipack + 1
   49878      368064 :          packed_data(ipack) = pack_tmp
   49879      368064 :          data_tmp = full_data(idata)
   49880      368064 :          pack_tmp = ISHFT(data_tmp, 32)
   49881      368064 :          pack_tmp = ISHFT(pack_tmp, -32)
   49882      368064 :          idata = idata + 1
   49883      368064 :          data_tmp = full_data(idata)
   49884      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49885      368064 :          data_tmp = IAND(data_tmp, mask_left(32))
   49886      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49887      368064 :          ipack = ipack + 1
   49888      368064 :          packed_data(ipack) = pack_tmp
   49889      368064 :          data_tmp = full_data(idata)
   49890      368064 :          pack_tmp = ISHFT(data_tmp, 36)
   49891      368064 :          pack_tmp = ISHFT(pack_tmp, -36)
   49892      368064 :          idata = idata + 1
   49893      368064 :          data_tmp = full_data(idata)
   49894      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49895      368064 :          data_tmp = IAND(data_tmp, mask_left(36))
   49896      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49897      368064 :          ipack = ipack + 1
   49898      368064 :          packed_data(ipack) = pack_tmp
   49899      368064 :          data_tmp = full_data(idata)
   49900      368064 :          pack_tmp = ISHFT(data_tmp, 40)
   49901      368064 :          pack_tmp = ISHFT(pack_tmp, -40)
   49902      368064 :          idata = idata + 1
   49903      368064 :          data_tmp = full_data(idata)
   49904      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49905      368064 :          data_tmp = IAND(data_tmp, mask_left(40))
   49906      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49907      368064 :          ipack = ipack + 1
   49908      368064 :          packed_data(ipack) = pack_tmp
   49909      368064 :          data_tmp = full_data(idata)
   49910      368064 :          pack_tmp = ISHFT(data_tmp, 44)
   49911      368064 :          pack_tmp = ISHFT(pack_tmp, -44)
   49912      368064 :          idata = idata + 1
   49913      368064 :          data_tmp = full_data(idata)
   49914      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49915      368064 :          data_tmp = IAND(data_tmp, mask_left(44))
   49916      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49917      368064 :          ipack = ipack + 1
   49918      368064 :          packed_data(ipack) = pack_tmp
   49919      368064 :          data_tmp = full_data(idata)
   49920      368064 :          pack_tmp = ISHFT(data_tmp, 48)
   49921      368064 :          pack_tmp = ISHFT(pack_tmp, -48)
   49922      368064 :          idata = idata + 1
   49923      368064 :          data_tmp = full_data(idata)
   49924      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49925      368064 :          data_tmp = IAND(data_tmp, mask_left(48))
   49926      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49927      368064 :          ipack = ipack + 1
   49928      368064 :          packed_data(ipack) = pack_tmp
   49929      368064 :          data_tmp = full_data(idata)
   49930      368064 :          pack_tmp = ISHFT(data_tmp, 52)
   49931      368064 :          pack_tmp = ISHFT(pack_tmp, -52)
   49932      368064 :          idata = idata + 1
   49933      368064 :          data_tmp = full_data(idata)
   49934      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49935      368064 :          data_tmp = IAND(data_tmp, mask_left(52))
   49936      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49937      368064 :          ipack = ipack + 1
   49938      368064 :          packed_data(ipack) = pack_tmp
   49939      368064 :          data_tmp = full_data(idata)
   49940      368064 :          pack_tmp = ISHFT(data_tmp, 56)
   49941      368064 :          pack_tmp = ISHFT(pack_tmp, -56)
   49942      368064 :          idata = idata + 1
   49943      368064 :          data_tmp = full_data(idata)
   49944      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49945      368064 :          data_tmp = IAND(data_tmp, mask_left(56))
   49946      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49947      368064 :          ipack = ipack + 1
   49948      368064 :          packed_data(ipack) = pack_tmp
   49949      368064 :          data_tmp = full_data(idata)
   49950      368064 :          pack_tmp = ISHFT(data_tmp, 60)
   49951      368064 :          pack_tmp = ISHFT(pack_tmp, -60)
   49952      368064 :          idata = idata + 1
   49953      368064 :          data_tmp = full_data(idata)
   49954      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49955      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49956      368064 :          pack_tmp = ISHFT(pack_tmp, 0)
   49957      368064 :          idata = idata + 1
   49958      368064 :          data_tmp = full_data(idata)
   49959             :          data_tmp = ISHFT(data_tmp, 4)
   49960      368064 :          data_tmp = IAND(data_tmp, mask_left(0))
   49961      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49962      368064 :          ipack = ipack + 1
   49963      368064 :          packed_data(ipack) = pack_tmp
   49964      368064 :          data_tmp = full_data(idata)
   49965      368064 :          pack_tmp = ISHFT(data_tmp, 4)
   49966      368064 :          pack_tmp = ISHFT(pack_tmp, -4)
   49967      368064 :          idata = idata + 1
   49968      368064 :          data_tmp = full_data(idata)
   49969      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49970      368064 :          data_tmp = IAND(data_tmp, mask_left(4))
   49971      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49972      368064 :          ipack = ipack + 1
   49973      368064 :          packed_data(ipack) = pack_tmp
   49974      368064 :          data_tmp = full_data(idata)
   49975      368064 :          pack_tmp = ISHFT(data_tmp, 8)
   49976      368064 :          pack_tmp = ISHFT(pack_tmp, -8)
   49977      368064 :          idata = idata + 1
   49978      368064 :          data_tmp = full_data(idata)
   49979      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49980      368064 :          data_tmp = IAND(data_tmp, mask_left(8))
   49981      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49982      368064 :          ipack = ipack + 1
   49983      368064 :          packed_data(ipack) = pack_tmp
   49984      368064 :          data_tmp = full_data(idata)
   49985      368064 :          pack_tmp = ISHFT(data_tmp, 12)
   49986      368064 :          pack_tmp = ISHFT(pack_tmp, -12)
   49987      368064 :          idata = idata + 1
   49988      368064 :          data_tmp = full_data(idata)
   49989      368064 :          data_tmp = ISHFT(data_tmp, 4)
   49990      368064 :          data_tmp = IAND(data_tmp, mask_left(12))
   49991      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49992      368064 :          ipack = ipack + 1
   49993      368064 :          packed_data(ipack) = pack_tmp
   49994      368064 :          data_tmp = full_data(idata)
   49995      368064 :          pack_tmp = ISHFT(data_tmp, 16)
   49996      368064 :          pack_tmp = ISHFT(pack_tmp, -16)
   49997      368064 :          idata = idata + 1
   49998      368064 :          data_tmp = full_data(idata)
   49999      368064 :          data_tmp = ISHFT(data_tmp, 4)
   50000      368064 :          data_tmp = IAND(data_tmp, mask_left(16))
   50001      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50002      368064 :          ipack = ipack + 1
   50003      368064 :          packed_data(ipack) = pack_tmp
   50004      368064 :          data_tmp = full_data(idata)
   50005      368064 :          pack_tmp = ISHFT(data_tmp, 20)
   50006      368064 :          pack_tmp = ISHFT(pack_tmp, -20)
   50007      368064 :          idata = idata + 1
   50008      368064 :          data_tmp = full_data(idata)
   50009      368064 :          data_tmp = ISHFT(data_tmp, 4)
   50010      368064 :          data_tmp = IAND(data_tmp, mask_left(20))
   50011      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50012      368064 :          ipack = ipack + 1
   50013      368064 :          packed_data(ipack) = pack_tmp
   50014      368064 :          data_tmp = full_data(idata)
   50015      368064 :          pack_tmp = ISHFT(data_tmp, 24)
   50016      368064 :          pack_tmp = ISHFT(pack_tmp, -24)
   50017      368064 :          idata = idata + 1
   50018      368064 :          data_tmp = full_data(idata)
   50019      368064 :          data_tmp = ISHFT(data_tmp, 4)
   50020      368064 :          data_tmp = IAND(data_tmp, mask_left(24))
   50021      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50022      368064 :          ipack = ipack + 1
   50023      368064 :          packed_data(ipack) = pack_tmp
   50024      368064 :          data_tmp = full_data(idata)
   50025      368064 :          pack_tmp = ISHFT(data_tmp, 28)
   50026      368064 :          pack_tmp = ISHFT(pack_tmp, -28)
   50027      368064 :          idata = idata + 1
   50028      368064 :          data_tmp = full_data(idata)
   50029      368064 :          data_tmp = ISHFT(data_tmp, 4)
   50030      368064 :          data_tmp = IAND(data_tmp, mask_left(28))
   50031      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50032      368064 :          ipack = ipack + 1
   50033      368064 :          packed_data(ipack) = pack_tmp
   50034      368064 :          data_tmp = full_data(idata)
   50035      368064 :          pack_tmp = ISHFT(data_tmp, 32)
   50036      368064 :          pack_tmp = ISHFT(pack_tmp, -32)
   50037      368064 :          idata = idata + 1
   50038      368064 :          data_tmp = full_data(idata)
   50039      368064 :          data_tmp = ISHFT(data_tmp, 4)
   50040      368064 :          data_tmp = IAND(data_tmp, mask_left(32))
   50041      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50042      368064 :          ipack = ipack + 1
   50043      368064 :          packed_data(ipack) = pack_tmp
   50044      368064 :          data_tmp = full_data(idata)
   50045      368064 :          pack_tmp = ISHFT(data_tmp, 36)
   50046      368064 :          pack_tmp = ISHFT(pack_tmp, -36)
   50047      368064 :          idata = idata + 1
   50048      368064 :          data_tmp = full_data(idata)
   50049      368064 :          data_tmp = ISHFT(data_tmp, 4)
   50050      368064 :          data_tmp = IAND(data_tmp, mask_left(36))
   50051      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50052      368064 :          ipack = ipack + 1
   50053      368064 :          packed_data(ipack) = pack_tmp
   50054      368064 :          data_tmp = full_data(idata)
   50055      368064 :          pack_tmp = ISHFT(data_tmp, 40)
   50056      368064 :          pack_tmp = ISHFT(pack_tmp, -40)
   50057      368064 :          idata = idata + 1
   50058      368064 :          data_tmp = full_data(idata)
   50059      368064 :          data_tmp = ISHFT(data_tmp, 4)
   50060      368064 :          data_tmp = IAND(data_tmp, mask_left(40))
   50061      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50062      368064 :          ipack = ipack + 1
   50063      368064 :          packed_data(ipack) = pack_tmp
   50064      368064 :          data_tmp = full_data(idata)
   50065      368064 :          pack_tmp = ISHFT(data_tmp, 44)
   50066      368064 :          pack_tmp = ISHFT(pack_tmp, -44)
   50067      368064 :          idata = idata + 1
   50068      368064 :          data_tmp = full_data(idata)
   50069      368064 :          data_tmp = ISHFT(data_tmp, 4)
   50070      368064 :          data_tmp = IAND(data_tmp, mask_left(44))
   50071      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50072      368064 :          ipack = ipack + 1
   50073      368064 :          packed_data(ipack) = pack_tmp
   50074      368064 :          data_tmp = full_data(idata)
   50075      368064 :          pack_tmp = ISHFT(data_tmp, 48)
   50076      368064 :          pack_tmp = ISHFT(pack_tmp, -48)
   50077      368064 :          idata = idata + 1
   50078      368064 :          data_tmp = full_data(idata)
   50079      368064 :          data_tmp = ISHFT(data_tmp, 4)
   50080      368064 :          data_tmp = IAND(data_tmp, mask_left(48))
   50081      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50082      368064 :          ipack = ipack + 1
   50083      368064 :          packed_data(ipack) = pack_tmp
   50084      368064 :          data_tmp = full_data(idata)
   50085      368064 :          pack_tmp = ISHFT(data_tmp, 52)
   50086      368064 :          pack_tmp = ISHFT(pack_tmp, -52)
   50087      368064 :          idata = idata + 1
   50088      368064 :          data_tmp = full_data(idata)
   50089      368064 :          data_tmp = ISHFT(data_tmp, 4)
   50090      368064 :          data_tmp = IAND(data_tmp, mask_left(52))
   50091      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50092      368064 :          ipack = ipack + 1
   50093      368064 :          packed_data(ipack) = pack_tmp
   50094      368064 :          data_tmp = full_data(idata)
   50095      368064 :          pack_tmp = ISHFT(data_tmp, 56)
   50096      368064 :          pack_tmp = ISHFT(pack_tmp, -56)
   50097      368064 :          idata = idata + 1
   50098      368064 :          data_tmp = full_data(idata)
   50099      368064 :          data_tmp = ISHFT(data_tmp, 4)
   50100      368064 :          data_tmp = IAND(data_tmp, mask_left(56))
   50101      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50102      368064 :          ipack = ipack + 1
   50103      368064 :          packed_data(ipack) = pack_tmp
   50104      368064 :          data_tmp = full_data(idata)
   50105      368064 :          pack_tmp = ISHFT(data_tmp, 60)
   50106      368064 :          pack_tmp = ISHFT(pack_tmp, -60)
   50107      368064 :          idata = idata + 1
   50108      368064 :          data_tmp = full_data(idata)
   50109      368064 :          data_tmp = ISHFT(data_tmp, 4)
   50110      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50111      368064 :          pack_tmp = ISHFT(pack_tmp, 0)
   50112      368064 :          idata = idata + 1
   50113      368064 :          data_tmp = full_data(idata)
   50114             :          data_tmp = ISHFT(data_tmp, 4)
   50115      368064 :          data_tmp = IAND(data_tmp, mask_left(0))
   50116      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50117      368064 :          ipack = ipack + 1
   50118      368064 :          packed_data(ipack) = pack_tmp
   50119      368064 :          data_tmp = full_data(idata)
   50120      368064 :          pack_tmp = ISHFT(data_tmp, 4)
   50121      368064 :          pack_tmp = ISHFT(pack_tmp, -4)
   50122      368064 :          idata = idata + 1
   50123      368064 :          data_tmp = full_data(idata)
   50124      368064 :          data_tmp = ISHFT(data_tmp, 4)
   50125      368064 :          data_tmp = IAND(data_tmp, mask_left(4))
   50126      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50127      368064 :          ipack = ipack + 1
   50128      368064 :          packed_data(ipack) = pack_tmp
   50129      368064 :          data_tmp = full_data(idata)
   50130      368064 :          pack_tmp = ISHFT(data_tmp, 8)
   50131      368064 :          pack_tmp = ISHFT(pack_tmp, -8)
   50132      368064 :          idata = idata + 1
   50133      368064 :          data_tmp = full_data(idata)
   50134      368064 :          data_tmp = ISHFT(data_tmp, 4)
   50135      368064 :          data_tmp = IAND(data_tmp, mask_left(8))
   50136      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50137      368064 :          ipack = ipack + 1
   50138      368064 :          packed_data(ipack) = pack_tmp
   50139      368064 :          data_tmp = full_data(idata)
   50140      368064 :          pack_tmp = ISHFT(data_tmp, 12)
   50141      368064 :          pack_tmp = ISHFT(pack_tmp, -12)
   50142      368064 :          idata = idata + 1
   50143      368064 :          data_tmp = full_data(idata)
   50144      368064 :          data_tmp = ISHFT(data_tmp, 4)
   50145      368064 :          data_tmp = IAND(data_tmp, mask_left(12))
   50146      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50147      368064 :          ipack = ipack + 1
   50148      368064 :          packed_data(ipack) = pack_tmp
   50149      368064 :          data_tmp = full_data(idata)
   50150      368064 :          pack_tmp = ISHFT(data_tmp, 16)
   50151      368064 :          pack_tmp = ISHFT(pack_tmp, -16)
   50152      368064 :          idata = idata + 1
   50153      368064 :          data_tmp = full_data(idata)
   50154      368064 :          data_tmp = ISHFT(data_tmp, 4)
   50155      368064 :          data_tmp = IAND(data_tmp, mask_left(16))
   50156      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50157      368064 :          ipack = ipack + 1
   50158      368064 :          packed_data(ipack) = pack_tmp
   50159      368064 :          data_tmp = full_data(idata)
   50160      368064 :          pack_tmp = ISHFT(data_tmp, 20)
   50161      368064 :          pack_tmp = ISHFT(pack_tmp, -20)
   50162      368064 :          idata = idata + 1
   50163      368064 :          data_tmp = full_data(idata)
   50164      368064 :          data_tmp = ISHFT(data_tmp, 4)
   50165      368064 :          data_tmp = IAND(data_tmp, mask_left(20))
   50166      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50167      368064 :          ipack = ipack + 1
   50168      368064 :          packed_data(ipack) = pack_tmp
   50169      368064 :          data_tmp = full_data(idata)
   50170      368064 :          pack_tmp = ISHFT(data_tmp, 24)
   50171      368064 :          pack_tmp = ISHFT(pack_tmp, -24)
   50172      368064 :          idata = idata + 1
   50173      368064 :          data_tmp = full_data(idata)
   50174      368064 :          data_tmp = ISHFT(data_tmp, 4)
   50175      368064 :          data_tmp = IAND(data_tmp, mask_left(24))
   50176      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50177      368064 :          ipack = ipack + 1
   50178      368064 :          packed_data(ipack) = pack_tmp
   50179      368064 :          data_tmp = full_data(idata)
   50180      368064 :          pack_tmp = ISHFT(data_tmp, 28)
   50181      368064 :          pack_tmp = ISHFT(pack_tmp, -28)
   50182      368064 :          idata = idata + 1
   50183      368064 :          data_tmp = full_data(idata)
   50184      368064 :          data_tmp = ISHFT(data_tmp, 4)
   50185      368064 :          data_tmp = IAND(data_tmp, mask_left(28))
   50186      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50187      368064 :          ipack = ipack + 1
   50188      368064 :          packed_data(ipack) = pack_tmp
   50189      368064 :          data_tmp = full_data(idata)
   50190      368064 :          pack_tmp = ISHFT(data_tmp, 32)
   50191      368064 :          pack_tmp = ISHFT(pack_tmp, -32)
   50192      368064 :          idata = idata + 1
   50193      368064 :          data_tmp = full_data(idata)
   50194      368064 :          data_tmp = ISHFT(data_tmp, 4)
   50195      368064 :          data_tmp = IAND(data_tmp, mask_left(32))
   50196      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50197      368064 :          ipack = ipack + 1
   50198      368064 :          packed_data(ipack) = pack_tmp
   50199      368064 :          data_tmp = full_data(idata)
   50200      368064 :          pack_tmp = ISHFT(data_tmp, 36)
   50201      368064 :          pack_tmp = ISHFT(pack_tmp, -36)
   50202      368064 :          idata = idata + 1
   50203      368064 :          data_tmp = full_data(idata)
   50204      368064 :          data_tmp = ISHFT(data_tmp, 4)
   50205      368064 :          data_tmp = IAND(data_tmp, mask_left(36))
   50206      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50207      368064 :          ipack = ipack + 1
   50208      368064 :          packed_data(ipack) = pack_tmp
   50209      368064 :          data_tmp = full_data(idata)
   50210      368064 :          pack_tmp = ISHFT(data_tmp, 40)
   50211      368064 :          pack_tmp = ISHFT(pack_tmp, -40)
   50212      368064 :          idata = idata + 1
   50213      368064 :          data_tmp = full_data(idata)
   50214      368064 :          data_tmp = ISHFT(data_tmp, 4)
   50215      368064 :          data_tmp = IAND(data_tmp, mask_left(40))
   50216      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50217      368064 :          ipack = ipack + 1
   50218      368064 :          packed_data(ipack) = pack_tmp
   50219      368064 :          data_tmp = full_data(idata)
   50220      368064 :          pack_tmp = ISHFT(data_tmp, 44)
   50221      368064 :          pack_tmp = ISHFT(pack_tmp, -44)
   50222      368064 :          idata = idata + 1
   50223      368064 :          data_tmp = full_data(idata)
   50224      368064 :          data_tmp = ISHFT(data_tmp, 4)
   50225      368064 :          data_tmp = IAND(data_tmp, mask_left(44))
   50226      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50227      368064 :          ipack = ipack + 1
   50228      368064 :          packed_data(ipack) = pack_tmp
   50229      368064 :          data_tmp = full_data(idata)
   50230      368064 :          pack_tmp = ISHFT(data_tmp, 48)
   50231      368064 :          pack_tmp = ISHFT(pack_tmp, -48)
   50232      368064 :          idata = idata + 1
   50233      368064 :          data_tmp = full_data(idata)
   50234      368064 :          data_tmp = ISHFT(data_tmp, 4)
   50235      368064 :          data_tmp = IAND(data_tmp, mask_left(48))
   50236      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50237      368064 :          ipack = ipack + 1
   50238      368064 :          packed_data(ipack) = pack_tmp
   50239      368064 :          data_tmp = full_data(idata)
   50240      368064 :          pack_tmp = ISHFT(data_tmp, 52)
   50241      368064 :          pack_tmp = ISHFT(pack_tmp, -52)
   50242      368064 :          idata = idata + 1
   50243      368064 :          data_tmp = full_data(idata)
   50244      368064 :          data_tmp = ISHFT(data_tmp, 4)
   50245      368064 :          data_tmp = IAND(data_tmp, mask_left(52))
   50246      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50247      368064 :          ipack = ipack + 1
   50248      368064 :          packed_data(ipack) = pack_tmp
   50249      368064 :          data_tmp = full_data(idata)
   50250      368064 :          pack_tmp = ISHFT(data_tmp, 56)
   50251      368064 :          pack_tmp = ISHFT(pack_tmp, -56)
   50252      368064 :          idata = idata + 1
   50253      368064 :          data_tmp = full_data(idata)
   50254      368064 :          data_tmp = ISHFT(data_tmp, 4)
   50255      368064 :          data_tmp = IAND(data_tmp, mask_left(56))
   50256      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50257      368064 :          ipack = ipack + 1
   50258      368064 :          packed_data(ipack) = pack_tmp
   50259      368064 :          data_tmp = full_data(idata)
   50260      368064 :          pack_tmp = ISHFT(data_tmp, 60)
   50261      368064 :          pack_tmp = ISHFT(pack_tmp, -60)
   50262      368064 :          idata = idata + 1
   50263      368064 :          data_tmp = full_data(idata)
   50264      368064 :          data_tmp = ISHFT(data_tmp, 4)
   50265      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50266             :          pack_tmp = ISHFT(pack_tmp, 0)
   50267      368064 :          pack_tmp = ISHFT(pack_tmp, 0)
   50268      368064 :          ipack = ipack + 1
   50269      368064 :          packed_data(ipack) = pack_tmp
   50270             :       END DO
   50271       23004 :       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       23004 :    END SUBROUTINE ints2bits_60
   50275             : 
   50276             : ! **************************************************************************************************
   50277             : !> \brief ...
   50278             : !> \param Ndata ...
   50279             : !> \param packed_data ...
   50280             : !> \param full_data ...
   50281             : ! **************************************************************************************************
   50282       93707 :    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       93707 :       ipack = 0
   50293       93707 :       idata = 0
   50294       93707 :       pack_tmp = 0
   50295       93707 :       Ndata_rep = (Ndata/64)*64
   50296       93707 :       DO kdata = 1, Ndata_rep, 64
   50297     1499312 :          idata = idata + 1
   50298     1499312 :          data_tmp = ISHFT(pack_tmp, 60)
   50299     1499312 :          ipack = ipack + 1
   50300     1499312 :          pack_tmp = packed_data(ipack)
   50301     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   50302     1499312 :          pack_tmp = ISHFT(pack_tmp, -60)
   50303     1499312 :          idata = idata + 1
   50304     1499312 :          data_tmp = ISHFT(pack_tmp, 56)
   50305     1499312 :          ipack = ipack + 1
   50306     1499312 :          pack_tmp = packed_data(ipack)
   50307     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   50308     1499312 :          pack_tmp = ISHFT(pack_tmp, -56)
   50309     1499312 :          idata = idata + 1
   50310     1499312 :          data_tmp = ISHFT(pack_tmp, 52)
   50311     1499312 :          ipack = ipack + 1
   50312     1499312 :          pack_tmp = packed_data(ipack)
   50313     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   50314     1499312 :          pack_tmp = ISHFT(pack_tmp, -52)
   50315     1499312 :          idata = idata + 1
   50316     1499312 :          data_tmp = ISHFT(pack_tmp, 48)
   50317     1499312 :          ipack = ipack + 1
   50318     1499312 :          pack_tmp = packed_data(ipack)
   50319     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   50320     1499312 :          pack_tmp = ISHFT(pack_tmp, -48)
   50321     1499312 :          idata = idata + 1
   50322     1499312 :          data_tmp = ISHFT(pack_tmp, 44)
   50323     1499312 :          ipack = ipack + 1
   50324     1499312 :          pack_tmp = packed_data(ipack)
   50325     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   50326     1499312 :          pack_tmp = ISHFT(pack_tmp, -44)
   50327     1499312 :          idata = idata + 1
   50328     1499312 :          data_tmp = ISHFT(pack_tmp, 40)
   50329     1499312 :          ipack = ipack + 1
   50330     1499312 :          pack_tmp = packed_data(ipack)
   50331     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   50332     1499312 :          pack_tmp = ISHFT(pack_tmp, -40)
   50333     1499312 :          idata = idata + 1
   50334     1499312 :          data_tmp = ISHFT(pack_tmp, 36)
   50335     1499312 :          ipack = ipack + 1
   50336     1499312 :          pack_tmp = packed_data(ipack)
   50337     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   50338     1499312 :          pack_tmp = ISHFT(pack_tmp, -36)
   50339     1499312 :          idata = idata + 1
   50340     1499312 :          data_tmp = ISHFT(pack_tmp, 32)
   50341     1499312 :          ipack = ipack + 1
   50342     1499312 :          pack_tmp = packed_data(ipack)
   50343     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   50344     1499312 :          pack_tmp = ISHFT(pack_tmp, -32)
   50345     1499312 :          idata = idata + 1
   50346     1499312 :          data_tmp = ISHFT(pack_tmp, 28)
   50347     1499312 :          ipack = ipack + 1
   50348     1499312 :          pack_tmp = packed_data(ipack)
   50349     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   50350     1499312 :          pack_tmp = ISHFT(pack_tmp, -28)
   50351     1499312 :          idata = idata + 1
   50352     1499312 :          data_tmp = ISHFT(pack_tmp, 24)
   50353     1499312 :          ipack = ipack + 1
   50354     1499312 :          pack_tmp = packed_data(ipack)
   50355     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   50356     1499312 :          pack_tmp = ISHFT(pack_tmp, -24)
   50357     1499312 :          idata = idata + 1
   50358     1499312 :          data_tmp = ISHFT(pack_tmp, 20)
   50359     1499312 :          ipack = ipack + 1
   50360     1499312 :          pack_tmp = packed_data(ipack)
   50361     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   50362     1499312 :          pack_tmp = ISHFT(pack_tmp, -20)
   50363     1499312 :          idata = idata + 1
   50364     1499312 :          data_tmp = ISHFT(pack_tmp, 16)
   50365     1499312 :          ipack = ipack + 1
   50366     1499312 :          pack_tmp = packed_data(ipack)
   50367     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   50368     1499312 :          pack_tmp = ISHFT(pack_tmp, -16)
   50369     1499312 :          idata = idata + 1
   50370     1499312 :          data_tmp = ISHFT(pack_tmp, 12)
   50371     1499312 :          ipack = ipack + 1
   50372     1499312 :          pack_tmp = packed_data(ipack)
   50373     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   50374     1499312 :          pack_tmp = ISHFT(pack_tmp, -12)
   50375     1499312 :          idata = idata + 1
   50376     1499312 :          data_tmp = ISHFT(pack_tmp, 8)
   50377     1499312 :          ipack = ipack + 1
   50378     1499312 :          pack_tmp = packed_data(ipack)
   50379     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   50380     1499312 :          pack_tmp = ISHFT(pack_tmp, -8)
   50381     1499312 :          idata = idata + 1
   50382     1499312 :          data_tmp = ISHFT(pack_tmp, 4)
   50383     1499312 :          ipack = ipack + 1
   50384     1499312 :          pack_tmp = packed_data(ipack)
   50385     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   50386     1499312 :          pack_tmp = ISHFT(pack_tmp, -4)
   50387     1499312 :          idata = idata + 1
   50388     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   50389     1499312 :          full_data(idata) = data_tmp
   50390     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   50391     1499312 :          idata = idata + 1
   50392     1499312 :          data_tmp = ISHFT(pack_tmp, 60)
   50393     1499312 :          ipack = ipack + 1
   50394     1499312 :          pack_tmp = packed_data(ipack)
   50395     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   50396     1499312 :          pack_tmp = ISHFT(pack_tmp, -60)
   50397     1499312 :          idata = idata + 1
   50398     1499312 :          data_tmp = ISHFT(pack_tmp, 56)
   50399     1499312 :          ipack = ipack + 1
   50400     1499312 :          pack_tmp = packed_data(ipack)
   50401     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   50402     1499312 :          pack_tmp = ISHFT(pack_tmp, -56)
   50403     1499312 :          idata = idata + 1
   50404     1499312 :          data_tmp = ISHFT(pack_tmp, 52)
   50405     1499312 :          ipack = ipack + 1
   50406     1499312 :          pack_tmp = packed_data(ipack)
   50407     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   50408     1499312 :          pack_tmp = ISHFT(pack_tmp, -52)
   50409     1499312 :          idata = idata + 1
   50410     1499312 :          data_tmp = ISHFT(pack_tmp, 48)
   50411     1499312 :          ipack = ipack + 1
   50412     1499312 :          pack_tmp = packed_data(ipack)
   50413     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   50414     1499312 :          pack_tmp = ISHFT(pack_tmp, -48)
   50415     1499312 :          idata = idata + 1
   50416     1499312 :          data_tmp = ISHFT(pack_tmp, 44)
   50417     1499312 :          ipack = ipack + 1
   50418     1499312 :          pack_tmp = packed_data(ipack)
   50419     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   50420     1499312 :          pack_tmp = ISHFT(pack_tmp, -44)
   50421     1499312 :          idata = idata + 1
   50422     1499312 :          data_tmp = ISHFT(pack_tmp, 40)
   50423     1499312 :          ipack = ipack + 1
   50424     1499312 :          pack_tmp = packed_data(ipack)
   50425     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   50426     1499312 :          pack_tmp = ISHFT(pack_tmp, -40)
   50427     1499312 :          idata = idata + 1
   50428     1499312 :          data_tmp = ISHFT(pack_tmp, 36)
   50429     1499312 :          ipack = ipack + 1
   50430     1499312 :          pack_tmp = packed_data(ipack)
   50431     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   50432     1499312 :          pack_tmp = ISHFT(pack_tmp, -36)
   50433     1499312 :          idata = idata + 1
   50434     1499312 :          data_tmp = ISHFT(pack_tmp, 32)
   50435     1499312 :          ipack = ipack + 1
   50436     1499312 :          pack_tmp = packed_data(ipack)
   50437     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   50438     1499312 :          pack_tmp = ISHFT(pack_tmp, -32)
   50439     1499312 :          idata = idata + 1
   50440     1499312 :          data_tmp = ISHFT(pack_tmp, 28)
   50441     1499312 :          ipack = ipack + 1
   50442     1499312 :          pack_tmp = packed_data(ipack)
   50443     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   50444     1499312 :          pack_tmp = ISHFT(pack_tmp, -28)
   50445     1499312 :          idata = idata + 1
   50446     1499312 :          data_tmp = ISHFT(pack_tmp, 24)
   50447     1499312 :          ipack = ipack + 1
   50448     1499312 :          pack_tmp = packed_data(ipack)
   50449     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   50450     1499312 :          pack_tmp = ISHFT(pack_tmp, -24)
   50451     1499312 :          idata = idata + 1
   50452     1499312 :          data_tmp = ISHFT(pack_tmp, 20)
   50453     1499312 :          ipack = ipack + 1
   50454     1499312 :          pack_tmp = packed_data(ipack)
   50455     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   50456     1499312 :          pack_tmp = ISHFT(pack_tmp, -20)
   50457     1499312 :          idata = idata + 1
   50458     1499312 :          data_tmp = ISHFT(pack_tmp, 16)
   50459     1499312 :          ipack = ipack + 1
   50460     1499312 :          pack_tmp = packed_data(ipack)
   50461     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   50462     1499312 :          pack_tmp = ISHFT(pack_tmp, -16)
   50463     1499312 :          idata = idata + 1
   50464     1499312 :          data_tmp = ISHFT(pack_tmp, 12)
   50465     1499312 :          ipack = ipack + 1
   50466     1499312 :          pack_tmp = packed_data(ipack)
   50467     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   50468     1499312 :          pack_tmp = ISHFT(pack_tmp, -12)
   50469     1499312 :          idata = idata + 1
   50470     1499312 :          data_tmp = ISHFT(pack_tmp, 8)
   50471     1499312 :          ipack = ipack + 1
   50472     1499312 :          pack_tmp = packed_data(ipack)
   50473     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   50474     1499312 :          pack_tmp = ISHFT(pack_tmp, -8)
   50475     1499312 :          idata = idata + 1
   50476     1499312 :          data_tmp = ISHFT(pack_tmp, 4)
   50477     1499312 :          ipack = ipack + 1
   50478     1499312 :          pack_tmp = packed_data(ipack)
   50479     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   50480     1499312 :          pack_tmp = ISHFT(pack_tmp, -4)
   50481     1499312 :          idata = idata + 1
   50482     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   50483     1499312 :          full_data(idata) = data_tmp
   50484     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   50485     1499312 :          idata = idata + 1
   50486     1499312 :          data_tmp = ISHFT(pack_tmp, 60)
   50487     1499312 :          ipack = ipack + 1
   50488     1499312 :          pack_tmp = packed_data(ipack)
   50489     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   50490     1499312 :          pack_tmp = ISHFT(pack_tmp, -60)
   50491     1499312 :          idata = idata + 1
   50492     1499312 :          data_tmp = ISHFT(pack_tmp, 56)
   50493     1499312 :          ipack = ipack + 1
   50494     1499312 :          pack_tmp = packed_data(ipack)
   50495     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   50496     1499312 :          pack_tmp = ISHFT(pack_tmp, -56)
   50497     1499312 :          idata = idata + 1
   50498     1499312 :          data_tmp = ISHFT(pack_tmp, 52)
   50499     1499312 :          ipack = ipack + 1
   50500     1499312 :          pack_tmp = packed_data(ipack)
   50501     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   50502     1499312 :          pack_tmp = ISHFT(pack_tmp, -52)
   50503     1499312 :          idata = idata + 1
   50504     1499312 :          data_tmp = ISHFT(pack_tmp, 48)
   50505     1499312 :          ipack = ipack + 1
   50506     1499312 :          pack_tmp = packed_data(ipack)
   50507     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   50508     1499312 :          pack_tmp = ISHFT(pack_tmp, -48)
   50509     1499312 :          idata = idata + 1
   50510     1499312 :          data_tmp = ISHFT(pack_tmp, 44)
   50511     1499312 :          ipack = ipack + 1
   50512     1499312 :          pack_tmp = packed_data(ipack)
   50513     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   50514     1499312 :          pack_tmp = ISHFT(pack_tmp, -44)
   50515     1499312 :          idata = idata + 1
   50516     1499312 :          data_tmp = ISHFT(pack_tmp, 40)
   50517     1499312 :          ipack = ipack + 1
   50518     1499312 :          pack_tmp = packed_data(ipack)
   50519     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   50520     1499312 :          pack_tmp = ISHFT(pack_tmp, -40)
   50521     1499312 :          idata = idata + 1
   50522     1499312 :          data_tmp = ISHFT(pack_tmp, 36)
   50523     1499312 :          ipack = ipack + 1
   50524     1499312 :          pack_tmp = packed_data(ipack)
   50525     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   50526     1499312 :          pack_tmp = ISHFT(pack_tmp, -36)
   50527     1499312 :          idata = idata + 1
   50528     1499312 :          data_tmp = ISHFT(pack_tmp, 32)
   50529     1499312 :          ipack = ipack + 1
   50530     1499312 :          pack_tmp = packed_data(ipack)
   50531     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   50532     1499312 :          pack_tmp = ISHFT(pack_tmp, -32)
   50533     1499312 :          idata = idata + 1
   50534     1499312 :          data_tmp = ISHFT(pack_tmp, 28)
   50535     1499312 :          ipack = ipack + 1
   50536     1499312 :          pack_tmp = packed_data(ipack)
   50537     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   50538     1499312 :          pack_tmp = ISHFT(pack_tmp, -28)
   50539     1499312 :          idata = idata + 1
   50540     1499312 :          data_tmp = ISHFT(pack_tmp, 24)
   50541     1499312 :          ipack = ipack + 1
   50542     1499312 :          pack_tmp = packed_data(ipack)
   50543     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   50544     1499312 :          pack_tmp = ISHFT(pack_tmp, -24)
   50545     1499312 :          idata = idata + 1
   50546     1499312 :          data_tmp = ISHFT(pack_tmp, 20)
   50547     1499312 :          ipack = ipack + 1
   50548     1499312 :          pack_tmp = packed_data(ipack)
   50549     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   50550     1499312 :          pack_tmp = ISHFT(pack_tmp, -20)
   50551     1499312 :          idata = idata + 1
   50552     1499312 :          data_tmp = ISHFT(pack_tmp, 16)
   50553     1499312 :          ipack = ipack + 1
   50554     1499312 :          pack_tmp = packed_data(ipack)
   50555     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   50556     1499312 :          pack_tmp = ISHFT(pack_tmp, -16)
   50557     1499312 :          idata = idata + 1
   50558     1499312 :          data_tmp = ISHFT(pack_tmp, 12)
   50559     1499312 :          ipack = ipack + 1
   50560     1499312 :          pack_tmp = packed_data(ipack)
   50561     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   50562     1499312 :          pack_tmp = ISHFT(pack_tmp, -12)
   50563     1499312 :          idata = idata + 1
   50564     1499312 :          data_tmp = ISHFT(pack_tmp, 8)
   50565     1499312 :          ipack = ipack + 1
   50566     1499312 :          pack_tmp = packed_data(ipack)
   50567     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   50568     1499312 :          pack_tmp = ISHFT(pack_tmp, -8)
   50569     1499312 :          idata = idata + 1
   50570     1499312 :          data_tmp = ISHFT(pack_tmp, 4)
   50571     1499312 :          ipack = ipack + 1
   50572     1499312 :          pack_tmp = packed_data(ipack)
   50573     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   50574     1499312 :          pack_tmp = ISHFT(pack_tmp, -4)
   50575     1499312 :          idata = idata + 1
   50576     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   50577     1499312 :          full_data(idata) = data_tmp
   50578     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   50579     1499312 :          idata = idata + 1
   50580     1499312 :          data_tmp = ISHFT(pack_tmp, 60)
   50581     1499312 :          ipack = ipack + 1
   50582     1499312 :          pack_tmp = packed_data(ipack)
   50583     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   50584     1499312 :          pack_tmp = ISHFT(pack_tmp, -60)
   50585     1499312 :          idata = idata + 1
   50586     1499312 :          data_tmp = ISHFT(pack_tmp, 56)
   50587     1499312 :          ipack = ipack + 1
   50588     1499312 :          pack_tmp = packed_data(ipack)
   50589     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   50590     1499312 :          pack_tmp = ISHFT(pack_tmp, -56)
   50591     1499312 :          idata = idata + 1
   50592     1499312 :          data_tmp = ISHFT(pack_tmp, 52)
   50593     1499312 :          ipack = ipack + 1
   50594     1499312 :          pack_tmp = packed_data(ipack)
   50595     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   50596     1499312 :          pack_tmp = ISHFT(pack_tmp, -52)
   50597     1499312 :          idata = idata + 1
   50598     1499312 :          data_tmp = ISHFT(pack_tmp, 48)
   50599     1499312 :          ipack = ipack + 1
   50600     1499312 :          pack_tmp = packed_data(ipack)
   50601     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   50602     1499312 :          pack_tmp = ISHFT(pack_tmp, -48)
   50603     1499312 :          idata = idata + 1
   50604     1499312 :          data_tmp = ISHFT(pack_tmp, 44)
   50605     1499312 :          ipack = ipack + 1
   50606     1499312 :          pack_tmp = packed_data(ipack)
   50607     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   50608     1499312 :          pack_tmp = ISHFT(pack_tmp, -44)
   50609     1499312 :          idata = idata + 1
   50610     1499312 :          data_tmp = ISHFT(pack_tmp, 40)
   50611     1499312 :          ipack = ipack + 1
   50612     1499312 :          pack_tmp = packed_data(ipack)
   50613     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   50614     1499312 :          pack_tmp = ISHFT(pack_tmp, -40)
   50615     1499312 :          idata = idata + 1
   50616     1499312 :          data_tmp = ISHFT(pack_tmp, 36)
   50617     1499312 :          ipack = ipack + 1
   50618     1499312 :          pack_tmp = packed_data(ipack)
   50619     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   50620     1499312 :          pack_tmp = ISHFT(pack_tmp, -36)
   50621     1499312 :          idata = idata + 1
   50622     1499312 :          data_tmp = ISHFT(pack_tmp, 32)
   50623     1499312 :          ipack = ipack + 1
   50624     1499312 :          pack_tmp = packed_data(ipack)
   50625     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   50626     1499312 :          pack_tmp = ISHFT(pack_tmp, -32)
   50627     1499312 :          idata = idata + 1
   50628     1499312 :          data_tmp = ISHFT(pack_tmp, 28)
   50629     1499312 :          ipack = ipack + 1
   50630     1499312 :          pack_tmp = packed_data(ipack)
   50631     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   50632     1499312 :          pack_tmp = ISHFT(pack_tmp, -28)
   50633     1499312 :          idata = idata + 1
   50634     1499312 :          data_tmp = ISHFT(pack_tmp, 24)
   50635     1499312 :          ipack = ipack + 1
   50636     1499312 :          pack_tmp = packed_data(ipack)
   50637     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   50638     1499312 :          pack_tmp = ISHFT(pack_tmp, -24)
   50639     1499312 :          idata = idata + 1
   50640     1499312 :          data_tmp = ISHFT(pack_tmp, 20)
   50641     1499312 :          ipack = ipack + 1
   50642     1499312 :          pack_tmp = packed_data(ipack)
   50643     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   50644     1499312 :          pack_tmp = ISHFT(pack_tmp, -20)
   50645     1499312 :          idata = idata + 1
   50646     1499312 :          data_tmp = ISHFT(pack_tmp, 16)
   50647     1499312 :          ipack = ipack + 1
   50648     1499312 :          pack_tmp = packed_data(ipack)
   50649     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   50650     1499312 :          pack_tmp = ISHFT(pack_tmp, -16)
   50651     1499312 :          idata = idata + 1
   50652     1499312 :          data_tmp = ISHFT(pack_tmp, 12)
   50653     1499312 :          ipack = ipack + 1
   50654     1499312 :          pack_tmp = packed_data(ipack)
   50655     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   50656     1499312 :          pack_tmp = ISHFT(pack_tmp, -12)
   50657     1499312 :          idata = idata + 1
   50658     1499312 :          data_tmp = ISHFT(pack_tmp, 8)
   50659     1499312 :          ipack = ipack + 1
   50660     1499312 :          pack_tmp = packed_data(ipack)
   50661     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   50662     1499312 :          pack_tmp = ISHFT(pack_tmp, -8)
   50663     1499312 :          idata = idata + 1
   50664     1499312 :          data_tmp = ISHFT(pack_tmp, 4)
   50665     1499312 :          ipack = ipack + 1
   50666     1499312 :          pack_tmp = packed_data(ipack)
   50667     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   50668     1499312 :          pack_tmp = ISHFT(pack_tmp, -4)
   50669     1499312 :          idata = idata + 1
   50670     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   50671     1499312 :          full_data(idata) = data_tmp
   50672     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   50673             :       END DO
   50674       93707 :       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       93707 :    END SUBROUTINE bits2ints_60
   50678             : 
   50679             : ! **************************************************************************************************
   50680             : !> \brief ...
   50681             : !> \param Ndata ...
   50682             : !> \param packed_data ...
   50683             : !> \param full_data ...
   50684             : ! **************************************************************************************************
   50685       23004 :    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       23004 :       idata = 0
   50696       23004 :       ipack = 0
   50697       23004 :       Ndata_rep = (Ndata/64)*64
   50698       23004 :       DO kdata = 1, Ndata_rep, 64
   50699      368064 :          pack_tmp = 0
   50700      368064 :          idata = idata + 1
   50701      368064 :          data_tmp = full_data(idata)
   50702      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50703      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50704      368064 :          pack_tmp = ISHFT(pack_tmp, -3)
   50705      368064 :          idata = idata + 1
   50706      368064 :          data_tmp = full_data(idata)
   50707      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50708      368064 :          data_tmp = IAND(data_tmp, mask_left(3))
   50709      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50710      368064 :          ipack = ipack + 1
   50711      368064 :          packed_data(ipack) = pack_tmp
   50712      368064 :          data_tmp = full_data(idata)
   50713      368064 :          pack_tmp = ISHFT(data_tmp, 6)
   50714      368064 :          pack_tmp = ISHFT(pack_tmp, -6)
   50715      368064 :          idata = idata + 1
   50716      368064 :          data_tmp = full_data(idata)
   50717      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50718      368064 :          data_tmp = IAND(data_tmp, mask_left(6))
   50719      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50720      368064 :          ipack = ipack + 1
   50721      368064 :          packed_data(ipack) = pack_tmp
   50722      368064 :          data_tmp = full_data(idata)
   50723      368064 :          pack_tmp = ISHFT(data_tmp, 9)
   50724      368064 :          pack_tmp = ISHFT(pack_tmp, -9)
   50725      368064 :          idata = idata + 1
   50726      368064 :          data_tmp = full_data(idata)
   50727      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50728      368064 :          data_tmp = IAND(data_tmp, mask_left(9))
   50729      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50730      368064 :          ipack = ipack + 1
   50731      368064 :          packed_data(ipack) = pack_tmp
   50732      368064 :          data_tmp = full_data(idata)
   50733      368064 :          pack_tmp = ISHFT(data_tmp, 12)
   50734      368064 :          pack_tmp = ISHFT(pack_tmp, -12)
   50735      368064 :          idata = idata + 1
   50736      368064 :          data_tmp = full_data(idata)
   50737      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50738      368064 :          data_tmp = IAND(data_tmp, mask_left(12))
   50739      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50740      368064 :          ipack = ipack + 1
   50741      368064 :          packed_data(ipack) = pack_tmp
   50742      368064 :          data_tmp = full_data(idata)
   50743      368064 :          pack_tmp = ISHFT(data_tmp, 15)
   50744      368064 :          pack_tmp = ISHFT(pack_tmp, -15)
   50745      368064 :          idata = idata + 1
   50746      368064 :          data_tmp = full_data(idata)
   50747      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50748      368064 :          data_tmp = IAND(data_tmp, mask_left(15))
   50749      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50750      368064 :          ipack = ipack + 1
   50751      368064 :          packed_data(ipack) = pack_tmp
   50752      368064 :          data_tmp = full_data(idata)
   50753      368064 :          pack_tmp = ISHFT(data_tmp, 18)
   50754      368064 :          pack_tmp = ISHFT(pack_tmp, -18)
   50755      368064 :          idata = idata + 1
   50756      368064 :          data_tmp = full_data(idata)
   50757      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50758      368064 :          data_tmp = IAND(data_tmp, mask_left(18))
   50759      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50760      368064 :          ipack = ipack + 1
   50761      368064 :          packed_data(ipack) = pack_tmp
   50762      368064 :          data_tmp = full_data(idata)
   50763      368064 :          pack_tmp = ISHFT(data_tmp, 21)
   50764      368064 :          pack_tmp = ISHFT(pack_tmp, -21)
   50765      368064 :          idata = idata + 1
   50766      368064 :          data_tmp = full_data(idata)
   50767      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50768      368064 :          data_tmp = IAND(data_tmp, mask_left(21))
   50769      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50770      368064 :          ipack = ipack + 1
   50771      368064 :          packed_data(ipack) = pack_tmp
   50772      368064 :          data_tmp = full_data(idata)
   50773      368064 :          pack_tmp = ISHFT(data_tmp, 24)
   50774      368064 :          pack_tmp = ISHFT(pack_tmp, -24)
   50775      368064 :          idata = idata + 1
   50776      368064 :          data_tmp = full_data(idata)
   50777      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50778      368064 :          data_tmp = IAND(data_tmp, mask_left(24))
   50779      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50780      368064 :          ipack = ipack + 1
   50781      368064 :          packed_data(ipack) = pack_tmp
   50782      368064 :          data_tmp = full_data(idata)
   50783      368064 :          pack_tmp = ISHFT(data_tmp, 27)
   50784      368064 :          pack_tmp = ISHFT(pack_tmp, -27)
   50785      368064 :          idata = idata + 1
   50786      368064 :          data_tmp = full_data(idata)
   50787      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50788      368064 :          data_tmp = IAND(data_tmp, mask_left(27))
   50789      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50790      368064 :          ipack = ipack + 1
   50791      368064 :          packed_data(ipack) = pack_tmp
   50792      368064 :          data_tmp = full_data(idata)
   50793      368064 :          pack_tmp = ISHFT(data_tmp, 30)
   50794      368064 :          pack_tmp = ISHFT(pack_tmp, -30)
   50795      368064 :          idata = idata + 1
   50796      368064 :          data_tmp = full_data(idata)
   50797      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50798      368064 :          data_tmp = IAND(data_tmp, mask_left(30))
   50799      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50800      368064 :          ipack = ipack + 1
   50801      368064 :          packed_data(ipack) = pack_tmp
   50802      368064 :          data_tmp = full_data(idata)
   50803      368064 :          pack_tmp = ISHFT(data_tmp, 33)
   50804      368064 :          pack_tmp = ISHFT(pack_tmp, -33)
   50805      368064 :          idata = idata + 1
   50806      368064 :          data_tmp = full_data(idata)
   50807      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50808      368064 :          data_tmp = IAND(data_tmp, mask_left(33))
   50809      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50810      368064 :          ipack = ipack + 1
   50811      368064 :          packed_data(ipack) = pack_tmp
   50812      368064 :          data_tmp = full_data(idata)
   50813      368064 :          pack_tmp = ISHFT(data_tmp, 36)
   50814      368064 :          pack_tmp = ISHFT(pack_tmp, -36)
   50815      368064 :          idata = idata + 1
   50816      368064 :          data_tmp = full_data(idata)
   50817      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50818      368064 :          data_tmp = IAND(data_tmp, mask_left(36))
   50819      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50820      368064 :          ipack = ipack + 1
   50821      368064 :          packed_data(ipack) = pack_tmp
   50822      368064 :          data_tmp = full_data(idata)
   50823      368064 :          pack_tmp = ISHFT(data_tmp, 39)
   50824      368064 :          pack_tmp = ISHFT(pack_tmp, -39)
   50825      368064 :          idata = idata + 1
   50826      368064 :          data_tmp = full_data(idata)
   50827      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50828      368064 :          data_tmp = IAND(data_tmp, mask_left(39))
   50829      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50830      368064 :          ipack = ipack + 1
   50831      368064 :          packed_data(ipack) = pack_tmp
   50832      368064 :          data_tmp = full_data(idata)
   50833      368064 :          pack_tmp = ISHFT(data_tmp, 42)
   50834      368064 :          pack_tmp = ISHFT(pack_tmp, -42)
   50835      368064 :          idata = idata + 1
   50836      368064 :          data_tmp = full_data(idata)
   50837      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50838      368064 :          data_tmp = IAND(data_tmp, mask_left(42))
   50839      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50840      368064 :          ipack = ipack + 1
   50841      368064 :          packed_data(ipack) = pack_tmp
   50842      368064 :          data_tmp = full_data(idata)
   50843      368064 :          pack_tmp = ISHFT(data_tmp, 45)
   50844      368064 :          pack_tmp = ISHFT(pack_tmp, -45)
   50845      368064 :          idata = idata + 1
   50846      368064 :          data_tmp = full_data(idata)
   50847      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50848      368064 :          data_tmp = IAND(data_tmp, mask_left(45))
   50849      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50850      368064 :          ipack = ipack + 1
   50851      368064 :          packed_data(ipack) = pack_tmp
   50852      368064 :          data_tmp = full_data(idata)
   50853      368064 :          pack_tmp = ISHFT(data_tmp, 48)
   50854      368064 :          pack_tmp = ISHFT(pack_tmp, -48)
   50855      368064 :          idata = idata + 1
   50856      368064 :          data_tmp = full_data(idata)
   50857      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50858      368064 :          data_tmp = IAND(data_tmp, mask_left(48))
   50859      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50860      368064 :          ipack = ipack + 1
   50861      368064 :          packed_data(ipack) = pack_tmp
   50862      368064 :          data_tmp = full_data(idata)
   50863      368064 :          pack_tmp = ISHFT(data_tmp, 51)
   50864      368064 :          pack_tmp = ISHFT(pack_tmp, -51)
   50865      368064 :          idata = idata + 1
   50866      368064 :          data_tmp = full_data(idata)
   50867      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50868      368064 :          data_tmp = IAND(data_tmp, mask_left(51))
   50869      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50870      368064 :          ipack = ipack + 1
   50871      368064 :          packed_data(ipack) = pack_tmp
   50872      368064 :          data_tmp = full_data(idata)
   50873      368064 :          pack_tmp = ISHFT(data_tmp, 54)
   50874      368064 :          pack_tmp = ISHFT(pack_tmp, -54)
   50875      368064 :          idata = idata + 1
   50876      368064 :          data_tmp = full_data(idata)
   50877      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50878      368064 :          data_tmp = IAND(data_tmp, mask_left(54))
   50879      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50880      368064 :          ipack = ipack + 1
   50881      368064 :          packed_data(ipack) = pack_tmp
   50882      368064 :          data_tmp = full_data(idata)
   50883      368064 :          pack_tmp = ISHFT(data_tmp, 57)
   50884      368064 :          pack_tmp = ISHFT(pack_tmp, -57)
   50885      368064 :          idata = idata + 1
   50886      368064 :          data_tmp = full_data(idata)
   50887      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50888      368064 :          data_tmp = IAND(data_tmp, mask_left(57))
   50889      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50890      368064 :          ipack = ipack + 1
   50891      368064 :          packed_data(ipack) = pack_tmp
   50892      368064 :          data_tmp = full_data(idata)
   50893      368064 :          pack_tmp = ISHFT(data_tmp, 60)
   50894      368064 :          pack_tmp = ISHFT(pack_tmp, -60)
   50895      368064 :          idata = idata + 1
   50896      368064 :          data_tmp = full_data(idata)
   50897      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50898      368064 :          data_tmp = IAND(data_tmp, mask_left(60))
   50899      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50900      368064 :          ipack = ipack + 1
   50901      368064 :          packed_data(ipack) = pack_tmp
   50902      368064 :          data_tmp = full_data(idata)
   50903      368064 :          pack_tmp = ISHFT(data_tmp, 63)
   50904      368064 :          pack_tmp = ISHFT(pack_tmp, -61)
   50905      368064 :          idata = idata + 1
   50906      368064 :          data_tmp = full_data(idata)
   50907      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50908      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50909      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
   50910      368064 :          idata = idata + 1
   50911      368064 :          data_tmp = full_data(idata)
   50912      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50913      368064 :          data_tmp = IAND(data_tmp, mask_left(2))
   50914      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50915      368064 :          ipack = ipack + 1
   50916      368064 :          packed_data(ipack) = pack_tmp
   50917      368064 :          data_tmp = full_data(idata)
   50918      368064 :          pack_tmp = ISHFT(data_tmp, 5)
   50919      368064 :          pack_tmp = ISHFT(pack_tmp, -5)
   50920      368064 :          idata = idata + 1
   50921      368064 :          data_tmp = full_data(idata)
   50922      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50923      368064 :          data_tmp = IAND(data_tmp, mask_left(5))
   50924      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50925      368064 :          ipack = ipack + 1
   50926      368064 :          packed_data(ipack) = pack_tmp
   50927      368064 :          data_tmp = full_data(idata)
   50928      368064 :          pack_tmp = ISHFT(data_tmp, 8)
   50929      368064 :          pack_tmp = ISHFT(pack_tmp, -8)
   50930      368064 :          idata = idata + 1
   50931      368064 :          data_tmp = full_data(idata)
   50932      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50933      368064 :          data_tmp = IAND(data_tmp, mask_left(8))
   50934      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50935      368064 :          ipack = ipack + 1
   50936      368064 :          packed_data(ipack) = pack_tmp
   50937      368064 :          data_tmp = full_data(idata)
   50938      368064 :          pack_tmp = ISHFT(data_tmp, 11)
   50939      368064 :          pack_tmp = ISHFT(pack_tmp, -11)
   50940      368064 :          idata = idata + 1
   50941      368064 :          data_tmp = full_data(idata)
   50942      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50943      368064 :          data_tmp = IAND(data_tmp, mask_left(11))
   50944      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50945      368064 :          ipack = ipack + 1
   50946      368064 :          packed_data(ipack) = pack_tmp
   50947      368064 :          data_tmp = full_data(idata)
   50948      368064 :          pack_tmp = ISHFT(data_tmp, 14)
   50949      368064 :          pack_tmp = ISHFT(pack_tmp, -14)
   50950      368064 :          idata = idata + 1
   50951      368064 :          data_tmp = full_data(idata)
   50952      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50953      368064 :          data_tmp = IAND(data_tmp, mask_left(14))
   50954      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50955      368064 :          ipack = ipack + 1
   50956      368064 :          packed_data(ipack) = pack_tmp
   50957      368064 :          data_tmp = full_data(idata)
   50958      368064 :          pack_tmp = ISHFT(data_tmp, 17)
   50959      368064 :          pack_tmp = ISHFT(pack_tmp, -17)
   50960      368064 :          idata = idata + 1
   50961      368064 :          data_tmp = full_data(idata)
   50962      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50963      368064 :          data_tmp = IAND(data_tmp, mask_left(17))
   50964      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50965      368064 :          ipack = ipack + 1
   50966      368064 :          packed_data(ipack) = pack_tmp
   50967      368064 :          data_tmp = full_data(idata)
   50968      368064 :          pack_tmp = ISHFT(data_tmp, 20)
   50969      368064 :          pack_tmp = ISHFT(pack_tmp, -20)
   50970      368064 :          idata = idata + 1
   50971      368064 :          data_tmp = full_data(idata)
   50972      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50973      368064 :          data_tmp = IAND(data_tmp, mask_left(20))
   50974      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50975      368064 :          ipack = ipack + 1
   50976      368064 :          packed_data(ipack) = pack_tmp
   50977      368064 :          data_tmp = full_data(idata)
   50978      368064 :          pack_tmp = ISHFT(data_tmp, 23)
   50979      368064 :          pack_tmp = ISHFT(pack_tmp, -23)
   50980      368064 :          idata = idata + 1
   50981      368064 :          data_tmp = full_data(idata)
   50982      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50983      368064 :          data_tmp = IAND(data_tmp, mask_left(23))
   50984      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50985      368064 :          ipack = ipack + 1
   50986      368064 :          packed_data(ipack) = pack_tmp
   50987      368064 :          data_tmp = full_data(idata)
   50988      368064 :          pack_tmp = ISHFT(data_tmp, 26)
   50989      368064 :          pack_tmp = ISHFT(pack_tmp, -26)
   50990      368064 :          idata = idata + 1
   50991      368064 :          data_tmp = full_data(idata)
   50992      368064 :          data_tmp = ISHFT(data_tmp, 3)
   50993      368064 :          data_tmp = IAND(data_tmp, mask_left(26))
   50994      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50995      368064 :          ipack = ipack + 1
   50996      368064 :          packed_data(ipack) = pack_tmp
   50997      368064 :          data_tmp = full_data(idata)
   50998      368064 :          pack_tmp = ISHFT(data_tmp, 29)
   50999      368064 :          pack_tmp = ISHFT(pack_tmp, -29)
   51000      368064 :          idata = idata + 1
   51001      368064 :          data_tmp = full_data(idata)
   51002      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51003      368064 :          data_tmp = IAND(data_tmp, mask_left(29))
   51004      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51005      368064 :          ipack = ipack + 1
   51006      368064 :          packed_data(ipack) = pack_tmp
   51007      368064 :          data_tmp = full_data(idata)
   51008      368064 :          pack_tmp = ISHFT(data_tmp, 32)
   51009      368064 :          pack_tmp = ISHFT(pack_tmp, -32)
   51010      368064 :          idata = idata + 1
   51011      368064 :          data_tmp = full_data(idata)
   51012      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51013      368064 :          data_tmp = IAND(data_tmp, mask_left(32))
   51014      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51015      368064 :          ipack = ipack + 1
   51016      368064 :          packed_data(ipack) = pack_tmp
   51017      368064 :          data_tmp = full_data(idata)
   51018      368064 :          pack_tmp = ISHFT(data_tmp, 35)
   51019      368064 :          pack_tmp = ISHFT(pack_tmp, -35)
   51020      368064 :          idata = idata + 1
   51021      368064 :          data_tmp = full_data(idata)
   51022      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51023      368064 :          data_tmp = IAND(data_tmp, mask_left(35))
   51024      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51025      368064 :          ipack = ipack + 1
   51026      368064 :          packed_data(ipack) = pack_tmp
   51027      368064 :          data_tmp = full_data(idata)
   51028      368064 :          pack_tmp = ISHFT(data_tmp, 38)
   51029      368064 :          pack_tmp = ISHFT(pack_tmp, -38)
   51030      368064 :          idata = idata + 1
   51031      368064 :          data_tmp = full_data(idata)
   51032      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51033      368064 :          data_tmp = IAND(data_tmp, mask_left(38))
   51034      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51035      368064 :          ipack = ipack + 1
   51036      368064 :          packed_data(ipack) = pack_tmp
   51037      368064 :          data_tmp = full_data(idata)
   51038      368064 :          pack_tmp = ISHFT(data_tmp, 41)
   51039      368064 :          pack_tmp = ISHFT(pack_tmp, -41)
   51040      368064 :          idata = idata + 1
   51041      368064 :          data_tmp = full_data(idata)
   51042      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51043      368064 :          data_tmp = IAND(data_tmp, mask_left(41))
   51044      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51045      368064 :          ipack = ipack + 1
   51046      368064 :          packed_data(ipack) = pack_tmp
   51047      368064 :          data_tmp = full_data(idata)
   51048      368064 :          pack_tmp = ISHFT(data_tmp, 44)
   51049      368064 :          pack_tmp = ISHFT(pack_tmp, -44)
   51050      368064 :          idata = idata + 1
   51051      368064 :          data_tmp = full_data(idata)
   51052      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51053      368064 :          data_tmp = IAND(data_tmp, mask_left(44))
   51054      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51055      368064 :          ipack = ipack + 1
   51056      368064 :          packed_data(ipack) = pack_tmp
   51057      368064 :          data_tmp = full_data(idata)
   51058      368064 :          pack_tmp = ISHFT(data_tmp, 47)
   51059      368064 :          pack_tmp = ISHFT(pack_tmp, -47)
   51060      368064 :          idata = idata + 1
   51061      368064 :          data_tmp = full_data(idata)
   51062      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51063      368064 :          data_tmp = IAND(data_tmp, mask_left(47))
   51064      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51065      368064 :          ipack = ipack + 1
   51066      368064 :          packed_data(ipack) = pack_tmp
   51067      368064 :          data_tmp = full_data(idata)
   51068      368064 :          pack_tmp = ISHFT(data_tmp, 50)
   51069      368064 :          pack_tmp = ISHFT(pack_tmp, -50)
   51070      368064 :          idata = idata + 1
   51071      368064 :          data_tmp = full_data(idata)
   51072      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51073      368064 :          data_tmp = IAND(data_tmp, mask_left(50))
   51074      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51075      368064 :          ipack = ipack + 1
   51076      368064 :          packed_data(ipack) = pack_tmp
   51077      368064 :          data_tmp = full_data(idata)
   51078      368064 :          pack_tmp = ISHFT(data_tmp, 53)
   51079      368064 :          pack_tmp = ISHFT(pack_tmp, -53)
   51080      368064 :          idata = idata + 1
   51081      368064 :          data_tmp = full_data(idata)
   51082      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51083      368064 :          data_tmp = IAND(data_tmp, mask_left(53))
   51084      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51085      368064 :          ipack = ipack + 1
   51086      368064 :          packed_data(ipack) = pack_tmp
   51087      368064 :          data_tmp = full_data(idata)
   51088      368064 :          pack_tmp = ISHFT(data_tmp, 56)
   51089      368064 :          pack_tmp = ISHFT(pack_tmp, -56)
   51090      368064 :          idata = idata + 1
   51091      368064 :          data_tmp = full_data(idata)
   51092      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51093      368064 :          data_tmp = IAND(data_tmp, mask_left(56))
   51094      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51095      368064 :          ipack = ipack + 1
   51096      368064 :          packed_data(ipack) = pack_tmp
   51097      368064 :          data_tmp = full_data(idata)
   51098      368064 :          pack_tmp = ISHFT(data_tmp, 59)
   51099      368064 :          pack_tmp = ISHFT(pack_tmp, -59)
   51100      368064 :          idata = idata + 1
   51101      368064 :          data_tmp = full_data(idata)
   51102      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51103      368064 :          data_tmp = IAND(data_tmp, mask_left(59))
   51104      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51105      368064 :          ipack = ipack + 1
   51106      368064 :          packed_data(ipack) = pack_tmp
   51107      368064 :          data_tmp = full_data(idata)
   51108      368064 :          pack_tmp = ISHFT(data_tmp, 62)
   51109      368064 :          pack_tmp = ISHFT(pack_tmp, -61)
   51110      368064 :          idata = idata + 1
   51111      368064 :          data_tmp = full_data(idata)
   51112      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51113      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51114      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
   51115      368064 :          idata = idata + 1
   51116      368064 :          data_tmp = full_data(idata)
   51117      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51118      368064 :          data_tmp = IAND(data_tmp, mask_left(1))
   51119      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51120      368064 :          ipack = ipack + 1
   51121      368064 :          packed_data(ipack) = pack_tmp
   51122      368064 :          data_tmp = full_data(idata)
   51123      368064 :          pack_tmp = ISHFT(data_tmp, 4)
   51124      368064 :          pack_tmp = ISHFT(pack_tmp, -4)
   51125      368064 :          idata = idata + 1
   51126      368064 :          data_tmp = full_data(idata)
   51127      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51128      368064 :          data_tmp = IAND(data_tmp, mask_left(4))
   51129      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51130      368064 :          ipack = ipack + 1
   51131      368064 :          packed_data(ipack) = pack_tmp
   51132      368064 :          data_tmp = full_data(idata)
   51133      368064 :          pack_tmp = ISHFT(data_tmp, 7)
   51134      368064 :          pack_tmp = ISHFT(pack_tmp, -7)
   51135      368064 :          idata = idata + 1
   51136      368064 :          data_tmp = full_data(idata)
   51137      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51138      368064 :          data_tmp = IAND(data_tmp, mask_left(7))
   51139      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51140      368064 :          ipack = ipack + 1
   51141      368064 :          packed_data(ipack) = pack_tmp
   51142      368064 :          data_tmp = full_data(idata)
   51143      368064 :          pack_tmp = ISHFT(data_tmp, 10)
   51144      368064 :          pack_tmp = ISHFT(pack_tmp, -10)
   51145      368064 :          idata = idata + 1
   51146      368064 :          data_tmp = full_data(idata)
   51147      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51148      368064 :          data_tmp = IAND(data_tmp, mask_left(10))
   51149      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51150      368064 :          ipack = ipack + 1
   51151      368064 :          packed_data(ipack) = pack_tmp
   51152      368064 :          data_tmp = full_data(idata)
   51153      368064 :          pack_tmp = ISHFT(data_tmp, 13)
   51154      368064 :          pack_tmp = ISHFT(pack_tmp, -13)
   51155      368064 :          idata = idata + 1
   51156      368064 :          data_tmp = full_data(idata)
   51157      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51158      368064 :          data_tmp = IAND(data_tmp, mask_left(13))
   51159      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51160      368064 :          ipack = ipack + 1
   51161      368064 :          packed_data(ipack) = pack_tmp
   51162      368064 :          data_tmp = full_data(idata)
   51163      368064 :          pack_tmp = ISHFT(data_tmp, 16)
   51164      368064 :          pack_tmp = ISHFT(pack_tmp, -16)
   51165      368064 :          idata = idata + 1
   51166      368064 :          data_tmp = full_data(idata)
   51167      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51168      368064 :          data_tmp = IAND(data_tmp, mask_left(16))
   51169      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51170      368064 :          ipack = ipack + 1
   51171      368064 :          packed_data(ipack) = pack_tmp
   51172      368064 :          data_tmp = full_data(idata)
   51173      368064 :          pack_tmp = ISHFT(data_tmp, 19)
   51174      368064 :          pack_tmp = ISHFT(pack_tmp, -19)
   51175      368064 :          idata = idata + 1
   51176      368064 :          data_tmp = full_data(idata)
   51177      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51178      368064 :          data_tmp = IAND(data_tmp, mask_left(19))
   51179      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51180      368064 :          ipack = ipack + 1
   51181      368064 :          packed_data(ipack) = pack_tmp
   51182      368064 :          data_tmp = full_data(idata)
   51183      368064 :          pack_tmp = ISHFT(data_tmp, 22)
   51184      368064 :          pack_tmp = ISHFT(pack_tmp, -22)
   51185      368064 :          idata = idata + 1
   51186      368064 :          data_tmp = full_data(idata)
   51187      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51188      368064 :          data_tmp = IAND(data_tmp, mask_left(22))
   51189      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51190      368064 :          ipack = ipack + 1
   51191      368064 :          packed_data(ipack) = pack_tmp
   51192      368064 :          data_tmp = full_data(idata)
   51193      368064 :          pack_tmp = ISHFT(data_tmp, 25)
   51194      368064 :          pack_tmp = ISHFT(pack_tmp, -25)
   51195      368064 :          idata = idata + 1
   51196      368064 :          data_tmp = full_data(idata)
   51197      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51198      368064 :          data_tmp = IAND(data_tmp, mask_left(25))
   51199      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51200      368064 :          ipack = ipack + 1
   51201      368064 :          packed_data(ipack) = pack_tmp
   51202      368064 :          data_tmp = full_data(idata)
   51203      368064 :          pack_tmp = ISHFT(data_tmp, 28)
   51204      368064 :          pack_tmp = ISHFT(pack_tmp, -28)
   51205      368064 :          idata = idata + 1
   51206      368064 :          data_tmp = full_data(idata)
   51207      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51208      368064 :          data_tmp = IAND(data_tmp, mask_left(28))
   51209      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51210      368064 :          ipack = ipack + 1
   51211      368064 :          packed_data(ipack) = pack_tmp
   51212      368064 :          data_tmp = full_data(idata)
   51213      368064 :          pack_tmp = ISHFT(data_tmp, 31)
   51214      368064 :          pack_tmp = ISHFT(pack_tmp, -31)
   51215      368064 :          idata = idata + 1
   51216      368064 :          data_tmp = full_data(idata)
   51217      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51218      368064 :          data_tmp = IAND(data_tmp, mask_left(31))
   51219      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51220      368064 :          ipack = ipack + 1
   51221      368064 :          packed_data(ipack) = pack_tmp
   51222      368064 :          data_tmp = full_data(idata)
   51223      368064 :          pack_tmp = ISHFT(data_tmp, 34)
   51224      368064 :          pack_tmp = ISHFT(pack_tmp, -34)
   51225      368064 :          idata = idata + 1
   51226      368064 :          data_tmp = full_data(idata)
   51227      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51228      368064 :          data_tmp = IAND(data_tmp, mask_left(34))
   51229      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51230      368064 :          ipack = ipack + 1
   51231      368064 :          packed_data(ipack) = pack_tmp
   51232      368064 :          data_tmp = full_data(idata)
   51233      368064 :          pack_tmp = ISHFT(data_tmp, 37)
   51234      368064 :          pack_tmp = ISHFT(pack_tmp, -37)
   51235      368064 :          idata = idata + 1
   51236      368064 :          data_tmp = full_data(idata)
   51237      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51238      368064 :          data_tmp = IAND(data_tmp, mask_left(37))
   51239      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51240      368064 :          ipack = ipack + 1
   51241      368064 :          packed_data(ipack) = pack_tmp
   51242      368064 :          data_tmp = full_data(idata)
   51243      368064 :          pack_tmp = ISHFT(data_tmp, 40)
   51244      368064 :          pack_tmp = ISHFT(pack_tmp, -40)
   51245      368064 :          idata = idata + 1
   51246      368064 :          data_tmp = full_data(idata)
   51247      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51248      368064 :          data_tmp = IAND(data_tmp, mask_left(40))
   51249      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51250      368064 :          ipack = ipack + 1
   51251      368064 :          packed_data(ipack) = pack_tmp
   51252      368064 :          data_tmp = full_data(idata)
   51253      368064 :          pack_tmp = ISHFT(data_tmp, 43)
   51254      368064 :          pack_tmp = ISHFT(pack_tmp, -43)
   51255      368064 :          idata = idata + 1
   51256      368064 :          data_tmp = full_data(idata)
   51257      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51258      368064 :          data_tmp = IAND(data_tmp, mask_left(43))
   51259      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51260      368064 :          ipack = ipack + 1
   51261      368064 :          packed_data(ipack) = pack_tmp
   51262      368064 :          data_tmp = full_data(idata)
   51263      368064 :          pack_tmp = ISHFT(data_tmp, 46)
   51264      368064 :          pack_tmp = ISHFT(pack_tmp, -46)
   51265      368064 :          idata = idata + 1
   51266      368064 :          data_tmp = full_data(idata)
   51267      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51268      368064 :          data_tmp = IAND(data_tmp, mask_left(46))
   51269      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51270      368064 :          ipack = ipack + 1
   51271      368064 :          packed_data(ipack) = pack_tmp
   51272      368064 :          data_tmp = full_data(idata)
   51273      368064 :          pack_tmp = ISHFT(data_tmp, 49)
   51274      368064 :          pack_tmp = ISHFT(pack_tmp, -49)
   51275      368064 :          idata = idata + 1
   51276      368064 :          data_tmp = full_data(idata)
   51277      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51278      368064 :          data_tmp = IAND(data_tmp, mask_left(49))
   51279      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51280      368064 :          ipack = ipack + 1
   51281      368064 :          packed_data(ipack) = pack_tmp
   51282      368064 :          data_tmp = full_data(idata)
   51283      368064 :          pack_tmp = ISHFT(data_tmp, 52)
   51284      368064 :          pack_tmp = ISHFT(pack_tmp, -52)
   51285      368064 :          idata = idata + 1
   51286      368064 :          data_tmp = full_data(idata)
   51287      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51288      368064 :          data_tmp = IAND(data_tmp, mask_left(52))
   51289      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51290      368064 :          ipack = ipack + 1
   51291      368064 :          packed_data(ipack) = pack_tmp
   51292      368064 :          data_tmp = full_data(idata)
   51293      368064 :          pack_tmp = ISHFT(data_tmp, 55)
   51294      368064 :          pack_tmp = ISHFT(pack_tmp, -55)
   51295      368064 :          idata = idata + 1
   51296      368064 :          data_tmp = full_data(idata)
   51297      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51298      368064 :          data_tmp = IAND(data_tmp, mask_left(55))
   51299      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51300      368064 :          ipack = ipack + 1
   51301      368064 :          packed_data(ipack) = pack_tmp
   51302      368064 :          data_tmp = full_data(idata)
   51303      368064 :          pack_tmp = ISHFT(data_tmp, 58)
   51304      368064 :          pack_tmp = ISHFT(pack_tmp, -58)
   51305      368064 :          idata = idata + 1
   51306      368064 :          data_tmp = full_data(idata)
   51307      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51308      368064 :          data_tmp = IAND(data_tmp, mask_left(58))
   51309      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51310      368064 :          ipack = ipack + 1
   51311      368064 :          packed_data(ipack) = pack_tmp
   51312      368064 :          data_tmp = full_data(idata)
   51313      368064 :          pack_tmp = ISHFT(data_tmp, 61)
   51314      368064 :          pack_tmp = ISHFT(pack_tmp, -61)
   51315      368064 :          idata = idata + 1
   51316      368064 :          data_tmp = full_data(idata)
   51317      368064 :          data_tmp = ISHFT(data_tmp, 3)
   51318      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51319             :          pack_tmp = ISHFT(pack_tmp, 0)
   51320      368064 :          pack_tmp = ISHFT(pack_tmp, 0)
   51321      368064 :          ipack = ipack + 1
   51322      368064 :          packed_data(ipack) = pack_tmp
   51323             :       END DO
   51324       23004 :       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       23004 :    END SUBROUTINE ints2bits_61
   51328             : 
   51329             : ! **************************************************************************************************
   51330             : !> \brief ...
   51331             : !> \param Ndata ...
   51332             : !> \param packed_data ...
   51333             : !> \param full_data ...
   51334             : ! **************************************************************************************************
   51335       93707 :    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       93707 :       ipack = 0
   51346       93707 :       idata = 0
   51347       93707 :       pack_tmp = 0
   51348       93707 :       Ndata_rep = (Ndata/64)*64
   51349       93707 :       DO kdata = 1, Ndata_rep, 64
   51350     1499312 :          idata = idata + 1
   51351     1499312 :          data_tmp = ISHFT(pack_tmp, 61)
   51352     1499312 :          ipack = ipack + 1
   51353     1499312 :          pack_tmp = packed_data(ipack)
   51354     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(61)))
   51355     1499312 :          pack_tmp = ISHFT(pack_tmp, -61)
   51356     1499312 :          idata = idata + 1
   51357     1499312 :          data_tmp = ISHFT(pack_tmp, 58)
   51358     1499312 :          ipack = ipack + 1
   51359     1499312 :          pack_tmp = packed_data(ipack)
   51360     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   51361     1499312 :          pack_tmp = ISHFT(pack_tmp, -58)
   51362     1499312 :          idata = idata + 1
   51363     1499312 :          data_tmp = ISHFT(pack_tmp, 55)
   51364     1499312 :          ipack = ipack + 1
   51365     1499312 :          pack_tmp = packed_data(ipack)
   51366     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(55)))
   51367     1499312 :          pack_tmp = ISHFT(pack_tmp, -55)
   51368     1499312 :          idata = idata + 1
   51369     1499312 :          data_tmp = ISHFT(pack_tmp, 52)
   51370     1499312 :          ipack = ipack + 1
   51371     1499312 :          pack_tmp = packed_data(ipack)
   51372     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   51373     1499312 :          pack_tmp = ISHFT(pack_tmp, -52)
   51374     1499312 :          idata = idata + 1
   51375     1499312 :          data_tmp = ISHFT(pack_tmp, 49)
   51376     1499312 :          ipack = ipack + 1
   51377     1499312 :          pack_tmp = packed_data(ipack)
   51378     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   51379     1499312 :          pack_tmp = ISHFT(pack_tmp, -49)
   51380     1499312 :          idata = idata + 1
   51381     1499312 :          data_tmp = ISHFT(pack_tmp, 46)
   51382     1499312 :          ipack = ipack + 1
   51383     1499312 :          pack_tmp = packed_data(ipack)
   51384     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   51385     1499312 :          pack_tmp = ISHFT(pack_tmp, -46)
   51386     1499312 :          idata = idata + 1
   51387     1499312 :          data_tmp = ISHFT(pack_tmp, 43)
   51388     1499312 :          ipack = ipack + 1
   51389     1499312 :          pack_tmp = packed_data(ipack)
   51390     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   51391     1499312 :          pack_tmp = ISHFT(pack_tmp, -43)
   51392     1499312 :          idata = idata + 1
   51393     1499312 :          data_tmp = ISHFT(pack_tmp, 40)
   51394     1499312 :          ipack = ipack + 1
   51395     1499312 :          pack_tmp = packed_data(ipack)
   51396     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   51397     1499312 :          pack_tmp = ISHFT(pack_tmp, -40)
   51398     1499312 :          idata = idata + 1
   51399     1499312 :          data_tmp = ISHFT(pack_tmp, 37)
   51400     1499312 :          ipack = ipack + 1
   51401     1499312 :          pack_tmp = packed_data(ipack)
   51402     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   51403     1499312 :          pack_tmp = ISHFT(pack_tmp, -37)
   51404     1499312 :          idata = idata + 1
   51405     1499312 :          data_tmp = ISHFT(pack_tmp, 34)
   51406     1499312 :          ipack = ipack + 1
   51407     1499312 :          pack_tmp = packed_data(ipack)
   51408     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   51409     1499312 :          pack_tmp = ISHFT(pack_tmp, -34)
   51410     1499312 :          idata = idata + 1
   51411     1499312 :          data_tmp = ISHFT(pack_tmp, 31)
   51412     1499312 :          ipack = ipack + 1
   51413     1499312 :          pack_tmp = packed_data(ipack)
   51414     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   51415     1499312 :          pack_tmp = ISHFT(pack_tmp, -31)
   51416     1499312 :          idata = idata + 1
   51417     1499312 :          data_tmp = ISHFT(pack_tmp, 28)
   51418     1499312 :          ipack = ipack + 1
   51419     1499312 :          pack_tmp = packed_data(ipack)
   51420     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   51421     1499312 :          pack_tmp = ISHFT(pack_tmp, -28)
   51422     1499312 :          idata = idata + 1
   51423     1499312 :          data_tmp = ISHFT(pack_tmp, 25)
   51424     1499312 :          ipack = ipack + 1
   51425     1499312 :          pack_tmp = packed_data(ipack)
   51426     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   51427     1499312 :          pack_tmp = ISHFT(pack_tmp, -25)
   51428     1499312 :          idata = idata + 1
   51429     1499312 :          data_tmp = ISHFT(pack_tmp, 22)
   51430     1499312 :          ipack = ipack + 1
   51431     1499312 :          pack_tmp = packed_data(ipack)
   51432     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   51433     1499312 :          pack_tmp = ISHFT(pack_tmp, -22)
   51434     1499312 :          idata = idata + 1
   51435     1499312 :          data_tmp = ISHFT(pack_tmp, 19)
   51436     1499312 :          ipack = ipack + 1
   51437     1499312 :          pack_tmp = packed_data(ipack)
   51438     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   51439     1499312 :          pack_tmp = ISHFT(pack_tmp, -19)
   51440     1499312 :          idata = idata + 1
   51441     1499312 :          data_tmp = ISHFT(pack_tmp, 16)
   51442     1499312 :          ipack = ipack + 1
   51443     1499312 :          pack_tmp = packed_data(ipack)
   51444     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   51445     1499312 :          pack_tmp = ISHFT(pack_tmp, -16)
   51446     1499312 :          idata = idata + 1
   51447     1499312 :          data_tmp = ISHFT(pack_tmp, 13)
   51448     1499312 :          ipack = ipack + 1
   51449     1499312 :          pack_tmp = packed_data(ipack)
   51450     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   51451     1499312 :          pack_tmp = ISHFT(pack_tmp, -13)
   51452     1499312 :          idata = idata + 1
   51453     1499312 :          data_tmp = ISHFT(pack_tmp, 10)
   51454     1499312 :          ipack = ipack + 1
   51455     1499312 :          pack_tmp = packed_data(ipack)
   51456     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   51457     1499312 :          pack_tmp = ISHFT(pack_tmp, -10)
   51458     1499312 :          idata = idata + 1
   51459     1499312 :          data_tmp = ISHFT(pack_tmp, 7)
   51460     1499312 :          ipack = ipack + 1
   51461     1499312 :          pack_tmp = packed_data(ipack)
   51462     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   51463     1499312 :          pack_tmp = ISHFT(pack_tmp, -7)
   51464     1499312 :          idata = idata + 1
   51465     1499312 :          data_tmp = ISHFT(pack_tmp, 4)
   51466     1499312 :          ipack = ipack + 1
   51467     1499312 :          pack_tmp = packed_data(ipack)
   51468     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   51469     1499312 :          pack_tmp = ISHFT(pack_tmp, -4)
   51470     1499312 :          idata = idata + 1
   51471     1499312 :          data_tmp = ISHFT(pack_tmp, 1)
   51472     1499312 :          ipack = ipack + 1
   51473     1499312 :          pack_tmp = packed_data(ipack)
   51474     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   51475     1499312 :          pack_tmp = ISHFT(pack_tmp, -1)
   51476     1499312 :          idata = idata + 1
   51477     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   51478     1499312 :          full_data(idata) = data_tmp
   51479     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   51480     1499312 :          idata = idata + 1
   51481     1499312 :          data_tmp = ISHFT(pack_tmp, 59)
   51482     1499312 :          ipack = ipack + 1
   51483     1499312 :          pack_tmp = packed_data(ipack)
   51484     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(59)))
   51485     1499312 :          pack_tmp = ISHFT(pack_tmp, -59)
   51486     1499312 :          idata = idata + 1
   51487     1499312 :          data_tmp = ISHFT(pack_tmp, 56)
   51488     1499312 :          ipack = ipack + 1
   51489     1499312 :          pack_tmp = packed_data(ipack)
   51490     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   51491     1499312 :          pack_tmp = ISHFT(pack_tmp, -56)
   51492     1499312 :          idata = idata + 1
   51493     1499312 :          data_tmp = ISHFT(pack_tmp, 53)
   51494     1499312 :          ipack = ipack + 1
   51495     1499312 :          pack_tmp = packed_data(ipack)
   51496     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   51497     1499312 :          pack_tmp = ISHFT(pack_tmp, -53)
   51498     1499312 :          idata = idata + 1
   51499     1499312 :          data_tmp = ISHFT(pack_tmp, 50)
   51500     1499312 :          ipack = ipack + 1
   51501     1499312 :          pack_tmp = packed_data(ipack)
   51502     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   51503     1499312 :          pack_tmp = ISHFT(pack_tmp, -50)
   51504     1499312 :          idata = idata + 1
   51505     1499312 :          data_tmp = ISHFT(pack_tmp, 47)
   51506     1499312 :          ipack = ipack + 1
   51507     1499312 :          pack_tmp = packed_data(ipack)
   51508     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   51509     1499312 :          pack_tmp = ISHFT(pack_tmp, -47)
   51510     1499312 :          idata = idata + 1
   51511     1499312 :          data_tmp = ISHFT(pack_tmp, 44)
   51512     1499312 :          ipack = ipack + 1
   51513     1499312 :          pack_tmp = packed_data(ipack)
   51514     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   51515     1499312 :          pack_tmp = ISHFT(pack_tmp, -44)
   51516     1499312 :          idata = idata + 1
   51517     1499312 :          data_tmp = ISHFT(pack_tmp, 41)
   51518     1499312 :          ipack = ipack + 1
   51519     1499312 :          pack_tmp = packed_data(ipack)
   51520     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   51521     1499312 :          pack_tmp = ISHFT(pack_tmp, -41)
   51522     1499312 :          idata = idata + 1
   51523     1499312 :          data_tmp = ISHFT(pack_tmp, 38)
   51524     1499312 :          ipack = ipack + 1
   51525     1499312 :          pack_tmp = packed_data(ipack)
   51526     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   51527     1499312 :          pack_tmp = ISHFT(pack_tmp, -38)
   51528     1499312 :          idata = idata + 1
   51529     1499312 :          data_tmp = ISHFT(pack_tmp, 35)
   51530     1499312 :          ipack = ipack + 1
   51531     1499312 :          pack_tmp = packed_data(ipack)
   51532     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   51533     1499312 :          pack_tmp = ISHFT(pack_tmp, -35)
   51534     1499312 :          idata = idata + 1
   51535     1499312 :          data_tmp = ISHFT(pack_tmp, 32)
   51536     1499312 :          ipack = ipack + 1
   51537     1499312 :          pack_tmp = packed_data(ipack)
   51538     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   51539     1499312 :          pack_tmp = ISHFT(pack_tmp, -32)
   51540     1499312 :          idata = idata + 1
   51541     1499312 :          data_tmp = ISHFT(pack_tmp, 29)
   51542     1499312 :          ipack = ipack + 1
   51543     1499312 :          pack_tmp = packed_data(ipack)
   51544     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   51545     1499312 :          pack_tmp = ISHFT(pack_tmp, -29)
   51546     1499312 :          idata = idata + 1
   51547     1499312 :          data_tmp = ISHFT(pack_tmp, 26)
   51548     1499312 :          ipack = ipack + 1
   51549     1499312 :          pack_tmp = packed_data(ipack)
   51550     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   51551     1499312 :          pack_tmp = ISHFT(pack_tmp, -26)
   51552     1499312 :          idata = idata + 1
   51553     1499312 :          data_tmp = ISHFT(pack_tmp, 23)
   51554     1499312 :          ipack = ipack + 1
   51555     1499312 :          pack_tmp = packed_data(ipack)
   51556     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   51557     1499312 :          pack_tmp = ISHFT(pack_tmp, -23)
   51558     1499312 :          idata = idata + 1
   51559     1499312 :          data_tmp = ISHFT(pack_tmp, 20)
   51560     1499312 :          ipack = ipack + 1
   51561     1499312 :          pack_tmp = packed_data(ipack)
   51562     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   51563     1499312 :          pack_tmp = ISHFT(pack_tmp, -20)
   51564     1499312 :          idata = idata + 1
   51565     1499312 :          data_tmp = ISHFT(pack_tmp, 17)
   51566     1499312 :          ipack = ipack + 1
   51567     1499312 :          pack_tmp = packed_data(ipack)
   51568     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   51569     1499312 :          pack_tmp = ISHFT(pack_tmp, -17)
   51570     1499312 :          idata = idata + 1
   51571     1499312 :          data_tmp = ISHFT(pack_tmp, 14)
   51572     1499312 :          ipack = ipack + 1
   51573     1499312 :          pack_tmp = packed_data(ipack)
   51574     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   51575     1499312 :          pack_tmp = ISHFT(pack_tmp, -14)
   51576     1499312 :          idata = idata + 1
   51577     1499312 :          data_tmp = ISHFT(pack_tmp, 11)
   51578     1499312 :          ipack = ipack + 1
   51579     1499312 :          pack_tmp = packed_data(ipack)
   51580     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   51581     1499312 :          pack_tmp = ISHFT(pack_tmp, -11)
   51582     1499312 :          idata = idata + 1
   51583     1499312 :          data_tmp = ISHFT(pack_tmp, 8)
   51584     1499312 :          ipack = ipack + 1
   51585     1499312 :          pack_tmp = packed_data(ipack)
   51586     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   51587     1499312 :          pack_tmp = ISHFT(pack_tmp, -8)
   51588     1499312 :          idata = idata + 1
   51589     1499312 :          data_tmp = ISHFT(pack_tmp, 5)
   51590     1499312 :          ipack = ipack + 1
   51591     1499312 :          pack_tmp = packed_data(ipack)
   51592     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   51593     1499312 :          pack_tmp = ISHFT(pack_tmp, -5)
   51594     1499312 :          idata = idata + 1
   51595     1499312 :          data_tmp = ISHFT(pack_tmp, 2)
   51596     1499312 :          ipack = ipack + 1
   51597     1499312 :          pack_tmp = packed_data(ipack)
   51598     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   51599     1499312 :          pack_tmp = ISHFT(pack_tmp, -2)
   51600     1499312 :          idata = idata + 1
   51601     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   51602     1499312 :          full_data(idata) = data_tmp
   51603     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   51604     1499312 :          idata = idata + 1
   51605     1499312 :          data_tmp = ISHFT(pack_tmp, 60)
   51606     1499312 :          ipack = ipack + 1
   51607     1499312 :          pack_tmp = packed_data(ipack)
   51608     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   51609     1499312 :          pack_tmp = ISHFT(pack_tmp, -60)
   51610     1499312 :          idata = idata + 1
   51611     1499312 :          data_tmp = ISHFT(pack_tmp, 57)
   51612     1499312 :          ipack = ipack + 1
   51613     1499312 :          pack_tmp = packed_data(ipack)
   51614     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(57)))
   51615     1499312 :          pack_tmp = ISHFT(pack_tmp, -57)
   51616     1499312 :          idata = idata + 1
   51617     1499312 :          data_tmp = ISHFT(pack_tmp, 54)
   51618     1499312 :          ipack = ipack + 1
   51619     1499312 :          pack_tmp = packed_data(ipack)
   51620     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   51621     1499312 :          pack_tmp = ISHFT(pack_tmp, -54)
   51622     1499312 :          idata = idata + 1
   51623     1499312 :          data_tmp = ISHFT(pack_tmp, 51)
   51624     1499312 :          ipack = ipack + 1
   51625     1499312 :          pack_tmp = packed_data(ipack)
   51626     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   51627     1499312 :          pack_tmp = ISHFT(pack_tmp, -51)
   51628     1499312 :          idata = idata + 1
   51629     1499312 :          data_tmp = ISHFT(pack_tmp, 48)
   51630     1499312 :          ipack = ipack + 1
   51631     1499312 :          pack_tmp = packed_data(ipack)
   51632     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   51633     1499312 :          pack_tmp = ISHFT(pack_tmp, -48)
   51634     1499312 :          idata = idata + 1
   51635     1499312 :          data_tmp = ISHFT(pack_tmp, 45)
   51636     1499312 :          ipack = ipack + 1
   51637     1499312 :          pack_tmp = packed_data(ipack)
   51638     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   51639     1499312 :          pack_tmp = ISHFT(pack_tmp, -45)
   51640     1499312 :          idata = idata + 1
   51641     1499312 :          data_tmp = ISHFT(pack_tmp, 42)
   51642     1499312 :          ipack = ipack + 1
   51643     1499312 :          pack_tmp = packed_data(ipack)
   51644     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   51645     1499312 :          pack_tmp = ISHFT(pack_tmp, -42)
   51646     1499312 :          idata = idata + 1
   51647     1499312 :          data_tmp = ISHFT(pack_tmp, 39)
   51648     1499312 :          ipack = ipack + 1
   51649     1499312 :          pack_tmp = packed_data(ipack)
   51650     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   51651     1499312 :          pack_tmp = ISHFT(pack_tmp, -39)
   51652     1499312 :          idata = idata + 1
   51653     1499312 :          data_tmp = ISHFT(pack_tmp, 36)
   51654     1499312 :          ipack = ipack + 1
   51655     1499312 :          pack_tmp = packed_data(ipack)
   51656     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   51657     1499312 :          pack_tmp = ISHFT(pack_tmp, -36)
   51658     1499312 :          idata = idata + 1
   51659     1499312 :          data_tmp = ISHFT(pack_tmp, 33)
   51660     1499312 :          ipack = ipack + 1
   51661     1499312 :          pack_tmp = packed_data(ipack)
   51662     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   51663     1499312 :          pack_tmp = ISHFT(pack_tmp, -33)
   51664     1499312 :          idata = idata + 1
   51665     1499312 :          data_tmp = ISHFT(pack_tmp, 30)
   51666     1499312 :          ipack = ipack + 1
   51667     1499312 :          pack_tmp = packed_data(ipack)
   51668     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   51669     1499312 :          pack_tmp = ISHFT(pack_tmp, -30)
   51670     1499312 :          idata = idata + 1
   51671     1499312 :          data_tmp = ISHFT(pack_tmp, 27)
   51672     1499312 :          ipack = ipack + 1
   51673     1499312 :          pack_tmp = packed_data(ipack)
   51674     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   51675     1499312 :          pack_tmp = ISHFT(pack_tmp, -27)
   51676     1499312 :          idata = idata + 1
   51677     1499312 :          data_tmp = ISHFT(pack_tmp, 24)
   51678     1499312 :          ipack = ipack + 1
   51679     1499312 :          pack_tmp = packed_data(ipack)
   51680     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   51681     1499312 :          pack_tmp = ISHFT(pack_tmp, -24)
   51682     1499312 :          idata = idata + 1
   51683     1499312 :          data_tmp = ISHFT(pack_tmp, 21)
   51684     1499312 :          ipack = ipack + 1
   51685     1499312 :          pack_tmp = packed_data(ipack)
   51686     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   51687     1499312 :          pack_tmp = ISHFT(pack_tmp, -21)
   51688     1499312 :          idata = idata + 1
   51689     1499312 :          data_tmp = ISHFT(pack_tmp, 18)
   51690     1499312 :          ipack = ipack + 1
   51691     1499312 :          pack_tmp = packed_data(ipack)
   51692     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   51693     1499312 :          pack_tmp = ISHFT(pack_tmp, -18)
   51694     1499312 :          idata = idata + 1
   51695     1499312 :          data_tmp = ISHFT(pack_tmp, 15)
   51696     1499312 :          ipack = ipack + 1
   51697     1499312 :          pack_tmp = packed_data(ipack)
   51698     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   51699     1499312 :          pack_tmp = ISHFT(pack_tmp, -15)
   51700     1499312 :          idata = idata + 1
   51701     1499312 :          data_tmp = ISHFT(pack_tmp, 12)
   51702     1499312 :          ipack = ipack + 1
   51703     1499312 :          pack_tmp = packed_data(ipack)
   51704     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   51705     1499312 :          pack_tmp = ISHFT(pack_tmp, -12)
   51706     1499312 :          idata = idata + 1
   51707     1499312 :          data_tmp = ISHFT(pack_tmp, 9)
   51708     1499312 :          ipack = ipack + 1
   51709     1499312 :          pack_tmp = packed_data(ipack)
   51710     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   51711     1499312 :          pack_tmp = ISHFT(pack_tmp, -9)
   51712     1499312 :          idata = idata + 1
   51713     1499312 :          data_tmp = ISHFT(pack_tmp, 6)
   51714     1499312 :          ipack = ipack + 1
   51715     1499312 :          pack_tmp = packed_data(ipack)
   51716     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   51717     1499312 :          pack_tmp = ISHFT(pack_tmp, -6)
   51718     1499312 :          idata = idata + 1
   51719     1499312 :          data_tmp = ISHFT(pack_tmp, 3)
   51720     1499312 :          ipack = ipack + 1
   51721     1499312 :          pack_tmp = packed_data(ipack)
   51722     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   51723     1499312 :          pack_tmp = ISHFT(pack_tmp, -3)
   51724     1499312 :          idata = idata + 1
   51725     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   51726     1499312 :          full_data(idata) = data_tmp
   51727     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   51728             :       END DO
   51729       93707 :       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       93707 :    END SUBROUTINE bits2ints_61
   51733             : 
   51734             : ! **************************************************************************************************
   51735             : !> \brief ...
   51736             : !> \param Ndata ...
   51737             : !> \param packed_data ...
   51738             : !> \param full_data ...
   51739             : ! **************************************************************************************************
   51740       23004 :    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       23004 :       idata = 0
   51751       23004 :       ipack = 0
   51752       23004 :       Ndata_rep = (Ndata/64)*64
   51753       23004 :       DO kdata = 1, Ndata_rep, 64
   51754      368064 :          pack_tmp = 0
   51755      368064 :          idata = idata + 1
   51756      368064 :          data_tmp = full_data(idata)
   51757      368064 :          data_tmp = ISHFT(data_tmp, 2)
   51758      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51759      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
   51760      368064 :          idata = idata + 1
   51761      368064 :          data_tmp = full_data(idata)
   51762      368064 :          data_tmp = ISHFT(data_tmp, 2)
   51763      368064 :          data_tmp = IAND(data_tmp, mask_left(2))
   51764      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51765      368064 :          ipack = ipack + 1
   51766      368064 :          packed_data(ipack) = pack_tmp
   51767      368064 :          data_tmp = full_data(idata)
   51768      368064 :          pack_tmp = ISHFT(data_tmp, 4)
   51769      368064 :          pack_tmp = ISHFT(pack_tmp, -4)
   51770      368064 :          idata = idata + 1
   51771      368064 :          data_tmp = full_data(idata)
   51772      368064 :          data_tmp = ISHFT(data_tmp, 2)
   51773      368064 :          data_tmp = IAND(data_tmp, mask_left(4))
   51774      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51775      368064 :          ipack = ipack + 1
   51776      368064 :          packed_data(ipack) = pack_tmp
   51777      368064 :          data_tmp = full_data(idata)
   51778      368064 :          pack_tmp = ISHFT(data_tmp, 6)
   51779      368064 :          pack_tmp = ISHFT(pack_tmp, -6)
   51780      368064 :          idata = idata + 1
   51781      368064 :          data_tmp = full_data(idata)
   51782      368064 :          data_tmp = ISHFT(data_tmp, 2)
   51783      368064 :          data_tmp = IAND(data_tmp, mask_left(6))
   51784      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51785      368064 :          ipack = ipack + 1
   51786      368064 :          packed_data(ipack) = pack_tmp
   51787      368064 :          data_tmp = full_data(idata)
   51788      368064 :          pack_tmp = ISHFT(data_tmp, 8)
   51789      368064 :          pack_tmp = ISHFT(pack_tmp, -8)
   51790      368064 :          idata = idata + 1
   51791      368064 :          data_tmp = full_data(idata)
   51792      368064 :          data_tmp = ISHFT(data_tmp, 2)
   51793      368064 :          data_tmp = IAND(data_tmp, mask_left(8))
   51794      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51795      368064 :          ipack = ipack + 1
   51796      368064 :          packed_data(ipack) = pack_tmp
   51797      368064 :          data_tmp = full_data(idata)
   51798      368064 :          pack_tmp = ISHFT(data_tmp, 10)
   51799      368064 :          pack_tmp = ISHFT(pack_tmp, -10)
   51800      368064 :          idata = idata + 1
   51801      368064 :          data_tmp = full_data(idata)
   51802      368064 :          data_tmp = ISHFT(data_tmp, 2)
   51803      368064 :          data_tmp = IAND(data_tmp, mask_left(10))
   51804      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51805      368064 :          ipack = ipack + 1
   51806      368064 :          packed_data(ipack) = pack_tmp
   51807      368064 :          data_tmp = full_data(idata)
   51808      368064 :          pack_tmp = ISHFT(data_tmp, 12)
   51809      368064 :          pack_tmp = ISHFT(pack_tmp, -12)
   51810      368064 :          idata = idata + 1
   51811      368064 :          data_tmp = full_data(idata)
   51812      368064 :          data_tmp = ISHFT(data_tmp, 2)
   51813      368064 :          data_tmp = IAND(data_tmp, mask_left(12))
   51814      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51815      368064 :          ipack = ipack + 1
   51816      368064 :          packed_data(ipack) = pack_tmp
   51817      368064 :          data_tmp = full_data(idata)
   51818      368064 :          pack_tmp = ISHFT(data_tmp, 14)
   51819      368064 :          pack_tmp = ISHFT(pack_tmp, -14)
   51820      368064 :          idata = idata + 1
   51821      368064 :          data_tmp = full_data(idata)
   51822      368064 :          data_tmp = ISHFT(data_tmp, 2)
   51823      368064 :          data_tmp = IAND(data_tmp, mask_left(14))
   51824      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51825      368064 :          ipack = ipack + 1
   51826      368064 :          packed_data(ipack) = pack_tmp
   51827      368064 :          data_tmp = full_data(idata)
   51828      368064 :          pack_tmp = ISHFT(data_tmp, 16)
   51829      368064 :          pack_tmp = ISHFT(pack_tmp, -16)
   51830      368064 :          idata = idata + 1
   51831      368064 :          data_tmp = full_data(idata)
   51832      368064 :          data_tmp = ISHFT(data_tmp, 2)
   51833      368064 :          data_tmp = IAND(data_tmp, mask_left(16))
   51834      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51835      368064 :          ipack = ipack + 1
   51836      368064 :          packed_data(ipack) = pack_tmp
   51837      368064 :          data_tmp = full_data(idata)
   51838      368064 :          pack_tmp = ISHFT(data_tmp, 18)
   51839      368064 :          pack_tmp = ISHFT(pack_tmp, -18)
   51840      368064 :          idata = idata + 1
   51841      368064 :          data_tmp = full_data(idata)
   51842      368064 :          data_tmp = ISHFT(data_tmp, 2)
   51843      368064 :          data_tmp = IAND(data_tmp, mask_left(18))
   51844      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51845      368064 :          ipack = ipack + 1
   51846      368064 :          packed_data(ipack) = pack_tmp
   51847      368064 :          data_tmp = full_data(idata)
   51848      368064 :          pack_tmp = ISHFT(data_tmp, 20)
   51849      368064 :          pack_tmp = ISHFT(pack_tmp, -20)
   51850      368064 :          idata = idata + 1
   51851      368064 :          data_tmp = full_data(idata)
   51852      368064 :          data_tmp = ISHFT(data_tmp, 2)
   51853      368064 :          data_tmp = IAND(data_tmp, mask_left(20))
   51854      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51855      368064 :          ipack = ipack + 1
   51856      368064 :          packed_data(ipack) = pack_tmp
   51857      368064 :          data_tmp = full_data(idata)
   51858      368064 :          pack_tmp = ISHFT(data_tmp, 22)
   51859      368064 :          pack_tmp = ISHFT(pack_tmp, -22)
   51860      368064 :          idata = idata + 1
   51861      368064 :          data_tmp = full_data(idata)
   51862      368064 :          data_tmp = ISHFT(data_tmp, 2)
   51863      368064 :          data_tmp = IAND(data_tmp, mask_left(22))
   51864      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51865      368064 :          ipack = ipack + 1
   51866      368064 :          packed_data(ipack) = pack_tmp
   51867      368064 :          data_tmp = full_data(idata)
   51868      368064 :          pack_tmp = ISHFT(data_tmp, 24)
   51869      368064 :          pack_tmp = ISHFT(pack_tmp, -24)
   51870      368064 :          idata = idata + 1
   51871      368064 :          data_tmp = full_data(idata)
   51872      368064 :          data_tmp = ISHFT(data_tmp, 2)
   51873      368064 :          data_tmp = IAND(data_tmp, mask_left(24))
   51874      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51875      368064 :          ipack = ipack + 1
   51876      368064 :          packed_data(ipack) = pack_tmp
   51877      368064 :          data_tmp = full_data(idata)
   51878      368064 :          pack_tmp = ISHFT(data_tmp, 26)
   51879      368064 :          pack_tmp = ISHFT(pack_tmp, -26)
   51880      368064 :          idata = idata + 1
   51881      368064 :          data_tmp = full_data(idata)
   51882      368064 :          data_tmp = ISHFT(data_tmp, 2)
   51883      368064 :          data_tmp = IAND(data_tmp, mask_left(26))
   51884      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51885      368064 :          ipack = ipack + 1
   51886      368064 :          packed_data(ipack) = pack_tmp
   51887      368064 :          data_tmp = full_data(idata)
   51888      368064 :          pack_tmp = ISHFT(data_tmp, 28)
   51889      368064 :          pack_tmp = ISHFT(pack_tmp, -28)
   51890      368064 :          idata = idata + 1
   51891      368064 :          data_tmp = full_data(idata)
   51892      368064 :          data_tmp = ISHFT(data_tmp, 2)
   51893      368064 :          data_tmp = IAND(data_tmp, mask_left(28))
   51894      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51895      368064 :          ipack = ipack + 1
   51896      368064 :          packed_data(ipack) = pack_tmp
   51897      368064 :          data_tmp = full_data(idata)
   51898      368064 :          pack_tmp = ISHFT(data_tmp, 30)
   51899      368064 :          pack_tmp = ISHFT(pack_tmp, -30)
   51900      368064 :          idata = idata + 1
   51901      368064 :          data_tmp = full_data(idata)
   51902      368064 :          data_tmp = ISHFT(data_tmp, 2)
   51903      368064 :          data_tmp = IAND(data_tmp, mask_left(30))
   51904      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51905      368064 :          ipack = ipack + 1
   51906      368064 :          packed_data(ipack) = pack_tmp
   51907      368064 :          data_tmp = full_data(idata)
   51908      368064 :          pack_tmp = ISHFT(data_tmp, 32)
   51909      368064 :          pack_tmp = ISHFT(pack_tmp, -32)
   51910      368064 :          idata = idata + 1
   51911      368064 :          data_tmp = full_data(idata)
   51912      368064 :          data_tmp = ISHFT(data_tmp, 2)
   51913      368064 :          data_tmp = IAND(data_tmp, mask_left(32))
   51914      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51915      368064 :          ipack = ipack + 1
   51916      368064 :          packed_data(ipack) = pack_tmp
   51917      368064 :          data_tmp = full_data(idata)
   51918      368064 :          pack_tmp = ISHFT(data_tmp, 34)
   51919      368064 :          pack_tmp = ISHFT(pack_tmp, -34)
   51920      368064 :          idata = idata + 1
   51921      368064 :          data_tmp = full_data(idata)
   51922      368064 :          data_tmp = ISHFT(data_tmp, 2)
   51923      368064 :          data_tmp = IAND(data_tmp, mask_left(34))
   51924      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51925      368064 :          ipack = ipack + 1
   51926      368064 :          packed_data(ipack) = pack_tmp
   51927      368064 :          data_tmp = full_data(idata)
   51928      368064 :          pack_tmp = ISHFT(data_tmp, 36)
   51929      368064 :          pack_tmp = ISHFT(pack_tmp, -36)
   51930      368064 :          idata = idata + 1
   51931      368064 :          data_tmp = full_data(idata)
   51932      368064 :          data_tmp = ISHFT(data_tmp, 2)
   51933      368064 :          data_tmp = IAND(data_tmp, mask_left(36))
   51934      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51935      368064 :          ipack = ipack + 1
   51936      368064 :          packed_data(ipack) = pack_tmp
   51937      368064 :          data_tmp = full_data(idata)
   51938      368064 :          pack_tmp = ISHFT(data_tmp, 38)
   51939      368064 :          pack_tmp = ISHFT(pack_tmp, -38)
   51940      368064 :          idata = idata + 1
   51941      368064 :          data_tmp = full_data(idata)
   51942      368064 :          data_tmp = ISHFT(data_tmp, 2)
   51943      368064 :          data_tmp = IAND(data_tmp, mask_left(38))
   51944      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51945      368064 :          ipack = ipack + 1
   51946      368064 :          packed_data(ipack) = pack_tmp
   51947      368064 :          data_tmp = full_data(idata)
   51948      368064 :          pack_tmp = ISHFT(data_tmp, 40)
   51949      368064 :          pack_tmp = ISHFT(pack_tmp, -40)
   51950      368064 :          idata = idata + 1
   51951      368064 :          data_tmp = full_data(idata)
   51952      368064 :          data_tmp = ISHFT(data_tmp, 2)
   51953      368064 :          data_tmp = IAND(data_tmp, mask_left(40))
   51954      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51955      368064 :          ipack = ipack + 1
   51956      368064 :          packed_data(ipack) = pack_tmp
   51957      368064 :          data_tmp = full_data(idata)
   51958      368064 :          pack_tmp = ISHFT(data_tmp, 42)
   51959      368064 :          pack_tmp = ISHFT(pack_tmp, -42)
   51960      368064 :          idata = idata + 1
   51961      368064 :          data_tmp = full_data(idata)
   51962      368064 :          data_tmp = ISHFT(data_tmp, 2)
   51963      368064 :          data_tmp = IAND(data_tmp, mask_left(42))
   51964      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51965      368064 :          ipack = ipack + 1
   51966      368064 :          packed_data(ipack) = pack_tmp
   51967      368064 :          data_tmp = full_data(idata)
   51968      368064 :          pack_tmp = ISHFT(data_tmp, 44)
   51969      368064 :          pack_tmp = ISHFT(pack_tmp, -44)
   51970      368064 :          idata = idata + 1
   51971      368064 :          data_tmp = full_data(idata)
   51972      368064 :          data_tmp = ISHFT(data_tmp, 2)
   51973      368064 :          data_tmp = IAND(data_tmp, mask_left(44))
   51974      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51975      368064 :          ipack = ipack + 1
   51976      368064 :          packed_data(ipack) = pack_tmp
   51977      368064 :          data_tmp = full_data(idata)
   51978      368064 :          pack_tmp = ISHFT(data_tmp, 46)
   51979      368064 :          pack_tmp = ISHFT(pack_tmp, -46)
   51980      368064 :          idata = idata + 1
   51981      368064 :          data_tmp = full_data(idata)
   51982      368064 :          data_tmp = ISHFT(data_tmp, 2)
   51983      368064 :          data_tmp = IAND(data_tmp, mask_left(46))
   51984      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51985      368064 :          ipack = ipack + 1
   51986      368064 :          packed_data(ipack) = pack_tmp
   51987      368064 :          data_tmp = full_data(idata)
   51988      368064 :          pack_tmp = ISHFT(data_tmp, 48)
   51989      368064 :          pack_tmp = ISHFT(pack_tmp, -48)
   51990      368064 :          idata = idata + 1
   51991      368064 :          data_tmp = full_data(idata)
   51992      368064 :          data_tmp = ISHFT(data_tmp, 2)
   51993      368064 :          data_tmp = IAND(data_tmp, mask_left(48))
   51994      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51995      368064 :          ipack = ipack + 1
   51996      368064 :          packed_data(ipack) = pack_tmp
   51997      368064 :          data_tmp = full_data(idata)
   51998      368064 :          pack_tmp = ISHFT(data_tmp, 50)
   51999      368064 :          pack_tmp = ISHFT(pack_tmp, -50)
   52000      368064 :          idata = idata + 1
   52001      368064 :          data_tmp = full_data(idata)
   52002      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52003      368064 :          data_tmp = IAND(data_tmp, mask_left(50))
   52004      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52005      368064 :          ipack = ipack + 1
   52006      368064 :          packed_data(ipack) = pack_tmp
   52007      368064 :          data_tmp = full_data(idata)
   52008      368064 :          pack_tmp = ISHFT(data_tmp, 52)
   52009      368064 :          pack_tmp = ISHFT(pack_tmp, -52)
   52010      368064 :          idata = idata + 1
   52011      368064 :          data_tmp = full_data(idata)
   52012      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52013      368064 :          data_tmp = IAND(data_tmp, mask_left(52))
   52014      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52015      368064 :          ipack = ipack + 1
   52016      368064 :          packed_data(ipack) = pack_tmp
   52017      368064 :          data_tmp = full_data(idata)
   52018      368064 :          pack_tmp = ISHFT(data_tmp, 54)
   52019      368064 :          pack_tmp = ISHFT(pack_tmp, -54)
   52020      368064 :          idata = idata + 1
   52021      368064 :          data_tmp = full_data(idata)
   52022      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52023      368064 :          data_tmp = IAND(data_tmp, mask_left(54))
   52024      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52025      368064 :          ipack = ipack + 1
   52026      368064 :          packed_data(ipack) = pack_tmp
   52027      368064 :          data_tmp = full_data(idata)
   52028      368064 :          pack_tmp = ISHFT(data_tmp, 56)
   52029      368064 :          pack_tmp = ISHFT(pack_tmp, -56)
   52030      368064 :          idata = idata + 1
   52031      368064 :          data_tmp = full_data(idata)
   52032      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52033      368064 :          data_tmp = IAND(data_tmp, mask_left(56))
   52034      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52035      368064 :          ipack = ipack + 1
   52036      368064 :          packed_data(ipack) = pack_tmp
   52037      368064 :          data_tmp = full_data(idata)
   52038      368064 :          pack_tmp = ISHFT(data_tmp, 58)
   52039      368064 :          pack_tmp = ISHFT(pack_tmp, -58)
   52040      368064 :          idata = idata + 1
   52041      368064 :          data_tmp = full_data(idata)
   52042      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52043      368064 :          data_tmp = IAND(data_tmp, mask_left(58))
   52044      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52045      368064 :          ipack = ipack + 1
   52046      368064 :          packed_data(ipack) = pack_tmp
   52047      368064 :          data_tmp = full_data(idata)
   52048      368064 :          pack_tmp = ISHFT(data_tmp, 60)
   52049      368064 :          pack_tmp = ISHFT(pack_tmp, -60)
   52050      368064 :          idata = idata + 1
   52051      368064 :          data_tmp = full_data(idata)
   52052      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52053      368064 :          data_tmp = IAND(data_tmp, mask_left(60))
   52054      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52055      368064 :          ipack = ipack + 1
   52056      368064 :          packed_data(ipack) = pack_tmp
   52057      368064 :          data_tmp = full_data(idata)
   52058      368064 :          pack_tmp = ISHFT(data_tmp, 62)
   52059      368064 :          pack_tmp = ISHFT(pack_tmp, -62)
   52060      368064 :          idata = idata + 1
   52061      368064 :          data_tmp = full_data(idata)
   52062      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52063      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52064      368064 :          pack_tmp = ISHFT(pack_tmp, 0)
   52065      368064 :          idata = idata + 1
   52066      368064 :          data_tmp = full_data(idata)
   52067             :          data_tmp = ISHFT(data_tmp, 2)
   52068      368064 :          data_tmp = IAND(data_tmp, mask_left(0))
   52069      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52070      368064 :          ipack = ipack + 1
   52071      368064 :          packed_data(ipack) = pack_tmp
   52072      368064 :          data_tmp = full_data(idata)
   52073      368064 :          pack_tmp = ISHFT(data_tmp, 2)
   52074      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
   52075      368064 :          idata = idata + 1
   52076      368064 :          data_tmp = full_data(idata)
   52077      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52078      368064 :          data_tmp = IAND(data_tmp, mask_left(2))
   52079      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52080      368064 :          ipack = ipack + 1
   52081      368064 :          packed_data(ipack) = pack_tmp
   52082      368064 :          data_tmp = full_data(idata)
   52083      368064 :          pack_tmp = ISHFT(data_tmp, 4)
   52084      368064 :          pack_tmp = ISHFT(pack_tmp, -4)
   52085      368064 :          idata = idata + 1
   52086      368064 :          data_tmp = full_data(idata)
   52087      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52088      368064 :          data_tmp = IAND(data_tmp, mask_left(4))
   52089      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52090      368064 :          ipack = ipack + 1
   52091      368064 :          packed_data(ipack) = pack_tmp
   52092      368064 :          data_tmp = full_data(idata)
   52093      368064 :          pack_tmp = ISHFT(data_tmp, 6)
   52094      368064 :          pack_tmp = ISHFT(pack_tmp, -6)
   52095      368064 :          idata = idata + 1
   52096      368064 :          data_tmp = full_data(idata)
   52097      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52098      368064 :          data_tmp = IAND(data_tmp, mask_left(6))
   52099      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52100      368064 :          ipack = ipack + 1
   52101      368064 :          packed_data(ipack) = pack_tmp
   52102      368064 :          data_tmp = full_data(idata)
   52103      368064 :          pack_tmp = ISHFT(data_tmp, 8)
   52104      368064 :          pack_tmp = ISHFT(pack_tmp, -8)
   52105      368064 :          idata = idata + 1
   52106      368064 :          data_tmp = full_data(idata)
   52107      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52108      368064 :          data_tmp = IAND(data_tmp, mask_left(8))
   52109      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52110      368064 :          ipack = ipack + 1
   52111      368064 :          packed_data(ipack) = pack_tmp
   52112      368064 :          data_tmp = full_data(idata)
   52113      368064 :          pack_tmp = ISHFT(data_tmp, 10)
   52114      368064 :          pack_tmp = ISHFT(pack_tmp, -10)
   52115      368064 :          idata = idata + 1
   52116      368064 :          data_tmp = full_data(idata)
   52117      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52118      368064 :          data_tmp = IAND(data_tmp, mask_left(10))
   52119      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52120      368064 :          ipack = ipack + 1
   52121      368064 :          packed_data(ipack) = pack_tmp
   52122      368064 :          data_tmp = full_data(idata)
   52123      368064 :          pack_tmp = ISHFT(data_tmp, 12)
   52124      368064 :          pack_tmp = ISHFT(pack_tmp, -12)
   52125      368064 :          idata = idata + 1
   52126      368064 :          data_tmp = full_data(idata)
   52127      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52128      368064 :          data_tmp = IAND(data_tmp, mask_left(12))
   52129      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52130      368064 :          ipack = ipack + 1
   52131      368064 :          packed_data(ipack) = pack_tmp
   52132      368064 :          data_tmp = full_data(idata)
   52133      368064 :          pack_tmp = ISHFT(data_tmp, 14)
   52134      368064 :          pack_tmp = ISHFT(pack_tmp, -14)
   52135      368064 :          idata = idata + 1
   52136      368064 :          data_tmp = full_data(idata)
   52137      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52138      368064 :          data_tmp = IAND(data_tmp, mask_left(14))
   52139      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52140      368064 :          ipack = ipack + 1
   52141      368064 :          packed_data(ipack) = pack_tmp
   52142      368064 :          data_tmp = full_data(idata)
   52143      368064 :          pack_tmp = ISHFT(data_tmp, 16)
   52144      368064 :          pack_tmp = ISHFT(pack_tmp, -16)
   52145      368064 :          idata = idata + 1
   52146      368064 :          data_tmp = full_data(idata)
   52147      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52148      368064 :          data_tmp = IAND(data_tmp, mask_left(16))
   52149      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52150      368064 :          ipack = ipack + 1
   52151      368064 :          packed_data(ipack) = pack_tmp
   52152      368064 :          data_tmp = full_data(idata)
   52153      368064 :          pack_tmp = ISHFT(data_tmp, 18)
   52154      368064 :          pack_tmp = ISHFT(pack_tmp, -18)
   52155      368064 :          idata = idata + 1
   52156      368064 :          data_tmp = full_data(idata)
   52157      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52158      368064 :          data_tmp = IAND(data_tmp, mask_left(18))
   52159      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52160      368064 :          ipack = ipack + 1
   52161      368064 :          packed_data(ipack) = pack_tmp
   52162      368064 :          data_tmp = full_data(idata)
   52163      368064 :          pack_tmp = ISHFT(data_tmp, 20)
   52164      368064 :          pack_tmp = ISHFT(pack_tmp, -20)
   52165      368064 :          idata = idata + 1
   52166      368064 :          data_tmp = full_data(idata)
   52167      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52168      368064 :          data_tmp = IAND(data_tmp, mask_left(20))
   52169      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52170      368064 :          ipack = ipack + 1
   52171      368064 :          packed_data(ipack) = pack_tmp
   52172      368064 :          data_tmp = full_data(idata)
   52173      368064 :          pack_tmp = ISHFT(data_tmp, 22)
   52174      368064 :          pack_tmp = ISHFT(pack_tmp, -22)
   52175      368064 :          idata = idata + 1
   52176      368064 :          data_tmp = full_data(idata)
   52177      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52178      368064 :          data_tmp = IAND(data_tmp, mask_left(22))
   52179      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52180      368064 :          ipack = ipack + 1
   52181      368064 :          packed_data(ipack) = pack_tmp
   52182      368064 :          data_tmp = full_data(idata)
   52183      368064 :          pack_tmp = ISHFT(data_tmp, 24)
   52184      368064 :          pack_tmp = ISHFT(pack_tmp, -24)
   52185      368064 :          idata = idata + 1
   52186      368064 :          data_tmp = full_data(idata)
   52187      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52188      368064 :          data_tmp = IAND(data_tmp, mask_left(24))
   52189      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52190      368064 :          ipack = ipack + 1
   52191      368064 :          packed_data(ipack) = pack_tmp
   52192      368064 :          data_tmp = full_data(idata)
   52193      368064 :          pack_tmp = ISHFT(data_tmp, 26)
   52194      368064 :          pack_tmp = ISHFT(pack_tmp, -26)
   52195      368064 :          idata = idata + 1
   52196      368064 :          data_tmp = full_data(idata)
   52197      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52198      368064 :          data_tmp = IAND(data_tmp, mask_left(26))
   52199      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52200      368064 :          ipack = ipack + 1
   52201      368064 :          packed_data(ipack) = pack_tmp
   52202      368064 :          data_tmp = full_data(idata)
   52203      368064 :          pack_tmp = ISHFT(data_tmp, 28)
   52204      368064 :          pack_tmp = ISHFT(pack_tmp, -28)
   52205      368064 :          idata = idata + 1
   52206      368064 :          data_tmp = full_data(idata)
   52207      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52208      368064 :          data_tmp = IAND(data_tmp, mask_left(28))
   52209      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52210      368064 :          ipack = ipack + 1
   52211      368064 :          packed_data(ipack) = pack_tmp
   52212      368064 :          data_tmp = full_data(idata)
   52213      368064 :          pack_tmp = ISHFT(data_tmp, 30)
   52214      368064 :          pack_tmp = ISHFT(pack_tmp, -30)
   52215      368064 :          idata = idata + 1
   52216      368064 :          data_tmp = full_data(idata)
   52217      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52218      368064 :          data_tmp = IAND(data_tmp, mask_left(30))
   52219      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52220      368064 :          ipack = ipack + 1
   52221      368064 :          packed_data(ipack) = pack_tmp
   52222      368064 :          data_tmp = full_data(idata)
   52223      368064 :          pack_tmp = ISHFT(data_tmp, 32)
   52224      368064 :          pack_tmp = ISHFT(pack_tmp, -32)
   52225      368064 :          idata = idata + 1
   52226      368064 :          data_tmp = full_data(idata)
   52227      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52228      368064 :          data_tmp = IAND(data_tmp, mask_left(32))
   52229      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52230      368064 :          ipack = ipack + 1
   52231      368064 :          packed_data(ipack) = pack_tmp
   52232      368064 :          data_tmp = full_data(idata)
   52233      368064 :          pack_tmp = ISHFT(data_tmp, 34)
   52234      368064 :          pack_tmp = ISHFT(pack_tmp, -34)
   52235      368064 :          idata = idata + 1
   52236      368064 :          data_tmp = full_data(idata)
   52237      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52238      368064 :          data_tmp = IAND(data_tmp, mask_left(34))
   52239      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52240      368064 :          ipack = ipack + 1
   52241      368064 :          packed_data(ipack) = pack_tmp
   52242      368064 :          data_tmp = full_data(idata)
   52243      368064 :          pack_tmp = ISHFT(data_tmp, 36)
   52244      368064 :          pack_tmp = ISHFT(pack_tmp, -36)
   52245      368064 :          idata = idata + 1
   52246      368064 :          data_tmp = full_data(idata)
   52247      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52248      368064 :          data_tmp = IAND(data_tmp, mask_left(36))
   52249      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52250      368064 :          ipack = ipack + 1
   52251      368064 :          packed_data(ipack) = pack_tmp
   52252      368064 :          data_tmp = full_data(idata)
   52253      368064 :          pack_tmp = ISHFT(data_tmp, 38)
   52254      368064 :          pack_tmp = ISHFT(pack_tmp, -38)
   52255      368064 :          idata = idata + 1
   52256      368064 :          data_tmp = full_data(idata)
   52257      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52258      368064 :          data_tmp = IAND(data_tmp, mask_left(38))
   52259      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52260      368064 :          ipack = ipack + 1
   52261      368064 :          packed_data(ipack) = pack_tmp
   52262      368064 :          data_tmp = full_data(idata)
   52263      368064 :          pack_tmp = ISHFT(data_tmp, 40)
   52264      368064 :          pack_tmp = ISHFT(pack_tmp, -40)
   52265      368064 :          idata = idata + 1
   52266      368064 :          data_tmp = full_data(idata)
   52267      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52268      368064 :          data_tmp = IAND(data_tmp, mask_left(40))
   52269      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52270      368064 :          ipack = ipack + 1
   52271      368064 :          packed_data(ipack) = pack_tmp
   52272      368064 :          data_tmp = full_data(idata)
   52273      368064 :          pack_tmp = ISHFT(data_tmp, 42)
   52274      368064 :          pack_tmp = ISHFT(pack_tmp, -42)
   52275      368064 :          idata = idata + 1
   52276      368064 :          data_tmp = full_data(idata)
   52277      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52278      368064 :          data_tmp = IAND(data_tmp, mask_left(42))
   52279      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52280      368064 :          ipack = ipack + 1
   52281      368064 :          packed_data(ipack) = pack_tmp
   52282      368064 :          data_tmp = full_data(idata)
   52283      368064 :          pack_tmp = ISHFT(data_tmp, 44)
   52284      368064 :          pack_tmp = ISHFT(pack_tmp, -44)
   52285      368064 :          idata = idata + 1
   52286      368064 :          data_tmp = full_data(idata)
   52287      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52288      368064 :          data_tmp = IAND(data_tmp, mask_left(44))
   52289      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52290      368064 :          ipack = ipack + 1
   52291      368064 :          packed_data(ipack) = pack_tmp
   52292      368064 :          data_tmp = full_data(idata)
   52293      368064 :          pack_tmp = ISHFT(data_tmp, 46)
   52294      368064 :          pack_tmp = ISHFT(pack_tmp, -46)
   52295      368064 :          idata = idata + 1
   52296      368064 :          data_tmp = full_data(idata)
   52297      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52298      368064 :          data_tmp = IAND(data_tmp, mask_left(46))
   52299      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52300      368064 :          ipack = ipack + 1
   52301      368064 :          packed_data(ipack) = pack_tmp
   52302      368064 :          data_tmp = full_data(idata)
   52303      368064 :          pack_tmp = ISHFT(data_tmp, 48)
   52304      368064 :          pack_tmp = ISHFT(pack_tmp, -48)
   52305      368064 :          idata = idata + 1
   52306      368064 :          data_tmp = full_data(idata)
   52307      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52308      368064 :          data_tmp = IAND(data_tmp, mask_left(48))
   52309      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52310      368064 :          ipack = ipack + 1
   52311      368064 :          packed_data(ipack) = pack_tmp
   52312      368064 :          data_tmp = full_data(idata)
   52313      368064 :          pack_tmp = ISHFT(data_tmp, 50)
   52314      368064 :          pack_tmp = ISHFT(pack_tmp, -50)
   52315      368064 :          idata = idata + 1
   52316      368064 :          data_tmp = full_data(idata)
   52317      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52318      368064 :          data_tmp = IAND(data_tmp, mask_left(50))
   52319      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52320      368064 :          ipack = ipack + 1
   52321      368064 :          packed_data(ipack) = pack_tmp
   52322      368064 :          data_tmp = full_data(idata)
   52323      368064 :          pack_tmp = ISHFT(data_tmp, 52)
   52324      368064 :          pack_tmp = ISHFT(pack_tmp, -52)
   52325      368064 :          idata = idata + 1
   52326      368064 :          data_tmp = full_data(idata)
   52327      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52328      368064 :          data_tmp = IAND(data_tmp, mask_left(52))
   52329      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52330      368064 :          ipack = ipack + 1
   52331      368064 :          packed_data(ipack) = pack_tmp
   52332      368064 :          data_tmp = full_data(idata)
   52333      368064 :          pack_tmp = ISHFT(data_tmp, 54)
   52334      368064 :          pack_tmp = ISHFT(pack_tmp, -54)
   52335      368064 :          idata = idata + 1
   52336      368064 :          data_tmp = full_data(idata)
   52337      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52338      368064 :          data_tmp = IAND(data_tmp, mask_left(54))
   52339      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52340      368064 :          ipack = ipack + 1
   52341      368064 :          packed_data(ipack) = pack_tmp
   52342      368064 :          data_tmp = full_data(idata)
   52343      368064 :          pack_tmp = ISHFT(data_tmp, 56)
   52344      368064 :          pack_tmp = ISHFT(pack_tmp, -56)
   52345      368064 :          idata = idata + 1
   52346      368064 :          data_tmp = full_data(idata)
   52347      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52348      368064 :          data_tmp = IAND(data_tmp, mask_left(56))
   52349      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52350      368064 :          ipack = ipack + 1
   52351      368064 :          packed_data(ipack) = pack_tmp
   52352      368064 :          data_tmp = full_data(idata)
   52353      368064 :          pack_tmp = ISHFT(data_tmp, 58)
   52354      368064 :          pack_tmp = ISHFT(pack_tmp, -58)
   52355      368064 :          idata = idata + 1
   52356      368064 :          data_tmp = full_data(idata)
   52357      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52358      368064 :          data_tmp = IAND(data_tmp, mask_left(58))
   52359      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52360      368064 :          ipack = ipack + 1
   52361      368064 :          packed_data(ipack) = pack_tmp
   52362      368064 :          data_tmp = full_data(idata)
   52363      368064 :          pack_tmp = ISHFT(data_tmp, 60)
   52364      368064 :          pack_tmp = ISHFT(pack_tmp, -60)
   52365      368064 :          idata = idata + 1
   52366      368064 :          data_tmp = full_data(idata)
   52367      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52368      368064 :          data_tmp = IAND(data_tmp, mask_left(60))
   52369      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52370      368064 :          ipack = ipack + 1
   52371      368064 :          packed_data(ipack) = pack_tmp
   52372      368064 :          data_tmp = full_data(idata)
   52373      368064 :          pack_tmp = ISHFT(data_tmp, 62)
   52374      368064 :          pack_tmp = ISHFT(pack_tmp, -62)
   52375      368064 :          idata = idata + 1
   52376      368064 :          data_tmp = full_data(idata)
   52377      368064 :          data_tmp = ISHFT(data_tmp, 2)
   52378      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52379             :          pack_tmp = ISHFT(pack_tmp, 0)
   52380      368064 :          pack_tmp = ISHFT(pack_tmp, 0)
   52381      368064 :          ipack = ipack + 1
   52382      368064 :          packed_data(ipack) = pack_tmp
   52383             :       END DO
   52384       23004 :       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       23004 :    END SUBROUTINE ints2bits_62
   52388             : 
   52389             : ! **************************************************************************************************
   52390             : !> \brief ...
   52391             : !> \param Ndata ...
   52392             : !> \param packed_data ...
   52393             : !> \param full_data ...
   52394             : ! **************************************************************************************************
   52395       93707 :    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       93707 :       ipack = 0
   52406       93707 :       idata = 0
   52407       93707 :       pack_tmp = 0
   52408       93707 :       Ndata_rep = (Ndata/64)*64
   52409       93707 :       DO kdata = 1, Ndata_rep, 64
   52410     1499312 :          idata = idata + 1
   52411     1499312 :          data_tmp = ISHFT(pack_tmp, 62)
   52412     1499312 :          ipack = ipack + 1
   52413     1499312 :          pack_tmp = packed_data(ipack)
   52414     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(62)))
   52415     1499312 :          pack_tmp = ISHFT(pack_tmp, -62)
   52416     1499312 :          idata = idata + 1
   52417     1499312 :          data_tmp = ISHFT(pack_tmp, 60)
   52418     1499312 :          ipack = ipack + 1
   52419     1499312 :          pack_tmp = packed_data(ipack)
   52420     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   52421     1499312 :          pack_tmp = ISHFT(pack_tmp, -60)
   52422     1499312 :          idata = idata + 1
   52423     1499312 :          data_tmp = ISHFT(pack_tmp, 58)
   52424     1499312 :          ipack = ipack + 1
   52425     1499312 :          pack_tmp = packed_data(ipack)
   52426     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   52427     1499312 :          pack_tmp = ISHFT(pack_tmp, -58)
   52428     1499312 :          idata = idata + 1
   52429     1499312 :          data_tmp = ISHFT(pack_tmp, 56)
   52430     1499312 :          ipack = ipack + 1
   52431     1499312 :          pack_tmp = packed_data(ipack)
   52432     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   52433     1499312 :          pack_tmp = ISHFT(pack_tmp, -56)
   52434     1499312 :          idata = idata + 1
   52435     1499312 :          data_tmp = ISHFT(pack_tmp, 54)
   52436     1499312 :          ipack = ipack + 1
   52437     1499312 :          pack_tmp = packed_data(ipack)
   52438     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   52439     1499312 :          pack_tmp = ISHFT(pack_tmp, -54)
   52440     1499312 :          idata = idata + 1
   52441     1499312 :          data_tmp = ISHFT(pack_tmp, 52)
   52442     1499312 :          ipack = ipack + 1
   52443     1499312 :          pack_tmp = packed_data(ipack)
   52444     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   52445     1499312 :          pack_tmp = ISHFT(pack_tmp, -52)
   52446     1499312 :          idata = idata + 1
   52447     1499312 :          data_tmp = ISHFT(pack_tmp, 50)
   52448     1499312 :          ipack = ipack + 1
   52449     1499312 :          pack_tmp = packed_data(ipack)
   52450     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   52451     1499312 :          pack_tmp = ISHFT(pack_tmp, -50)
   52452     1499312 :          idata = idata + 1
   52453     1499312 :          data_tmp = ISHFT(pack_tmp, 48)
   52454     1499312 :          ipack = ipack + 1
   52455     1499312 :          pack_tmp = packed_data(ipack)
   52456     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   52457     1499312 :          pack_tmp = ISHFT(pack_tmp, -48)
   52458     1499312 :          idata = idata + 1
   52459     1499312 :          data_tmp = ISHFT(pack_tmp, 46)
   52460     1499312 :          ipack = ipack + 1
   52461     1499312 :          pack_tmp = packed_data(ipack)
   52462     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   52463     1499312 :          pack_tmp = ISHFT(pack_tmp, -46)
   52464     1499312 :          idata = idata + 1
   52465     1499312 :          data_tmp = ISHFT(pack_tmp, 44)
   52466     1499312 :          ipack = ipack + 1
   52467     1499312 :          pack_tmp = packed_data(ipack)
   52468     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   52469     1499312 :          pack_tmp = ISHFT(pack_tmp, -44)
   52470     1499312 :          idata = idata + 1
   52471     1499312 :          data_tmp = ISHFT(pack_tmp, 42)
   52472     1499312 :          ipack = ipack + 1
   52473     1499312 :          pack_tmp = packed_data(ipack)
   52474     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   52475     1499312 :          pack_tmp = ISHFT(pack_tmp, -42)
   52476     1499312 :          idata = idata + 1
   52477     1499312 :          data_tmp = ISHFT(pack_tmp, 40)
   52478     1499312 :          ipack = ipack + 1
   52479     1499312 :          pack_tmp = packed_data(ipack)
   52480     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   52481     1499312 :          pack_tmp = ISHFT(pack_tmp, -40)
   52482     1499312 :          idata = idata + 1
   52483     1499312 :          data_tmp = ISHFT(pack_tmp, 38)
   52484     1499312 :          ipack = ipack + 1
   52485     1499312 :          pack_tmp = packed_data(ipack)
   52486     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   52487     1499312 :          pack_tmp = ISHFT(pack_tmp, -38)
   52488     1499312 :          idata = idata + 1
   52489     1499312 :          data_tmp = ISHFT(pack_tmp, 36)
   52490     1499312 :          ipack = ipack + 1
   52491     1499312 :          pack_tmp = packed_data(ipack)
   52492     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   52493     1499312 :          pack_tmp = ISHFT(pack_tmp, -36)
   52494     1499312 :          idata = idata + 1
   52495     1499312 :          data_tmp = ISHFT(pack_tmp, 34)
   52496     1499312 :          ipack = ipack + 1
   52497     1499312 :          pack_tmp = packed_data(ipack)
   52498     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   52499     1499312 :          pack_tmp = ISHFT(pack_tmp, -34)
   52500     1499312 :          idata = idata + 1
   52501     1499312 :          data_tmp = ISHFT(pack_tmp, 32)
   52502     1499312 :          ipack = ipack + 1
   52503     1499312 :          pack_tmp = packed_data(ipack)
   52504     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   52505     1499312 :          pack_tmp = ISHFT(pack_tmp, -32)
   52506     1499312 :          idata = idata + 1
   52507     1499312 :          data_tmp = ISHFT(pack_tmp, 30)
   52508     1499312 :          ipack = ipack + 1
   52509     1499312 :          pack_tmp = packed_data(ipack)
   52510     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   52511     1499312 :          pack_tmp = ISHFT(pack_tmp, -30)
   52512     1499312 :          idata = idata + 1
   52513     1499312 :          data_tmp = ISHFT(pack_tmp, 28)
   52514     1499312 :          ipack = ipack + 1
   52515     1499312 :          pack_tmp = packed_data(ipack)
   52516     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   52517     1499312 :          pack_tmp = ISHFT(pack_tmp, -28)
   52518     1499312 :          idata = idata + 1
   52519     1499312 :          data_tmp = ISHFT(pack_tmp, 26)
   52520     1499312 :          ipack = ipack + 1
   52521     1499312 :          pack_tmp = packed_data(ipack)
   52522     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   52523     1499312 :          pack_tmp = ISHFT(pack_tmp, -26)
   52524     1499312 :          idata = idata + 1
   52525     1499312 :          data_tmp = ISHFT(pack_tmp, 24)
   52526     1499312 :          ipack = ipack + 1
   52527     1499312 :          pack_tmp = packed_data(ipack)
   52528     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   52529     1499312 :          pack_tmp = ISHFT(pack_tmp, -24)
   52530     1499312 :          idata = idata + 1
   52531     1499312 :          data_tmp = ISHFT(pack_tmp, 22)
   52532     1499312 :          ipack = ipack + 1
   52533     1499312 :          pack_tmp = packed_data(ipack)
   52534     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   52535     1499312 :          pack_tmp = ISHFT(pack_tmp, -22)
   52536     1499312 :          idata = idata + 1
   52537     1499312 :          data_tmp = ISHFT(pack_tmp, 20)
   52538     1499312 :          ipack = ipack + 1
   52539     1499312 :          pack_tmp = packed_data(ipack)
   52540     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   52541     1499312 :          pack_tmp = ISHFT(pack_tmp, -20)
   52542     1499312 :          idata = idata + 1
   52543     1499312 :          data_tmp = ISHFT(pack_tmp, 18)
   52544     1499312 :          ipack = ipack + 1
   52545     1499312 :          pack_tmp = packed_data(ipack)
   52546     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   52547     1499312 :          pack_tmp = ISHFT(pack_tmp, -18)
   52548     1499312 :          idata = idata + 1
   52549     1499312 :          data_tmp = ISHFT(pack_tmp, 16)
   52550     1499312 :          ipack = ipack + 1
   52551     1499312 :          pack_tmp = packed_data(ipack)
   52552     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   52553     1499312 :          pack_tmp = ISHFT(pack_tmp, -16)
   52554     1499312 :          idata = idata + 1
   52555     1499312 :          data_tmp = ISHFT(pack_tmp, 14)
   52556     1499312 :          ipack = ipack + 1
   52557     1499312 :          pack_tmp = packed_data(ipack)
   52558     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   52559     1499312 :          pack_tmp = ISHFT(pack_tmp, -14)
   52560     1499312 :          idata = idata + 1
   52561     1499312 :          data_tmp = ISHFT(pack_tmp, 12)
   52562     1499312 :          ipack = ipack + 1
   52563     1499312 :          pack_tmp = packed_data(ipack)
   52564     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   52565     1499312 :          pack_tmp = ISHFT(pack_tmp, -12)
   52566     1499312 :          idata = idata + 1
   52567     1499312 :          data_tmp = ISHFT(pack_tmp, 10)
   52568     1499312 :          ipack = ipack + 1
   52569     1499312 :          pack_tmp = packed_data(ipack)
   52570     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   52571     1499312 :          pack_tmp = ISHFT(pack_tmp, -10)
   52572     1499312 :          idata = idata + 1
   52573     1499312 :          data_tmp = ISHFT(pack_tmp, 8)
   52574     1499312 :          ipack = ipack + 1
   52575     1499312 :          pack_tmp = packed_data(ipack)
   52576     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   52577     1499312 :          pack_tmp = ISHFT(pack_tmp, -8)
   52578     1499312 :          idata = idata + 1
   52579     1499312 :          data_tmp = ISHFT(pack_tmp, 6)
   52580     1499312 :          ipack = ipack + 1
   52581     1499312 :          pack_tmp = packed_data(ipack)
   52582     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   52583     1499312 :          pack_tmp = ISHFT(pack_tmp, -6)
   52584     1499312 :          idata = idata + 1
   52585     1499312 :          data_tmp = ISHFT(pack_tmp, 4)
   52586     1499312 :          ipack = ipack + 1
   52587     1499312 :          pack_tmp = packed_data(ipack)
   52588     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   52589     1499312 :          pack_tmp = ISHFT(pack_tmp, -4)
   52590     1499312 :          idata = idata + 1
   52591     1499312 :          data_tmp = ISHFT(pack_tmp, 2)
   52592     1499312 :          ipack = ipack + 1
   52593     1499312 :          pack_tmp = packed_data(ipack)
   52594     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   52595     1499312 :          pack_tmp = ISHFT(pack_tmp, -2)
   52596     1499312 :          idata = idata + 1
   52597     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   52598     1499312 :          full_data(idata) = data_tmp
   52599     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   52600     1499312 :          idata = idata + 1
   52601     1499312 :          data_tmp = ISHFT(pack_tmp, 62)
   52602     1499312 :          ipack = ipack + 1
   52603     1499312 :          pack_tmp = packed_data(ipack)
   52604     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(62)))
   52605     1499312 :          pack_tmp = ISHFT(pack_tmp, -62)
   52606     1499312 :          idata = idata + 1
   52607     1499312 :          data_tmp = ISHFT(pack_tmp, 60)
   52608     1499312 :          ipack = ipack + 1
   52609     1499312 :          pack_tmp = packed_data(ipack)
   52610     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   52611     1499312 :          pack_tmp = ISHFT(pack_tmp, -60)
   52612     1499312 :          idata = idata + 1
   52613     1499312 :          data_tmp = ISHFT(pack_tmp, 58)
   52614     1499312 :          ipack = ipack + 1
   52615     1499312 :          pack_tmp = packed_data(ipack)
   52616     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   52617     1499312 :          pack_tmp = ISHFT(pack_tmp, -58)
   52618     1499312 :          idata = idata + 1
   52619     1499312 :          data_tmp = ISHFT(pack_tmp, 56)
   52620     1499312 :          ipack = ipack + 1
   52621     1499312 :          pack_tmp = packed_data(ipack)
   52622     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   52623     1499312 :          pack_tmp = ISHFT(pack_tmp, -56)
   52624     1499312 :          idata = idata + 1
   52625     1499312 :          data_tmp = ISHFT(pack_tmp, 54)
   52626     1499312 :          ipack = ipack + 1
   52627     1499312 :          pack_tmp = packed_data(ipack)
   52628     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   52629     1499312 :          pack_tmp = ISHFT(pack_tmp, -54)
   52630     1499312 :          idata = idata + 1
   52631     1499312 :          data_tmp = ISHFT(pack_tmp, 52)
   52632     1499312 :          ipack = ipack + 1
   52633     1499312 :          pack_tmp = packed_data(ipack)
   52634     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   52635     1499312 :          pack_tmp = ISHFT(pack_tmp, -52)
   52636     1499312 :          idata = idata + 1
   52637     1499312 :          data_tmp = ISHFT(pack_tmp, 50)
   52638     1499312 :          ipack = ipack + 1
   52639     1499312 :          pack_tmp = packed_data(ipack)
   52640     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   52641     1499312 :          pack_tmp = ISHFT(pack_tmp, -50)
   52642     1499312 :          idata = idata + 1
   52643     1499312 :          data_tmp = ISHFT(pack_tmp, 48)
   52644     1499312 :          ipack = ipack + 1
   52645     1499312 :          pack_tmp = packed_data(ipack)
   52646     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   52647     1499312 :          pack_tmp = ISHFT(pack_tmp, -48)
   52648     1499312 :          idata = idata + 1
   52649     1499312 :          data_tmp = ISHFT(pack_tmp, 46)
   52650     1499312 :          ipack = ipack + 1
   52651     1499312 :          pack_tmp = packed_data(ipack)
   52652     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   52653     1499312 :          pack_tmp = ISHFT(pack_tmp, -46)
   52654     1499312 :          idata = idata + 1
   52655     1499312 :          data_tmp = ISHFT(pack_tmp, 44)
   52656     1499312 :          ipack = ipack + 1
   52657     1499312 :          pack_tmp = packed_data(ipack)
   52658     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   52659     1499312 :          pack_tmp = ISHFT(pack_tmp, -44)
   52660     1499312 :          idata = idata + 1
   52661     1499312 :          data_tmp = ISHFT(pack_tmp, 42)
   52662     1499312 :          ipack = ipack + 1
   52663     1499312 :          pack_tmp = packed_data(ipack)
   52664     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   52665     1499312 :          pack_tmp = ISHFT(pack_tmp, -42)
   52666     1499312 :          idata = idata + 1
   52667     1499312 :          data_tmp = ISHFT(pack_tmp, 40)
   52668     1499312 :          ipack = ipack + 1
   52669     1499312 :          pack_tmp = packed_data(ipack)
   52670     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   52671     1499312 :          pack_tmp = ISHFT(pack_tmp, -40)
   52672     1499312 :          idata = idata + 1
   52673     1499312 :          data_tmp = ISHFT(pack_tmp, 38)
   52674     1499312 :          ipack = ipack + 1
   52675     1499312 :          pack_tmp = packed_data(ipack)
   52676     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   52677     1499312 :          pack_tmp = ISHFT(pack_tmp, -38)
   52678     1499312 :          idata = idata + 1
   52679     1499312 :          data_tmp = ISHFT(pack_tmp, 36)
   52680     1499312 :          ipack = ipack + 1
   52681     1499312 :          pack_tmp = packed_data(ipack)
   52682     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   52683     1499312 :          pack_tmp = ISHFT(pack_tmp, -36)
   52684     1499312 :          idata = idata + 1
   52685     1499312 :          data_tmp = ISHFT(pack_tmp, 34)
   52686     1499312 :          ipack = ipack + 1
   52687     1499312 :          pack_tmp = packed_data(ipack)
   52688     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   52689     1499312 :          pack_tmp = ISHFT(pack_tmp, -34)
   52690     1499312 :          idata = idata + 1
   52691     1499312 :          data_tmp = ISHFT(pack_tmp, 32)
   52692     1499312 :          ipack = ipack + 1
   52693     1499312 :          pack_tmp = packed_data(ipack)
   52694     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   52695     1499312 :          pack_tmp = ISHFT(pack_tmp, -32)
   52696     1499312 :          idata = idata + 1
   52697     1499312 :          data_tmp = ISHFT(pack_tmp, 30)
   52698     1499312 :          ipack = ipack + 1
   52699     1499312 :          pack_tmp = packed_data(ipack)
   52700     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   52701     1499312 :          pack_tmp = ISHFT(pack_tmp, -30)
   52702     1499312 :          idata = idata + 1
   52703     1499312 :          data_tmp = ISHFT(pack_tmp, 28)
   52704     1499312 :          ipack = ipack + 1
   52705     1499312 :          pack_tmp = packed_data(ipack)
   52706     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   52707     1499312 :          pack_tmp = ISHFT(pack_tmp, -28)
   52708     1499312 :          idata = idata + 1
   52709     1499312 :          data_tmp = ISHFT(pack_tmp, 26)
   52710     1499312 :          ipack = ipack + 1
   52711     1499312 :          pack_tmp = packed_data(ipack)
   52712     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   52713     1499312 :          pack_tmp = ISHFT(pack_tmp, -26)
   52714     1499312 :          idata = idata + 1
   52715     1499312 :          data_tmp = ISHFT(pack_tmp, 24)
   52716     1499312 :          ipack = ipack + 1
   52717     1499312 :          pack_tmp = packed_data(ipack)
   52718     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   52719     1499312 :          pack_tmp = ISHFT(pack_tmp, -24)
   52720     1499312 :          idata = idata + 1
   52721     1499312 :          data_tmp = ISHFT(pack_tmp, 22)
   52722     1499312 :          ipack = ipack + 1
   52723     1499312 :          pack_tmp = packed_data(ipack)
   52724     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   52725     1499312 :          pack_tmp = ISHFT(pack_tmp, -22)
   52726     1499312 :          idata = idata + 1
   52727     1499312 :          data_tmp = ISHFT(pack_tmp, 20)
   52728     1499312 :          ipack = ipack + 1
   52729     1499312 :          pack_tmp = packed_data(ipack)
   52730     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   52731     1499312 :          pack_tmp = ISHFT(pack_tmp, -20)
   52732     1499312 :          idata = idata + 1
   52733     1499312 :          data_tmp = ISHFT(pack_tmp, 18)
   52734     1499312 :          ipack = ipack + 1
   52735     1499312 :          pack_tmp = packed_data(ipack)
   52736     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   52737     1499312 :          pack_tmp = ISHFT(pack_tmp, -18)
   52738     1499312 :          idata = idata + 1
   52739     1499312 :          data_tmp = ISHFT(pack_tmp, 16)
   52740     1499312 :          ipack = ipack + 1
   52741     1499312 :          pack_tmp = packed_data(ipack)
   52742     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   52743     1499312 :          pack_tmp = ISHFT(pack_tmp, -16)
   52744     1499312 :          idata = idata + 1
   52745     1499312 :          data_tmp = ISHFT(pack_tmp, 14)
   52746     1499312 :          ipack = ipack + 1
   52747     1499312 :          pack_tmp = packed_data(ipack)
   52748     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   52749     1499312 :          pack_tmp = ISHFT(pack_tmp, -14)
   52750     1499312 :          idata = idata + 1
   52751     1499312 :          data_tmp = ISHFT(pack_tmp, 12)
   52752     1499312 :          ipack = ipack + 1
   52753     1499312 :          pack_tmp = packed_data(ipack)
   52754     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   52755     1499312 :          pack_tmp = ISHFT(pack_tmp, -12)
   52756     1499312 :          idata = idata + 1
   52757     1499312 :          data_tmp = ISHFT(pack_tmp, 10)
   52758     1499312 :          ipack = ipack + 1
   52759     1499312 :          pack_tmp = packed_data(ipack)
   52760     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   52761     1499312 :          pack_tmp = ISHFT(pack_tmp, -10)
   52762     1499312 :          idata = idata + 1
   52763     1499312 :          data_tmp = ISHFT(pack_tmp, 8)
   52764     1499312 :          ipack = ipack + 1
   52765     1499312 :          pack_tmp = packed_data(ipack)
   52766     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   52767     1499312 :          pack_tmp = ISHFT(pack_tmp, -8)
   52768     1499312 :          idata = idata + 1
   52769     1499312 :          data_tmp = ISHFT(pack_tmp, 6)
   52770     1499312 :          ipack = ipack + 1
   52771     1499312 :          pack_tmp = packed_data(ipack)
   52772     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   52773     1499312 :          pack_tmp = ISHFT(pack_tmp, -6)
   52774     1499312 :          idata = idata + 1
   52775     1499312 :          data_tmp = ISHFT(pack_tmp, 4)
   52776     1499312 :          ipack = ipack + 1
   52777     1499312 :          pack_tmp = packed_data(ipack)
   52778     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   52779     1499312 :          pack_tmp = ISHFT(pack_tmp, -4)
   52780     1499312 :          idata = idata + 1
   52781     1499312 :          data_tmp = ISHFT(pack_tmp, 2)
   52782     1499312 :          ipack = ipack + 1
   52783     1499312 :          pack_tmp = packed_data(ipack)
   52784     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   52785     1499312 :          pack_tmp = ISHFT(pack_tmp, -2)
   52786     1499312 :          idata = idata + 1
   52787     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   52788     1499312 :          full_data(idata) = data_tmp
   52789     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   52790             :       END DO
   52791       93707 :       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       93707 :    END SUBROUTINE bits2ints_62
   52795             : 
   52796             : ! **************************************************************************************************
   52797             : !> \brief ...
   52798             : !> \param Ndata ...
   52799             : !> \param packed_data ...
   52800             : !> \param full_data ...
   52801             : ! **************************************************************************************************
   52802       23004 :    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       23004 :       idata = 0
   52813       23004 :       ipack = 0
   52814       23004 :       Ndata_rep = (Ndata/64)*64
   52815       23004 :       DO kdata = 1, Ndata_rep, 64
   52816      368064 :          pack_tmp = 0
   52817      368064 :          idata = idata + 1
   52818      368064 :          data_tmp = full_data(idata)
   52819      368064 :          data_tmp = ISHFT(data_tmp, 1)
   52820      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52821      368064 :          pack_tmp = ISHFT(pack_tmp, -1)
   52822      368064 :          idata = idata + 1
   52823      368064 :          data_tmp = full_data(idata)
   52824      368064 :          data_tmp = ISHFT(data_tmp, 1)
   52825      368064 :          data_tmp = IAND(data_tmp, mask_left(1))
   52826      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52827      368064 :          ipack = ipack + 1
   52828      368064 :          packed_data(ipack) = pack_tmp
   52829      368064 :          data_tmp = full_data(idata)
   52830      368064 :          pack_tmp = ISHFT(data_tmp, 2)
   52831      368064 :          pack_tmp = ISHFT(pack_tmp, -2)
   52832      368064 :          idata = idata + 1
   52833      368064 :          data_tmp = full_data(idata)
   52834      368064 :          data_tmp = ISHFT(data_tmp, 1)
   52835      368064 :          data_tmp = IAND(data_tmp, mask_left(2))
   52836      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52837      368064 :          ipack = ipack + 1
   52838      368064 :          packed_data(ipack) = pack_tmp
   52839      368064 :          data_tmp = full_data(idata)
   52840      368064 :          pack_tmp = ISHFT(data_tmp, 3)
   52841      368064 :          pack_tmp = ISHFT(pack_tmp, -3)
   52842      368064 :          idata = idata + 1
   52843      368064 :          data_tmp = full_data(idata)
   52844      368064 :          data_tmp = ISHFT(data_tmp, 1)
   52845      368064 :          data_tmp = IAND(data_tmp, mask_left(3))
   52846      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52847      368064 :          ipack = ipack + 1
   52848      368064 :          packed_data(ipack) = pack_tmp
   52849      368064 :          data_tmp = full_data(idata)
   52850      368064 :          pack_tmp = ISHFT(data_tmp, 4)
   52851      368064 :          pack_tmp = ISHFT(pack_tmp, -4)
   52852      368064 :          idata = idata + 1
   52853      368064 :          data_tmp = full_data(idata)
   52854      368064 :          data_tmp = ISHFT(data_tmp, 1)
   52855      368064 :          data_tmp = IAND(data_tmp, mask_left(4))
   52856      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52857      368064 :          ipack = ipack + 1
   52858      368064 :          packed_data(ipack) = pack_tmp
   52859      368064 :          data_tmp = full_data(idata)
   52860      368064 :          pack_tmp = ISHFT(data_tmp, 5)
   52861      368064 :          pack_tmp = ISHFT(pack_tmp, -5)
   52862      368064 :          idata = idata + 1
   52863      368064 :          data_tmp = full_data(idata)
   52864      368064 :          data_tmp = ISHFT(data_tmp, 1)
   52865      368064 :          data_tmp = IAND(data_tmp, mask_left(5))
   52866      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52867      368064 :          ipack = ipack + 1
   52868      368064 :          packed_data(ipack) = pack_tmp
   52869      368064 :          data_tmp = full_data(idata)
   52870      368064 :          pack_tmp = ISHFT(data_tmp, 6)
   52871      368064 :          pack_tmp = ISHFT(pack_tmp, -6)
   52872      368064 :          idata = idata + 1
   52873      368064 :          data_tmp = full_data(idata)
   52874      368064 :          data_tmp = ISHFT(data_tmp, 1)
   52875      368064 :          data_tmp = IAND(data_tmp, mask_left(6))
   52876      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52877      368064 :          ipack = ipack + 1
   52878      368064 :          packed_data(ipack) = pack_tmp
   52879      368064 :          data_tmp = full_data(idata)
   52880      368064 :          pack_tmp = ISHFT(data_tmp, 7)
   52881      368064 :          pack_tmp = ISHFT(pack_tmp, -7)
   52882      368064 :          idata = idata + 1
   52883      368064 :          data_tmp = full_data(idata)
   52884      368064 :          data_tmp = ISHFT(data_tmp, 1)
   52885      368064 :          data_tmp = IAND(data_tmp, mask_left(7))
   52886      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52887      368064 :          ipack = ipack + 1
   52888      368064 :          packed_data(ipack) = pack_tmp
   52889      368064 :          data_tmp = full_data(idata)
   52890      368064 :          pack_tmp = ISHFT(data_tmp, 8)
   52891      368064 :          pack_tmp = ISHFT(pack_tmp, -8)
   52892      368064 :          idata = idata + 1
   52893      368064 :          data_tmp = full_data(idata)
   52894      368064 :          data_tmp = ISHFT(data_tmp, 1)
   52895      368064 :          data_tmp = IAND(data_tmp, mask_left(8))
   52896      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52897      368064 :          ipack = ipack + 1
   52898      368064 :          packed_data(ipack) = pack_tmp
   52899      368064 :          data_tmp = full_data(idata)
   52900      368064 :          pack_tmp = ISHFT(data_tmp, 9)
   52901      368064 :          pack_tmp = ISHFT(pack_tmp, -9)
   52902      368064 :          idata = idata + 1
   52903      368064 :          data_tmp = full_data(idata)
   52904      368064 :          data_tmp = ISHFT(data_tmp, 1)
   52905      368064 :          data_tmp = IAND(data_tmp, mask_left(9))
   52906      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52907      368064 :          ipack = ipack + 1
   52908      368064 :          packed_data(ipack) = pack_tmp
   52909      368064 :          data_tmp = full_data(idata)
   52910      368064 :          pack_tmp = ISHFT(data_tmp, 10)
   52911      368064 :          pack_tmp = ISHFT(pack_tmp, -10)
   52912      368064 :          idata = idata + 1
   52913      368064 :          data_tmp = full_data(idata)
   52914      368064 :          data_tmp = ISHFT(data_tmp, 1)
   52915      368064 :          data_tmp = IAND(data_tmp, mask_left(10))
   52916      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52917      368064 :          ipack = ipack + 1
   52918      368064 :          packed_data(ipack) = pack_tmp
   52919      368064 :          data_tmp = full_data(idata)
   52920      368064 :          pack_tmp = ISHFT(data_tmp, 11)
   52921      368064 :          pack_tmp = ISHFT(pack_tmp, -11)
   52922      368064 :          idata = idata + 1
   52923      368064 :          data_tmp = full_data(idata)
   52924      368064 :          data_tmp = ISHFT(data_tmp, 1)
   52925      368064 :          data_tmp = IAND(data_tmp, mask_left(11))
   52926      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52927      368064 :          ipack = ipack + 1
   52928      368064 :          packed_data(ipack) = pack_tmp
   52929      368064 :          data_tmp = full_data(idata)
   52930      368064 :          pack_tmp = ISHFT(data_tmp, 12)
   52931      368064 :          pack_tmp = ISHFT(pack_tmp, -12)
   52932      368064 :          idata = idata + 1
   52933      368064 :          data_tmp = full_data(idata)
   52934      368064 :          data_tmp = ISHFT(data_tmp, 1)
   52935      368064 :          data_tmp = IAND(data_tmp, mask_left(12))
   52936      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52937      368064 :          ipack = ipack + 1
   52938      368064 :          packed_data(ipack) = pack_tmp
   52939      368064 :          data_tmp = full_data(idata)
   52940      368064 :          pack_tmp = ISHFT(data_tmp, 13)
   52941      368064 :          pack_tmp = ISHFT(pack_tmp, -13)
   52942      368064 :          idata = idata + 1
   52943      368064 :          data_tmp = full_data(idata)
   52944      368064 :          data_tmp = ISHFT(data_tmp, 1)
   52945      368064 :          data_tmp = IAND(data_tmp, mask_left(13))
   52946      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52947      368064 :          ipack = ipack + 1
   52948      368064 :          packed_data(ipack) = pack_tmp
   52949      368064 :          data_tmp = full_data(idata)
   52950      368064 :          pack_tmp = ISHFT(data_tmp, 14)
   52951      368064 :          pack_tmp = ISHFT(pack_tmp, -14)
   52952      368064 :          idata = idata + 1
   52953      368064 :          data_tmp = full_data(idata)
   52954      368064 :          data_tmp = ISHFT(data_tmp, 1)
   52955      368064 :          data_tmp = IAND(data_tmp, mask_left(14))
   52956      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52957      368064 :          ipack = ipack + 1
   52958      368064 :          packed_data(ipack) = pack_tmp
   52959      368064 :          data_tmp = full_data(idata)
   52960      368064 :          pack_tmp = ISHFT(data_tmp, 15)
   52961      368064 :          pack_tmp = ISHFT(pack_tmp, -15)
   52962      368064 :          idata = idata + 1
   52963      368064 :          data_tmp = full_data(idata)
   52964      368064 :          data_tmp = ISHFT(data_tmp, 1)
   52965      368064 :          data_tmp = IAND(data_tmp, mask_left(15))
   52966      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52967      368064 :          ipack = ipack + 1
   52968      368064 :          packed_data(ipack) = pack_tmp
   52969      368064 :          data_tmp = full_data(idata)
   52970      368064 :          pack_tmp = ISHFT(data_tmp, 16)
   52971      368064 :          pack_tmp = ISHFT(pack_tmp, -16)
   52972      368064 :          idata = idata + 1
   52973      368064 :          data_tmp = full_data(idata)
   52974      368064 :          data_tmp = ISHFT(data_tmp, 1)
   52975      368064 :          data_tmp = IAND(data_tmp, mask_left(16))
   52976      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52977      368064 :          ipack = ipack + 1
   52978      368064 :          packed_data(ipack) = pack_tmp
   52979      368064 :          data_tmp = full_data(idata)
   52980      368064 :          pack_tmp = ISHFT(data_tmp, 17)
   52981      368064 :          pack_tmp = ISHFT(pack_tmp, -17)
   52982      368064 :          idata = idata + 1
   52983      368064 :          data_tmp = full_data(idata)
   52984      368064 :          data_tmp = ISHFT(data_tmp, 1)
   52985      368064 :          data_tmp = IAND(data_tmp, mask_left(17))
   52986      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52987      368064 :          ipack = ipack + 1
   52988      368064 :          packed_data(ipack) = pack_tmp
   52989      368064 :          data_tmp = full_data(idata)
   52990      368064 :          pack_tmp = ISHFT(data_tmp, 18)
   52991      368064 :          pack_tmp = ISHFT(pack_tmp, -18)
   52992      368064 :          idata = idata + 1
   52993      368064 :          data_tmp = full_data(idata)
   52994      368064 :          data_tmp = ISHFT(data_tmp, 1)
   52995      368064 :          data_tmp = IAND(data_tmp, mask_left(18))
   52996      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52997      368064 :          ipack = ipack + 1
   52998      368064 :          packed_data(ipack) = pack_tmp
   52999      368064 :          data_tmp = full_data(idata)
   53000      368064 :          pack_tmp = ISHFT(data_tmp, 19)
   53001      368064 :          pack_tmp = ISHFT(pack_tmp, -19)
   53002      368064 :          idata = idata + 1
   53003      368064 :          data_tmp = full_data(idata)
   53004      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53005      368064 :          data_tmp = IAND(data_tmp, mask_left(19))
   53006      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53007      368064 :          ipack = ipack + 1
   53008      368064 :          packed_data(ipack) = pack_tmp
   53009      368064 :          data_tmp = full_data(idata)
   53010      368064 :          pack_tmp = ISHFT(data_tmp, 20)
   53011      368064 :          pack_tmp = ISHFT(pack_tmp, -20)
   53012      368064 :          idata = idata + 1
   53013      368064 :          data_tmp = full_data(idata)
   53014      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53015      368064 :          data_tmp = IAND(data_tmp, mask_left(20))
   53016      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53017      368064 :          ipack = ipack + 1
   53018      368064 :          packed_data(ipack) = pack_tmp
   53019      368064 :          data_tmp = full_data(idata)
   53020      368064 :          pack_tmp = ISHFT(data_tmp, 21)
   53021      368064 :          pack_tmp = ISHFT(pack_tmp, -21)
   53022      368064 :          idata = idata + 1
   53023      368064 :          data_tmp = full_data(idata)
   53024      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53025      368064 :          data_tmp = IAND(data_tmp, mask_left(21))
   53026      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53027      368064 :          ipack = ipack + 1
   53028      368064 :          packed_data(ipack) = pack_tmp
   53029      368064 :          data_tmp = full_data(idata)
   53030      368064 :          pack_tmp = ISHFT(data_tmp, 22)
   53031      368064 :          pack_tmp = ISHFT(pack_tmp, -22)
   53032      368064 :          idata = idata + 1
   53033      368064 :          data_tmp = full_data(idata)
   53034      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53035      368064 :          data_tmp = IAND(data_tmp, mask_left(22))
   53036      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53037      368064 :          ipack = ipack + 1
   53038      368064 :          packed_data(ipack) = pack_tmp
   53039      368064 :          data_tmp = full_data(idata)
   53040      368064 :          pack_tmp = ISHFT(data_tmp, 23)
   53041      368064 :          pack_tmp = ISHFT(pack_tmp, -23)
   53042      368064 :          idata = idata + 1
   53043      368064 :          data_tmp = full_data(idata)
   53044      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53045      368064 :          data_tmp = IAND(data_tmp, mask_left(23))
   53046      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53047      368064 :          ipack = ipack + 1
   53048      368064 :          packed_data(ipack) = pack_tmp
   53049      368064 :          data_tmp = full_data(idata)
   53050      368064 :          pack_tmp = ISHFT(data_tmp, 24)
   53051      368064 :          pack_tmp = ISHFT(pack_tmp, -24)
   53052      368064 :          idata = idata + 1
   53053      368064 :          data_tmp = full_data(idata)
   53054      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53055      368064 :          data_tmp = IAND(data_tmp, mask_left(24))
   53056      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53057      368064 :          ipack = ipack + 1
   53058      368064 :          packed_data(ipack) = pack_tmp
   53059      368064 :          data_tmp = full_data(idata)
   53060      368064 :          pack_tmp = ISHFT(data_tmp, 25)
   53061      368064 :          pack_tmp = ISHFT(pack_tmp, -25)
   53062      368064 :          idata = idata + 1
   53063      368064 :          data_tmp = full_data(idata)
   53064      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53065      368064 :          data_tmp = IAND(data_tmp, mask_left(25))
   53066      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53067      368064 :          ipack = ipack + 1
   53068      368064 :          packed_data(ipack) = pack_tmp
   53069      368064 :          data_tmp = full_data(idata)
   53070      368064 :          pack_tmp = ISHFT(data_tmp, 26)
   53071      368064 :          pack_tmp = ISHFT(pack_tmp, -26)
   53072      368064 :          idata = idata + 1
   53073      368064 :          data_tmp = full_data(idata)
   53074      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53075      368064 :          data_tmp = IAND(data_tmp, mask_left(26))
   53076      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53077      368064 :          ipack = ipack + 1
   53078      368064 :          packed_data(ipack) = pack_tmp
   53079      368064 :          data_tmp = full_data(idata)
   53080      368064 :          pack_tmp = ISHFT(data_tmp, 27)
   53081      368064 :          pack_tmp = ISHFT(pack_tmp, -27)
   53082      368064 :          idata = idata + 1
   53083      368064 :          data_tmp = full_data(idata)
   53084      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53085      368064 :          data_tmp = IAND(data_tmp, mask_left(27))
   53086      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53087      368064 :          ipack = ipack + 1
   53088      368064 :          packed_data(ipack) = pack_tmp
   53089      368064 :          data_tmp = full_data(idata)
   53090      368064 :          pack_tmp = ISHFT(data_tmp, 28)
   53091      368064 :          pack_tmp = ISHFT(pack_tmp, -28)
   53092      368064 :          idata = idata + 1
   53093      368064 :          data_tmp = full_data(idata)
   53094      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53095      368064 :          data_tmp = IAND(data_tmp, mask_left(28))
   53096      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53097      368064 :          ipack = ipack + 1
   53098      368064 :          packed_data(ipack) = pack_tmp
   53099      368064 :          data_tmp = full_data(idata)
   53100      368064 :          pack_tmp = ISHFT(data_tmp, 29)
   53101      368064 :          pack_tmp = ISHFT(pack_tmp, -29)
   53102      368064 :          idata = idata + 1
   53103      368064 :          data_tmp = full_data(idata)
   53104      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53105      368064 :          data_tmp = IAND(data_tmp, mask_left(29))
   53106      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53107      368064 :          ipack = ipack + 1
   53108      368064 :          packed_data(ipack) = pack_tmp
   53109      368064 :          data_tmp = full_data(idata)
   53110      368064 :          pack_tmp = ISHFT(data_tmp, 30)
   53111      368064 :          pack_tmp = ISHFT(pack_tmp, -30)
   53112      368064 :          idata = idata + 1
   53113      368064 :          data_tmp = full_data(idata)
   53114      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53115      368064 :          data_tmp = IAND(data_tmp, mask_left(30))
   53116      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53117      368064 :          ipack = ipack + 1
   53118      368064 :          packed_data(ipack) = pack_tmp
   53119      368064 :          data_tmp = full_data(idata)
   53120      368064 :          pack_tmp = ISHFT(data_tmp, 31)
   53121      368064 :          pack_tmp = ISHFT(pack_tmp, -31)
   53122      368064 :          idata = idata + 1
   53123      368064 :          data_tmp = full_data(idata)
   53124      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53125      368064 :          data_tmp = IAND(data_tmp, mask_left(31))
   53126      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53127      368064 :          ipack = ipack + 1
   53128      368064 :          packed_data(ipack) = pack_tmp
   53129      368064 :          data_tmp = full_data(idata)
   53130      368064 :          pack_tmp = ISHFT(data_tmp, 32)
   53131      368064 :          pack_tmp = ISHFT(pack_tmp, -32)
   53132      368064 :          idata = idata + 1
   53133      368064 :          data_tmp = full_data(idata)
   53134      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53135      368064 :          data_tmp = IAND(data_tmp, mask_left(32))
   53136      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53137      368064 :          ipack = ipack + 1
   53138      368064 :          packed_data(ipack) = pack_tmp
   53139      368064 :          data_tmp = full_data(idata)
   53140      368064 :          pack_tmp = ISHFT(data_tmp, 33)
   53141      368064 :          pack_tmp = ISHFT(pack_tmp, -33)
   53142      368064 :          idata = idata + 1
   53143      368064 :          data_tmp = full_data(idata)
   53144      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53145      368064 :          data_tmp = IAND(data_tmp, mask_left(33))
   53146      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53147      368064 :          ipack = ipack + 1
   53148      368064 :          packed_data(ipack) = pack_tmp
   53149      368064 :          data_tmp = full_data(idata)
   53150      368064 :          pack_tmp = ISHFT(data_tmp, 34)
   53151      368064 :          pack_tmp = ISHFT(pack_tmp, -34)
   53152      368064 :          idata = idata + 1
   53153      368064 :          data_tmp = full_data(idata)
   53154      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53155      368064 :          data_tmp = IAND(data_tmp, mask_left(34))
   53156      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53157      368064 :          ipack = ipack + 1
   53158      368064 :          packed_data(ipack) = pack_tmp
   53159      368064 :          data_tmp = full_data(idata)
   53160      368064 :          pack_tmp = ISHFT(data_tmp, 35)
   53161      368064 :          pack_tmp = ISHFT(pack_tmp, -35)
   53162      368064 :          idata = idata + 1
   53163      368064 :          data_tmp = full_data(idata)
   53164      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53165      368064 :          data_tmp = IAND(data_tmp, mask_left(35))
   53166      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53167      368064 :          ipack = ipack + 1
   53168      368064 :          packed_data(ipack) = pack_tmp
   53169      368064 :          data_tmp = full_data(idata)
   53170      368064 :          pack_tmp = ISHFT(data_tmp, 36)
   53171      368064 :          pack_tmp = ISHFT(pack_tmp, -36)
   53172      368064 :          idata = idata + 1
   53173      368064 :          data_tmp = full_data(idata)
   53174      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53175      368064 :          data_tmp = IAND(data_tmp, mask_left(36))
   53176      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53177      368064 :          ipack = ipack + 1
   53178      368064 :          packed_data(ipack) = pack_tmp
   53179      368064 :          data_tmp = full_data(idata)
   53180      368064 :          pack_tmp = ISHFT(data_tmp, 37)
   53181      368064 :          pack_tmp = ISHFT(pack_tmp, -37)
   53182      368064 :          idata = idata + 1
   53183      368064 :          data_tmp = full_data(idata)
   53184      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53185      368064 :          data_tmp = IAND(data_tmp, mask_left(37))
   53186      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53187      368064 :          ipack = ipack + 1
   53188      368064 :          packed_data(ipack) = pack_tmp
   53189      368064 :          data_tmp = full_data(idata)
   53190      368064 :          pack_tmp = ISHFT(data_tmp, 38)
   53191      368064 :          pack_tmp = ISHFT(pack_tmp, -38)
   53192      368064 :          idata = idata + 1
   53193      368064 :          data_tmp = full_data(idata)
   53194      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53195      368064 :          data_tmp = IAND(data_tmp, mask_left(38))
   53196      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53197      368064 :          ipack = ipack + 1
   53198      368064 :          packed_data(ipack) = pack_tmp
   53199      368064 :          data_tmp = full_data(idata)
   53200      368064 :          pack_tmp = ISHFT(data_tmp, 39)
   53201      368064 :          pack_tmp = ISHFT(pack_tmp, -39)
   53202      368064 :          idata = idata + 1
   53203      368064 :          data_tmp = full_data(idata)
   53204      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53205      368064 :          data_tmp = IAND(data_tmp, mask_left(39))
   53206      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53207      368064 :          ipack = ipack + 1
   53208      368064 :          packed_data(ipack) = pack_tmp
   53209      368064 :          data_tmp = full_data(idata)
   53210      368064 :          pack_tmp = ISHFT(data_tmp, 40)
   53211      368064 :          pack_tmp = ISHFT(pack_tmp, -40)
   53212      368064 :          idata = idata + 1
   53213      368064 :          data_tmp = full_data(idata)
   53214      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53215      368064 :          data_tmp = IAND(data_tmp, mask_left(40))
   53216      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53217      368064 :          ipack = ipack + 1
   53218      368064 :          packed_data(ipack) = pack_tmp
   53219      368064 :          data_tmp = full_data(idata)
   53220      368064 :          pack_tmp = ISHFT(data_tmp, 41)
   53221      368064 :          pack_tmp = ISHFT(pack_tmp, -41)
   53222      368064 :          idata = idata + 1
   53223      368064 :          data_tmp = full_data(idata)
   53224      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53225      368064 :          data_tmp = IAND(data_tmp, mask_left(41))
   53226      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53227      368064 :          ipack = ipack + 1
   53228      368064 :          packed_data(ipack) = pack_tmp
   53229      368064 :          data_tmp = full_data(idata)
   53230      368064 :          pack_tmp = ISHFT(data_tmp, 42)
   53231      368064 :          pack_tmp = ISHFT(pack_tmp, -42)
   53232      368064 :          idata = idata + 1
   53233      368064 :          data_tmp = full_data(idata)
   53234      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53235      368064 :          data_tmp = IAND(data_tmp, mask_left(42))
   53236      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53237      368064 :          ipack = ipack + 1
   53238      368064 :          packed_data(ipack) = pack_tmp
   53239      368064 :          data_tmp = full_data(idata)
   53240      368064 :          pack_tmp = ISHFT(data_tmp, 43)
   53241      368064 :          pack_tmp = ISHFT(pack_tmp, -43)
   53242      368064 :          idata = idata + 1
   53243      368064 :          data_tmp = full_data(idata)
   53244      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53245      368064 :          data_tmp = IAND(data_tmp, mask_left(43))
   53246      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53247      368064 :          ipack = ipack + 1
   53248      368064 :          packed_data(ipack) = pack_tmp
   53249      368064 :          data_tmp = full_data(idata)
   53250      368064 :          pack_tmp = ISHFT(data_tmp, 44)
   53251      368064 :          pack_tmp = ISHFT(pack_tmp, -44)
   53252      368064 :          idata = idata + 1
   53253      368064 :          data_tmp = full_data(idata)
   53254      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53255      368064 :          data_tmp = IAND(data_tmp, mask_left(44))
   53256      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53257      368064 :          ipack = ipack + 1
   53258      368064 :          packed_data(ipack) = pack_tmp
   53259      368064 :          data_tmp = full_data(idata)
   53260      368064 :          pack_tmp = ISHFT(data_tmp, 45)
   53261      368064 :          pack_tmp = ISHFT(pack_tmp, -45)
   53262      368064 :          idata = idata + 1
   53263      368064 :          data_tmp = full_data(idata)
   53264      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53265      368064 :          data_tmp = IAND(data_tmp, mask_left(45))
   53266      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53267      368064 :          ipack = ipack + 1
   53268      368064 :          packed_data(ipack) = pack_tmp
   53269      368064 :          data_tmp = full_data(idata)
   53270      368064 :          pack_tmp = ISHFT(data_tmp, 46)
   53271      368064 :          pack_tmp = ISHFT(pack_tmp, -46)
   53272      368064 :          idata = idata + 1
   53273      368064 :          data_tmp = full_data(idata)
   53274      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53275      368064 :          data_tmp = IAND(data_tmp, mask_left(46))
   53276      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53277      368064 :          ipack = ipack + 1
   53278      368064 :          packed_data(ipack) = pack_tmp
   53279      368064 :          data_tmp = full_data(idata)
   53280      368064 :          pack_tmp = ISHFT(data_tmp, 47)
   53281      368064 :          pack_tmp = ISHFT(pack_tmp, -47)
   53282      368064 :          idata = idata + 1
   53283      368064 :          data_tmp = full_data(idata)
   53284      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53285      368064 :          data_tmp = IAND(data_tmp, mask_left(47))
   53286      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53287      368064 :          ipack = ipack + 1
   53288      368064 :          packed_data(ipack) = pack_tmp
   53289      368064 :          data_tmp = full_data(idata)
   53290      368064 :          pack_tmp = ISHFT(data_tmp, 48)
   53291      368064 :          pack_tmp = ISHFT(pack_tmp, -48)
   53292      368064 :          idata = idata + 1
   53293      368064 :          data_tmp = full_data(idata)
   53294      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53295      368064 :          data_tmp = IAND(data_tmp, mask_left(48))
   53296      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53297      368064 :          ipack = ipack + 1
   53298      368064 :          packed_data(ipack) = pack_tmp
   53299      368064 :          data_tmp = full_data(idata)
   53300      368064 :          pack_tmp = ISHFT(data_tmp, 49)
   53301      368064 :          pack_tmp = ISHFT(pack_tmp, -49)
   53302      368064 :          idata = idata + 1
   53303      368064 :          data_tmp = full_data(idata)
   53304      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53305      368064 :          data_tmp = IAND(data_tmp, mask_left(49))
   53306      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53307      368064 :          ipack = ipack + 1
   53308      368064 :          packed_data(ipack) = pack_tmp
   53309      368064 :          data_tmp = full_data(idata)
   53310      368064 :          pack_tmp = ISHFT(data_tmp, 50)
   53311      368064 :          pack_tmp = ISHFT(pack_tmp, -50)
   53312      368064 :          idata = idata + 1
   53313      368064 :          data_tmp = full_data(idata)
   53314      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53315      368064 :          data_tmp = IAND(data_tmp, mask_left(50))
   53316      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53317      368064 :          ipack = ipack + 1
   53318      368064 :          packed_data(ipack) = pack_tmp
   53319      368064 :          data_tmp = full_data(idata)
   53320      368064 :          pack_tmp = ISHFT(data_tmp, 51)
   53321      368064 :          pack_tmp = ISHFT(pack_tmp, -51)
   53322      368064 :          idata = idata + 1
   53323      368064 :          data_tmp = full_data(idata)
   53324      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53325      368064 :          data_tmp = IAND(data_tmp, mask_left(51))
   53326      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53327      368064 :          ipack = ipack + 1
   53328      368064 :          packed_data(ipack) = pack_tmp
   53329      368064 :          data_tmp = full_data(idata)
   53330      368064 :          pack_tmp = ISHFT(data_tmp, 52)
   53331      368064 :          pack_tmp = ISHFT(pack_tmp, -52)
   53332      368064 :          idata = idata + 1
   53333      368064 :          data_tmp = full_data(idata)
   53334      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53335      368064 :          data_tmp = IAND(data_tmp, mask_left(52))
   53336      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53337      368064 :          ipack = ipack + 1
   53338      368064 :          packed_data(ipack) = pack_tmp
   53339      368064 :          data_tmp = full_data(idata)
   53340      368064 :          pack_tmp = ISHFT(data_tmp, 53)
   53341      368064 :          pack_tmp = ISHFT(pack_tmp, -53)
   53342      368064 :          idata = idata + 1
   53343      368064 :          data_tmp = full_data(idata)
   53344      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53345      368064 :          data_tmp = IAND(data_tmp, mask_left(53))
   53346      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53347      368064 :          ipack = ipack + 1
   53348      368064 :          packed_data(ipack) = pack_tmp
   53349      368064 :          data_tmp = full_data(idata)
   53350      368064 :          pack_tmp = ISHFT(data_tmp, 54)
   53351      368064 :          pack_tmp = ISHFT(pack_tmp, -54)
   53352      368064 :          idata = idata + 1
   53353      368064 :          data_tmp = full_data(idata)
   53354      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53355      368064 :          data_tmp = IAND(data_tmp, mask_left(54))
   53356      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53357      368064 :          ipack = ipack + 1
   53358      368064 :          packed_data(ipack) = pack_tmp
   53359      368064 :          data_tmp = full_data(idata)
   53360      368064 :          pack_tmp = ISHFT(data_tmp, 55)
   53361      368064 :          pack_tmp = ISHFT(pack_tmp, -55)
   53362      368064 :          idata = idata + 1
   53363      368064 :          data_tmp = full_data(idata)
   53364      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53365      368064 :          data_tmp = IAND(data_tmp, mask_left(55))
   53366      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53367      368064 :          ipack = ipack + 1
   53368      368064 :          packed_data(ipack) = pack_tmp
   53369      368064 :          data_tmp = full_data(idata)
   53370      368064 :          pack_tmp = ISHFT(data_tmp, 56)
   53371      368064 :          pack_tmp = ISHFT(pack_tmp, -56)
   53372      368064 :          idata = idata + 1
   53373      368064 :          data_tmp = full_data(idata)
   53374      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53375      368064 :          data_tmp = IAND(data_tmp, mask_left(56))
   53376      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53377      368064 :          ipack = ipack + 1
   53378      368064 :          packed_data(ipack) = pack_tmp
   53379      368064 :          data_tmp = full_data(idata)
   53380      368064 :          pack_tmp = ISHFT(data_tmp, 57)
   53381      368064 :          pack_tmp = ISHFT(pack_tmp, -57)
   53382      368064 :          idata = idata + 1
   53383      368064 :          data_tmp = full_data(idata)
   53384      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53385      368064 :          data_tmp = IAND(data_tmp, mask_left(57))
   53386      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53387      368064 :          ipack = ipack + 1
   53388      368064 :          packed_data(ipack) = pack_tmp
   53389      368064 :          data_tmp = full_data(idata)
   53390      368064 :          pack_tmp = ISHFT(data_tmp, 58)
   53391      368064 :          pack_tmp = ISHFT(pack_tmp, -58)
   53392      368064 :          idata = idata + 1
   53393      368064 :          data_tmp = full_data(idata)
   53394      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53395      368064 :          data_tmp = IAND(data_tmp, mask_left(58))
   53396      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53397      368064 :          ipack = ipack + 1
   53398      368064 :          packed_data(ipack) = pack_tmp
   53399      368064 :          data_tmp = full_data(idata)
   53400      368064 :          pack_tmp = ISHFT(data_tmp, 59)
   53401      368064 :          pack_tmp = ISHFT(pack_tmp, -59)
   53402      368064 :          idata = idata + 1
   53403      368064 :          data_tmp = full_data(idata)
   53404      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53405      368064 :          data_tmp = IAND(data_tmp, mask_left(59))
   53406      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53407      368064 :          ipack = ipack + 1
   53408      368064 :          packed_data(ipack) = pack_tmp
   53409      368064 :          data_tmp = full_data(idata)
   53410      368064 :          pack_tmp = ISHFT(data_tmp, 60)
   53411      368064 :          pack_tmp = ISHFT(pack_tmp, -60)
   53412      368064 :          idata = idata + 1
   53413      368064 :          data_tmp = full_data(idata)
   53414      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53415      368064 :          data_tmp = IAND(data_tmp, mask_left(60))
   53416      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53417      368064 :          ipack = ipack + 1
   53418      368064 :          packed_data(ipack) = pack_tmp
   53419      368064 :          data_tmp = full_data(idata)
   53420      368064 :          pack_tmp = ISHFT(data_tmp, 61)
   53421      368064 :          pack_tmp = ISHFT(pack_tmp, -61)
   53422      368064 :          idata = idata + 1
   53423      368064 :          data_tmp = full_data(idata)
   53424      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53425      368064 :          data_tmp = IAND(data_tmp, mask_left(61))
   53426      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53427      368064 :          ipack = ipack + 1
   53428      368064 :          packed_data(ipack) = pack_tmp
   53429      368064 :          data_tmp = full_data(idata)
   53430      368064 :          pack_tmp = ISHFT(data_tmp, 62)
   53431      368064 :          pack_tmp = ISHFT(pack_tmp, -62)
   53432      368064 :          idata = idata + 1
   53433      368064 :          data_tmp = full_data(idata)
   53434      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53435      368064 :          data_tmp = IAND(data_tmp, mask_left(62))
   53436      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53437      368064 :          ipack = ipack + 1
   53438      368064 :          packed_data(ipack) = pack_tmp
   53439      368064 :          data_tmp = full_data(idata)
   53440      368064 :          pack_tmp = ISHFT(data_tmp, 63)
   53441      368064 :          pack_tmp = ISHFT(pack_tmp, -63)
   53442      368064 :          idata = idata + 1
   53443      368064 :          data_tmp = full_data(idata)
   53444      368064 :          data_tmp = ISHFT(data_tmp, 1)
   53445      368064 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53446             :          pack_tmp = ISHFT(pack_tmp, 0)
   53447      368064 :          pack_tmp = ISHFT(pack_tmp, 0)
   53448      368064 :          ipack = ipack + 1
   53449      368064 :          packed_data(ipack) = pack_tmp
   53450             :       END DO
   53451       23004 :       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       23004 :    END SUBROUTINE ints2bits_63
   53455             : 
   53456             : ! **************************************************************************************************
   53457             : !> \brief ...
   53458             : !> \param Ndata ...
   53459             : !> \param packed_data ...
   53460             : !> \param full_data ...
   53461             : ! **************************************************************************************************
   53462       93707 :    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       93707 :       ipack = 0
   53473       93707 :       idata = 0
   53474       93707 :       pack_tmp = 0
   53475       93707 :       Ndata_rep = (Ndata/64)*64
   53476       93707 :       DO kdata = 1, Ndata_rep, 64
   53477     1499312 :          idata = idata + 1
   53478     1499312 :          data_tmp = ISHFT(pack_tmp, 63)
   53479     1499312 :          ipack = ipack + 1
   53480     1499312 :          pack_tmp = packed_data(ipack)
   53481     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(63)))
   53482     1499312 :          pack_tmp = ISHFT(pack_tmp, -63)
   53483     1499312 :          idata = idata + 1
   53484     1499312 :          data_tmp = ISHFT(pack_tmp, 62)
   53485     1499312 :          ipack = ipack + 1
   53486     1499312 :          pack_tmp = packed_data(ipack)
   53487     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(62)))
   53488     1499312 :          pack_tmp = ISHFT(pack_tmp, -62)
   53489     1499312 :          idata = idata + 1
   53490     1499312 :          data_tmp = ISHFT(pack_tmp, 61)
   53491     1499312 :          ipack = ipack + 1
   53492     1499312 :          pack_tmp = packed_data(ipack)
   53493     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(61)))
   53494     1499312 :          pack_tmp = ISHFT(pack_tmp, -61)
   53495     1499312 :          idata = idata + 1
   53496     1499312 :          data_tmp = ISHFT(pack_tmp, 60)
   53497     1499312 :          ipack = ipack + 1
   53498     1499312 :          pack_tmp = packed_data(ipack)
   53499     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   53500     1499312 :          pack_tmp = ISHFT(pack_tmp, -60)
   53501     1499312 :          idata = idata + 1
   53502     1499312 :          data_tmp = ISHFT(pack_tmp, 59)
   53503     1499312 :          ipack = ipack + 1
   53504     1499312 :          pack_tmp = packed_data(ipack)
   53505     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(59)))
   53506     1499312 :          pack_tmp = ISHFT(pack_tmp, -59)
   53507     1499312 :          idata = idata + 1
   53508     1499312 :          data_tmp = ISHFT(pack_tmp, 58)
   53509     1499312 :          ipack = ipack + 1
   53510     1499312 :          pack_tmp = packed_data(ipack)
   53511     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   53512     1499312 :          pack_tmp = ISHFT(pack_tmp, -58)
   53513     1499312 :          idata = idata + 1
   53514     1499312 :          data_tmp = ISHFT(pack_tmp, 57)
   53515     1499312 :          ipack = ipack + 1
   53516     1499312 :          pack_tmp = packed_data(ipack)
   53517     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(57)))
   53518     1499312 :          pack_tmp = ISHFT(pack_tmp, -57)
   53519     1499312 :          idata = idata + 1
   53520     1499312 :          data_tmp = ISHFT(pack_tmp, 56)
   53521     1499312 :          ipack = ipack + 1
   53522     1499312 :          pack_tmp = packed_data(ipack)
   53523     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   53524     1499312 :          pack_tmp = ISHFT(pack_tmp, -56)
   53525     1499312 :          idata = idata + 1
   53526     1499312 :          data_tmp = ISHFT(pack_tmp, 55)
   53527     1499312 :          ipack = ipack + 1
   53528     1499312 :          pack_tmp = packed_data(ipack)
   53529     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(55)))
   53530     1499312 :          pack_tmp = ISHFT(pack_tmp, -55)
   53531     1499312 :          idata = idata + 1
   53532     1499312 :          data_tmp = ISHFT(pack_tmp, 54)
   53533     1499312 :          ipack = ipack + 1
   53534     1499312 :          pack_tmp = packed_data(ipack)
   53535     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   53536     1499312 :          pack_tmp = ISHFT(pack_tmp, -54)
   53537     1499312 :          idata = idata + 1
   53538     1499312 :          data_tmp = ISHFT(pack_tmp, 53)
   53539     1499312 :          ipack = ipack + 1
   53540     1499312 :          pack_tmp = packed_data(ipack)
   53541     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   53542     1499312 :          pack_tmp = ISHFT(pack_tmp, -53)
   53543     1499312 :          idata = idata + 1
   53544     1499312 :          data_tmp = ISHFT(pack_tmp, 52)
   53545     1499312 :          ipack = ipack + 1
   53546     1499312 :          pack_tmp = packed_data(ipack)
   53547     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   53548     1499312 :          pack_tmp = ISHFT(pack_tmp, -52)
   53549     1499312 :          idata = idata + 1
   53550     1499312 :          data_tmp = ISHFT(pack_tmp, 51)
   53551     1499312 :          ipack = ipack + 1
   53552     1499312 :          pack_tmp = packed_data(ipack)
   53553     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   53554     1499312 :          pack_tmp = ISHFT(pack_tmp, -51)
   53555     1499312 :          idata = idata + 1
   53556     1499312 :          data_tmp = ISHFT(pack_tmp, 50)
   53557     1499312 :          ipack = ipack + 1
   53558     1499312 :          pack_tmp = packed_data(ipack)
   53559     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   53560     1499312 :          pack_tmp = ISHFT(pack_tmp, -50)
   53561     1499312 :          idata = idata + 1
   53562     1499312 :          data_tmp = ISHFT(pack_tmp, 49)
   53563     1499312 :          ipack = ipack + 1
   53564     1499312 :          pack_tmp = packed_data(ipack)
   53565     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   53566     1499312 :          pack_tmp = ISHFT(pack_tmp, -49)
   53567     1499312 :          idata = idata + 1
   53568     1499312 :          data_tmp = ISHFT(pack_tmp, 48)
   53569     1499312 :          ipack = ipack + 1
   53570     1499312 :          pack_tmp = packed_data(ipack)
   53571     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   53572     1499312 :          pack_tmp = ISHFT(pack_tmp, -48)
   53573     1499312 :          idata = idata + 1
   53574     1499312 :          data_tmp = ISHFT(pack_tmp, 47)
   53575     1499312 :          ipack = ipack + 1
   53576     1499312 :          pack_tmp = packed_data(ipack)
   53577     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   53578     1499312 :          pack_tmp = ISHFT(pack_tmp, -47)
   53579     1499312 :          idata = idata + 1
   53580     1499312 :          data_tmp = ISHFT(pack_tmp, 46)
   53581     1499312 :          ipack = ipack + 1
   53582     1499312 :          pack_tmp = packed_data(ipack)
   53583     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   53584     1499312 :          pack_tmp = ISHFT(pack_tmp, -46)
   53585     1499312 :          idata = idata + 1
   53586     1499312 :          data_tmp = ISHFT(pack_tmp, 45)
   53587     1499312 :          ipack = ipack + 1
   53588     1499312 :          pack_tmp = packed_data(ipack)
   53589     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   53590     1499312 :          pack_tmp = ISHFT(pack_tmp, -45)
   53591     1499312 :          idata = idata + 1
   53592     1499312 :          data_tmp = ISHFT(pack_tmp, 44)
   53593     1499312 :          ipack = ipack + 1
   53594     1499312 :          pack_tmp = packed_data(ipack)
   53595     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   53596     1499312 :          pack_tmp = ISHFT(pack_tmp, -44)
   53597     1499312 :          idata = idata + 1
   53598     1499312 :          data_tmp = ISHFT(pack_tmp, 43)
   53599     1499312 :          ipack = ipack + 1
   53600     1499312 :          pack_tmp = packed_data(ipack)
   53601     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   53602     1499312 :          pack_tmp = ISHFT(pack_tmp, -43)
   53603     1499312 :          idata = idata + 1
   53604     1499312 :          data_tmp = ISHFT(pack_tmp, 42)
   53605     1499312 :          ipack = ipack + 1
   53606     1499312 :          pack_tmp = packed_data(ipack)
   53607     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   53608     1499312 :          pack_tmp = ISHFT(pack_tmp, -42)
   53609     1499312 :          idata = idata + 1
   53610     1499312 :          data_tmp = ISHFT(pack_tmp, 41)
   53611     1499312 :          ipack = ipack + 1
   53612     1499312 :          pack_tmp = packed_data(ipack)
   53613     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   53614     1499312 :          pack_tmp = ISHFT(pack_tmp, -41)
   53615     1499312 :          idata = idata + 1
   53616     1499312 :          data_tmp = ISHFT(pack_tmp, 40)
   53617     1499312 :          ipack = ipack + 1
   53618     1499312 :          pack_tmp = packed_data(ipack)
   53619     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   53620     1499312 :          pack_tmp = ISHFT(pack_tmp, -40)
   53621     1499312 :          idata = idata + 1
   53622     1499312 :          data_tmp = ISHFT(pack_tmp, 39)
   53623     1499312 :          ipack = ipack + 1
   53624     1499312 :          pack_tmp = packed_data(ipack)
   53625     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   53626     1499312 :          pack_tmp = ISHFT(pack_tmp, -39)
   53627     1499312 :          idata = idata + 1
   53628     1499312 :          data_tmp = ISHFT(pack_tmp, 38)
   53629     1499312 :          ipack = ipack + 1
   53630     1499312 :          pack_tmp = packed_data(ipack)
   53631     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   53632     1499312 :          pack_tmp = ISHFT(pack_tmp, -38)
   53633     1499312 :          idata = idata + 1
   53634     1499312 :          data_tmp = ISHFT(pack_tmp, 37)
   53635     1499312 :          ipack = ipack + 1
   53636     1499312 :          pack_tmp = packed_data(ipack)
   53637     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   53638     1499312 :          pack_tmp = ISHFT(pack_tmp, -37)
   53639     1499312 :          idata = idata + 1
   53640     1499312 :          data_tmp = ISHFT(pack_tmp, 36)
   53641     1499312 :          ipack = ipack + 1
   53642     1499312 :          pack_tmp = packed_data(ipack)
   53643     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   53644     1499312 :          pack_tmp = ISHFT(pack_tmp, -36)
   53645     1499312 :          idata = idata + 1
   53646     1499312 :          data_tmp = ISHFT(pack_tmp, 35)
   53647     1499312 :          ipack = ipack + 1
   53648     1499312 :          pack_tmp = packed_data(ipack)
   53649     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   53650     1499312 :          pack_tmp = ISHFT(pack_tmp, -35)
   53651     1499312 :          idata = idata + 1
   53652     1499312 :          data_tmp = ISHFT(pack_tmp, 34)
   53653     1499312 :          ipack = ipack + 1
   53654     1499312 :          pack_tmp = packed_data(ipack)
   53655     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   53656     1499312 :          pack_tmp = ISHFT(pack_tmp, -34)
   53657     1499312 :          idata = idata + 1
   53658     1499312 :          data_tmp = ISHFT(pack_tmp, 33)
   53659     1499312 :          ipack = ipack + 1
   53660     1499312 :          pack_tmp = packed_data(ipack)
   53661     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   53662     1499312 :          pack_tmp = ISHFT(pack_tmp, -33)
   53663     1499312 :          idata = idata + 1
   53664     1499312 :          data_tmp = ISHFT(pack_tmp, 32)
   53665     1499312 :          ipack = ipack + 1
   53666     1499312 :          pack_tmp = packed_data(ipack)
   53667     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   53668     1499312 :          pack_tmp = ISHFT(pack_tmp, -32)
   53669     1499312 :          idata = idata + 1
   53670     1499312 :          data_tmp = ISHFT(pack_tmp, 31)
   53671     1499312 :          ipack = ipack + 1
   53672     1499312 :          pack_tmp = packed_data(ipack)
   53673     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   53674     1499312 :          pack_tmp = ISHFT(pack_tmp, -31)
   53675     1499312 :          idata = idata + 1
   53676     1499312 :          data_tmp = ISHFT(pack_tmp, 30)
   53677     1499312 :          ipack = ipack + 1
   53678     1499312 :          pack_tmp = packed_data(ipack)
   53679     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   53680     1499312 :          pack_tmp = ISHFT(pack_tmp, -30)
   53681     1499312 :          idata = idata + 1
   53682     1499312 :          data_tmp = ISHFT(pack_tmp, 29)
   53683     1499312 :          ipack = ipack + 1
   53684     1499312 :          pack_tmp = packed_data(ipack)
   53685     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   53686     1499312 :          pack_tmp = ISHFT(pack_tmp, -29)
   53687     1499312 :          idata = idata + 1
   53688     1499312 :          data_tmp = ISHFT(pack_tmp, 28)
   53689     1499312 :          ipack = ipack + 1
   53690     1499312 :          pack_tmp = packed_data(ipack)
   53691     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   53692     1499312 :          pack_tmp = ISHFT(pack_tmp, -28)
   53693     1499312 :          idata = idata + 1
   53694     1499312 :          data_tmp = ISHFT(pack_tmp, 27)
   53695     1499312 :          ipack = ipack + 1
   53696     1499312 :          pack_tmp = packed_data(ipack)
   53697     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   53698     1499312 :          pack_tmp = ISHFT(pack_tmp, -27)
   53699     1499312 :          idata = idata + 1
   53700     1499312 :          data_tmp = ISHFT(pack_tmp, 26)
   53701     1499312 :          ipack = ipack + 1
   53702     1499312 :          pack_tmp = packed_data(ipack)
   53703     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   53704     1499312 :          pack_tmp = ISHFT(pack_tmp, -26)
   53705     1499312 :          idata = idata + 1
   53706     1499312 :          data_tmp = ISHFT(pack_tmp, 25)
   53707     1499312 :          ipack = ipack + 1
   53708     1499312 :          pack_tmp = packed_data(ipack)
   53709     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   53710     1499312 :          pack_tmp = ISHFT(pack_tmp, -25)
   53711     1499312 :          idata = idata + 1
   53712     1499312 :          data_tmp = ISHFT(pack_tmp, 24)
   53713     1499312 :          ipack = ipack + 1
   53714     1499312 :          pack_tmp = packed_data(ipack)
   53715     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   53716     1499312 :          pack_tmp = ISHFT(pack_tmp, -24)
   53717     1499312 :          idata = idata + 1
   53718     1499312 :          data_tmp = ISHFT(pack_tmp, 23)
   53719     1499312 :          ipack = ipack + 1
   53720     1499312 :          pack_tmp = packed_data(ipack)
   53721     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   53722     1499312 :          pack_tmp = ISHFT(pack_tmp, -23)
   53723     1499312 :          idata = idata + 1
   53724     1499312 :          data_tmp = ISHFT(pack_tmp, 22)
   53725     1499312 :          ipack = ipack + 1
   53726     1499312 :          pack_tmp = packed_data(ipack)
   53727     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   53728     1499312 :          pack_tmp = ISHFT(pack_tmp, -22)
   53729     1499312 :          idata = idata + 1
   53730     1499312 :          data_tmp = ISHFT(pack_tmp, 21)
   53731     1499312 :          ipack = ipack + 1
   53732     1499312 :          pack_tmp = packed_data(ipack)
   53733     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   53734     1499312 :          pack_tmp = ISHFT(pack_tmp, -21)
   53735     1499312 :          idata = idata + 1
   53736     1499312 :          data_tmp = ISHFT(pack_tmp, 20)
   53737     1499312 :          ipack = ipack + 1
   53738     1499312 :          pack_tmp = packed_data(ipack)
   53739     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   53740     1499312 :          pack_tmp = ISHFT(pack_tmp, -20)
   53741     1499312 :          idata = idata + 1
   53742     1499312 :          data_tmp = ISHFT(pack_tmp, 19)
   53743     1499312 :          ipack = ipack + 1
   53744     1499312 :          pack_tmp = packed_data(ipack)
   53745     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   53746     1499312 :          pack_tmp = ISHFT(pack_tmp, -19)
   53747     1499312 :          idata = idata + 1
   53748     1499312 :          data_tmp = ISHFT(pack_tmp, 18)
   53749     1499312 :          ipack = ipack + 1
   53750     1499312 :          pack_tmp = packed_data(ipack)
   53751     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   53752     1499312 :          pack_tmp = ISHFT(pack_tmp, -18)
   53753     1499312 :          idata = idata + 1
   53754     1499312 :          data_tmp = ISHFT(pack_tmp, 17)
   53755     1499312 :          ipack = ipack + 1
   53756     1499312 :          pack_tmp = packed_data(ipack)
   53757     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   53758     1499312 :          pack_tmp = ISHFT(pack_tmp, -17)
   53759     1499312 :          idata = idata + 1
   53760     1499312 :          data_tmp = ISHFT(pack_tmp, 16)
   53761     1499312 :          ipack = ipack + 1
   53762     1499312 :          pack_tmp = packed_data(ipack)
   53763     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   53764     1499312 :          pack_tmp = ISHFT(pack_tmp, -16)
   53765     1499312 :          idata = idata + 1
   53766     1499312 :          data_tmp = ISHFT(pack_tmp, 15)
   53767     1499312 :          ipack = ipack + 1
   53768     1499312 :          pack_tmp = packed_data(ipack)
   53769     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   53770     1499312 :          pack_tmp = ISHFT(pack_tmp, -15)
   53771     1499312 :          idata = idata + 1
   53772     1499312 :          data_tmp = ISHFT(pack_tmp, 14)
   53773     1499312 :          ipack = ipack + 1
   53774     1499312 :          pack_tmp = packed_data(ipack)
   53775     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   53776     1499312 :          pack_tmp = ISHFT(pack_tmp, -14)
   53777     1499312 :          idata = idata + 1
   53778     1499312 :          data_tmp = ISHFT(pack_tmp, 13)
   53779     1499312 :          ipack = ipack + 1
   53780     1499312 :          pack_tmp = packed_data(ipack)
   53781     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   53782     1499312 :          pack_tmp = ISHFT(pack_tmp, -13)
   53783     1499312 :          idata = idata + 1
   53784     1499312 :          data_tmp = ISHFT(pack_tmp, 12)
   53785     1499312 :          ipack = ipack + 1
   53786     1499312 :          pack_tmp = packed_data(ipack)
   53787     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   53788     1499312 :          pack_tmp = ISHFT(pack_tmp, -12)
   53789     1499312 :          idata = idata + 1
   53790     1499312 :          data_tmp = ISHFT(pack_tmp, 11)
   53791     1499312 :          ipack = ipack + 1
   53792     1499312 :          pack_tmp = packed_data(ipack)
   53793     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   53794     1499312 :          pack_tmp = ISHFT(pack_tmp, -11)
   53795     1499312 :          idata = idata + 1
   53796     1499312 :          data_tmp = ISHFT(pack_tmp, 10)
   53797     1499312 :          ipack = ipack + 1
   53798     1499312 :          pack_tmp = packed_data(ipack)
   53799     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   53800     1499312 :          pack_tmp = ISHFT(pack_tmp, -10)
   53801     1499312 :          idata = idata + 1
   53802     1499312 :          data_tmp = ISHFT(pack_tmp, 9)
   53803     1499312 :          ipack = ipack + 1
   53804     1499312 :          pack_tmp = packed_data(ipack)
   53805     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   53806     1499312 :          pack_tmp = ISHFT(pack_tmp, -9)
   53807     1499312 :          idata = idata + 1
   53808     1499312 :          data_tmp = ISHFT(pack_tmp, 8)
   53809     1499312 :          ipack = ipack + 1
   53810     1499312 :          pack_tmp = packed_data(ipack)
   53811     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   53812     1499312 :          pack_tmp = ISHFT(pack_tmp, -8)
   53813     1499312 :          idata = idata + 1
   53814     1499312 :          data_tmp = ISHFT(pack_tmp, 7)
   53815     1499312 :          ipack = ipack + 1
   53816     1499312 :          pack_tmp = packed_data(ipack)
   53817     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   53818     1499312 :          pack_tmp = ISHFT(pack_tmp, -7)
   53819     1499312 :          idata = idata + 1
   53820     1499312 :          data_tmp = ISHFT(pack_tmp, 6)
   53821     1499312 :          ipack = ipack + 1
   53822     1499312 :          pack_tmp = packed_data(ipack)
   53823     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   53824     1499312 :          pack_tmp = ISHFT(pack_tmp, -6)
   53825     1499312 :          idata = idata + 1
   53826     1499312 :          data_tmp = ISHFT(pack_tmp, 5)
   53827     1499312 :          ipack = ipack + 1
   53828     1499312 :          pack_tmp = packed_data(ipack)
   53829     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   53830     1499312 :          pack_tmp = ISHFT(pack_tmp, -5)
   53831     1499312 :          idata = idata + 1
   53832     1499312 :          data_tmp = ISHFT(pack_tmp, 4)
   53833     1499312 :          ipack = ipack + 1
   53834     1499312 :          pack_tmp = packed_data(ipack)
   53835     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   53836     1499312 :          pack_tmp = ISHFT(pack_tmp, -4)
   53837     1499312 :          idata = idata + 1
   53838     1499312 :          data_tmp = ISHFT(pack_tmp, 3)
   53839     1499312 :          ipack = ipack + 1
   53840     1499312 :          pack_tmp = packed_data(ipack)
   53841     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   53842     1499312 :          pack_tmp = ISHFT(pack_tmp, -3)
   53843     1499312 :          idata = idata + 1
   53844     1499312 :          data_tmp = ISHFT(pack_tmp, 2)
   53845     1499312 :          ipack = ipack + 1
   53846     1499312 :          pack_tmp = packed_data(ipack)
   53847     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   53848     1499312 :          pack_tmp = ISHFT(pack_tmp, -2)
   53849     1499312 :          idata = idata + 1
   53850     1499312 :          data_tmp = ISHFT(pack_tmp, 1)
   53851     1499312 :          ipack = ipack + 1
   53852     1499312 :          pack_tmp = packed_data(ipack)
   53853     1499312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   53854     1499312 :          pack_tmp = ISHFT(pack_tmp, -1)
   53855     1499312 :          idata = idata + 1
   53856     1499312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   53857     1499312 :          full_data(idata) = data_tmp
   53858     1499312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   53859             :       END DO
   53860       93707 :       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       93707 :    END SUBROUTINE bits2ints_63
   53864             : 
   53865             : ! **************************************************************************************************
   53866             : !> \brief ...
   53867             : !> \param Nbits ...
   53868             : !> \param Ndata ...
   53869             : !> \param packed_data ...
   53870             : !> \param full_data ...
   53871             : ! **************************************************************************************************
   53872     1901178 :    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     1924182 :       SELECT CASE (Nbits)
   53878             :       CASE (1)
   53879       23004 :          CALL ints2bits_1(Ndata, packed_data, full_data)
   53880             :       CASE (2)
   53881       23004 :          CALL ints2bits_2(Ndata, packed_data, full_data)
   53882             :       CASE (3)
   53883       23250 :          CALL ints2bits_3(Ndata, packed_data, full_data)
   53884             :       CASE (4)
   53885       23356 :          CALL ints2bits_4(Ndata, packed_data, full_data)
   53886             :       CASE (5)
   53887       23239 :          CALL ints2bits_5(Ndata, packed_data, full_data)
   53888             :       CASE (6)
   53889       50173 :          CALL ints2bits_6(Ndata, packed_data, full_data)
   53890             :       CASE (7)
   53891       23367 :          CALL ints2bits_7(Ndata, packed_data, full_data)
   53892             :       CASE (8)
   53893       23331 :          CALL ints2bits_8(Ndata, packed_data, full_data)
   53894             :       CASE (9)
   53895       23292 :          CALL ints2bits_9(Ndata, packed_data, full_data)
   53896             :       CASE (10)
   53897       49798 :          CALL ints2bits_10(Ndata, packed_data, full_data)
   53898             :       CASE (11)
   53899       25763 :          CALL ints2bits_11(Ndata, packed_data, full_data)
   53900             :       CASE (12)
   53901       26007 :          CALL ints2bits_12(Ndata, packed_data, full_data)
   53902             :       CASE (13)
   53903       27408 :          CALL ints2bits_13(Ndata, packed_data, full_data)
   53904             :       CASE (14)
   53905       26450 :          CALL ints2bits_14(Ndata, packed_data, full_data)
   53906             :       CASE (15)
   53907       26773 :          CALL ints2bits_15(Ndata, packed_data, full_data)
   53908             :       CASE (16)
   53909       27634 :          CALL ints2bits_16(Ndata, packed_data, full_data)
   53910             :       CASE (17)
   53911       31124 :          CALL ints2bits_17(Ndata, packed_data, full_data)
   53912             :       CASE (18)
   53913       32020 :          CALL ints2bits_18(Ndata, packed_data, full_data)
   53914             :       CASE (19)
   53915       29798 :          CALL ints2bits_19(Ndata, packed_data, full_data)
   53916             :       CASE (20)
   53917       40705 :          CALL ints2bits_20(Ndata, packed_data, full_data)
   53918             :       CASE (21)
   53919       28740 :          CALL ints2bits_21(Ndata, packed_data, full_data)
   53920             :       CASE (22)
   53921       28595 :          CALL ints2bits_22(Ndata, packed_data, full_data)
   53922             :       CASE (23)
   53923       54364 :          CALL ints2bits_23(Ndata, packed_data, full_data)
   53924             :       CASE (24)
   53925       33433 :          CALL ints2bits_24(Ndata, packed_data, full_data)
   53926             :       CASE (25)
   53927       33399 :          CALL ints2bits_25(Ndata, packed_data, full_data)
   53928             :       CASE (26)
   53929       28914 :          CALL ints2bits_26(Ndata, packed_data, full_data)
   53930             :       CASE (27)
   53931       27615 :          CALL ints2bits_27(Ndata, packed_data, full_data)
   53932             :       CASE (28)
   53933       30631 :          CALL ints2bits_28(Ndata, packed_data, full_data)
   53934             :       CASE (29)
   53935       33020 :          CALL ints2bits_29(Ndata, packed_data, full_data)
   53936             :       CASE (30)
   53937       37170 :          CALL ints2bits_30(Ndata, packed_data, full_data)
   53938             :       CASE (31)
   53939       38746 :          CALL ints2bits_31(Ndata, packed_data, full_data)
   53940             :       CASE (32)
   53941       45221 :          CALL ints2bits_32(Ndata, packed_data, full_data)
   53942             :       CASE (33)
   53943       46023 :          CALL ints2bits_33(Ndata, packed_data, full_data)
   53944             :       CASE (34)
   53945       41749 :          CALL ints2bits_34(Ndata, packed_data, full_data)
   53946             :       CASE (35)
   53947       44185 :          CALL ints2bits_35(Ndata, packed_data, full_data)
   53948             :       CASE (36)
   53949       43769 :          CALL ints2bits_36(Ndata, packed_data, full_data)
   53950             :       CASE (37)
   53951       32563 :          CALL ints2bits_37(Ndata, packed_data, full_data)
   53952             :       CASE (38)
   53953       31212 :          CALL ints2bits_38(Ndata, packed_data, full_data)
   53954             :       CASE (39)
   53955       27825 :          CALL ints2bits_39(Ndata, packed_data, full_data)
   53956             :       CASE (40)
   53957       26693 :          CALL ints2bits_40(Ndata, packed_data, full_data)
   53958             :       CASE (41)
   53959       25907 :          CALL ints2bits_41(Ndata, packed_data, full_data)
   53960             :       CASE (42)
   53961       24697 :          CALL ints2bits_42(Ndata, packed_data, full_data)
   53962             :       CASE (43)
   53963       25391 :          CALL ints2bits_43(Ndata, packed_data, full_data)
   53964             :       CASE (44)
   53965       26915 :          CALL ints2bits_44(Ndata, packed_data, full_data)
   53966             :       CASE (45)
   53967       28529 :          CALL ints2bits_45(Ndata, packed_data, full_data)
   53968             :       CASE (46)
   53969       28079 :          CALL ints2bits_46(Ndata, packed_data, full_data)
   53970             :       CASE (47)
   53971       25450 :          CALL ints2bits_47(Ndata, packed_data, full_data)
   53972             :       CASE (48)
   53973       26049 :          CALL ints2bits_48(Ndata, packed_data, full_data)
   53974             :       CASE (49)
   53975       24884 :          CALL ints2bits_49(Ndata, packed_data, full_data)
   53976             :       CASE (50)
   53977       24462 :          CALL ints2bits_50(Ndata, packed_data, full_data)
   53978             :       CASE (51)
   53979       23488 :          CALL ints2bits_51(Ndata, packed_data, full_data)
   53980             :       CASE (52)
   53981       23514 :          CALL ints2bits_52(Ndata, packed_data, full_data)
   53982             :       CASE (53)
   53983       23504 :          CALL ints2bits_53(Ndata, packed_data, full_data)
   53984             :       CASE (54)
   53985       23382 :          CALL ints2bits_54(Ndata, packed_data, full_data)
   53986             :       CASE (55)
   53987       23300 :          CALL ints2bits_55(Ndata, packed_data, full_data)
   53988             :       CASE (56)
   53989       23142 :          CALL ints2bits_56(Ndata, packed_data, full_data)
   53990             :       CASE (57)
   53991       23066 :          CALL ints2bits_57(Ndata, packed_data, full_data)
   53992             :       CASE (58)
   53993       23028 :          CALL ints2bits_58(Ndata, packed_data, full_data)
   53994             :       CASE (59)
   53995       23004 :          CALL ints2bits_59(Ndata, packed_data, full_data)
   53996             :       CASE (60)
   53997       23004 :          CALL ints2bits_60(Ndata, packed_data, full_data)
   53998             :       CASE (61)
   53999       23004 :          CALL ints2bits_61(Ndata, packed_data, full_data)
   54000             :       CASE (62)
   54001       23004 :          CALL ints2bits_62(Ndata, packed_data, full_data)
   54002             :       CASE (63)
   54003     1901178 :          CALL ints2bits_63(Ndata, packed_data, full_data)
   54004             :       END SELECT
   54005     1901178 :    END SUBROUTINE ints2bits_specific
   54006             : 
   54007             : ! **************************************************************************************************
   54008             : !> \brief ...
   54009             : !> \param Nbits ...
   54010             : !> \param Ndata ...
   54011             : !> \param packed_data ...
   54012             : !> \param full_data ...
   54013             : ! **************************************************************************************************
   54014     8887668 :    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     8981375 :       SELECT CASE (Nbits)
   54020             :       CASE (1)
   54021       93707 :          CALL bits2ints_1(Ndata, packed_data, full_data)
   54022             :       CASE (2)
   54023       93707 :          CALL bits2ints_2(Ndata, packed_data, full_data)
   54024             :       CASE (3)
   54025       95093 :          CALL bits2ints_3(Ndata, packed_data, full_data)
   54026             :       CASE (4)
   54027       95929 :          CALL bits2ints_4(Ndata, packed_data, full_data)
   54028             :       CASE (5)
   54029       94932 :          CALL bits2ints_5(Ndata, packed_data, full_data)
   54030             :       CASE (6)
   54031      239960 :          CALL bits2ints_6(Ndata, packed_data, full_data)
   54032             :       CASE (7)
   54033       97295 :          CALL bits2ints_7(Ndata, packed_data, full_data)
   54034             :       CASE (8)
   54035       97203 :          CALL bits2ints_8(Ndata, packed_data, full_data)
   54036             :       CASE (9)
   54037       96466 :          CALL bits2ints_9(Ndata, packed_data, full_data)
   54038             :       CASE (10)
   54039      249720 :          CALL bits2ints_10(Ndata, packed_data, full_data)
   54040             :       CASE (11)
   54041      109160 :          CALL bits2ints_11(Ndata, packed_data, full_data)
   54042             :       CASE (12)
   54043      110336 :          CALL bits2ints_12(Ndata, packed_data, full_data)
   54044             :       CASE (13)
   54045      122555 :          CALL bits2ints_13(Ndata, packed_data, full_data)
   54046             :       CASE (14)
   54047      113974 :          CALL bits2ints_14(Ndata, packed_data, full_data)
   54048             :       CASE (15)
   54049      115864 :          CALL bits2ints_15(Ndata, packed_data, full_data)
   54050             :       CASE (16)
   54051      128500 :          CALL bits2ints_16(Ndata, packed_data, full_data)
   54052             :       CASE (17)
   54053      153806 :          CALL bits2ints_17(Ndata, packed_data, full_data)
   54054             :       CASE (18)
   54055      161965 :          CALL bits2ints_18(Ndata, packed_data, full_data)
   54056             :       CASE (19)
   54057      147083 :          CALL bits2ints_19(Ndata, packed_data, full_data)
   54058             :       CASE (20)
   54059      278809 :          CALL bits2ints_20(Ndata, packed_data, full_data)
   54060             :       CASE (21)
   54061      145490 :          CALL bits2ints_21(Ndata, packed_data, full_data)
   54062             :       CASE (22)
   54063      146675 :          CALL bits2ints_22(Ndata, packed_data, full_data)
   54064             :       CASE (23)
   54065      188073 :          CALL bits2ints_23(Ndata, packed_data, full_data)
   54066             :       CASE (24)
   54067      156087 :          CALL bits2ints_24(Ndata, packed_data, full_data)
   54068             :       CASE (25)
   54069      153555 :          CALL bits2ints_25(Ndata, packed_data, full_data)
   54070             :       CASE (26)
   54071      130434 :          CALL bits2ints_26(Ndata, packed_data, full_data)
   54072             :       CASE (27)
   54073      129571 :          CALL bits2ints_27(Ndata, packed_data, full_data)
   54074             :       CASE (28)
   54075      149185 :          CALL bits2ints_28(Ndata, packed_data, full_data)
   54076             :       CASE (29)
   54077      172673 :          CALL bits2ints_29(Ndata, packed_data, full_data)
   54078             :       CASE (30)
   54079      214672 :          CALL bits2ints_30(Ndata, packed_data, full_data)
   54080             :       CASE (31)
   54081      266298 :          CALL bits2ints_31(Ndata, packed_data, full_data)
   54082             :       CASE (32)
   54083      341168 :          CALL bits2ints_32(Ndata, packed_data, full_data)
   54084             :       CASE (33)
   54085      249145 :          CALL bits2ints_33(Ndata, packed_data, full_data)
   54086             :       CASE (34)
   54087      210330 :          CALL bits2ints_34(Ndata, packed_data, full_data)
   54088             :       CASE (35)
   54089      217516 :          CALL bits2ints_35(Ndata, packed_data, full_data)
   54090             :       CASE (36)
   54091      166565 :          CALL bits2ints_36(Ndata, packed_data, full_data)
   54092             :       CASE (37)
   54093      139840 :          CALL bits2ints_37(Ndata, packed_data, full_data)
   54094             :       CASE (38)
   54095      153622 :          CALL bits2ints_38(Ndata, packed_data, full_data)
   54096             :       CASE (39)
   54097      123413 :          CALL bits2ints_39(Ndata, packed_data, full_data)
   54098             :       CASE (40)
   54099      125185 :          CALL bits2ints_40(Ndata, packed_data, full_data)
   54100             :       CASE (41)
   54101      125567 :          CALL bits2ints_41(Ndata, packed_data, full_data)
   54102             :       CASE (42)
   54103      114777 :          CALL bits2ints_42(Ndata, packed_data, full_data)
   54104             :       CASE (43)
   54105      113784 :          CALL bits2ints_43(Ndata, packed_data, full_data)
   54106             :       CASE (44)
   54107      121727 :          CALL bits2ints_44(Ndata, packed_data, full_data)
   54108             :       CASE (45)
   54109      130781 :          CALL bits2ints_45(Ndata, packed_data, full_data)
   54110             :       CASE (46)
   54111      118387 :          CALL bits2ints_46(Ndata, packed_data, full_data)
   54112             :       CASE (47)
   54113      112991 :          CALL bits2ints_47(Ndata, packed_data, full_data)
   54114             :       CASE (48)
   54115      110672 :          CALL bits2ints_48(Ndata, packed_data, full_data)
   54116             :       CASE (49)
   54117      100045 :          CALL bits2ints_49(Ndata, packed_data, full_data)
   54118             :       CASE (50)
   54119       98157 :          CALL bits2ints_50(Ndata, packed_data, full_data)
   54120             :       CASE (51)
   54121       96787 :          CALL bits2ints_51(Ndata, packed_data, full_data)
   54122             :       CASE (52)
   54123       98719 :          CALL bits2ints_52(Ndata, packed_data, full_data)
   54124             :       CASE (53)
   54125      106365 :          CALL bits2ints_53(Ndata, packed_data, full_data)
   54126             :       CASE (54)
   54127      109053 :          CALL bits2ints_54(Ndata, packed_data, full_data)
   54128             :       CASE (55)
   54129      105001 :          CALL bits2ints_55(Ndata, packed_data, full_data)
   54130             :       CASE (56)
   54131      100925 :          CALL bits2ints_56(Ndata, packed_data, full_data)
   54132             :       CASE (57)
   54133       97249 :          CALL bits2ints_57(Ndata, packed_data, full_data)
   54134             :       CASE (58)
   54135       95171 :          CALL bits2ints_58(Ndata, packed_data, full_data)
   54136             :       CASE (59)
   54137       93707 :          CALL bits2ints_59(Ndata, packed_data, full_data)
   54138             :       CASE (60)
   54139       93707 :          CALL bits2ints_60(Ndata, packed_data, full_data)
   54140             :       CASE (61)
   54141       93707 :          CALL bits2ints_61(Ndata, packed_data, full_data)
   54142             :       CASE (62)
   54143       93707 :          CALL bits2ints_62(Ndata, packed_data, full_data)
   54144             :       CASE (63)
   54145     8887668 :          CALL bits2ints_63(Ndata, packed_data, full_data)
   54146             :       END SELECT
   54147     8887668 :    END SUBROUTINE bits2ints_specific
   54148             : 
   54149             : END MODULE hfx_compression_core_methods

Generated by: LCOV version 1.15