LCOV - code coverage report
Current view: top level - src/hfxbase - hfx_compression_core_methods.F (source / functions) Hit Total Coverage
Test: CP2K Regtests (git:c740a4b) Lines: 51379 51404 99.9 %
Date: 2025-05-29 08:02:39 Functions: 130 131 99.2 %

          Line data    Source code
       1             : !--------------------------------------------------------------------------------------------------!
       2             : !   CP2K: A general program to perform molecular dynamics simulations                              !
       3             : !   Copyright 2000-2025 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     1469966 :    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     1469966 :       idata = 0
      96             : 
      97             :       ! number of data bits in the pack_tmp that should still be read
      98     1469966 :       ibits_remaining = 64
      99     1469966 :       ipack = 1
     100     1469966 :       pack_tmp = packed_data(ipack)
     101             : 
     102             :       ! give the compiler a hint that Nbits is strictly positive
     103     1469966 :       IF (Nbits < 1) CPABORT("This is a bug")
     104             :       ! we also limit the making number of bits
     105     1469966 :       IF (Nbits >= 64) CPABORT("This is a bug")
     106             : 
     107             :       DO
     108             :          ! we've unpacked all data
     109    48508878 :          IF (idata == Ndata) EXIT
     110    47038912 :          idata = idata + 1
     111    48508878 :          IF (ibits_remaining >= Nbits) THEN
     112    24661171 :             data_tmp = IAND(pack_tmp, mask_right(Nbits)) ! get the last Nbits
     113    24661171 :             full_data(idata) = data_tmp
     114    24661171 :             pack_tmp = ISHFT(pack_tmp, -Nbits) ! and shift right to get the bits in place for the next
     115    24661171 :             ibits_remaining = ibits_remaining - Nbits
     116             :          ELSE
     117    22377741 :             i_odd_bits = Nbits - ibits_remaining
     118    22377741 :             data_tmp = ISHFT(pack_tmp, i_odd_bits) ! use all remaining bits, shifted left to make place for the missing bits
     119    22377741 :             ipack = ipack + 1
     120    22377741 :             pack_tmp = packed_data(ipack) ! get new storage
     121    22377741 :             ibits_remaining = 64
     122    22377741 :             full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(i_odd_bits))) ! and use the missing bits to assemble the data
     123    22377741 :             pack_tmp = ISHFT(pack_tmp, -i_odd_bits) ! shift right to get the bits in place for the next
     124    22377741 :             ibits_remaining = 64 - i_odd_bits
     125             :          END IF
     126             :       END DO
     127             : 
     128     1469966 :    END SUBROUTINE bits2ints_generic
     129             : 
     130             : ! **************************************************************************************************
     131             : !> \brief ...
     132             : !> \param Nbits ...
     133             : !> \param Ndata ...
     134             : !> \param packed_data ...
     135             : !> \param full_data ...
     136             : ! **************************************************************************************************
     137      232848 :    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      232848 :       idata = 0
     146      232848 :       ipack = 0
     147      232848 :       pack_tmp = 0
     148             : 
     149             :       ! number of data bits in the pack_tmp that should still be written
     150      232848 :       ibits_remaining = 64
     151             : 
     152             :       ! give the compiler a hint that Nbits is strictly positive
     153      232848 :       IF (Nbits < 1) CPABORT("This is a bug")
     154             :       ! we also limit the making number of bits
     155      232848 :       IF (Nbits >= 64) CPABORT("This is a bug")
     156             : 
     157             :       DO
     158             :          ! we've packed all data
     159     7683984 :          IF (idata == Ndata) EXIT
     160     7451136 :          idata = idata + 1
     161     7683984 :          IF (ibits_remaining >= Nbits) THEN
     162     3906167 :             data_tmp = full_data(idata)
     163     3906167 :             data_tmp = ISHFT(data_tmp, 64 - Nbits) ! put bits on the left
     164     3906167 :             pack_tmp = IOR(pack_tmp, data_tmp) ! add to the packed data
     165     3906167 :             ibits_remaining = ibits_remaining - Nbits
     166     3906167 :             pack_tmp = ISHFT(pack_tmp, -MIN(Nbits, ibits_remaining)) ! and shift to the right to make place for the next
     167             :          ELSE
     168     3544969 :             i_odd_bits = ibits_remaining
     169     3544969 :             data_tmp = full_data(idata)
     170     3544969 :             data_tmp = ISHFT(data_tmp, 64 - Nbits) ! put bits on the left
     171     3544969 :             data_tmp = IAND(data_tmp, mask_left(i_odd_bits)) ! restrict to those bits for which we still have space
     172     3544969 :             pack_tmp = IOR(pack_tmp, data_tmp) ! add them to the packed bits
     173     3544969 :             ipack = ipack + 1
     174     3544969 :             packed_data(ipack) = pack_tmp ! store the full packed data away and start with a new one
     175     3544969 :             data_tmp = full_data(idata)
     176     3544969 :             pack_tmp = ISHFT(data_tmp, 64 - Nbits + i_odd_bits) ! put the missing bits on the left if pack_tmp
     177     3544969 :             ibits_remaining = 64 - Nbits + i_odd_bits
     178     3544969 :             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      232848 :       pack_tmp = ISHFT(pack_tmp, -MAX(0, ibits_remaining - Nbits))
     184      232848 :       ipack = ipack + 1
     185      232848 :       packed_data(ipack) = pack_tmp
     186             : 
     187      232848 :    END SUBROUTINE ints2bits_generic
     188             : 
     189             : ! **************************************************************************************************
     190             : !> \brief ...
     191             : !> \param Ndata ...
     192             : !> \param packed_data ...
     193             : !> \param full_data ...
     194             : ! **************************************************************************************************
     195       23676 :    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       23676 :       idata = 0
     206       23676 :       ipack = 0
     207       23676 :       Ndata_rep = (Ndata/64)*64
     208       23676 :       DO kdata = 1, Ndata_rep, 64
     209      378816 :          pack_tmp = 0
     210      378816 :          idata = idata + 1
     211      378816 :          data_tmp = full_data(idata)
     212      378816 :          data_tmp = ISHFT(data_tmp, 63)
     213      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     214      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     215      378816 :          idata = idata + 1
     216      378816 :          data_tmp = full_data(idata)
     217      378816 :          data_tmp = ISHFT(data_tmp, 63)
     218      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     219      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     220      378816 :          idata = idata + 1
     221      378816 :          data_tmp = full_data(idata)
     222      378816 :          data_tmp = ISHFT(data_tmp, 63)
     223      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     224      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     225      378816 :          idata = idata + 1
     226      378816 :          data_tmp = full_data(idata)
     227      378816 :          data_tmp = ISHFT(data_tmp, 63)
     228      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     229      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     230      378816 :          idata = idata + 1
     231      378816 :          data_tmp = full_data(idata)
     232      378816 :          data_tmp = ISHFT(data_tmp, 63)
     233      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     234      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     235      378816 :          idata = idata + 1
     236      378816 :          data_tmp = full_data(idata)
     237      378816 :          data_tmp = ISHFT(data_tmp, 63)
     238      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     239      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     240      378816 :          idata = idata + 1
     241      378816 :          data_tmp = full_data(idata)
     242      378816 :          data_tmp = ISHFT(data_tmp, 63)
     243      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     244      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     245      378816 :          idata = idata + 1
     246      378816 :          data_tmp = full_data(idata)
     247      378816 :          data_tmp = ISHFT(data_tmp, 63)
     248      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     249      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     250      378816 :          idata = idata + 1
     251      378816 :          data_tmp = full_data(idata)
     252      378816 :          data_tmp = ISHFT(data_tmp, 63)
     253      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     254      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     255      378816 :          idata = idata + 1
     256      378816 :          data_tmp = full_data(idata)
     257      378816 :          data_tmp = ISHFT(data_tmp, 63)
     258      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     259      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     260      378816 :          idata = idata + 1
     261      378816 :          data_tmp = full_data(idata)
     262      378816 :          data_tmp = ISHFT(data_tmp, 63)
     263      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     264      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     265      378816 :          idata = idata + 1
     266      378816 :          data_tmp = full_data(idata)
     267      378816 :          data_tmp = ISHFT(data_tmp, 63)
     268      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     269      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     270      378816 :          idata = idata + 1
     271      378816 :          data_tmp = full_data(idata)
     272      378816 :          data_tmp = ISHFT(data_tmp, 63)
     273      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     274      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     275      378816 :          idata = idata + 1
     276      378816 :          data_tmp = full_data(idata)
     277      378816 :          data_tmp = ISHFT(data_tmp, 63)
     278      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     279      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     280      378816 :          idata = idata + 1
     281      378816 :          data_tmp = full_data(idata)
     282      378816 :          data_tmp = ISHFT(data_tmp, 63)
     283      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     284      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     285      378816 :          idata = idata + 1
     286      378816 :          data_tmp = full_data(idata)
     287      378816 :          data_tmp = ISHFT(data_tmp, 63)
     288      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     289      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     290      378816 :          idata = idata + 1
     291      378816 :          data_tmp = full_data(idata)
     292      378816 :          data_tmp = ISHFT(data_tmp, 63)
     293      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     294      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     295      378816 :          idata = idata + 1
     296      378816 :          data_tmp = full_data(idata)
     297      378816 :          data_tmp = ISHFT(data_tmp, 63)
     298      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     299      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     300      378816 :          idata = idata + 1
     301      378816 :          data_tmp = full_data(idata)
     302      378816 :          data_tmp = ISHFT(data_tmp, 63)
     303      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     304      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     305      378816 :          idata = idata + 1
     306      378816 :          data_tmp = full_data(idata)
     307      378816 :          data_tmp = ISHFT(data_tmp, 63)
     308      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     309      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     310      378816 :          idata = idata + 1
     311      378816 :          data_tmp = full_data(idata)
     312      378816 :          data_tmp = ISHFT(data_tmp, 63)
     313      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     314      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     315      378816 :          idata = idata + 1
     316      378816 :          data_tmp = full_data(idata)
     317      378816 :          data_tmp = ISHFT(data_tmp, 63)
     318      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     319      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     320      378816 :          idata = idata + 1
     321      378816 :          data_tmp = full_data(idata)
     322      378816 :          data_tmp = ISHFT(data_tmp, 63)
     323      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     324      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     325      378816 :          idata = idata + 1
     326      378816 :          data_tmp = full_data(idata)
     327      378816 :          data_tmp = ISHFT(data_tmp, 63)
     328      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     329      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     330      378816 :          idata = idata + 1
     331      378816 :          data_tmp = full_data(idata)
     332      378816 :          data_tmp = ISHFT(data_tmp, 63)
     333      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     334      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     335      378816 :          idata = idata + 1
     336      378816 :          data_tmp = full_data(idata)
     337      378816 :          data_tmp = ISHFT(data_tmp, 63)
     338      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     339      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     340      378816 :          idata = idata + 1
     341      378816 :          data_tmp = full_data(idata)
     342      378816 :          data_tmp = ISHFT(data_tmp, 63)
     343      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     344      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     345      378816 :          idata = idata + 1
     346      378816 :          data_tmp = full_data(idata)
     347      378816 :          data_tmp = ISHFT(data_tmp, 63)
     348      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     349      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     350      378816 :          idata = idata + 1
     351      378816 :          data_tmp = full_data(idata)
     352      378816 :          data_tmp = ISHFT(data_tmp, 63)
     353      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     354      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     355      378816 :          idata = idata + 1
     356      378816 :          data_tmp = full_data(idata)
     357      378816 :          data_tmp = ISHFT(data_tmp, 63)
     358      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     359      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     360      378816 :          idata = idata + 1
     361      378816 :          data_tmp = full_data(idata)
     362      378816 :          data_tmp = ISHFT(data_tmp, 63)
     363      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     364      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     365      378816 :          idata = idata + 1
     366      378816 :          data_tmp = full_data(idata)
     367      378816 :          data_tmp = ISHFT(data_tmp, 63)
     368      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     369      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     370      378816 :          idata = idata + 1
     371      378816 :          data_tmp = full_data(idata)
     372      378816 :          data_tmp = ISHFT(data_tmp, 63)
     373      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     374      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     375      378816 :          idata = idata + 1
     376      378816 :          data_tmp = full_data(idata)
     377      378816 :          data_tmp = ISHFT(data_tmp, 63)
     378      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     379      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     380      378816 :          idata = idata + 1
     381      378816 :          data_tmp = full_data(idata)
     382      378816 :          data_tmp = ISHFT(data_tmp, 63)
     383      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     384      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     385      378816 :          idata = idata + 1
     386      378816 :          data_tmp = full_data(idata)
     387      378816 :          data_tmp = ISHFT(data_tmp, 63)
     388      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     389      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     390      378816 :          idata = idata + 1
     391      378816 :          data_tmp = full_data(idata)
     392      378816 :          data_tmp = ISHFT(data_tmp, 63)
     393      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     394      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     395      378816 :          idata = idata + 1
     396      378816 :          data_tmp = full_data(idata)
     397      378816 :          data_tmp = ISHFT(data_tmp, 63)
     398      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     399      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     400      378816 :          idata = idata + 1
     401      378816 :          data_tmp = full_data(idata)
     402      378816 :          data_tmp = ISHFT(data_tmp, 63)
     403      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     404      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     405      378816 :          idata = idata + 1
     406      378816 :          data_tmp = full_data(idata)
     407      378816 :          data_tmp = ISHFT(data_tmp, 63)
     408      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     409      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     410      378816 :          idata = idata + 1
     411      378816 :          data_tmp = full_data(idata)
     412      378816 :          data_tmp = ISHFT(data_tmp, 63)
     413      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     414      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     415      378816 :          idata = idata + 1
     416      378816 :          data_tmp = full_data(idata)
     417      378816 :          data_tmp = ISHFT(data_tmp, 63)
     418      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     419      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     420      378816 :          idata = idata + 1
     421      378816 :          data_tmp = full_data(idata)
     422      378816 :          data_tmp = ISHFT(data_tmp, 63)
     423      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     424      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     425      378816 :          idata = idata + 1
     426      378816 :          data_tmp = full_data(idata)
     427      378816 :          data_tmp = ISHFT(data_tmp, 63)
     428      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     429      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     430      378816 :          idata = idata + 1
     431      378816 :          data_tmp = full_data(idata)
     432      378816 :          data_tmp = ISHFT(data_tmp, 63)
     433      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     434      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     435      378816 :          idata = idata + 1
     436      378816 :          data_tmp = full_data(idata)
     437      378816 :          data_tmp = ISHFT(data_tmp, 63)
     438      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     439      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     440      378816 :          idata = idata + 1
     441      378816 :          data_tmp = full_data(idata)
     442      378816 :          data_tmp = ISHFT(data_tmp, 63)
     443      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     444      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     445      378816 :          idata = idata + 1
     446      378816 :          data_tmp = full_data(idata)
     447      378816 :          data_tmp = ISHFT(data_tmp, 63)
     448      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     449      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     450      378816 :          idata = idata + 1
     451      378816 :          data_tmp = full_data(idata)
     452      378816 :          data_tmp = ISHFT(data_tmp, 63)
     453      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     454      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     455      378816 :          idata = idata + 1
     456      378816 :          data_tmp = full_data(idata)
     457      378816 :          data_tmp = ISHFT(data_tmp, 63)
     458      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     459      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     460      378816 :          idata = idata + 1
     461      378816 :          data_tmp = full_data(idata)
     462      378816 :          data_tmp = ISHFT(data_tmp, 63)
     463      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     464      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     465      378816 :          idata = idata + 1
     466      378816 :          data_tmp = full_data(idata)
     467      378816 :          data_tmp = ISHFT(data_tmp, 63)
     468      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     469      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     470      378816 :          idata = idata + 1
     471      378816 :          data_tmp = full_data(idata)
     472      378816 :          data_tmp = ISHFT(data_tmp, 63)
     473      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     474      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     475      378816 :          idata = idata + 1
     476      378816 :          data_tmp = full_data(idata)
     477      378816 :          data_tmp = ISHFT(data_tmp, 63)
     478      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     479      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     480      378816 :          idata = idata + 1
     481      378816 :          data_tmp = full_data(idata)
     482      378816 :          data_tmp = ISHFT(data_tmp, 63)
     483      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     484      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     485      378816 :          idata = idata + 1
     486      378816 :          data_tmp = full_data(idata)
     487      378816 :          data_tmp = ISHFT(data_tmp, 63)
     488      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     489      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     490      378816 :          idata = idata + 1
     491      378816 :          data_tmp = full_data(idata)
     492      378816 :          data_tmp = ISHFT(data_tmp, 63)
     493      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     494      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     495      378816 :          idata = idata + 1
     496      378816 :          data_tmp = full_data(idata)
     497      378816 :          data_tmp = ISHFT(data_tmp, 63)
     498      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     499      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     500      378816 :          idata = idata + 1
     501      378816 :          data_tmp = full_data(idata)
     502      378816 :          data_tmp = ISHFT(data_tmp, 63)
     503      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     504      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     505      378816 :          idata = idata + 1
     506      378816 :          data_tmp = full_data(idata)
     507      378816 :          data_tmp = ISHFT(data_tmp, 63)
     508      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     509      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     510      378816 :          idata = idata + 1
     511      378816 :          data_tmp = full_data(idata)
     512      378816 :          data_tmp = ISHFT(data_tmp, 63)
     513      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     514      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     515      378816 :          idata = idata + 1
     516      378816 :          data_tmp = full_data(idata)
     517      378816 :          data_tmp = ISHFT(data_tmp, 63)
     518      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     519      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     520      378816 :          idata = idata + 1
     521      378816 :          data_tmp = full_data(idata)
     522      378816 :          data_tmp = ISHFT(data_tmp, 63)
     523      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     524      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
     525      378816 :          idata = idata + 1
     526      378816 :          data_tmp = full_data(idata)
     527      378816 :          data_tmp = ISHFT(data_tmp, 63)
     528      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     529             :          pack_tmp = ISHFT(pack_tmp, 0)
     530      378816 :          pack_tmp = ISHFT(pack_tmp, 0)
     531      378816 :          ipack = ipack + 1
     532      378816 :          packed_data(ipack) = pack_tmp
     533             :       END DO
     534       23676 :       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       23676 :    END SUBROUTINE ints2bits_1
     538             : 
     539             : ! **************************************************************************************************
     540             : !> \brief ...
     541             : !> \param Ndata ...
     542             : !> \param packed_data ...
     543             : !> \param full_data ...
     544             : ! **************************************************************************************************
     545       95427 :    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       95427 :       ipack = 0
     556       95427 :       idata = 0
     557       95427 :       pack_tmp = 0
     558       95427 :       Ndata_rep = (Ndata/64)*64
     559       95427 :       DO kdata = 1, Ndata_rep, 64
     560     1526832 :          idata = idata + 1
     561     1526832 :          data_tmp = ISHFT(pack_tmp, 1)
     562     1526832 :          ipack = ipack + 1
     563     1526832 :          pack_tmp = packed_data(ipack)
     564     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
     565     1526832 :          pack_tmp = ISHFT(pack_tmp, -1)
     566     1526832 :          idata = idata + 1
     567     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     568     1526832 :          full_data(idata) = data_tmp
     569     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     570     1526832 :          idata = idata + 1
     571     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     572     1526832 :          full_data(idata) = data_tmp
     573     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     574     1526832 :          idata = idata + 1
     575     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     576     1526832 :          full_data(idata) = data_tmp
     577     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     578     1526832 :          idata = idata + 1
     579     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     580     1526832 :          full_data(idata) = data_tmp
     581     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     582     1526832 :          idata = idata + 1
     583     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     584     1526832 :          full_data(idata) = data_tmp
     585     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     586     1526832 :          idata = idata + 1
     587     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     588     1526832 :          full_data(idata) = data_tmp
     589     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     590     1526832 :          idata = idata + 1
     591     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     592     1526832 :          full_data(idata) = data_tmp
     593     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     594     1526832 :          idata = idata + 1
     595     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     596     1526832 :          full_data(idata) = data_tmp
     597     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     598     1526832 :          idata = idata + 1
     599     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     600     1526832 :          full_data(idata) = data_tmp
     601     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     602     1526832 :          idata = idata + 1
     603     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     604     1526832 :          full_data(idata) = data_tmp
     605     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     606     1526832 :          idata = idata + 1
     607     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     608     1526832 :          full_data(idata) = data_tmp
     609     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     610     1526832 :          idata = idata + 1
     611     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     612     1526832 :          full_data(idata) = data_tmp
     613     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     614     1526832 :          idata = idata + 1
     615     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     616     1526832 :          full_data(idata) = data_tmp
     617     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     618     1526832 :          idata = idata + 1
     619     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     620     1526832 :          full_data(idata) = data_tmp
     621     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     622     1526832 :          idata = idata + 1
     623     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     624     1526832 :          full_data(idata) = data_tmp
     625     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     626     1526832 :          idata = idata + 1
     627     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     628     1526832 :          full_data(idata) = data_tmp
     629     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     630     1526832 :          idata = idata + 1
     631     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     632     1526832 :          full_data(idata) = data_tmp
     633     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     634     1526832 :          idata = idata + 1
     635     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     636     1526832 :          full_data(idata) = data_tmp
     637     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     638     1526832 :          idata = idata + 1
     639     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     640     1526832 :          full_data(idata) = data_tmp
     641     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     642     1526832 :          idata = idata + 1
     643     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     644     1526832 :          full_data(idata) = data_tmp
     645     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     646     1526832 :          idata = idata + 1
     647     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     648     1526832 :          full_data(idata) = data_tmp
     649     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     650     1526832 :          idata = idata + 1
     651     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     652     1526832 :          full_data(idata) = data_tmp
     653     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     654     1526832 :          idata = idata + 1
     655     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     656     1526832 :          full_data(idata) = data_tmp
     657     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     658     1526832 :          idata = idata + 1
     659     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     660     1526832 :          full_data(idata) = data_tmp
     661     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     662     1526832 :          idata = idata + 1
     663     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     664     1526832 :          full_data(idata) = data_tmp
     665     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     666     1526832 :          idata = idata + 1
     667     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     668     1526832 :          full_data(idata) = data_tmp
     669     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     670     1526832 :          idata = idata + 1
     671     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     672     1526832 :          full_data(idata) = data_tmp
     673     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     674     1526832 :          idata = idata + 1
     675     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     676     1526832 :          full_data(idata) = data_tmp
     677     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     678     1526832 :          idata = idata + 1
     679     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     680     1526832 :          full_data(idata) = data_tmp
     681     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     682     1526832 :          idata = idata + 1
     683     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     684     1526832 :          full_data(idata) = data_tmp
     685     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     686     1526832 :          idata = idata + 1
     687     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     688     1526832 :          full_data(idata) = data_tmp
     689     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     690     1526832 :          idata = idata + 1
     691     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     692     1526832 :          full_data(idata) = data_tmp
     693     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     694     1526832 :          idata = idata + 1
     695     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     696     1526832 :          full_data(idata) = data_tmp
     697     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     698     1526832 :          idata = idata + 1
     699     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     700     1526832 :          full_data(idata) = data_tmp
     701     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     702     1526832 :          idata = idata + 1
     703     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     704     1526832 :          full_data(idata) = data_tmp
     705     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     706     1526832 :          idata = idata + 1
     707     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     708     1526832 :          full_data(idata) = data_tmp
     709     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     710     1526832 :          idata = idata + 1
     711     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     712     1526832 :          full_data(idata) = data_tmp
     713     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     714     1526832 :          idata = idata + 1
     715     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     716     1526832 :          full_data(idata) = data_tmp
     717     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     718     1526832 :          idata = idata + 1
     719     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     720     1526832 :          full_data(idata) = data_tmp
     721     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     722     1526832 :          idata = idata + 1
     723     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     724     1526832 :          full_data(idata) = data_tmp
     725     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     726     1526832 :          idata = idata + 1
     727     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     728     1526832 :          full_data(idata) = data_tmp
     729     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     730     1526832 :          idata = idata + 1
     731     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     732     1526832 :          full_data(idata) = data_tmp
     733     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     734     1526832 :          idata = idata + 1
     735     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     736     1526832 :          full_data(idata) = data_tmp
     737     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     738     1526832 :          idata = idata + 1
     739     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     740     1526832 :          full_data(idata) = data_tmp
     741     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     742     1526832 :          idata = idata + 1
     743     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     744     1526832 :          full_data(idata) = data_tmp
     745     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     746     1526832 :          idata = idata + 1
     747     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     748     1526832 :          full_data(idata) = data_tmp
     749     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     750     1526832 :          idata = idata + 1
     751     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     752     1526832 :          full_data(idata) = data_tmp
     753     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     754     1526832 :          idata = idata + 1
     755     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     756     1526832 :          full_data(idata) = data_tmp
     757     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     758     1526832 :          idata = idata + 1
     759     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     760     1526832 :          full_data(idata) = data_tmp
     761     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     762     1526832 :          idata = idata + 1
     763     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     764     1526832 :          full_data(idata) = data_tmp
     765     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     766     1526832 :          idata = idata + 1
     767     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     768     1526832 :          full_data(idata) = data_tmp
     769     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     770     1526832 :          idata = idata + 1
     771     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     772     1526832 :          full_data(idata) = data_tmp
     773     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     774     1526832 :          idata = idata + 1
     775     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     776     1526832 :          full_data(idata) = data_tmp
     777     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     778     1526832 :          idata = idata + 1
     779     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     780     1526832 :          full_data(idata) = data_tmp
     781     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     782     1526832 :          idata = idata + 1
     783     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     784     1526832 :          full_data(idata) = data_tmp
     785     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     786     1526832 :          idata = idata + 1
     787     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     788     1526832 :          full_data(idata) = data_tmp
     789     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     790     1526832 :          idata = idata + 1
     791     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     792     1526832 :          full_data(idata) = data_tmp
     793     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     794     1526832 :          idata = idata + 1
     795     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     796     1526832 :          full_data(idata) = data_tmp
     797     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     798     1526832 :          idata = idata + 1
     799     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     800     1526832 :          full_data(idata) = data_tmp
     801     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     802     1526832 :          idata = idata + 1
     803     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     804     1526832 :          full_data(idata) = data_tmp
     805     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     806     1526832 :          idata = idata + 1
     807     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     808     1526832 :          full_data(idata) = data_tmp
     809     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     810     1526832 :          idata = idata + 1
     811     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     812     1526832 :          full_data(idata) = data_tmp
     813     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     814     1526832 :          idata = idata + 1
     815     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     816     1526832 :          full_data(idata) = data_tmp
     817     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     818             :       END DO
     819       95427 :       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       95427 :    END SUBROUTINE bits2ints_1
     823             : 
     824             : ! **************************************************************************************************
     825             : !> \brief ...
     826             : !> \param Ndata ...
     827             : !> \param packed_data ...
     828             : !> \param full_data ...
     829             : ! **************************************************************************************************
     830       23676 :    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       23676 :       idata = 0
     841       23676 :       ipack = 0
     842       23676 :       Ndata_rep = (Ndata/64)*64
     843       23676 :       DO kdata = 1, Ndata_rep, 64
     844      378816 :          pack_tmp = 0
     845      378816 :          idata = idata + 1
     846      378816 :          data_tmp = full_data(idata)
     847      378816 :          data_tmp = ISHFT(data_tmp, 62)
     848      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     849      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     850      378816 :          idata = idata + 1
     851      378816 :          data_tmp = full_data(idata)
     852      378816 :          data_tmp = ISHFT(data_tmp, 62)
     853      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     854      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     855      378816 :          idata = idata + 1
     856      378816 :          data_tmp = full_data(idata)
     857      378816 :          data_tmp = ISHFT(data_tmp, 62)
     858      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     859      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     860      378816 :          idata = idata + 1
     861      378816 :          data_tmp = full_data(idata)
     862      378816 :          data_tmp = ISHFT(data_tmp, 62)
     863      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     864      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     865      378816 :          idata = idata + 1
     866      378816 :          data_tmp = full_data(idata)
     867      378816 :          data_tmp = ISHFT(data_tmp, 62)
     868      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     869      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     870      378816 :          idata = idata + 1
     871      378816 :          data_tmp = full_data(idata)
     872      378816 :          data_tmp = ISHFT(data_tmp, 62)
     873      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     874      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     875      378816 :          idata = idata + 1
     876      378816 :          data_tmp = full_data(idata)
     877      378816 :          data_tmp = ISHFT(data_tmp, 62)
     878      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     879      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     880      378816 :          idata = idata + 1
     881      378816 :          data_tmp = full_data(idata)
     882      378816 :          data_tmp = ISHFT(data_tmp, 62)
     883      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     884      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     885      378816 :          idata = idata + 1
     886      378816 :          data_tmp = full_data(idata)
     887      378816 :          data_tmp = ISHFT(data_tmp, 62)
     888      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     889      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     890      378816 :          idata = idata + 1
     891      378816 :          data_tmp = full_data(idata)
     892      378816 :          data_tmp = ISHFT(data_tmp, 62)
     893      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     894      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     895      378816 :          idata = idata + 1
     896      378816 :          data_tmp = full_data(idata)
     897      378816 :          data_tmp = ISHFT(data_tmp, 62)
     898      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     899      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     900      378816 :          idata = idata + 1
     901      378816 :          data_tmp = full_data(idata)
     902      378816 :          data_tmp = ISHFT(data_tmp, 62)
     903      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     904      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     905      378816 :          idata = idata + 1
     906      378816 :          data_tmp = full_data(idata)
     907      378816 :          data_tmp = ISHFT(data_tmp, 62)
     908      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     909      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     910      378816 :          idata = idata + 1
     911      378816 :          data_tmp = full_data(idata)
     912      378816 :          data_tmp = ISHFT(data_tmp, 62)
     913      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     914      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     915      378816 :          idata = idata + 1
     916      378816 :          data_tmp = full_data(idata)
     917      378816 :          data_tmp = ISHFT(data_tmp, 62)
     918      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     919      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     920      378816 :          idata = idata + 1
     921      378816 :          data_tmp = full_data(idata)
     922      378816 :          data_tmp = ISHFT(data_tmp, 62)
     923      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     924      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     925      378816 :          idata = idata + 1
     926      378816 :          data_tmp = full_data(idata)
     927      378816 :          data_tmp = ISHFT(data_tmp, 62)
     928      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     929      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     930      378816 :          idata = idata + 1
     931      378816 :          data_tmp = full_data(idata)
     932      378816 :          data_tmp = ISHFT(data_tmp, 62)
     933      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     934      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     935      378816 :          idata = idata + 1
     936      378816 :          data_tmp = full_data(idata)
     937      378816 :          data_tmp = ISHFT(data_tmp, 62)
     938      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     939      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     940      378816 :          idata = idata + 1
     941      378816 :          data_tmp = full_data(idata)
     942      378816 :          data_tmp = ISHFT(data_tmp, 62)
     943      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     944      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     945      378816 :          idata = idata + 1
     946      378816 :          data_tmp = full_data(idata)
     947      378816 :          data_tmp = ISHFT(data_tmp, 62)
     948      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     949      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     950      378816 :          idata = idata + 1
     951      378816 :          data_tmp = full_data(idata)
     952      378816 :          data_tmp = ISHFT(data_tmp, 62)
     953      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     954      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     955      378816 :          idata = idata + 1
     956      378816 :          data_tmp = full_data(idata)
     957      378816 :          data_tmp = ISHFT(data_tmp, 62)
     958      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     959      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     960      378816 :          idata = idata + 1
     961      378816 :          data_tmp = full_data(idata)
     962      378816 :          data_tmp = ISHFT(data_tmp, 62)
     963      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     964      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     965      378816 :          idata = idata + 1
     966      378816 :          data_tmp = full_data(idata)
     967      378816 :          data_tmp = ISHFT(data_tmp, 62)
     968      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     969      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     970      378816 :          idata = idata + 1
     971      378816 :          data_tmp = full_data(idata)
     972      378816 :          data_tmp = ISHFT(data_tmp, 62)
     973      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     974      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     975      378816 :          idata = idata + 1
     976      378816 :          data_tmp = full_data(idata)
     977      378816 :          data_tmp = ISHFT(data_tmp, 62)
     978      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     979      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     980      378816 :          idata = idata + 1
     981      378816 :          data_tmp = full_data(idata)
     982      378816 :          data_tmp = ISHFT(data_tmp, 62)
     983      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     984      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     985      378816 :          idata = idata + 1
     986      378816 :          data_tmp = full_data(idata)
     987      378816 :          data_tmp = ISHFT(data_tmp, 62)
     988      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     989      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     990      378816 :          idata = idata + 1
     991      378816 :          data_tmp = full_data(idata)
     992      378816 :          data_tmp = ISHFT(data_tmp, 62)
     993      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     994      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
     995      378816 :          idata = idata + 1
     996      378816 :          data_tmp = full_data(idata)
     997      378816 :          data_tmp = ISHFT(data_tmp, 62)
     998      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
     999      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1000      378816 :          idata = idata + 1
    1001      378816 :          data_tmp = full_data(idata)
    1002      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1003      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1004      378816 :          pack_tmp = ISHFT(pack_tmp, 0)
    1005      378816 :          idata = idata + 1
    1006      378816 :          data_tmp = full_data(idata)
    1007             :          data_tmp = ISHFT(data_tmp, 62)
    1008      378816 :          data_tmp = IAND(data_tmp, mask_left(0))
    1009      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1010      378816 :          ipack = ipack + 1
    1011      378816 :          packed_data(ipack) = pack_tmp
    1012      378816 :          data_tmp = full_data(idata)
    1013      378816 :          pack_tmp = ISHFT(data_tmp, 62)
    1014      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1015      378816 :          idata = idata + 1
    1016      378816 :          data_tmp = full_data(idata)
    1017      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1018      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1019      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1020      378816 :          idata = idata + 1
    1021      378816 :          data_tmp = full_data(idata)
    1022      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1023      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1024      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1025      378816 :          idata = idata + 1
    1026      378816 :          data_tmp = full_data(idata)
    1027      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1028      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1029      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1030      378816 :          idata = idata + 1
    1031      378816 :          data_tmp = full_data(idata)
    1032      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1033      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1034      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1035      378816 :          idata = idata + 1
    1036      378816 :          data_tmp = full_data(idata)
    1037      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1038      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1039      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1040      378816 :          idata = idata + 1
    1041      378816 :          data_tmp = full_data(idata)
    1042      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1043      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1044      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1045      378816 :          idata = idata + 1
    1046      378816 :          data_tmp = full_data(idata)
    1047      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1048      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1049      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1050      378816 :          idata = idata + 1
    1051      378816 :          data_tmp = full_data(idata)
    1052      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1053      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1054      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1055      378816 :          idata = idata + 1
    1056      378816 :          data_tmp = full_data(idata)
    1057      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1058      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1059      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1060      378816 :          idata = idata + 1
    1061      378816 :          data_tmp = full_data(idata)
    1062      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1063      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1064      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1065      378816 :          idata = idata + 1
    1066      378816 :          data_tmp = full_data(idata)
    1067      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1068      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1069      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1070      378816 :          idata = idata + 1
    1071      378816 :          data_tmp = full_data(idata)
    1072      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1073      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1074      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1075      378816 :          idata = idata + 1
    1076      378816 :          data_tmp = full_data(idata)
    1077      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1078      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1079      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1080      378816 :          idata = idata + 1
    1081      378816 :          data_tmp = full_data(idata)
    1082      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1083      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1084      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1085      378816 :          idata = idata + 1
    1086      378816 :          data_tmp = full_data(idata)
    1087      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1088      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1089      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1090      378816 :          idata = idata + 1
    1091      378816 :          data_tmp = full_data(idata)
    1092      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1093      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1094      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1095      378816 :          idata = idata + 1
    1096      378816 :          data_tmp = full_data(idata)
    1097      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1098      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1099      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1100      378816 :          idata = idata + 1
    1101      378816 :          data_tmp = full_data(idata)
    1102      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1103      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1104      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1105      378816 :          idata = idata + 1
    1106      378816 :          data_tmp = full_data(idata)
    1107      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1108      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1109      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1110      378816 :          idata = idata + 1
    1111      378816 :          data_tmp = full_data(idata)
    1112      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1113      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1114      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1115      378816 :          idata = idata + 1
    1116      378816 :          data_tmp = full_data(idata)
    1117      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1118      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1119      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1120      378816 :          idata = idata + 1
    1121      378816 :          data_tmp = full_data(idata)
    1122      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1123      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1124      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1125      378816 :          idata = idata + 1
    1126      378816 :          data_tmp = full_data(idata)
    1127      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1128      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1129      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1130      378816 :          idata = idata + 1
    1131      378816 :          data_tmp = full_data(idata)
    1132      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1133      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1134      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1135      378816 :          idata = idata + 1
    1136      378816 :          data_tmp = full_data(idata)
    1137      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1138      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1139      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1140      378816 :          idata = idata + 1
    1141      378816 :          data_tmp = full_data(idata)
    1142      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1143      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1144      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1145      378816 :          idata = idata + 1
    1146      378816 :          data_tmp = full_data(idata)
    1147      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1148      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1149      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1150      378816 :          idata = idata + 1
    1151      378816 :          data_tmp = full_data(idata)
    1152      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1153      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1154      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1155      378816 :          idata = idata + 1
    1156      378816 :          data_tmp = full_data(idata)
    1157      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1158      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1159      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1160      378816 :          idata = idata + 1
    1161      378816 :          data_tmp = full_data(idata)
    1162      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1163      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1164      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
    1165      378816 :          idata = idata + 1
    1166      378816 :          data_tmp = full_data(idata)
    1167      378816 :          data_tmp = ISHFT(data_tmp, 62)
    1168      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1169             :          pack_tmp = ISHFT(pack_tmp, 0)
    1170      378816 :          pack_tmp = ISHFT(pack_tmp, 0)
    1171      378816 :          ipack = ipack + 1
    1172      378816 :          packed_data(ipack) = pack_tmp
    1173             :       END DO
    1174       23676 :       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       23676 :    END SUBROUTINE ints2bits_2
    1178             : 
    1179             : ! **************************************************************************************************
    1180             : !> \brief ...
    1181             : !> \param Ndata ...
    1182             : !> \param packed_data ...
    1183             : !> \param full_data ...
    1184             : ! **************************************************************************************************
    1185       95427 :    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       95427 :       ipack = 0
    1196       95427 :       idata = 0
    1197       95427 :       pack_tmp = 0
    1198       95427 :       Ndata_rep = (Ndata/64)*64
    1199       95427 :       DO kdata = 1, Ndata_rep, 64
    1200     1526832 :          idata = idata + 1
    1201     1526832 :          data_tmp = ISHFT(pack_tmp, 2)
    1202     1526832 :          ipack = ipack + 1
    1203     1526832 :          pack_tmp = packed_data(ipack)
    1204     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    1205     1526832 :          pack_tmp = ISHFT(pack_tmp, -2)
    1206     1526832 :          idata = idata + 1
    1207     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1208     1526832 :          full_data(idata) = data_tmp
    1209     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1210     1526832 :          idata = idata + 1
    1211     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1212     1526832 :          full_data(idata) = data_tmp
    1213     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1214     1526832 :          idata = idata + 1
    1215     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1216     1526832 :          full_data(idata) = data_tmp
    1217     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1218     1526832 :          idata = idata + 1
    1219     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1220     1526832 :          full_data(idata) = data_tmp
    1221     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1222     1526832 :          idata = idata + 1
    1223     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1224     1526832 :          full_data(idata) = data_tmp
    1225     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1226     1526832 :          idata = idata + 1
    1227     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1228     1526832 :          full_data(idata) = data_tmp
    1229     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1230     1526832 :          idata = idata + 1
    1231     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1232     1526832 :          full_data(idata) = data_tmp
    1233     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1234     1526832 :          idata = idata + 1
    1235     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1236     1526832 :          full_data(idata) = data_tmp
    1237     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1238     1526832 :          idata = idata + 1
    1239     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1240     1526832 :          full_data(idata) = data_tmp
    1241     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1242     1526832 :          idata = idata + 1
    1243     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1244     1526832 :          full_data(idata) = data_tmp
    1245     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1246     1526832 :          idata = idata + 1
    1247     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1248     1526832 :          full_data(idata) = data_tmp
    1249     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1250     1526832 :          idata = idata + 1
    1251     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1252     1526832 :          full_data(idata) = data_tmp
    1253     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1254     1526832 :          idata = idata + 1
    1255     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1256     1526832 :          full_data(idata) = data_tmp
    1257     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1258     1526832 :          idata = idata + 1
    1259     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1260     1526832 :          full_data(idata) = data_tmp
    1261     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1262     1526832 :          idata = idata + 1
    1263     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1264     1526832 :          full_data(idata) = data_tmp
    1265     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1266     1526832 :          idata = idata + 1
    1267     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1268     1526832 :          full_data(idata) = data_tmp
    1269     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1270     1526832 :          idata = idata + 1
    1271     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1272     1526832 :          full_data(idata) = data_tmp
    1273     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1274     1526832 :          idata = idata + 1
    1275     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1276     1526832 :          full_data(idata) = data_tmp
    1277     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1278     1526832 :          idata = idata + 1
    1279     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1280     1526832 :          full_data(idata) = data_tmp
    1281     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1282     1526832 :          idata = idata + 1
    1283     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1284     1526832 :          full_data(idata) = data_tmp
    1285     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1286     1526832 :          idata = idata + 1
    1287     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1288     1526832 :          full_data(idata) = data_tmp
    1289     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1290     1526832 :          idata = idata + 1
    1291     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1292     1526832 :          full_data(idata) = data_tmp
    1293     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1294     1526832 :          idata = idata + 1
    1295     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1296     1526832 :          full_data(idata) = data_tmp
    1297     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1298     1526832 :          idata = idata + 1
    1299     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1300     1526832 :          full_data(idata) = data_tmp
    1301     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1302     1526832 :          idata = idata + 1
    1303     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1304     1526832 :          full_data(idata) = data_tmp
    1305     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1306     1526832 :          idata = idata + 1
    1307     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1308     1526832 :          full_data(idata) = data_tmp
    1309     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1310     1526832 :          idata = idata + 1
    1311     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1312     1526832 :          full_data(idata) = data_tmp
    1313     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1314     1526832 :          idata = idata + 1
    1315     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1316     1526832 :          full_data(idata) = data_tmp
    1317     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1318     1526832 :          idata = idata + 1
    1319     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1320     1526832 :          full_data(idata) = data_tmp
    1321     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1322     1526832 :          idata = idata + 1
    1323     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1324     1526832 :          full_data(idata) = data_tmp
    1325     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1326     1526832 :          idata = idata + 1
    1327     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1328     1526832 :          full_data(idata) = data_tmp
    1329     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1330     1526832 :          idata = idata + 1
    1331     1526832 :          data_tmp = ISHFT(pack_tmp, 2)
    1332     1526832 :          ipack = ipack + 1
    1333     1526832 :          pack_tmp = packed_data(ipack)
    1334     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    1335     1526832 :          pack_tmp = ISHFT(pack_tmp, -2)
    1336     1526832 :          idata = idata + 1
    1337     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1338     1526832 :          full_data(idata) = data_tmp
    1339     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1340     1526832 :          idata = idata + 1
    1341     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1342     1526832 :          full_data(idata) = data_tmp
    1343     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1344     1526832 :          idata = idata + 1
    1345     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1346     1526832 :          full_data(idata) = data_tmp
    1347     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1348     1526832 :          idata = idata + 1
    1349     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1350     1526832 :          full_data(idata) = data_tmp
    1351     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1352     1526832 :          idata = idata + 1
    1353     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1354     1526832 :          full_data(idata) = data_tmp
    1355     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1356     1526832 :          idata = idata + 1
    1357     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1358     1526832 :          full_data(idata) = data_tmp
    1359     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1360     1526832 :          idata = idata + 1
    1361     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1362     1526832 :          full_data(idata) = data_tmp
    1363     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1364     1526832 :          idata = idata + 1
    1365     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1366     1526832 :          full_data(idata) = data_tmp
    1367     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1368     1526832 :          idata = idata + 1
    1369     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1370     1526832 :          full_data(idata) = data_tmp
    1371     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1372     1526832 :          idata = idata + 1
    1373     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1374     1526832 :          full_data(idata) = data_tmp
    1375     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1376     1526832 :          idata = idata + 1
    1377     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1378     1526832 :          full_data(idata) = data_tmp
    1379     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1380     1526832 :          idata = idata + 1
    1381     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1382     1526832 :          full_data(idata) = data_tmp
    1383     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1384     1526832 :          idata = idata + 1
    1385     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1386     1526832 :          full_data(idata) = data_tmp
    1387     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1388     1526832 :          idata = idata + 1
    1389     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1390     1526832 :          full_data(idata) = data_tmp
    1391     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1392     1526832 :          idata = idata + 1
    1393     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1394     1526832 :          full_data(idata) = data_tmp
    1395     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1396     1526832 :          idata = idata + 1
    1397     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1398     1526832 :          full_data(idata) = data_tmp
    1399     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1400     1526832 :          idata = idata + 1
    1401     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1402     1526832 :          full_data(idata) = data_tmp
    1403     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1404     1526832 :          idata = idata + 1
    1405     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1406     1526832 :          full_data(idata) = data_tmp
    1407     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1408     1526832 :          idata = idata + 1
    1409     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1410     1526832 :          full_data(idata) = data_tmp
    1411     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1412     1526832 :          idata = idata + 1
    1413     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1414     1526832 :          full_data(idata) = data_tmp
    1415     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1416     1526832 :          idata = idata + 1
    1417     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1418     1526832 :          full_data(idata) = data_tmp
    1419     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1420     1526832 :          idata = idata + 1
    1421     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1422     1526832 :          full_data(idata) = data_tmp
    1423     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1424     1526832 :          idata = idata + 1
    1425     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1426     1526832 :          full_data(idata) = data_tmp
    1427     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1428     1526832 :          idata = idata + 1
    1429     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1430     1526832 :          full_data(idata) = data_tmp
    1431     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1432     1526832 :          idata = idata + 1
    1433     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1434     1526832 :          full_data(idata) = data_tmp
    1435     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1436     1526832 :          idata = idata + 1
    1437     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1438     1526832 :          full_data(idata) = data_tmp
    1439     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1440     1526832 :          idata = idata + 1
    1441     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1442     1526832 :          full_data(idata) = data_tmp
    1443     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1444     1526832 :          idata = idata + 1
    1445     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1446     1526832 :          full_data(idata) = data_tmp
    1447     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1448     1526832 :          idata = idata + 1
    1449     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1450     1526832 :          full_data(idata) = data_tmp
    1451     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1452     1526832 :          idata = idata + 1
    1453     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1454     1526832 :          full_data(idata) = data_tmp
    1455     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1456     1526832 :          idata = idata + 1
    1457     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1458     1526832 :          full_data(idata) = data_tmp
    1459     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1460             :       END DO
    1461       95427 :       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       95427 :    END SUBROUTINE bits2ints_2
    1465             : 
    1466             : ! **************************************************************************************************
    1467             : !> \brief ...
    1468             : !> \param Ndata ...
    1469             : !> \param packed_data ...
    1470             : !> \param full_data ...
    1471             : ! **************************************************************************************************
    1472       23921 :    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       23921 :       idata = 0
    1483       23921 :       ipack = 0
    1484       23921 :       Ndata_rep = (Ndata/64)*64
    1485       23921 :       DO kdata = 1, Ndata_rep, 64
    1486      382600 :          pack_tmp = 0
    1487      382600 :          idata = idata + 1
    1488      382600 :          data_tmp = full_data(idata)
    1489      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1490      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1491      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1492      382600 :          idata = idata + 1
    1493      382600 :          data_tmp = full_data(idata)
    1494      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1495      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1496      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1497      382600 :          idata = idata + 1
    1498      382600 :          data_tmp = full_data(idata)
    1499      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1500      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1501      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1502      382600 :          idata = idata + 1
    1503      382600 :          data_tmp = full_data(idata)
    1504      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1505      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1506      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1507      382600 :          idata = idata + 1
    1508      382600 :          data_tmp = full_data(idata)
    1509      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1510      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1511      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1512      382600 :          idata = idata + 1
    1513      382600 :          data_tmp = full_data(idata)
    1514      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1515      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1516      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1517      382600 :          idata = idata + 1
    1518      382600 :          data_tmp = full_data(idata)
    1519      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1520      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1521      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1522      382600 :          idata = idata + 1
    1523      382600 :          data_tmp = full_data(idata)
    1524      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1525      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1526      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1527      382600 :          idata = idata + 1
    1528      382600 :          data_tmp = full_data(idata)
    1529      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1530      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1531      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1532      382600 :          idata = idata + 1
    1533      382600 :          data_tmp = full_data(idata)
    1534      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1535      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1536      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1537      382600 :          idata = idata + 1
    1538      382600 :          data_tmp = full_data(idata)
    1539      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1540      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1541      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1542      382600 :          idata = idata + 1
    1543      382600 :          data_tmp = full_data(idata)
    1544      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1545      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1546      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1547      382600 :          idata = idata + 1
    1548      382600 :          data_tmp = full_data(idata)
    1549      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1550      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1551      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1552      382600 :          idata = idata + 1
    1553      382600 :          data_tmp = full_data(idata)
    1554      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1555      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1556      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1557      382600 :          idata = idata + 1
    1558      382600 :          data_tmp = full_data(idata)
    1559      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1560      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1561      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1562      382600 :          idata = idata + 1
    1563      382600 :          data_tmp = full_data(idata)
    1564      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1565      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1566      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1567      382600 :          idata = idata + 1
    1568      382600 :          data_tmp = full_data(idata)
    1569      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1570      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1571      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1572      382600 :          idata = idata + 1
    1573      382600 :          data_tmp = full_data(idata)
    1574      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1575      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1576      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1577      382600 :          idata = idata + 1
    1578      382600 :          data_tmp = full_data(idata)
    1579      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1580      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1581      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1582      382600 :          idata = idata + 1
    1583      382600 :          data_tmp = full_data(idata)
    1584      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1585      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1586      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1587      382600 :          idata = idata + 1
    1588      382600 :          data_tmp = full_data(idata)
    1589      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1590      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1591      382600 :          pack_tmp = ISHFT(pack_tmp, -1)
    1592      382600 :          idata = idata + 1
    1593      382600 :          data_tmp = full_data(idata)
    1594      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1595      382600 :          data_tmp = IAND(data_tmp, mask_left(1))
    1596      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1597      382600 :          ipack = ipack + 1
    1598      382600 :          packed_data(ipack) = pack_tmp
    1599      382600 :          data_tmp = full_data(idata)
    1600      382600 :          pack_tmp = ISHFT(data_tmp, 62)
    1601      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1602      382600 :          idata = idata + 1
    1603      382600 :          data_tmp = full_data(idata)
    1604      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1605      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1606      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1607      382600 :          idata = idata + 1
    1608      382600 :          data_tmp = full_data(idata)
    1609      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1610      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1611      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1612      382600 :          idata = idata + 1
    1613      382600 :          data_tmp = full_data(idata)
    1614      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1615      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1616      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1617      382600 :          idata = idata + 1
    1618      382600 :          data_tmp = full_data(idata)
    1619      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1620      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1621      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1622      382600 :          idata = idata + 1
    1623      382600 :          data_tmp = full_data(idata)
    1624      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1625      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1626      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1627      382600 :          idata = idata + 1
    1628      382600 :          data_tmp = full_data(idata)
    1629      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1630      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1631      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1632      382600 :          idata = idata + 1
    1633      382600 :          data_tmp = full_data(idata)
    1634      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1635      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1636      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1637      382600 :          idata = idata + 1
    1638      382600 :          data_tmp = full_data(idata)
    1639      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1640      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1641      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1642      382600 :          idata = idata + 1
    1643      382600 :          data_tmp = full_data(idata)
    1644      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1645      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1646      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1647      382600 :          idata = idata + 1
    1648      382600 :          data_tmp = full_data(idata)
    1649      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1650      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1651      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1652      382600 :          idata = idata + 1
    1653      382600 :          data_tmp = full_data(idata)
    1654      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1655      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1656      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1657      382600 :          idata = idata + 1
    1658      382600 :          data_tmp = full_data(idata)
    1659      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1660      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1661      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1662      382600 :          idata = idata + 1
    1663      382600 :          data_tmp = full_data(idata)
    1664      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1665      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1666      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1667      382600 :          idata = idata + 1
    1668      382600 :          data_tmp = full_data(idata)
    1669      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1670      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1671      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1672      382600 :          idata = idata + 1
    1673      382600 :          data_tmp = full_data(idata)
    1674      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1675      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1676      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1677      382600 :          idata = idata + 1
    1678      382600 :          data_tmp = full_data(idata)
    1679      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1680      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1681      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1682      382600 :          idata = idata + 1
    1683      382600 :          data_tmp = full_data(idata)
    1684      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1685      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1686      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1687      382600 :          idata = idata + 1
    1688      382600 :          data_tmp = full_data(idata)
    1689      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1690      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1691      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1692      382600 :          idata = idata + 1
    1693      382600 :          data_tmp = full_data(idata)
    1694      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1695      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1696      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1697      382600 :          idata = idata + 1
    1698      382600 :          data_tmp = full_data(idata)
    1699      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1700      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1701      382600 :          pack_tmp = ISHFT(pack_tmp, -2)
    1702      382600 :          idata = idata + 1
    1703      382600 :          data_tmp = full_data(idata)
    1704      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1705      382600 :          data_tmp = IAND(data_tmp, mask_left(2))
    1706      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1707      382600 :          ipack = ipack + 1
    1708      382600 :          packed_data(ipack) = pack_tmp
    1709      382600 :          data_tmp = full_data(idata)
    1710      382600 :          pack_tmp = ISHFT(data_tmp, 63)
    1711      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1712      382600 :          idata = idata + 1
    1713      382600 :          data_tmp = full_data(idata)
    1714      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1715      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1716      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1717      382600 :          idata = idata + 1
    1718      382600 :          data_tmp = full_data(idata)
    1719      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1720      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1721      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1722      382600 :          idata = idata + 1
    1723      382600 :          data_tmp = full_data(idata)
    1724      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1725      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1726      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1727      382600 :          idata = idata + 1
    1728      382600 :          data_tmp = full_data(idata)
    1729      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1730      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1731      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1732      382600 :          idata = idata + 1
    1733      382600 :          data_tmp = full_data(idata)
    1734      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1735      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1736      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1737      382600 :          idata = idata + 1
    1738      382600 :          data_tmp = full_data(idata)
    1739      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1740      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1741      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1742      382600 :          idata = idata + 1
    1743      382600 :          data_tmp = full_data(idata)
    1744      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1745      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1746      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1747      382600 :          idata = idata + 1
    1748      382600 :          data_tmp = full_data(idata)
    1749      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1750      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1751      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1752      382600 :          idata = idata + 1
    1753      382600 :          data_tmp = full_data(idata)
    1754      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1755      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1756      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1757      382600 :          idata = idata + 1
    1758      382600 :          data_tmp = full_data(idata)
    1759      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1760      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1761      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1762      382600 :          idata = idata + 1
    1763      382600 :          data_tmp = full_data(idata)
    1764      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1765      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1766      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1767      382600 :          idata = idata + 1
    1768      382600 :          data_tmp = full_data(idata)
    1769      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1770      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1771      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1772      382600 :          idata = idata + 1
    1773      382600 :          data_tmp = full_data(idata)
    1774      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1775      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1776      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1777      382600 :          idata = idata + 1
    1778      382600 :          data_tmp = full_data(idata)
    1779      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1780      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1781      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1782      382600 :          idata = idata + 1
    1783      382600 :          data_tmp = full_data(idata)
    1784      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1785      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1786      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1787      382600 :          idata = idata + 1
    1788      382600 :          data_tmp = full_data(idata)
    1789      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1790      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1791      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1792      382600 :          idata = idata + 1
    1793      382600 :          data_tmp = full_data(idata)
    1794      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1795      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1796      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1797      382600 :          idata = idata + 1
    1798      382600 :          data_tmp = full_data(idata)
    1799      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1800      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1801      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1802      382600 :          idata = idata + 1
    1803      382600 :          data_tmp = full_data(idata)
    1804      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1805      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1806      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1807      382600 :          idata = idata + 1
    1808      382600 :          data_tmp = full_data(idata)
    1809      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1810      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1811      382600 :          pack_tmp = ISHFT(pack_tmp, -3)
    1812      382600 :          idata = idata + 1
    1813      382600 :          data_tmp = full_data(idata)
    1814      382600 :          data_tmp = ISHFT(data_tmp, 61)
    1815      382600 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1816             :          pack_tmp = ISHFT(pack_tmp, 0)
    1817      382600 :          pack_tmp = ISHFT(pack_tmp, 0)
    1818      382600 :          ipack = ipack + 1
    1819      382602 :          packed_data(ipack) = pack_tmp
    1820             :       END DO
    1821       23921 :       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       23921 :    END SUBROUTINE ints2bits_3
    1825             : 
    1826             : ! **************************************************************************************************
    1827             : !> \brief ...
    1828             : !> \param Ndata ...
    1829             : !> \param packed_data ...
    1830             : !> \param full_data ...
    1831             : ! **************************************************************************************************
    1832       96813 :    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       96813 :       ipack = 0
    1843       96813 :       idata = 0
    1844       96813 :       pack_tmp = 0
    1845       96813 :       Ndata_rep = (Ndata/64)*64
    1846       96813 :       DO kdata = 1, Ndata_rep, 64
    1847     1548056 :          idata = idata + 1
    1848     1548056 :          data_tmp = ISHFT(pack_tmp, 3)
    1849     1548056 :          ipack = ipack + 1
    1850     1548056 :          pack_tmp = packed_data(ipack)
    1851     1548056 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    1852     1548056 :          pack_tmp = ISHFT(pack_tmp, -3)
    1853     1548056 :          idata = idata + 1
    1854     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1855     1548056 :          full_data(idata) = data_tmp
    1856     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1857     1548056 :          idata = idata + 1
    1858     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1859     1548056 :          full_data(idata) = data_tmp
    1860     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1861     1548056 :          idata = idata + 1
    1862     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1863     1548056 :          full_data(idata) = data_tmp
    1864     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1865     1548056 :          idata = idata + 1
    1866     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1867     1548056 :          full_data(idata) = data_tmp
    1868     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1869     1548056 :          idata = idata + 1
    1870     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1871     1548056 :          full_data(idata) = data_tmp
    1872     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1873     1548056 :          idata = idata + 1
    1874     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1875     1548056 :          full_data(idata) = data_tmp
    1876     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1877     1548056 :          idata = idata + 1
    1878     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1879     1548056 :          full_data(idata) = data_tmp
    1880     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1881     1548056 :          idata = idata + 1
    1882     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1883     1548056 :          full_data(idata) = data_tmp
    1884     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1885     1548056 :          idata = idata + 1
    1886     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1887     1548056 :          full_data(idata) = data_tmp
    1888     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1889     1548056 :          idata = idata + 1
    1890     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1891     1548056 :          full_data(idata) = data_tmp
    1892     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1893     1548056 :          idata = idata + 1
    1894     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1895     1548056 :          full_data(idata) = data_tmp
    1896     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1897     1548056 :          idata = idata + 1
    1898     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1899     1548056 :          full_data(idata) = data_tmp
    1900     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1901     1548056 :          idata = idata + 1
    1902     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1903     1548056 :          full_data(idata) = data_tmp
    1904     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1905     1548056 :          idata = idata + 1
    1906     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1907     1548056 :          full_data(idata) = data_tmp
    1908     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1909     1548056 :          idata = idata + 1
    1910     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1911     1548056 :          full_data(idata) = data_tmp
    1912     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1913     1548056 :          idata = idata + 1
    1914     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1915     1548056 :          full_data(idata) = data_tmp
    1916     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1917     1548056 :          idata = idata + 1
    1918     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1919     1548056 :          full_data(idata) = data_tmp
    1920     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1921     1548056 :          idata = idata + 1
    1922     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1923     1548056 :          full_data(idata) = data_tmp
    1924     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1925     1548056 :          idata = idata + 1
    1926     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1927     1548056 :          full_data(idata) = data_tmp
    1928     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1929     1548056 :          idata = idata + 1
    1930     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1931     1548056 :          full_data(idata) = data_tmp
    1932     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1933     1548056 :          idata = idata + 1
    1934     1548056 :          data_tmp = ISHFT(pack_tmp, 2)
    1935     1548056 :          ipack = ipack + 1
    1936     1548056 :          pack_tmp = packed_data(ipack)
    1937     1548056 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    1938     1548056 :          pack_tmp = ISHFT(pack_tmp, -2)
    1939     1548056 :          idata = idata + 1
    1940     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1941     1548056 :          full_data(idata) = data_tmp
    1942     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1943     1548056 :          idata = idata + 1
    1944     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1945     1548056 :          full_data(idata) = data_tmp
    1946     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1947     1548056 :          idata = idata + 1
    1948     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1949     1548056 :          full_data(idata) = data_tmp
    1950     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1951     1548056 :          idata = idata + 1
    1952     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1953     1548056 :          full_data(idata) = data_tmp
    1954     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1955     1548056 :          idata = idata + 1
    1956     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1957     1548056 :          full_data(idata) = data_tmp
    1958     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1959     1548056 :          idata = idata + 1
    1960     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1961     1548056 :          full_data(idata) = data_tmp
    1962     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1963     1548056 :          idata = idata + 1
    1964     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1965     1548056 :          full_data(idata) = data_tmp
    1966     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1967     1548056 :          idata = idata + 1
    1968     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1969     1548056 :          full_data(idata) = data_tmp
    1970     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1971     1548056 :          idata = idata + 1
    1972     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1973     1548056 :          full_data(idata) = data_tmp
    1974     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1975     1548056 :          idata = idata + 1
    1976     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1977     1548056 :          full_data(idata) = data_tmp
    1978     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1979     1548056 :          idata = idata + 1
    1980     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1981     1548056 :          full_data(idata) = data_tmp
    1982     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1983     1548056 :          idata = idata + 1
    1984     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1985     1548056 :          full_data(idata) = data_tmp
    1986     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1987     1548056 :          idata = idata + 1
    1988     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1989     1548056 :          full_data(idata) = data_tmp
    1990     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1991     1548056 :          idata = idata + 1
    1992     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1993     1548056 :          full_data(idata) = data_tmp
    1994     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1995     1548056 :          idata = idata + 1
    1996     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1997     1548056 :          full_data(idata) = data_tmp
    1998     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1999     1548056 :          idata = idata + 1
    2000     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2001     1548056 :          full_data(idata) = data_tmp
    2002     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2003     1548056 :          idata = idata + 1
    2004     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2005     1548056 :          full_data(idata) = data_tmp
    2006     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2007     1548056 :          idata = idata + 1
    2008     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2009     1548056 :          full_data(idata) = data_tmp
    2010     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2011     1548056 :          idata = idata + 1
    2012     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2013     1548056 :          full_data(idata) = data_tmp
    2014     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2015     1548056 :          idata = idata + 1
    2016     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2017     1548056 :          full_data(idata) = data_tmp
    2018     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2019     1548056 :          idata = idata + 1
    2020     1548056 :          data_tmp = ISHFT(pack_tmp, 1)
    2021     1548056 :          ipack = ipack + 1
    2022     1548056 :          pack_tmp = packed_data(ipack)
    2023     1548056 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    2024     1548056 :          pack_tmp = ISHFT(pack_tmp, -1)
    2025     1548056 :          idata = idata + 1
    2026     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2027     1548056 :          full_data(idata) = data_tmp
    2028     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2029     1548056 :          idata = idata + 1
    2030     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2031     1548056 :          full_data(idata) = data_tmp
    2032     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2033     1548056 :          idata = idata + 1
    2034     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2035     1548056 :          full_data(idata) = data_tmp
    2036     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2037     1548056 :          idata = idata + 1
    2038     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2039     1548056 :          full_data(idata) = data_tmp
    2040     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2041     1548056 :          idata = idata + 1
    2042     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2043     1548056 :          full_data(idata) = data_tmp
    2044     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2045     1548056 :          idata = idata + 1
    2046     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2047     1548056 :          full_data(idata) = data_tmp
    2048     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2049     1548056 :          idata = idata + 1
    2050     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2051     1548056 :          full_data(idata) = data_tmp
    2052     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2053     1548056 :          idata = idata + 1
    2054     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2055     1548056 :          full_data(idata) = data_tmp
    2056     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2057     1548056 :          idata = idata + 1
    2058     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2059     1548056 :          full_data(idata) = data_tmp
    2060     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2061     1548056 :          idata = idata + 1
    2062     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2063     1548056 :          full_data(idata) = data_tmp
    2064     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2065     1548056 :          idata = idata + 1
    2066     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2067     1548056 :          full_data(idata) = data_tmp
    2068     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2069     1548056 :          idata = idata + 1
    2070     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2071     1548056 :          full_data(idata) = data_tmp
    2072     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2073     1548056 :          idata = idata + 1
    2074     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2075     1548056 :          full_data(idata) = data_tmp
    2076     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2077     1548056 :          idata = idata + 1
    2078     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2079     1548056 :          full_data(idata) = data_tmp
    2080     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2081     1548056 :          idata = idata + 1
    2082     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2083     1548056 :          full_data(idata) = data_tmp
    2084     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2085     1548056 :          idata = idata + 1
    2086     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2087     1548056 :          full_data(idata) = data_tmp
    2088     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2089     1548056 :          idata = idata + 1
    2090     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2091     1548056 :          full_data(idata) = data_tmp
    2092     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2093     1548056 :          idata = idata + 1
    2094     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2095     1548056 :          full_data(idata) = data_tmp
    2096     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2097     1548056 :          idata = idata + 1
    2098     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2099     1548056 :          full_data(idata) = data_tmp
    2100     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2101     1548056 :          idata = idata + 1
    2102     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2103     1548056 :          full_data(idata) = data_tmp
    2104     1548056 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2105     1548056 :          idata = idata + 1
    2106     1548056 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2107     1548056 :          full_data(idata) = data_tmp
    2108     1548070 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2109             :       END DO
    2110       96813 :       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       96813 :    END SUBROUTINE bits2ints_3
    2114             : 
    2115             : ! **************************************************************************************************
    2116             : !> \brief ...
    2117             : !> \param Ndata ...
    2118             : !> \param packed_data ...
    2119             : !> \param full_data ...
    2120             : ! **************************************************************************************************
    2121       24027 :    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       24027 :       idata = 0
    2132       24027 :       ipack = 0
    2133       24027 :       Ndata_rep = (Ndata/64)*64
    2134       24027 :       DO kdata = 1, Ndata_rep, 64
    2135      384128 :          pack_tmp = 0
    2136      384128 :          idata = idata + 1
    2137      384128 :          data_tmp = full_data(idata)
    2138      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2139      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2140      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2141      384128 :          idata = idata + 1
    2142      384128 :          data_tmp = full_data(idata)
    2143      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2144      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2145      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2146      384128 :          idata = idata + 1
    2147      384128 :          data_tmp = full_data(idata)
    2148      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2149      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2150      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2151      384128 :          idata = idata + 1
    2152      384128 :          data_tmp = full_data(idata)
    2153      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2154      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2155      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2156      384128 :          idata = idata + 1
    2157      384128 :          data_tmp = full_data(idata)
    2158      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2159      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2160      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2161      384128 :          idata = idata + 1
    2162      384128 :          data_tmp = full_data(idata)
    2163      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2164      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2165      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2166      384128 :          idata = idata + 1
    2167      384128 :          data_tmp = full_data(idata)
    2168      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2169      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2170      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2171      384128 :          idata = idata + 1
    2172      384128 :          data_tmp = full_data(idata)
    2173      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2174      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2175      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2176      384128 :          idata = idata + 1
    2177      384128 :          data_tmp = full_data(idata)
    2178      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2179      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2180      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2181      384128 :          idata = idata + 1
    2182      384128 :          data_tmp = full_data(idata)
    2183      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2184      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2185      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2186      384128 :          idata = idata + 1
    2187      384128 :          data_tmp = full_data(idata)
    2188      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2189      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2190      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2191      384128 :          idata = idata + 1
    2192      384128 :          data_tmp = full_data(idata)
    2193      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2194      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2195      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2196      384128 :          idata = idata + 1
    2197      384128 :          data_tmp = full_data(idata)
    2198      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2199      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2200      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2201      384128 :          idata = idata + 1
    2202      384128 :          data_tmp = full_data(idata)
    2203      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2204      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2205      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2206      384128 :          idata = idata + 1
    2207      384128 :          data_tmp = full_data(idata)
    2208      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2209      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2210      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2211      384128 :          idata = idata + 1
    2212      384128 :          data_tmp = full_data(idata)
    2213      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2214      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2215      384128 :          pack_tmp = ISHFT(pack_tmp, 0)
    2216      384128 :          idata = idata + 1
    2217      384128 :          data_tmp = full_data(idata)
    2218             :          data_tmp = ISHFT(data_tmp, 60)
    2219      384128 :          data_tmp = IAND(data_tmp, mask_left(0))
    2220      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2221      384128 :          ipack = ipack + 1
    2222      384128 :          packed_data(ipack) = pack_tmp
    2223      384128 :          data_tmp = full_data(idata)
    2224      384128 :          pack_tmp = ISHFT(data_tmp, 60)
    2225      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2226      384128 :          idata = idata + 1
    2227      384128 :          data_tmp = full_data(idata)
    2228      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2229      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2230      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2231      384128 :          idata = idata + 1
    2232      384128 :          data_tmp = full_data(idata)
    2233      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2234      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2235      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2236      384128 :          idata = idata + 1
    2237      384128 :          data_tmp = full_data(idata)
    2238      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2239      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2240      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2241      384128 :          idata = idata + 1
    2242      384128 :          data_tmp = full_data(idata)
    2243      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2244      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2245      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2246      384128 :          idata = idata + 1
    2247      384128 :          data_tmp = full_data(idata)
    2248      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2249      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2250      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2251      384128 :          idata = idata + 1
    2252      384128 :          data_tmp = full_data(idata)
    2253      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2254      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2255      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2256      384128 :          idata = idata + 1
    2257      384128 :          data_tmp = full_data(idata)
    2258      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2259      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2260      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2261      384128 :          idata = idata + 1
    2262      384128 :          data_tmp = full_data(idata)
    2263      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2264      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2265      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2266      384128 :          idata = idata + 1
    2267      384128 :          data_tmp = full_data(idata)
    2268      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2269      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2270      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2271      384128 :          idata = idata + 1
    2272      384128 :          data_tmp = full_data(idata)
    2273      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2274      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2275      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2276      384128 :          idata = idata + 1
    2277      384128 :          data_tmp = full_data(idata)
    2278      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2279      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2280      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2281      384128 :          idata = idata + 1
    2282      384128 :          data_tmp = full_data(idata)
    2283      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2284      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2285      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2286      384128 :          idata = idata + 1
    2287      384128 :          data_tmp = full_data(idata)
    2288      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2289      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2290      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2291      384128 :          idata = idata + 1
    2292      384128 :          data_tmp = full_data(idata)
    2293      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2294      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2295      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2296      384128 :          idata = idata + 1
    2297      384128 :          data_tmp = full_data(idata)
    2298      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2299      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2300      384128 :          pack_tmp = ISHFT(pack_tmp, 0)
    2301      384128 :          idata = idata + 1
    2302      384128 :          data_tmp = full_data(idata)
    2303             :          data_tmp = ISHFT(data_tmp, 60)
    2304      384128 :          data_tmp = IAND(data_tmp, mask_left(0))
    2305      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2306      384128 :          ipack = ipack + 1
    2307      384128 :          packed_data(ipack) = pack_tmp
    2308      384128 :          data_tmp = full_data(idata)
    2309      384128 :          pack_tmp = ISHFT(data_tmp, 60)
    2310      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2311      384128 :          idata = idata + 1
    2312      384128 :          data_tmp = full_data(idata)
    2313      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2314      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2315      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2316      384128 :          idata = idata + 1
    2317      384128 :          data_tmp = full_data(idata)
    2318      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2319      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2320      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2321      384128 :          idata = idata + 1
    2322      384128 :          data_tmp = full_data(idata)
    2323      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2324      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2325      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2326      384128 :          idata = idata + 1
    2327      384128 :          data_tmp = full_data(idata)
    2328      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2329      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2330      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2331      384128 :          idata = idata + 1
    2332      384128 :          data_tmp = full_data(idata)
    2333      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2334      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2335      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2336      384128 :          idata = idata + 1
    2337      384128 :          data_tmp = full_data(idata)
    2338      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2339      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2340      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2341      384128 :          idata = idata + 1
    2342      384128 :          data_tmp = full_data(idata)
    2343      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2344      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2345      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2346      384128 :          idata = idata + 1
    2347      384128 :          data_tmp = full_data(idata)
    2348      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2349      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2350      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2351      384128 :          idata = idata + 1
    2352      384128 :          data_tmp = full_data(idata)
    2353      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2354      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2355      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2356      384128 :          idata = idata + 1
    2357      384128 :          data_tmp = full_data(idata)
    2358      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2359      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2360      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2361      384128 :          idata = idata + 1
    2362      384128 :          data_tmp = full_data(idata)
    2363      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2364      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2365      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2366      384128 :          idata = idata + 1
    2367      384128 :          data_tmp = full_data(idata)
    2368      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2369      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2370      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2371      384128 :          idata = idata + 1
    2372      384128 :          data_tmp = full_data(idata)
    2373      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2374      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2375      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2376      384128 :          idata = idata + 1
    2377      384128 :          data_tmp = full_data(idata)
    2378      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2379      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2380      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2381      384128 :          idata = idata + 1
    2382      384128 :          data_tmp = full_data(idata)
    2383      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2384      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2385      384128 :          pack_tmp = ISHFT(pack_tmp, 0)
    2386      384128 :          idata = idata + 1
    2387      384128 :          data_tmp = full_data(idata)
    2388             :          data_tmp = ISHFT(data_tmp, 60)
    2389      384128 :          data_tmp = IAND(data_tmp, mask_left(0))
    2390      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2391      384128 :          ipack = ipack + 1
    2392      384128 :          packed_data(ipack) = pack_tmp
    2393      384128 :          data_tmp = full_data(idata)
    2394      384128 :          pack_tmp = ISHFT(data_tmp, 60)
    2395      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2396      384128 :          idata = idata + 1
    2397      384128 :          data_tmp = full_data(idata)
    2398      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2399      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2400      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2401      384128 :          idata = idata + 1
    2402      384128 :          data_tmp = full_data(idata)
    2403      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2404      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2405      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2406      384128 :          idata = idata + 1
    2407      384128 :          data_tmp = full_data(idata)
    2408      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2409      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2410      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2411      384128 :          idata = idata + 1
    2412      384128 :          data_tmp = full_data(idata)
    2413      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2414      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2415      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2416      384128 :          idata = idata + 1
    2417      384128 :          data_tmp = full_data(idata)
    2418      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2419      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2420      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2421      384128 :          idata = idata + 1
    2422      384128 :          data_tmp = full_data(idata)
    2423      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2424      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2425      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2426      384128 :          idata = idata + 1
    2427      384128 :          data_tmp = full_data(idata)
    2428      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2429      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2430      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2431      384128 :          idata = idata + 1
    2432      384128 :          data_tmp = full_data(idata)
    2433      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2434      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2435      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2436      384128 :          idata = idata + 1
    2437      384128 :          data_tmp = full_data(idata)
    2438      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2439      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2440      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2441      384128 :          idata = idata + 1
    2442      384128 :          data_tmp = full_data(idata)
    2443      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2444      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2445      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2446      384128 :          idata = idata + 1
    2447      384128 :          data_tmp = full_data(idata)
    2448      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2449      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2450      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2451      384128 :          idata = idata + 1
    2452      384128 :          data_tmp = full_data(idata)
    2453      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2454      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2455      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2456      384128 :          idata = idata + 1
    2457      384128 :          data_tmp = full_data(idata)
    2458      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2459      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2460      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2461      384128 :          idata = idata + 1
    2462      384128 :          data_tmp = full_data(idata)
    2463      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2464      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2465      384128 :          pack_tmp = ISHFT(pack_tmp, -4)
    2466      384128 :          idata = idata + 1
    2467      384128 :          data_tmp = full_data(idata)
    2468      384128 :          data_tmp = ISHFT(data_tmp, 60)
    2469      384128 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2470             :          pack_tmp = ISHFT(pack_tmp, 0)
    2471      384128 :          pack_tmp = ISHFT(pack_tmp, 0)
    2472      384128 :          ipack = ipack + 1
    2473      384147 :          packed_data(ipack) = pack_tmp
    2474             :       END DO
    2475       24027 :       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       24027 :    END SUBROUTINE ints2bits_4
    2479             : 
    2480             : ! **************************************************************************************************
    2481             : !> \brief ...
    2482             : !> \param Ndata ...
    2483             : !> \param packed_data ...
    2484             : !> \param full_data ...
    2485             : ! **************************************************************************************************
    2486       97628 :    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       97628 :       ipack = 0
    2497       97628 :       idata = 0
    2498       97628 :       pack_tmp = 0
    2499       97628 :       Ndata_rep = (Ndata/64)*64
    2500       97628 :       DO kdata = 1, Ndata_rep, 64
    2501     1560144 :          idata = idata + 1
    2502     1560144 :          data_tmp = ISHFT(pack_tmp, 4)
    2503     1560144 :          ipack = ipack + 1
    2504     1560144 :          pack_tmp = packed_data(ipack)
    2505     1560144 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    2506     1560144 :          pack_tmp = ISHFT(pack_tmp, -4)
    2507     1560144 :          idata = idata + 1
    2508     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2509     1560144 :          full_data(idata) = data_tmp
    2510     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2511     1560144 :          idata = idata + 1
    2512     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2513     1560144 :          full_data(idata) = data_tmp
    2514     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2515     1560144 :          idata = idata + 1
    2516     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2517     1560144 :          full_data(idata) = data_tmp
    2518     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2519     1560144 :          idata = idata + 1
    2520     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2521     1560144 :          full_data(idata) = data_tmp
    2522     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2523     1560144 :          idata = idata + 1
    2524     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2525     1560144 :          full_data(idata) = data_tmp
    2526     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2527     1560144 :          idata = idata + 1
    2528     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2529     1560144 :          full_data(idata) = data_tmp
    2530     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2531     1560144 :          idata = idata + 1
    2532     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2533     1560144 :          full_data(idata) = data_tmp
    2534     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2535     1560144 :          idata = idata + 1
    2536     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2537     1560144 :          full_data(idata) = data_tmp
    2538     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2539     1560144 :          idata = idata + 1
    2540     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2541     1560144 :          full_data(idata) = data_tmp
    2542     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2543     1560144 :          idata = idata + 1
    2544     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2545     1560144 :          full_data(idata) = data_tmp
    2546     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2547     1560144 :          idata = idata + 1
    2548     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2549     1560144 :          full_data(idata) = data_tmp
    2550     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2551     1560144 :          idata = idata + 1
    2552     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2553     1560144 :          full_data(idata) = data_tmp
    2554     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2555     1560144 :          idata = idata + 1
    2556     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2557     1560144 :          full_data(idata) = data_tmp
    2558     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2559     1560144 :          idata = idata + 1
    2560     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2561     1560144 :          full_data(idata) = data_tmp
    2562     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2563     1560144 :          idata = idata + 1
    2564     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2565     1560144 :          full_data(idata) = data_tmp
    2566     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2567     1560144 :          idata = idata + 1
    2568     1560144 :          data_tmp = ISHFT(pack_tmp, 4)
    2569     1560144 :          ipack = ipack + 1
    2570     1560144 :          pack_tmp = packed_data(ipack)
    2571     1560144 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    2572     1560144 :          pack_tmp = ISHFT(pack_tmp, -4)
    2573     1560144 :          idata = idata + 1
    2574     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2575     1560144 :          full_data(idata) = data_tmp
    2576     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2577     1560144 :          idata = idata + 1
    2578     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2579     1560144 :          full_data(idata) = data_tmp
    2580     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2581     1560144 :          idata = idata + 1
    2582     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2583     1560144 :          full_data(idata) = data_tmp
    2584     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2585     1560144 :          idata = idata + 1
    2586     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2587     1560144 :          full_data(idata) = data_tmp
    2588     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2589     1560144 :          idata = idata + 1
    2590     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2591     1560144 :          full_data(idata) = data_tmp
    2592     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2593     1560144 :          idata = idata + 1
    2594     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2595     1560144 :          full_data(idata) = data_tmp
    2596     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2597     1560144 :          idata = idata + 1
    2598     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2599     1560144 :          full_data(idata) = data_tmp
    2600     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2601     1560144 :          idata = idata + 1
    2602     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2603     1560144 :          full_data(idata) = data_tmp
    2604     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2605     1560144 :          idata = idata + 1
    2606     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2607     1560144 :          full_data(idata) = data_tmp
    2608     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2609     1560144 :          idata = idata + 1
    2610     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2611     1560144 :          full_data(idata) = data_tmp
    2612     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2613     1560144 :          idata = idata + 1
    2614     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2615     1560144 :          full_data(idata) = data_tmp
    2616     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2617     1560144 :          idata = idata + 1
    2618     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2619     1560144 :          full_data(idata) = data_tmp
    2620     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2621     1560144 :          idata = idata + 1
    2622     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2623     1560144 :          full_data(idata) = data_tmp
    2624     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2625     1560144 :          idata = idata + 1
    2626     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2627     1560144 :          full_data(idata) = data_tmp
    2628     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2629     1560144 :          idata = idata + 1
    2630     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2631     1560144 :          full_data(idata) = data_tmp
    2632     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2633     1560144 :          idata = idata + 1
    2634     1560144 :          data_tmp = ISHFT(pack_tmp, 4)
    2635     1560144 :          ipack = ipack + 1
    2636     1560144 :          pack_tmp = packed_data(ipack)
    2637     1560144 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    2638     1560144 :          pack_tmp = ISHFT(pack_tmp, -4)
    2639     1560144 :          idata = idata + 1
    2640     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2641     1560144 :          full_data(idata) = data_tmp
    2642     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2643     1560144 :          idata = idata + 1
    2644     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2645     1560144 :          full_data(idata) = data_tmp
    2646     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2647     1560144 :          idata = idata + 1
    2648     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2649     1560144 :          full_data(idata) = data_tmp
    2650     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2651     1560144 :          idata = idata + 1
    2652     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2653     1560144 :          full_data(idata) = data_tmp
    2654     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2655     1560144 :          idata = idata + 1
    2656     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2657     1560144 :          full_data(idata) = data_tmp
    2658     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2659     1560144 :          idata = idata + 1
    2660     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2661     1560144 :          full_data(idata) = data_tmp
    2662     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2663     1560144 :          idata = idata + 1
    2664     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2665     1560144 :          full_data(idata) = data_tmp
    2666     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2667     1560144 :          idata = idata + 1
    2668     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2669     1560144 :          full_data(idata) = data_tmp
    2670     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2671     1560144 :          idata = idata + 1
    2672     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2673     1560144 :          full_data(idata) = data_tmp
    2674     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2675     1560144 :          idata = idata + 1
    2676     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2677     1560144 :          full_data(idata) = data_tmp
    2678     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2679     1560144 :          idata = idata + 1
    2680     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2681     1560144 :          full_data(idata) = data_tmp
    2682     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2683     1560144 :          idata = idata + 1
    2684     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2685     1560144 :          full_data(idata) = data_tmp
    2686     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2687     1560144 :          idata = idata + 1
    2688     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2689     1560144 :          full_data(idata) = data_tmp
    2690     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2691     1560144 :          idata = idata + 1
    2692     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2693     1560144 :          full_data(idata) = data_tmp
    2694     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2695     1560144 :          idata = idata + 1
    2696     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2697     1560144 :          full_data(idata) = data_tmp
    2698     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2699     1560144 :          idata = idata + 1
    2700     1560144 :          data_tmp = ISHFT(pack_tmp, 4)
    2701     1560144 :          ipack = ipack + 1
    2702     1560144 :          pack_tmp = packed_data(ipack)
    2703     1560144 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    2704     1560144 :          pack_tmp = ISHFT(pack_tmp, -4)
    2705     1560144 :          idata = idata + 1
    2706     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2707     1560144 :          full_data(idata) = data_tmp
    2708     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2709     1560144 :          idata = idata + 1
    2710     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2711     1560144 :          full_data(idata) = data_tmp
    2712     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2713     1560144 :          idata = idata + 1
    2714     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2715     1560144 :          full_data(idata) = data_tmp
    2716     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2717     1560144 :          idata = idata + 1
    2718     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2719     1560144 :          full_data(idata) = data_tmp
    2720     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2721     1560144 :          idata = idata + 1
    2722     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2723     1560144 :          full_data(idata) = data_tmp
    2724     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2725     1560144 :          idata = idata + 1
    2726     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2727     1560144 :          full_data(idata) = data_tmp
    2728     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2729     1560144 :          idata = idata + 1
    2730     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2731     1560144 :          full_data(idata) = data_tmp
    2732     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2733     1560144 :          idata = idata + 1
    2734     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2735     1560144 :          full_data(idata) = data_tmp
    2736     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2737     1560144 :          idata = idata + 1
    2738     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2739     1560144 :          full_data(idata) = data_tmp
    2740     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2741     1560144 :          idata = idata + 1
    2742     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2743     1560144 :          full_data(idata) = data_tmp
    2744     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2745     1560144 :          idata = idata + 1
    2746     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2747     1560144 :          full_data(idata) = data_tmp
    2748     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2749     1560144 :          idata = idata + 1
    2750     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2751     1560144 :          full_data(idata) = data_tmp
    2752     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2753     1560144 :          idata = idata + 1
    2754     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2755     1560144 :          full_data(idata) = data_tmp
    2756     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2757     1560144 :          idata = idata + 1
    2758     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2759     1560144 :          full_data(idata) = data_tmp
    2760     1560144 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2761     1560144 :          idata = idata + 1
    2762     1560144 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2763     1560144 :          full_data(idata) = data_tmp
    2764     1560263 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2765             :       END DO
    2766       97628 :       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       97628 :    END SUBROUTINE bits2ints_4
    2770             : 
    2771             : ! **************************************************************************************************
    2772             : !> \brief ...
    2773             : !> \param Ndata ...
    2774             : !> \param packed_data ...
    2775             : !> \param full_data ...
    2776             : ! **************************************************************************************************
    2777       23911 :    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       23911 :       idata = 0
    2788       23911 :       ipack = 0
    2789       23911 :       Ndata_rep = (Ndata/64)*64
    2790       23911 :       DO kdata = 1, Ndata_rep, 64
    2791      382357 :          pack_tmp = 0
    2792      382357 :          idata = idata + 1
    2793      382357 :          data_tmp = full_data(idata)
    2794      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2795      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2796      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2797      382357 :          idata = idata + 1
    2798      382357 :          data_tmp = full_data(idata)
    2799      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2800      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2801      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2802      382357 :          idata = idata + 1
    2803      382357 :          data_tmp = full_data(idata)
    2804      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2805      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2806      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2807      382357 :          idata = idata + 1
    2808      382357 :          data_tmp = full_data(idata)
    2809      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2810      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2811      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2812      382357 :          idata = idata + 1
    2813      382357 :          data_tmp = full_data(idata)
    2814      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2815      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2816      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2817      382357 :          idata = idata + 1
    2818      382357 :          data_tmp = full_data(idata)
    2819      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2820      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2821      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2822      382357 :          idata = idata + 1
    2823      382357 :          data_tmp = full_data(idata)
    2824      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2825      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2826      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2827      382357 :          idata = idata + 1
    2828      382357 :          data_tmp = full_data(idata)
    2829      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2830      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2831      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2832      382357 :          idata = idata + 1
    2833      382357 :          data_tmp = full_data(idata)
    2834      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2835      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2836      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2837      382357 :          idata = idata + 1
    2838      382357 :          data_tmp = full_data(idata)
    2839      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2840      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2841      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2842      382357 :          idata = idata + 1
    2843      382357 :          data_tmp = full_data(idata)
    2844      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2845      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2846      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2847      382357 :          idata = idata + 1
    2848      382357 :          data_tmp = full_data(idata)
    2849      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2850      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2851      382357 :          pack_tmp = ISHFT(pack_tmp, -4)
    2852      382357 :          idata = idata + 1
    2853      382357 :          data_tmp = full_data(idata)
    2854      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2855      382357 :          data_tmp = IAND(data_tmp, mask_left(4))
    2856      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2857      382357 :          ipack = ipack + 1
    2858      382357 :          packed_data(ipack) = pack_tmp
    2859      382357 :          data_tmp = full_data(idata)
    2860      382357 :          pack_tmp = ISHFT(data_tmp, 63)
    2861      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2862      382357 :          idata = idata + 1
    2863      382357 :          data_tmp = full_data(idata)
    2864      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2865      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2866      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2867      382357 :          idata = idata + 1
    2868      382357 :          data_tmp = full_data(idata)
    2869      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2870      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2871      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2872      382357 :          idata = idata + 1
    2873      382357 :          data_tmp = full_data(idata)
    2874      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2875      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2876      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2877      382357 :          idata = idata + 1
    2878      382357 :          data_tmp = full_data(idata)
    2879      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2880      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2881      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2882      382357 :          idata = idata + 1
    2883      382357 :          data_tmp = full_data(idata)
    2884      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2885      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2886      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2887      382357 :          idata = idata + 1
    2888      382357 :          data_tmp = full_data(idata)
    2889      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2890      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2891      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2892      382357 :          idata = idata + 1
    2893      382357 :          data_tmp = full_data(idata)
    2894      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2895      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2896      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2897      382357 :          idata = idata + 1
    2898      382357 :          data_tmp = full_data(idata)
    2899      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2900      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2901      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2902      382357 :          idata = idata + 1
    2903      382357 :          data_tmp = full_data(idata)
    2904      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2905      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2906      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2907      382357 :          idata = idata + 1
    2908      382357 :          data_tmp = full_data(idata)
    2909      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2910      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2911      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2912      382357 :          idata = idata + 1
    2913      382357 :          data_tmp = full_data(idata)
    2914      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2915      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2916      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2917      382357 :          idata = idata + 1
    2918      382357 :          data_tmp = full_data(idata)
    2919      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2920      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2921      382357 :          pack_tmp = ISHFT(pack_tmp, -3)
    2922      382357 :          idata = idata + 1
    2923      382357 :          data_tmp = full_data(idata)
    2924      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2925      382357 :          data_tmp = IAND(data_tmp, mask_left(3))
    2926      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2927      382357 :          ipack = ipack + 1
    2928      382357 :          packed_data(ipack) = pack_tmp
    2929      382357 :          data_tmp = full_data(idata)
    2930      382357 :          pack_tmp = ISHFT(data_tmp, 62)
    2931      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2932      382357 :          idata = idata + 1
    2933      382357 :          data_tmp = full_data(idata)
    2934      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2935      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2936      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2937      382357 :          idata = idata + 1
    2938      382357 :          data_tmp = full_data(idata)
    2939      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2940      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2941      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2942      382357 :          idata = idata + 1
    2943      382357 :          data_tmp = full_data(idata)
    2944      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2945      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2946      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2947      382357 :          idata = idata + 1
    2948      382357 :          data_tmp = full_data(idata)
    2949      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2950      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2951      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2952      382357 :          idata = idata + 1
    2953      382357 :          data_tmp = full_data(idata)
    2954      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2955      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2956      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2957      382357 :          idata = idata + 1
    2958      382357 :          data_tmp = full_data(idata)
    2959      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2960      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2961      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2962      382357 :          idata = idata + 1
    2963      382357 :          data_tmp = full_data(idata)
    2964      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2965      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2966      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2967      382357 :          idata = idata + 1
    2968      382357 :          data_tmp = full_data(idata)
    2969      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2970      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2971      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2972      382357 :          idata = idata + 1
    2973      382357 :          data_tmp = full_data(idata)
    2974      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2975      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2976      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2977      382357 :          idata = idata + 1
    2978      382357 :          data_tmp = full_data(idata)
    2979      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2980      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2981      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2982      382357 :          idata = idata + 1
    2983      382357 :          data_tmp = full_data(idata)
    2984      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2985      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2986      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    2987      382357 :          idata = idata + 1
    2988      382357 :          data_tmp = full_data(idata)
    2989      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2990      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2991      382357 :          pack_tmp = ISHFT(pack_tmp, -2)
    2992      382357 :          idata = idata + 1
    2993      382357 :          data_tmp = full_data(idata)
    2994      382357 :          data_tmp = ISHFT(data_tmp, 59)
    2995      382357 :          data_tmp = IAND(data_tmp, mask_left(2))
    2996      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2997      382357 :          ipack = ipack + 1
    2998      382357 :          packed_data(ipack) = pack_tmp
    2999      382357 :          data_tmp = full_data(idata)
    3000      382357 :          pack_tmp = ISHFT(data_tmp, 61)
    3001      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3002      382357 :          idata = idata + 1
    3003      382357 :          data_tmp = full_data(idata)
    3004      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3005      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3006      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3007      382357 :          idata = idata + 1
    3008      382357 :          data_tmp = full_data(idata)
    3009      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3010      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3011      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3012      382357 :          idata = idata + 1
    3013      382357 :          data_tmp = full_data(idata)
    3014      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3015      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3016      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3017      382357 :          idata = idata + 1
    3018      382357 :          data_tmp = full_data(idata)
    3019      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3020      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3021      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3022      382357 :          idata = idata + 1
    3023      382357 :          data_tmp = full_data(idata)
    3024      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3025      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3026      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3027      382357 :          idata = idata + 1
    3028      382357 :          data_tmp = full_data(idata)
    3029      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3030      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3031      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3032      382357 :          idata = idata + 1
    3033      382357 :          data_tmp = full_data(idata)
    3034      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3035      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3036      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3037      382357 :          idata = idata + 1
    3038      382357 :          data_tmp = full_data(idata)
    3039      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3040      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3041      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3042      382357 :          idata = idata + 1
    3043      382357 :          data_tmp = full_data(idata)
    3044      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3045      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3046      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3047      382357 :          idata = idata + 1
    3048      382357 :          data_tmp = full_data(idata)
    3049      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3050      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3051      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3052      382357 :          idata = idata + 1
    3053      382357 :          data_tmp = full_data(idata)
    3054      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3055      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3056      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3057      382357 :          idata = idata + 1
    3058      382357 :          data_tmp = full_data(idata)
    3059      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3060      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3061      382357 :          pack_tmp = ISHFT(pack_tmp, -1)
    3062      382357 :          idata = idata + 1
    3063      382357 :          data_tmp = full_data(idata)
    3064      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3065      382357 :          data_tmp = IAND(data_tmp, mask_left(1))
    3066      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3067      382357 :          ipack = ipack + 1
    3068      382357 :          packed_data(ipack) = pack_tmp
    3069      382357 :          data_tmp = full_data(idata)
    3070      382357 :          pack_tmp = ISHFT(data_tmp, 60)
    3071      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3072      382357 :          idata = idata + 1
    3073      382357 :          data_tmp = full_data(idata)
    3074      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3075      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3076      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3077      382357 :          idata = idata + 1
    3078      382357 :          data_tmp = full_data(idata)
    3079      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3080      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3081      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3082      382357 :          idata = idata + 1
    3083      382357 :          data_tmp = full_data(idata)
    3084      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3085      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3086      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3087      382357 :          idata = idata + 1
    3088      382357 :          data_tmp = full_data(idata)
    3089      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3090      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3091      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3092      382357 :          idata = idata + 1
    3093      382357 :          data_tmp = full_data(idata)
    3094      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3095      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3096      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3097      382357 :          idata = idata + 1
    3098      382357 :          data_tmp = full_data(idata)
    3099      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3100      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3101      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3102      382357 :          idata = idata + 1
    3103      382357 :          data_tmp = full_data(idata)
    3104      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3105      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3106      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3107      382357 :          idata = idata + 1
    3108      382357 :          data_tmp = full_data(idata)
    3109      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3110      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3111      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3112      382357 :          idata = idata + 1
    3113      382357 :          data_tmp = full_data(idata)
    3114      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3115      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3116      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3117      382357 :          idata = idata + 1
    3118      382357 :          data_tmp = full_data(idata)
    3119      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3120      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3121      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3122      382357 :          idata = idata + 1
    3123      382357 :          data_tmp = full_data(idata)
    3124      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3125      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3126      382357 :          pack_tmp = ISHFT(pack_tmp, -5)
    3127      382357 :          idata = idata + 1
    3128      382357 :          data_tmp = full_data(idata)
    3129      382357 :          data_tmp = ISHFT(data_tmp, 59)
    3130      382357 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3131             :          pack_tmp = ISHFT(pack_tmp, 0)
    3132      382357 :          pack_tmp = ISHFT(pack_tmp, 0)
    3133      382357 :          ipack = ipack + 1
    3134      382358 :          packed_data(ipack) = pack_tmp
    3135             :       END DO
    3136       23911 :       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       23911 :    END SUBROUTINE ints2bits_5
    3140             : 
    3141             : ! **************************************************************************************************
    3142             : !> \brief ...
    3143             : !> \param Ndata ...
    3144             : !> \param packed_data ...
    3145             : !> \param full_data ...
    3146             : ! **************************************************************************************************
    3147       96652 :    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       96652 :       ipack = 0
    3158       96652 :       idata = 0
    3159       96652 :       pack_tmp = 0
    3160       96652 :       Ndata_rep = (Ndata/64)*64
    3161       96652 :       DO kdata = 1, Ndata_rep, 64
    3162     1545324 :          idata = idata + 1
    3163     1545324 :          data_tmp = ISHFT(pack_tmp, 5)
    3164     1545324 :          ipack = ipack + 1
    3165     1545324 :          pack_tmp = packed_data(ipack)
    3166     1545324 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
    3167     1545324 :          pack_tmp = ISHFT(pack_tmp, -5)
    3168     1545324 :          idata = idata + 1
    3169     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3170     1545324 :          full_data(idata) = data_tmp
    3171     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3172     1545324 :          idata = idata + 1
    3173     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3174     1545324 :          full_data(idata) = data_tmp
    3175     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3176     1545324 :          idata = idata + 1
    3177     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3178     1545324 :          full_data(idata) = data_tmp
    3179     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3180     1545324 :          idata = idata + 1
    3181     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3182     1545324 :          full_data(idata) = data_tmp
    3183     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3184     1545324 :          idata = idata + 1
    3185     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3186     1545324 :          full_data(idata) = data_tmp
    3187     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3188     1545324 :          idata = idata + 1
    3189     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3190     1545324 :          full_data(idata) = data_tmp
    3191     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3192     1545324 :          idata = idata + 1
    3193     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3194     1545324 :          full_data(idata) = data_tmp
    3195     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3196     1545324 :          idata = idata + 1
    3197     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3198     1545324 :          full_data(idata) = data_tmp
    3199     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3200     1545324 :          idata = idata + 1
    3201     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3202     1545324 :          full_data(idata) = data_tmp
    3203     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3204     1545324 :          idata = idata + 1
    3205     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3206     1545324 :          full_data(idata) = data_tmp
    3207     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3208     1545324 :          idata = idata + 1
    3209     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3210     1545324 :          full_data(idata) = data_tmp
    3211     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3212     1545324 :          idata = idata + 1
    3213     1545324 :          data_tmp = ISHFT(pack_tmp, 1)
    3214     1545324 :          ipack = ipack + 1
    3215     1545324 :          pack_tmp = packed_data(ipack)
    3216     1545324 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    3217     1545324 :          pack_tmp = ISHFT(pack_tmp, -1)
    3218     1545324 :          idata = idata + 1
    3219     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3220     1545324 :          full_data(idata) = data_tmp
    3221     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3222     1545324 :          idata = idata + 1
    3223     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3224     1545324 :          full_data(idata) = data_tmp
    3225     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3226     1545324 :          idata = idata + 1
    3227     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3228     1545324 :          full_data(idata) = data_tmp
    3229     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3230     1545324 :          idata = idata + 1
    3231     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3232     1545324 :          full_data(idata) = data_tmp
    3233     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3234     1545324 :          idata = idata + 1
    3235     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3236     1545324 :          full_data(idata) = data_tmp
    3237     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3238     1545324 :          idata = idata + 1
    3239     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3240     1545324 :          full_data(idata) = data_tmp
    3241     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3242     1545324 :          idata = idata + 1
    3243     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3244     1545324 :          full_data(idata) = data_tmp
    3245     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3246     1545324 :          idata = idata + 1
    3247     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3248     1545324 :          full_data(idata) = data_tmp
    3249     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3250     1545324 :          idata = idata + 1
    3251     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3252     1545324 :          full_data(idata) = data_tmp
    3253     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3254     1545324 :          idata = idata + 1
    3255     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3256     1545324 :          full_data(idata) = data_tmp
    3257     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3258     1545324 :          idata = idata + 1
    3259     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3260     1545324 :          full_data(idata) = data_tmp
    3261     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3262     1545324 :          idata = idata + 1
    3263     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3264     1545324 :          full_data(idata) = data_tmp
    3265     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3266     1545324 :          idata = idata + 1
    3267     1545324 :          data_tmp = ISHFT(pack_tmp, 2)
    3268     1545324 :          ipack = ipack + 1
    3269     1545324 :          pack_tmp = packed_data(ipack)
    3270     1545324 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    3271     1545324 :          pack_tmp = ISHFT(pack_tmp, -2)
    3272     1545324 :          idata = idata + 1
    3273     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3274     1545324 :          full_data(idata) = data_tmp
    3275     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3276     1545324 :          idata = idata + 1
    3277     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3278     1545324 :          full_data(idata) = data_tmp
    3279     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3280     1545324 :          idata = idata + 1
    3281     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3282     1545324 :          full_data(idata) = data_tmp
    3283     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3284     1545324 :          idata = idata + 1
    3285     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3286     1545324 :          full_data(idata) = data_tmp
    3287     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3288     1545324 :          idata = idata + 1
    3289     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3290     1545324 :          full_data(idata) = data_tmp
    3291     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3292     1545324 :          idata = idata + 1
    3293     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3294     1545324 :          full_data(idata) = data_tmp
    3295     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3296     1545324 :          idata = idata + 1
    3297     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3298     1545324 :          full_data(idata) = data_tmp
    3299     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3300     1545324 :          idata = idata + 1
    3301     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3302     1545324 :          full_data(idata) = data_tmp
    3303     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3304     1545324 :          idata = idata + 1
    3305     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3306     1545324 :          full_data(idata) = data_tmp
    3307     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3308     1545324 :          idata = idata + 1
    3309     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3310     1545324 :          full_data(idata) = data_tmp
    3311     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3312     1545324 :          idata = idata + 1
    3313     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3314     1545324 :          full_data(idata) = data_tmp
    3315     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3316     1545324 :          idata = idata + 1
    3317     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3318     1545324 :          full_data(idata) = data_tmp
    3319     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3320     1545324 :          idata = idata + 1
    3321     1545324 :          data_tmp = ISHFT(pack_tmp, 3)
    3322     1545324 :          ipack = ipack + 1
    3323     1545324 :          pack_tmp = packed_data(ipack)
    3324     1545324 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    3325     1545324 :          pack_tmp = ISHFT(pack_tmp, -3)
    3326     1545324 :          idata = idata + 1
    3327     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3328     1545324 :          full_data(idata) = data_tmp
    3329     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3330     1545324 :          idata = idata + 1
    3331     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3332     1545324 :          full_data(idata) = data_tmp
    3333     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3334     1545324 :          idata = idata + 1
    3335     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3336     1545324 :          full_data(idata) = data_tmp
    3337     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3338     1545324 :          idata = idata + 1
    3339     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3340     1545324 :          full_data(idata) = data_tmp
    3341     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3342     1545324 :          idata = idata + 1
    3343     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3344     1545324 :          full_data(idata) = data_tmp
    3345     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3346     1545324 :          idata = idata + 1
    3347     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3348     1545324 :          full_data(idata) = data_tmp
    3349     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3350     1545324 :          idata = idata + 1
    3351     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3352     1545324 :          full_data(idata) = data_tmp
    3353     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3354     1545324 :          idata = idata + 1
    3355     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3356     1545324 :          full_data(idata) = data_tmp
    3357     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3358     1545324 :          idata = idata + 1
    3359     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3360     1545324 :          full_data(idata) = data_tmp
    3361     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3362     1545324 :          idata = idata + 1
    3363     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3364     1545324 :          full_data(idata) = data_tmp
    3365     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3366     1545324 :          idata = idata + 1
    3367     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3368     1545324 :          full_data(idata) = data_tmp
    3369     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3370     1545324 :          idata = idata + 1
    3371     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3372     1545324 :          full_data(idata) = data_tmp
    3373     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3374     1545324 :          idata = idata + 1
    3375     1545324 :          data_tmp = ISHFT(pack_tmp, 4)
    3376     1545324 :          ipack = ipack + 1
    3377     1545324 :          pack_tmp = packed_data(ipack)
    3378     1545324 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    3379     1545324 :          pack_tmp = ISHFT(pack_tmp, -4)
    3380     1545324 :          idata = idata + 1
    3381     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3382     1545324 :          full_data(idata) = data_tmp
    3383     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3384     1545324 :          idata = idata + 1
    3385     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3386     1545324 :          full_data(idata) = data_tmp
    3387     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3388     1545324 :          idata = idata + 1
    3389     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3390     1545324 :          full_data(idata) = data_tmp
    3391     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3392     1545324 :          idata = idata + 1
    3393     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3394     1545324 :          full_data(idata) = data_tmp
    3395     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3396     1545324 :          idata = idata + 1
    3397     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3398     1545324 :          full_data(idata) = data_tmp
    3399     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3400     1545324 :          idata = idata + 1
    3401     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3402     1545324 :          full_data(idata) = data_tmp
    3403     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3404     1545324 :          idata = idata + 1
    3405     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3406     1545324 :          full_data(idata) = data_tmp
    3407     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3408     1545324 :          idata = idata + 1
    3409     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3410     1545324 :          full_data(idata) = data_tmp
    3411     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3412     1545324 :          idata = idata + 1
    3413     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3414     1545324 :          full_data(idata) = data_tmp
    3415     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3416     1545324 :          idata = idata + 1
    3417     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3418     1545324 :          full_data(idata) = data_tmp
    3419     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3420     1545324 :          idata = idata + 1
    3421     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3422     1545324 :          full_data(idata) = data_tmp
    3423     1545324 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3424     1545324 :          idata = idata + 1
    3425     1545324 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3426     1545324 :          full_data(idata) = data_tmp
    3427     1545331 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3428             :       END DO
    3429       96652 :       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       96652 :    END SUBROUTINE bits2ints_5
    3433             : 
    3434             : ! **************************************************************************************************
    3435             : !> \brief ...
    3436             : !> \param Ndata ...
    3437             : !> \param packed_data ...
    3438             : !> \param full_data ...
    3439             : ! **************************************************************************************************
    3440       51515 :    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       51515 :       idata = 0
    3451       51515 :       ipack = 0
    3452       51515 :       Ndata_rep = (Ndata/64)*64
    3453       51515 :       DO kdata = 1, Ndata_rep, 64
    3454      820500 :          pack_tmp = 0
    3455      820500 :          idata = idata + 1
    3456      820500 :          data_tmp = full_data(idata)
    3457      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3458      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3459      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3460      820500 :          idata = idata + 1
    3461      820500 :          data_tmp = full_data(idata)
    3462      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3463      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3464      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3465      820500 :          idata = idata + 1
    3466      820500 :          data_tmp = full_data(idata)
    3467      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3468      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3469      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3470      820500 :          idata = idata + 1
    3471      820500 :          data_tmp = full_data(idata)
    3472      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3473      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3474      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3475      820500 :          idata = idata + 1
    3476      820500 :          data_tmp = full_data(idata)
    3477      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3478      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3479      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3480      820500 :          idata = idata + 1
    3481      820500 :          data_tmp = full_data(idata)
    3482      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3483      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3484      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3485      820500 :          idata = idata + 1
    3486      820500 :          data_tmp = full_data(idata)
    3487      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3488      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3489      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3490      820500 :          idata = idata + 1
    3491      820500 :          data_tmp = full_data(idata)
    3492      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3493      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3494      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3495      820500 :          idata = idata + 1
    3496      820500 :          data_tmp = full_data(idata)
    3497      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3498      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3499      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3500      820500 :          idata = idata + 1
    3501      820500 :          data_tmp = full_data(idata)
    3502      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3503      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3504      820500 :          pack_tmp = ISHFT(pack_tmp, -4)
    3505      820500 :          idata = idata + 1
    3506      820500 :          data_tmp = full_data(idata)
    3507      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3508      820500 :          data_tmp = IAND(data_tmp, mask_left(4))
    3509      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3510      820500 :          ipack = ipack + 1
    3511      820500 :          packed_data(ipack) = pack_tmp
    3512      820500 :          data_tmp = full_data(idata)
    3513      820500 :          pack_tmp = ISHFT(data_tmp, 62)
    3514      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3515      820500 :          idata = idata + 1
    3516      820500 :          data_tmp = full_data(idata)
    3517      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3518      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3519      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3520      820500 :          idata = idata + 1
    3521      820500 :          data_tmp = full_data(idata)
    3522      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3523      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3524      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3525      820500 :          idata = idata + 1
    3526      820500 :          data_tmp = full_data(idata)
    3527      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3528      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3529      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3530      820500 :          idata = idata + 1
    3531      820500 :          data_tmp = full_data(idata)
    3532      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3533      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3534      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3535      820500 :          idata = idata + 1
    3536      820500 :          data_tmp = full_data(idata)
    3537      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3538      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3539      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3540      820500 :          idata = idata + 1
    3541      820500 :          data_tmp = full_data(idata)
    3542      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3543      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3544      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3545      820500 :          idata = idata + 1
    3546      820500 :          data_tmp = full_data(idata)
    3547      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3548      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3549      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3550      820500 :          idata = idata + 1
    3551      820500 :          data_tmp = full_data(idata)
    3552      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3553      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3554      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3555      820500 :          idata = idata + 1
    3556      820500 :          data_tmp = full_data(idata)
    3557      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3558      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3559      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3560      820500 :          idata = idata + 1
    3561      820500 :          data_tmp = full_data(idata)
    3562      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3563      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3564      820500 :          pack_tmp = ISHFT(pack_tmp, -2)
    3565      820500 :          idata = idata + 1
    3566      820500 :          data_tmp = full_data(idata)
    3567      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3568      820500 :          data_tmp = IAND(data_tmp, mask_left(2))
    3569      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3570      820500 :          ipack = ipack + 1
    3571      820500 :          packed_data(ipack) = pack_tmp
    3572      820500 :          data_tmp = full_data(idata)
    3573      820500 :          pack_tmp = ISHFT(data_tmp, 60)
    3574      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3575      820500 :          idata = idata + 1
    3576      820500 :          data_tmp = full_data(idata)
    3577      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3578      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3579      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3580      820500 :          idata = idata + 1
    3581      820500 :          data_tmp = full_data(idata)
    3582      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3583      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3584      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3585      820500 :          idata = idata + 1
    3586      820500 :          data_tmp = full_data(idata)
    3587      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3588      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3589      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3590      820500 :          idata = idata + 1
    3591      820500 :          data_tmp = full_data(idata)
    3592      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3593      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3594      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3595      820500 :          idata = idata + 1
    3596      820500 :          data_tmp = full_data(idata)
    3597      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3598      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3599      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3600      820500 :          idata = idata + 1
    3601      820500 :          data_tmp = full_data(idata)
    3602      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3603      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3604      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3605      820500 :          idata = idata + 1
    3606      820500 :          data_tmp = full_data(idata)
    3607      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3608      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3609      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3610      820500 :          idata = idata + 1
    3611      820500 :          data_tmp = full_data(idata)
    3612      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3613      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3614      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3615      820500 :          idata = idata + 1
    3616      820500 :          data_tmp = full_data(idata)
    3617      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3618      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3619      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3620      820500 :          idata = idata + 1
    3621      820500 :          data_tmp = full_data(idata)
    3622      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3623      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3624      820500 :          pack_tmp = ISHFT(pack_tmp, 0)
    3625      820500 :          idata = idata + 1
    3626      820500 :          data_tmp = full_data(idata)
    3627             :          data_tmp = ISHFT(data_tmp, 58)
    3628      820500 :          data_tmp = IAND(data_tmp, mask_left(0))
    3629      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3630      820500 :          ipack = ipack + 1
    3631      820500 :          packed_data(ipack) = pack_tmp
    3632      820500 :          data_tmp = full_data(idata)
    3633      820500 :          pack_tmp = ISHFT(data_tmp, 58)
    3634      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3635      820500 :          idata = idata + 1
    3636      820500 :          data_tmp = full_data(idata)
    3637      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3638      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3639      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3640      820500 :          idata = idata + 1
    3641      820500 :          data_tmp = full_data(idata)
    3642      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3643      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3644      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3645      820500 :          idata = idata + 1
    3646      820500 :          data_tmp = full_data(idata)
    3647      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3648      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3649      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3650      820500 :          idata = idata + 1
    3651      820500 :          data_tmp = full_data(idata)
    3652      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3653      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3654      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3655      820500 :          idata = idata + 1
    3656      820500 :          data_tmp = full_data(idata)
    3657      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3658      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3659      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3660      820500 :          idata = idata + 1
    3661      820500 :          data_tmp = full_data(idata)
    3662      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3663      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3664      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3665      820500 :          idata = idata + 1
    3666      820500 :          data_tmp = full_data(idata)
    3667      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3668      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3669      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3670      820500 :          idata = idata + 1
    3671      820500 :          data_tmp = full_data(idata)
    3672      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3673      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3674      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3675      820500 :          idata = idata + 1
    3676      820500 :          data_tmp = full_data(idata)
    3677      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3678      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3679      820500 :          pack_tmp = ISHFT(pack_tmp, -4)
    3680      820500 :          idata = idata + 1
    3681      820500 :          data_tmp = full_data(idata)
    3682      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3683      820500 :          data_tmp = IAND(data_tmp, mask_left(4))
    3684      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3685      820500 :          ipack = ipack + 1
    3686      820500 :          packed_data(ipack) = pack_tmp
    3687      820500 :          data_tmp = full_data(idata)
    3688      820500 :          pack_tmp = ISHFT(data_tmp, 62)
    3689      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3690      820500 :          idata = idata + 1
    3691      820500 :          data_tmp = full_data(idata)
    3692      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3693      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3694      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3695      820500 :          idata = idata + 1
    3696      820500 :          data_tmp = full_data(idata)
    3697      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3698      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3699      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3700      820500 :          idata = idata + 1
    3701      820500 :          data_tmp = full_data(idata)
    3702      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3703      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3704      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3705      820500 :          idata = idata + 1
    3706      820500 :          data_tmp = full_data(idata)
    3707      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3708      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3709      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3710      820500 :          idata = idata + 1
    3711      820500 :          data_tmp = full_data(idata)
    3712      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3713      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3714      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3715      820500 :          idata = idata + 1
    3716      820500 :          data_tmp = full_data(idata)
    3717      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3718      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3719      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3720      820500 :          idata = idata + 1
    3721      820500 :          data_tmp = full_data(idata)
    3722      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3723      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3724      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3725      820500 :          idata = idata + 1
    3726      820500 :          data_tmp = full_data(idata)
    3727      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3728      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3729      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3730      820500 :          idata = idata + 1
    3731      820500 :          data_tmp = full_data(idata)
    3732      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3733      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3734      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3735      820500 :          idata = idata + 1
    3736      820500 :          data_tmp = full_data(idata)
    3737      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3738      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3739      820500 :          pack_tmp = ISHFT(pack_tmp, -2)
    3740      820500 :          idata = idata + 1
    3741      820500 :          data_tmp = full_data(idata)
    3742      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3743      820500 :          data_tmp = IAND(data_tmp, mask_left(2))
    3744      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3745      820500 :          ipack = ipack + 1
    3746      820500 :          packed_data(ipack) = pack_tmp
    3747      820500 :          data_tmp = full_data(idata)
    3748      820500 :          pack_tmp = ISHFT(data_tmp, 60)
    3749      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3750      820500 :          idata = idata + 1
    3751      820500 :          data_tmp = full_data(idata)
    3752      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3753      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3754      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3755      820500 :          idata = idata + 1
    3756      820500 :          data_tmp = full_data(idata)
    3757      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3758      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3759      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3760      820500 :          idata = idata + 1
    3761      820500 :          data_tmp = full_data(idata)
    3762      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3763      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3764      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3765      820500 :          idata = idata + 1
    3766      820500 :          data_tmp = full_data(idata)
    3767      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3768      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3769      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3770      820500 :          idata = idata + 1
    3771      820500 :          data_tmp = full_data(idata)
    3772      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3773      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3774      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3775      820500 :          idata = idata + 1
    3776      820500 :          data_tmp = full_data(idata)
    3777      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3778      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3779      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3780      820500 :          idata = idata + 1
    3781      820500 :          data_tmp = full_data(idata)
    3782      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3783      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3784      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3785      820500 :          idata = idata + 1
    3786      820500 :          data_tmp = full_data(idata)
    3787      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3788      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3789      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3790      820500 :          idata = idata + 1
    3791      820500 :          data_tmp = full_data(idata)
    3792      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3793      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3794      820500 :          pack_tmp = ISHFT(pack_tmp, -6)
    3795      820500 :          idata = idata + 1
    3796      820500 :          data_tmp = full_data(idata)
    3797      820500 :          data_tmp = ISHFT(data_tmp, 58)
    3798      820500 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3799             :          pack_tmp = ISHFT(pack_tmp, 0)
    3800      820500 :          pack_tmp = ISHFT(pack_tmp, 0)
    3801      820500 :          ipack = ipack + 1
    3802      820529 :          packed_data(ipack) = pack_tmp
    3803             :       END DO
    3804       51515 :       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       51515 :    END SUBROUTINE ints2bits_6
    3808             : 
    3809             : ! **************************************************************************************************
    3810             : !> \brief ...
    3811             : !> \param Ndata ...
    3812             : !> \param packed_data ...
    3813             : !> \param full_data ...
    3814             : ! **************************************************************************************************
    3815      245707 :    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      245707 :       ipack = 0
    3826      245707 :       idata = 0
    3827      245707 :       pack_tmp = 0
    3828      245707 :       Ndata_rep = (Ndata/64)*64
    3829      245707 :       DO kdata = 1, Ndata_rep, 64
    3830     3898043 :          idata = idata + 1
    3831     3898043 :          data_tmp = ISHFT(pack_tmp, 6)
    3832     3898043 :          ipack = ipack + 1
    3833     3898043 :          pack_tmp = packed_data(ipack)
    3834     3898043 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    3835     3898043 :          pack_tmp = ISHFT(pack_tmp, -6)
    3836     3898043 :          idata = idata + 1
    3837     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3838     3898043 :          full_data(idata) = data_tmp
    3839     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3840     3898043 :          idata = idata + 1
    3841     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3842     3898043 :          full_data(idata) = data_tmp
    3843     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3844     3898043 :          idata = idata + 1
    3845     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3846     3898043 :          full_data(idata) = data_tmp
    3847     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3848     3898043 :          idata = idata + 1
    3849     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3850     3898043 :          full_data(idata) = data_tmp
    3851     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3852     3898043 :          idata = idata + 1
    3853     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3854     3898043 :          full_data(idata) = data_tmp
    3855     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3856     3898043 :          idata = idata + 1
    3857     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3858     3898043 :          full_data(idata) = data_tmp
    3859     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3860     3898043 :          idata = idata + 1
    3861     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3862     3898043 :          full_data(idata) = data_tmp
    3863     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3864     3898043 :          idata = idata + 1
    3865     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3866     3898043 :          full_data(idata) = data_tmp
    3867     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3868     3898043 :          idata = idata + 1
    3869     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3870     3898043 :          full_data(idata) = data_tmp
    3871     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3872     3898043 :          idata = idata + 1
    3873     3898043 :          data_tmp = ISHFT(pack_tmp, 2)
    3874     3898043 :          ipack = ipack + 1
    3875     3898043 :          pack_tmp = packed_data(ipack)
    3876     3898043 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    3877     3898043 :          pack_tmp = ISHFT(pack_tmp, -2)
    3878     3898043 :          idata = idata + 1
    3879     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3880     3898043 :          full_data(idata) = data_tmp
    3881     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3882     3898043 :          idata = idata + 1
    3883     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3884     3898043 :          full_data(idata) = data_tmp
    3885     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3886     3898043 :          idata = idata + 1
    3887     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3888     3898043 :          full_data(idata) = data_tmp
    3889     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3890     3898043 :          idata = idata + 1
    3891     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3892     3898043 :          full_data(idata) = data_tmp
    3893     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3894     3898043 :          idata = idata + 1
    3895     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3896     3898043 :          full_data(idata) = data_tmp
    3897     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3898     3898043 :          idata = idata + 1
    3899     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3900     3898043 :          full_data(idata) = data_tmp
    3901     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3902     3898043 :          idata = idata + 1
    3903     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3904     3898043 :          full_data(idata) = data_tmp
    3905     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3906     3898043 :          idata = idata + 1
    3907     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3908     3898043 :          full_data(idata) = data_tmp
    3909     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3910     3898043 :          idata = idata + 1
    3911     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3912     3898043 :          full_data(idata) = data_tmp
    3913     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3914     3898043 :          idata = idata + 1
    3915     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3916     3898043 :          full_data(idata) = data_tmp
    3917     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3918     3898043 :          idata = idata + 1
    3919     3898043 :          data_tmp = ISHFT(pack_tmp, 4)
    3920     3898043 :          ipack = ipack + 1
    3921     3898043 :          pack_tmp = packed_data(ipack)
    3922     3898043 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    3923     3898043 :          pack_tmp = ISHFT(pack_tmp, -4)
    3924     3898043 :          idata = idata + 1
    3925     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3926     3898043 :          full_data(idata) = data_tmp
    3927     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3928     3898043 :          idata = idata + 1
    3929     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3930     3898043 :          full_data(idata) = data_tmp
    3931     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3932     3898043 :          idata = idata + 1
    3933     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3934     3898043 :          full_data(idata) = data_tmp
    3935     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3936     3898043 :          idata = idata + 1
    3937     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3938     3898043 :          full_data(idata) = data_tmp
    3939     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3940     3898043 :          idata = idata + 1
    3941     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3942     3898043 :          full_data(idata) = data_tmp
    3943     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3944     3898043 :          idata = idata + 1
    3945     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3946     3898043 :          full_data(idata) = data_tmp
    3947     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3948     3898043 :          idata = idata + 1
    3949     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3950     3898043 :          full_data(idata) = data_tmp
    3951     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3952     3898043 :          idata = idata + 1
    3953     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3954     3898043 :          full_data(idata) = data_tmp
    3955     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3956     3898043 :          idata = idata + 1
    3957     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3958     3898043 :          full_data(idata) = data_tmp
    3959     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3960     3898043 :          idata = idata + 1
    3961     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3962     3898043 :          full_data(idata) = data_tmp
    3963     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3964     3898043 :          idata = idata + 1
    3965     3898043 :          data_tmp = ISHFT(pack_tmp, 6)
    3966     3898043 :          ipack = ipack + 1
    3967     3898043 :          pack_tmp = packed_data(ipack)
    3968     3898043 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    3969     3898043 :          pack_tmp = ISHFT(pack_tmp, -6)
    3970     3898043 :          idata = idata + 1
    3971     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3972     3898043 :          full_data(idata) = data_tmp
    3973     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3974     3898043 :          idata = idata + 1
    3975     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3976     3898043 :          full_data(idata) = data_tmp
    3977     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3978     3898043 :          idata = idata + 1
    3979     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3980     3898043 :          full_data(idata) = data_tmp
    3981     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3982     3898043 :          idata = idata + 1
    3983     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3984     3898043 :          full_data(idata) = data_tmp
    3985     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3986     3898043 :          idata = idata + 1
    3987     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3988     3898043 :          full_data(idata) = data_tmp
    3989     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3990     3898043 :          idata = idata + 1
    3991     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3992     3898043 :          full_data(idata) = data_tmp
    3993     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3994     3898043 :          idata = idata + 1
    3995     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3996     3898043 :          full_data(idata) = data_tmp
    3997     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3998     3898043 :          idata = idata + 1
    3999     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4000     3898043 :          full_data(idata) = data_tmp
    4001     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4002     3898043 :          idata = idata + 1
    4003     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4004     3898043 :          full_data(idata) = data_tmp
    4005     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4006     3898043 :          idata = idata + 1
    4007     3898043 :          data_tmp = ISHFT(pack_tmp, 2)
    4008     3898043 :          ipack = ipack + 1
    4009     3898043 :          pack_tmp = packed_data(ipack)
    4010     3898043 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    4011     3898043 :          pack_tmp = ISHFT(pack_tmp, -2)
    4012     3898043 :          idata = idata + 1
    4013     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4014     3898043 :          full_data(idata) = data_tmp
    4015     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4016     3898043 :          idata = idata + 1
    4017     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4018     3898043 :          full_data(idata) = data_tmp
    4019     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4020     3898043 :          idata = idata + 1
    4021     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4022     3898043 :          full_data(idata) = data_tmp
    4023     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4024     3898043 :          idata = idata + 1
    4025     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4026     3898043 :          full_data(idata) = data_tmp
    4027     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4028     3898043 :          idata = idata + 1
    4029     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4030     3898043 :          full_data(idata) = data_tmp
    4031     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4032     3898043 :          idata = idata + 1
    4033     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4034     3898043 :          full_data(idata) = data_tmp
    4035     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4036     3898043 :          idata = idata + 1
    4037     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4038     3898043 :          full_data(idata) = data_tmp
    4039     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4040     3898043 :          idata = idata + 1
    4041     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4042     3898043 :          full_data(idata) = data_tmp
    4043     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4044     3898043 :          idata = idata + 1
    4045     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4046     3898043 :          full_data(idata) = data_tmp
    4047     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4048     3898043 :          idata = idata + 1
    4049     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4050     3898043 :          full_data(idata) = data_tmp
    4051     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4052     3898043 :          idata = idata + 1
    4053     3898043 :          data_tmp = ISHFT(pack_tmp, 4)
    4054     3898043 :          ipack = ipack + 1
    4055     3898043 :          pack_tmp = packed_data(ipack)
    4056     3898043 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    4057     3898043 :          pack_tmp = ISHFT(pack_tmp, -4)
    4058     3898043 :          idata = idata + 1
    4059     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4060     3898043 :          full_data(idata) = data_tmp
    4061     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4062     3898043 :          idata = idata + 1
    4063     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4064     3898043 :          full_data(idata) = data_tmp
    4065     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4066     3898043 :          idata = idata + 1
    4067     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4068     3898043 :          full_data(idata) = data_tmp
    4069     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4070     3898043 :          idata = idata + 1
    4071     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4072     3898043 :          full_data(idata) = data_tmp
    4073     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4074     3898043 :          idata = idata + 1
    4075     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4076     3898043 :          full_data(idata) = data_tmp
    4077     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4078     3898043 :          idata = idata + 1
    4079     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4080     3898043 :          full_data(idata) = data_tmp
    4081     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4082     3898043 :          idata = idata + 1
    4083     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4084     3898043 :          full_data(idata) = data_tmp
    4085     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4086     3898043 :          idata = idata + 1
    4087     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4088     3898043 :          full_data(idata) = data_tmp
    4089     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4090     3898043 :          idata = idata + 1
    4091     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4092     3898043 :          full_data(idata) = data_tmp
    4093     3898043 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4094     3898043 :          idata = idata + 1
    4095     3898043 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4096     3898043 :          full_data(idata) = data_tmp
    4097     3898256 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4098             :       END DO
    4099      245707 :       IF (Ndata_rep < Ndata) THEN
    4100        3914 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    4101             :       END IF
    4102      245707 :    END SUBROUTINE bits2ints_6
    4103             : 
    4104             : ! **************************************************************************************************
    4105             : !> \brief ...
    4106             : !> \param Ndata ...
    4107             : !> \param packed_data ...
    4108             : !> \param full_data ...
    4109             : ! **************************************************************************************************
    4110       24032 :    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       24032 :       idata = 0
    4121       24032 :       ipack = 0
    4122       24032 :       Ndata_rep = (Ndata/64)*64
    4123       24032 :       DO kdata = 1, Ndata_rep, 64
    4124      383970 :          pack_tmp = 0
    4125      383970 :          idata = idata + 1
    4126      383970 :          data_tmp = full_data(idata)
    4127      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4128      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4129      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4130      383970 :          idata = idata + 1
    4131      383970 :          data_tmp = full_data(idata)
    4132      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4133      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4134      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4135      383970 :          idata = idata + 1
    4136      383970 :          data_tmp = full_data(idata)
    4137      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4138      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4139      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4140      383970 :          idata = idata + 1
    4141      383970 :          data_tmp = full_data(idata)
    4142      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4143      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4144      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4145      383970 :          idata = idata + 1
    4146      383970 :          data_tmp = full_data(idata)
    4147      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4148      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4149      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4150      383970 :          idata = idata + 1
    4151      383970 :          data_tmp = full_data(idata)
    4152      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4153      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4154      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4155      383970 :          idata = idata + 1
    4156      383970 :          data_tmp = full_data(idata)
    4157      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4158      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4159      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4160      383970 :          idata = idata + 1
    4161      383970 :          data_tmp = full_data(idata)
    4162      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4163      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4164      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4165      383970 :          idata = idata + 1
    4166      383970 :          data_tmp = full_data(idata)
    4167      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4168      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4169      383970 :          pack_tmp = ISHFT(pack_tmp, -1)
    4170      383970 :          idata = idata + 1
    4171      383970 :          data_tmp = full_data(idata)
    4172      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4173      383970 :          data_tmp = IAND(data_tmp, mask_left(1))
    4174      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4175      383970 :          ipack = ipack + 1
    4176      383970 :          packed_data(ipack) = pack_tmp
    4177      383970 :          data_tmp = full_data(idata)
    4178      383970 :          pack_tmp = ISHFT(data_tmp, 58)
    4179      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4180      383970 :          idata = idata + 1
    4181      383970 :          data_tmp = full_data(idata)
    4182      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4183      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4184      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4185      383970 :          idata = idata + 1
    4186      383970 :          data_tmp = full_data(idata)
    4187      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4188      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4189      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4190      383970 :          idata = idata + 1
    4191      383970 :          data_tmp = full_data(idata)
    4192      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4193      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4194      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4195      383970 :          idata = idata + 1
    4196      383970 :          data_tmp = full_data(idata)
    4197      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4198      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4199      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4200      383970 :          idata = idata + 1
    4201      383970 :          data_tmp = full_data(idata)
    4202      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4203      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4204      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4205      383970 :          idata = idata + 1
    4206      383970 :          data_tmp = full_data(idata)
    4207      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4208      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4209      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4210      383970 :          idata = idata + 1
    4211      383970 :          data_tmp = full_data(idata)
    4212      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4213      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4214      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4215      383970 :          idata = idata + 1
    4216      383970 :          data_tmp = full_data(idata)
    4217      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4218      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4219      383970 :          pack_tmp = ISHFT(pack_tmp, -2)
    4220      383970 :          idata = idata + 1
    4221      383970 :          data_tmp = full_data(idata)
    4222      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4223      383970 :          data_tmp = IAND(data_tmp, mask_left(2))
    4224      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4225      383970 :          ipack = ipack + 1
    4226      383970 :          packed_data(ipack) = pack_tmp
    4227      383970 :          data_tmp = full_data(idata)
    4228      383970 :          pack_tmp = ISHFT(data_tmp, 59)
    4229      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4230      383970 :          idata = idata + 1
    4231      383970 :          data_tmp = full_data(idata)
    4232      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4233      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4234      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4235      383970 :          idata = idata + 1
    4236      383970 :          data_tmp = full_data(idata)
    4237      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4238      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4239      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4240      383970 :          idata = idata + 1
    4241      383970 :          data_tmp = full_data(idata)
    4242      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4243      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4244      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4245      383970 :          idata = idata + 1
    4246      383970 :          data_tmp = full_data(idata)
    4247      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4248      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4249      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4250      383970 :          idata = idata + 1
    4251      383970 :          data_tmp = full_data(idata)
    4252      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4253      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4254      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4255      383970 :          idata = idata + 1
    4256      383970 :          data_tmp = full_data(idata)
    4257      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4258      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4259      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4260      383970 :          idata = idata + 1
    4261      383970 :          data_tmp = full_data(idata)
    4262      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4263      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4264      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4265      383970 :          idata = idata + 1
    4266      383970 :          data_tmp = full_data(idata)
    4267      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4268      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4269      383970 :          pack_tmp = ISHFT(pack_tmp, -3)
    4270      383970 :          idata = idata + 1
    4271      383970 :          data_tmp = full_data(idata)
    4272      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4273      383970 :          data_tmp = IAND(data_tmp, mask_left(3))
    4274      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4275      383970 :          ipack = ipack + 1
    4276      383970 :          packed_data(ipack) = pack_tmp
    4277      383970 :          data_tmp = full_data(idata)
    4278      383970 :          pack_tmp = ISHFT(data_tmp, 60)
    4279      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4280      383970 :          idata = idata + 1
    4281      383970 :          data_tmp = full_data(idata)
    4282      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4283      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4284      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4285      383970 :          idata = idata + 1
    4286      383970 :          data_tmp = full_data(idata)
    4287      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4288      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4289      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4290      383970 :          idata = idata + 1
    4291      383970 :          data_tmp = full_data(idata)
    4292      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4293      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4294      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4295      383970 :          idata = idata + 1
    4296      383970 :          data_tmp = full_data(idata)
    4297      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4298      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4299      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4300      383970 :          idata = idata + 1
    4301      383970 :          data_tmp = full_data(idata)
    4302      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4303      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4304      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4305      383970 :          idata = idata + 1
    4306      383970 :          data_tmp = full_data(idata)
    4307      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4308      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4309      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4310      383970 :          idata = idata + 1
    4311      383970 :          data_tmp = full_data(idata)
    4312      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4313      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4314      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4315      383970 :          idata = idata + 1
    4316      383970 :          data_tmp = full_data(idata)
    4317      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4318      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4319      383970 :          pack_tmp = ISHFT(pack_tmp, -4)
    4320      383970 :          idata = idata + 1
    4321      383970 :          data_tmp = full_data(idata)
    4322      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4323      383970 :          data_tmp = IAND(data_tmp, mask_left(4))
    4324      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4325      383970 :          ipack = ipack + 1
    4326      383970 :          packed_data(ipack) = pack_tmp
    4327      383970 :          data_tmp = full_data(idata)
    4328      383970 :          pack_tmp = ISHFT(data_tmp, 61)
    4329      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4330      383970 :          idata = idata + 1
    4331      383970 :          data_tmp = full_data(idata)
    4332      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4333      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4334      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4335      383970 :          idata = idata + 1
    4336      383970 :          data_tmp = full_data(idata)
    4337      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4338      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4339      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4340      383970 :          idata = idata + 1
    4341      383970 :          data_tmp = full_data(idata)
    4342      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4343      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4344      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4345      383970 :          idata = idata + 1
    4346      383970 :          data_tmp = full_data(idata)
    4347      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4348      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4349      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4350      383970 :          idata = idata + 1
    4351      383970 :          data_tmp = full_data(idata)
    4352      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4353      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4354      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4355      383970 :          idata = idata + 1
    4356      383970 :          data_tmp = full_data(idata)
    4357      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4358      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4359      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4360      383970 :          idata = idata + 1
    4361      383970 :          data_tmp = full_data(idata)
    4362      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4363      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4364      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4365      383970 :          idata = idata + 1
    4366      383970 :          data_tmp = full_data(idata)
    4367      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4368      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4369      383970 :          pack_tmp = ISHFT(pack_tmp, -5)
    4370      383970 :          idata = idata + 1
    4371      383970 :          data_tmp = full_data(idata)
    4372      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4373      383970 :          data_tmp = IAND(data_tmp, mask_left(5))
    4374      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4375      383970 :          ipack = ipack + 1
    4376      383970 :          packed_data(ipack) = pack_tmp
    4377      383970 :          data_tmp = full_data(idata)
    4378      383970 :          pack_tmp = ISHFT(data_tmp, 62)
    4379      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4380      383970 :          idata = idata + 1
    4381      383970 :          data_tmp = full_data(idata)
    4382      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4383      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4384      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4385      383970 :          idata = idata + 1
    4386      383970 :          data_tmp = full_data(idata)
    4387      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4388      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4389      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4390      383970 :          idata = idata + 1
    4391      383970 :          data_tmp = full_data(idata)
    4392      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4393      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4394      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4395      383970 :          idata = idata + 1
    4396      383970 :          data_tmp = full_data(idata)
    4397      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4398      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4399      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4400      383970 :          idata = idata + 1
    4401      383970 :          data_tmp = full_data(idata)
    4402      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4403      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4404      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4405      383970 :          idata = idata + 1
    4406      383970 :          data_tmp = full_data(idata)
    4407      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4408      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4409      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4410      383970 :          idata = idata + 1
    4411      383970 :          data_tmp = full_data(idata)
    4412      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4413      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4414      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4415      383970 :          idata = idata + 1
    4416      383970 :          data_tmp = full_data(idata)
    4417      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4418      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4419      383970 :          pack_tmp = ISHFT(pack_tmp, -6)
    4420      383970 :          idata = idata + 1
    4421      383970 :          data_tmp = full_data(idata)
    4422      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4423      383970 :          data_tmp = IAND(data_tmp, mask_left(6))
    4424      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4425      383970 :          ipack = ipack + 1
    4426      383970 :          packed_data(ipack) = pack_tmp
    4427      383970 :          data_tmp = full_data(idata)
    4428      383970 :          pack_tmp = ISHFT(data_tmp, 63)
    4429      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4430      383970 :          idata = idata + 1
    4431      383970 :          data_tmp = full_data(idata)
    4432      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4433      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4434      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4435      383970 :          idata = idata + 1
    4436      383970 :          data_tmp = full_data(idata)
    4437      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4438      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4439      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4440      383970 :          idata = idata + 1
    4441      383970 :          data_tmp = full_data(idata)
    4442      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4443      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4444      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4445      383970 :          idata = idata + 1
    4446      383970 :          data_tmp = full_data(idata)
    4447      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4448      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4449      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4450      383970 :          idata = idata + 1
    4451      383970 :          data_tmp = full_data(idata)
    4452      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4453      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4454      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4455      383970 :          idata = idata + 1
    4456      383970 :          data_tmp = full_data(idata)
    4457      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4458      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4459      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4460      383970 :          idata = idata + 1
    4461      383970 :          data_tmp = full_data(idata)
    4462      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4463      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4464      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4465      383970 :          idata = idata + 1
    4466      383970 :          data_tmp = full_data(idata)
    4467      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4468      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4469      383970 :          pack_tmp = ISHFT(pack_tmp, -7)
    4470      383970 :          idata = idata + 1
    4471      383970 :          data_tmp = full_data(idata)
    4472      383970 :          data_tmp = ISHFT(data_tmp, 57)
    4473      383970 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4474             :          pack_tmp = ISHFT(pack_tmp, 0)
    4475      383970 :          pack_tmp = ISHFT(pack_tmp, 0)
    4476      383970 :          ipack = ipack + 1
    4477      383972 :          packed_data(ipack) = pack_tmp
    4478             :       END DO
    4479       24032 :       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       24032 :    END SUBROUTINE ints2bits_7
    4483             : 
    4484             : ! **************************************************************************************************
    4485             : !> \brief ...
    4486             : !> \param Ndata ...
    4487             : !> \param packed_data ...
    4488             : !> \param full_data ...
    4489             : ! **************************************************************************************************
    4490       98938 :    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       98938 :       ipack = 0
    4501       98938 :       idata = 0
    4502       98938 :       pack_tmp = 0
    4503       98938 :       Ndata_rep = (Ndata/64)*64
    4504       98938 :       DO kdata = 1, Ndata_rep, 64
    4505     1577599 :          idata = idata + 1
    4506     1577599 :          data_tmp = ISHFT(pack_tmp, 7)
    4507     1577599 :          ipack = ipack + 1
    4508     1577599 :          pack_tmp = packed_data(ipack)
    4509     1577599 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
    4510     1577599 :          pack_tmp = ISHFT(pack_tmp, -7)
    4511     1577599 :          idata = idata + 1
    4512     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4513     1577599 :          full_data(idata) = data_tmp
    4514     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4515     1577599 :          idata = idata + 1
    4516     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4517     1577599 :          full_data(idata) = data_tmp
    4518     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4519     1577599 :          idata = idata + 1
    4520     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4521     1577599 :          full_data(idata) = data_tmp
    4522     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4523     1577599 :          idata = idata + 1
    4524     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4525     1577599 :          full_data(idata) = data_tmp
    4526     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4527     1577599 :          idata = idata + 1
    4528     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4529     1577599 :          full_data(idata) = data_tmp
    4530     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4531     1577599 :          idata = idata + 1
    4532     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4533     1577599 :          full_data(idata) = data_tmp
    4534     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4535     1577599 :          idata = idata + 1
    4536     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4537     1577599 :          full_data(idata) = data_tmp
    4538     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4539     1577599 :          idata = idata + 1
    4540     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4541     1577599 :          full_data(idata) = data_tmp
    4542     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4543     1577599 :          idata = idata + 1
    4544     1577599 :          data_tmp = ISHFT(pack_tmp, 6)
    4545     1577599 :          ipack = ipack + 1
    4546     1577599 :          pack_tmp = packed_data(ipack)
    4547     1577599 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    4548     1577599 :          pack_tmp = ISHFT(pack_tmp, -6)
    4549     1577599 :          idata = idata + 1
    4550     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4551     1577599 :          full_data(idata) = data_tmp
    4552     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4553     1577599 :          idata = idata + 1
    4554     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4555     1577599 :          full_data(idata) = data_tmp
    4556     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4557     1577599 :          idata = idata + 1
    4558     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4559     1577599 :          full_data(idata) = data_tmp
    4560     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4561     1577599 :          idata = idata + 1
    4562     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4563     1577599 :          full_data(idata) = data_tmp
    4564     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4565     1577599 :          idata = idata + 1
    4566     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4567     1577599 :          full_data(idata) = data_tmp
    4568     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4569     1577599 :          idata = idata + 1
    4570     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4571     1577599 :          full_data(idata) = data_tmp
    4572     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4573     1577599 :          idata = idata + 1
    4574     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4575     1577599 :          full_data(idata) = data_tmp
    4576     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4577     1577599 :          idata = idata + 1
    4578     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4579     1577599 :          full_data(idata) = data_tmp
    4580     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4581     1577599 :          idata = idata + 1
    4582     1577599 :          data_tmp = ISHFT(pack_tmp, 5)
    4583     1577599 :          ipack = ipack + 1
    4584     1577599 :          pack_tmp = packed_data(ipack)
    4585     1577599 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
    4586     1577599 :          pack_tmp = ISHFT(pack_tmp, -5)
    4587     1577599 :          idata = idata + 1
    4588     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4589     1577599 :          full_data(idata) = data_tmp
    4590     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4591     1577599 :          idata = idata + 1
    4592     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4593     1577599 :          full_data(idata) = data_tmp
    4594     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4595     1577599 :          idata = idata + 1
    4596     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4597     1577599 :          full_data(idata) = data_tmp
    4598     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4599     1577599 :          idata = idata + 1
    4600     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4601     1577599 :          full_data(idata) = data_tmp
    4602     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4603     1577599 :          idata = idata + 1
    4604     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4605     1577599 :          full_data(idata) = data_tmp
    4606     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4607     1577599 :          idata = idata + 1
    4608     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4609     1577599 :          full_data(idata) = data_tmp
    4610     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4611     1577599 :          idata = idata + 1
    4612     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4613     1577599 :          full_data(idata) = data_tmp
    4614     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4615     1577599 :          idata = idata + 1
    4616     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4617     1577599 :          full_data(idata) = data_tmp
    4618     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4619     1577599 :          idata = idata + 1
    4620     1577599 :          data_tmp = ISHFT(pack_tmp, 4)
    4621     1577599 :          ipack = ipack + 1
    4622     1577599 :          pack_tmp = packed_data(ipack)
    4623     1577599 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    4624     1577599 :          pack_tmp = ISHFT(pack_tmp, -4)
    4625     1577599 :          idata = idata + 1
    4626     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4627     1577599 :          full_data(idata) = data_tmp
    4628     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4629     1577599 :          idata = idata + 1
    4630     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4631     1577599 :          full_data(idata) = data_tmp
    4632     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4633     1577599 :          idata = idata + 1
    4634     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4635     1577599 :          full_data(idata) = data_tmp
    4636     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4637     1577599 :          idata = idata + 1
    4638     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4639     1577599 :          full_data(idata) = data_tmp
    4640     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4641     1577599 :          idata = idata + 1
    4642     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4643     1577599 :          full_data(idata) = data_tmp
    4644     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4645     1577599 :          idata = idata + 1
    4646     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4647     1577599 :          full_data(idata) = data_tmp
    4648     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4649     1577599 :          idata = idata + 1
    4650     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4651     1577599 :          full_data(idata) = data_tmp
    4652     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4653     1577599 :          idata = idata + 1
    4654     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4655     1577599 :          full_data(idata) = data_tmp
    4656     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4657     1577599 :          idata = idata + 1
    4658     1577599 :          data_tmp = ISHFT(pack_tmp, 3)
    4659     1577599 :          ipack = ipack + 1
    4660     1577599 :          pack_tmp = packed_data(ipack)
    4661     1577599 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    4662     1577599 :          pack_tmp = ISHFT(pack_tmp, -3)
    4663     1577599 :          idata = idata + 1
    4664     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4665     1577599 :          full_data(idata) = data_tmp
    4666     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4667     1577599 :          idata = idata + 1
    4668     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4669     1577599 :          full_data(idata) = data_tmp
    4670     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4671     1577599 :          idata = idata + 1
    4672     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4673     1577599 :          full_data(idata) = data_tmp
    4674     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4675     1577599 :          idata = idata + 1
    4676     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4677     1577599 :          full_data(idata) = data_tmp
    4678     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4679     1577599 :          idata = idata + 1
    4680     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4681     1577599 :          full_data(idata) = data_tmp
    4682     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4683     1577599 :          idata = idata + 1
    4684     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4685     1577599 :          full_data(idata) = data_tmp
    4686     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4687     1577599 :          idata = idata + 1
    4688     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4689     1577599 :          full_data(idata) = data_tmp
    4690     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4691     1577599 :          idata = idata + 1
    4692     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4693     1577599 :          full_data(idata) = data_tmp
    4694     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4695     1577599 :          idata = idata + 1
    4696     1577599 :          data_tmp = ISHFT(pack_tmp, 2)
    4697     1577599 :          ipack = ipack + 1
    4698     1577599 :          pack_tmp = packed_data(ipack)
    4699     1577599 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    4700     1577599 :          pack_tmp = ISHFT(pack_tmp, -2)
    4701     1577599 :          idata = idata + 1
    4702     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4703     1577599 :          full_data(idata) = data_tmp
    4704     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4705     1577599 :          idata = idata + 1
    4706     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4707     1577599 :          full_data(idata) = data_tmp
    4708     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4709     1577599 :          idata = idata + 1
    4710     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4711     1577599 :          full_data(idata) = data_tmp
    4712     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4713     1577599 :          idata = idata + 1
    4714     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4715     1577599 :          full_data(idata) = data_tmp
    4716     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4717     1577599 :          idata = idata + 1
    4718     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4719     1577599 :          full_data(idata) = data_tmp
    4720     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4721     1577599 :          idata = idata + 1
    4722     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4723     1577599 :          full_data(idata) = data_tmp
    4724     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4725     1577599 :          idata = idata + 1
    4726     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4727     1577599 :          full_data(idata) = data_tmp
    4728     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4729     1577599 :          idata = idata + 1
    4730     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4731     1577599 :          full_data(idata) = data_tmp
    4732     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4733     1577599 :          idata = idata + 1
    4734     1577599 :          data_tmp = ISHFT(pack_tmp, 1)
    4735     1577599 :          ipack = ipack + 1
    4736     1577599 :          pack_tmp = packed_data(ipack)
    4737     1577599 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    4738     1577599 :          pack_tmp = ISHFT(pack_tmp, -1)
    4739     1577599 :          idata = idata + 1
    4740     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4741     1577599 :          full_data(idata) = data_tmp
    4742     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4743     1577599 :          idata = idata + 1
    4744     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4745     1577599 :          full_data(idata) = data_tmp
    4746     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4747     1577599 :          idata = idata + 1
    4748     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4749     1577599 :          full_data(idata) = data_tmp
    4750     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4751     1577599 :          idata = idata + 1
    4752     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4753     1577599 :          full_data(idata) = data_tmp
    4754     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4755     1577599 :          idata = idata + 1
    4756     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4757     1577599 :          full_data(idata) = data_tmp
    4758     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4759     1577599 :          idata = idata + 1
    4760     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4761     1577599 :          full_data(idata) = data_tmp
    4762     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4763     1577599 :          idata = idata + 1
    4764     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4765     1577599 :          full_data(idata) = data_tmp
    4766     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4767     1577599 :          idata = idata + 1
    4768     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4769     1577599 :          full_data(idata) = data_tmp
    4770     1577599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4771     1577599 :          idata = idata + 1
    4772     1577599 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4773     1577599 :          full_data(idata) = data_tmp
    4774     1577613 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4775             :       END DO
    4776       98938 :       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       98938 :    END SUBROUTINE bits2ints_7
    4780             : 
    4781             : ! **************************************************************************************************
    4782             : !> \brief ...
    4783             : !> \param Ndata ...
    4784             : !> \param packed_data ...
    4785             : !> \param full_data ...
    4786             : ! **************************************************************************************************
    4787       24022 :    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       24022 :       idata = 0
    4798       24022 :       ipack = 0
    4799       24022 :       Ndata_rep = (Ndata/64)*64
    4800       24022 :       DO kdata = 1, Ndata_rep, 64
    4801      383808 :          pack_tmp = 0
    4802      383808 :          idata = idata + 1
    4803      383808 :          data_tmp = full_data(idata)
    4804      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4805      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4806      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4807      383808 :          idata = idata + 1
    4808      383808 :          data_tmp = full_data(idata)
    4809      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4810      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4811      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4812      383808 :          idata = idata + 1
    4813      383808 :          data_tmp = full_data(idata)
    4814      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4815      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4816      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4817      383808 :          idata = idata + 1
    4818      383808 :          data_tmp = full_data(idata)
    4819      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4820      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4821      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4822      383808 :          idata = idata + 1
    4823      383808 :          data_tmp = full_data(idata)
    4824      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4825      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4826      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4827      383808 :          idata = idata + 1
    4828      383808 :          data_tmp = full_data(idata)
    4829      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4830      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4831      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4832      383808 :          idata = idata + 1
    4833      383808 :          data_tmp = full_data(idata)
    4834      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4835      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4836      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4837      383808 :          idata = idata + 1
    4838      383808 :          data_tmp = full_data(idata)
    4839      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4840      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4841      383808 :          pack_tmp = ISHFT(pack_tmp, 0)
    4842      383808 :          idata = idata + 1
    4843      383808 :          data_tmp = full_data(idata)
    4844             :          data_tmp = ISHFT(data_tmp, 56)
    4845      383808 :          data_tmp = IAND(data_tmp, mask_left(0))
    4846      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4847      383808 :          ipack = ipack + 1
    4848      383808 :          packed_data(ipack) = pack_tmp
    4849      383808 :          data_tmp = full_data(idata)
    4850      383808 :          pack_tmp = ISHFT(data_tmp, 56)
    4851      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4852      383808 :          idata = idata + 1
    4853      383808 :          data_tmp = full_data(idata)
    4854      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4855      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4856      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4857      383808 :          idata = idata + 1
    4858      383808 :          data_tmp = full_data(idata)
    4859      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4860      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4861      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4862      383808 :          idata = idata + 1
    4863      383808 :          data_tmp = full_data(idata)
    4864      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4865      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4866      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4867      383808 :          idata = idata + 1
    4868      383808 :          data_tmp = full_data(idata)
    4869      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4870      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4871      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4872      383808 :          idata = idata + 1
    4873      383808 :          data_tmp = full_data(idata)
    4874      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4875      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4876      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4877      383808 :          idata = idata + 1
    4878      383808 :          data_tmp = full_data(idata)
    4879      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4880      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4881      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4882      383808 :          idata = idata + 1
    4883      383808 :          data_tmp = full_data(idata)
    4884      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4885      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4886      383808 :          pack_tmp = ISHFT(pack_tmp, 0)
    4887      383808 :          idata = idata + 1
    4888      383808 :          data_tmp = full_data(idata)
    4889             :          data_tmp = ISHFT(data_tmp, 56)
    4890      383808 :          data_tmp = IAND(data_tmp, mask_left(0))
    4891      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4892      383808 :          ipack = ipack + 1
    4893      383808 :          packed_data(ipack) = pack_tmp
    4894      383808 :          data_tmp = full_data(idata)
    4895      383808 :          pack_tmp = ISHFT(data_tmp, 56)
    4896      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4897      383808 :          idata = idata + 1
    4898      383808 :          data_tmp = full_data(idata)
    4899      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4900      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4901      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4902      383808 :          idata = idata + 1
    4903      383808 :          data_tmp = full_data(idata)
    4904      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4905      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4906      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4907      383808 :          idata = idata + 1
    4908      383808 :          data_tmp = full_data(idata)
    4909      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4910      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4911      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4912      383808 :          idata = idata + 1
    4913      383808 :          data_tmp = full_data(idata)
    4914      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4915      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4916      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4917      383808 :          idata = idata + 1
    4918      383808 :          data_tmp = full_data(idata)
    4919      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4920      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4921      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4922      383808 :          idata = idata + 1
    4923      383808 :          data_tmp = full_data(idata)
    4924      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4925      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4926      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4927      383808 :          idata = idata + 1
    4928      383808 :          data_tmp = full_data(idata)
    4929      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4930      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4931      383808 :          pack_tmp = ISHFT(pack_tmp, 0)
    4932      383808 :          idata = idata + 1
    4933      383808 :          data_tmp = full_data(idata)
    4934             :          data_tmp = ISHFT(data_tmp, 56)
    4935      383808 :          data_tmp = IAND(data_tmp, mask_left(0))
    4936      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4937      383808 :          ipack = ipack + 1
    4938      383808 :          packed_data(ipack) = pack_tmp
    4939      383808 :          data_tmp = full_data(idata)
    4940      383808 :          pack_tmp = ISHFT(data_tmp, 56)
    4941      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4942      383808 :          idata = idata + 1
    4943      383808 :          data_tmp = full_data(idata)
    4944      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4945      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4946      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4947      383808 :          idata = idata + 1
    4948      383808 :          data_tmp = full_data(idata)
    4949      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4950      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4951      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4952      383808 :          idata = idata + 1
    4953      383808 :          data_tmp = full_data(idata)
    4954      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4955      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4956      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4957      383808 :          idata = idata + 1
    4958      383808 :          data_tmp = full_data(idata)
    4959      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4960      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4961      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4962      383808 :          idata = idata + 1
    4963      383808 :          data_tmp = full_data(idata)
    4964      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4965      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4966      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4967      383808 :          idata = idata + 1
    4968      383808 :          data_tmp = full_data(idata)
    4969      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4970      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4971      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4972      383808 :          idata = idata + 1
    4973      383808 :          data_tmp = full_data(idata)
    4974      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4975      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4976      383808 :          pack_tmp = ISHFT(pack_tmp, 0)
    4977      383808 :          idata = idata + 1
    4978      383808 :          data_tmp = full_data(idata)
    4979             :          data_tmp = ISHFT(data_tmp, 56)
    4980      383808 :          data_tmp = IAND(data_tmp, mask_left(0))
    4981      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4982      383808 :          ipack = ipack + 1
    4983      383808 :          packed_data(ipack) = pack_tmp
    4984      383808 :          data_tmp = full_data(idata)
    4985      383808 :          pack_tmp = ISHFT(data_tmp, 56)
    4986      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4987      383808 :          idata = idata + 1
    4988      383808 :          data_tmp = full_data(idata)
    4989      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4990      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4991      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4992      383808 :          idata = idata + 1
    4993      383808 :          data_tmp = full_data(idata)
    4994      383808 :          data_tmp = ISHFT(data_tmp, 56)
    4995      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4996      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    4997      383808 :          idata = idata + 1
    4998      383808 :          data_tmp = full_data(idata)
    4999      383808 :          data_tmp = ISHFT(data_tmp, 56)
    5000      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5001      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    5002      383808 :          idata = idata + 1
    5003      383808 :          data_tmp = full_data(idata)
    5004      383808 :          data_tmp = ISHFT(data_tmp, 56)
    5005      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5006      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    5007      383808 :          idata = idata + 1
    5008      383808 :          data_tmp = full_data(idata)
    5009      383808 :          data_tmp = ISHFT(data_tmp, 56)
    5010      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5011      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    5012      383808 :          idata = idata + 1
    5013      383808 :          data_tmp = full_data(idata)
    5014      383808 :          data_tmp = ISHFT(data_tmp, 56)
    5015      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5016      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    5017      383808 :          idata = idata + 1
    5018      383808 :          data_tmp = full_data(idata)
    5019      383808 :          data_tmp = ISHFT(data_tmp, 56)
    5020      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5021      383808 :          pack_tmp = ISHFT(pack_tmp, 0)
    5022      383808 :          idata = idata + 1
    5023      383808 :          data_tmp = full_data(idata)
    5024             :          data_tmp = ISHFT(data_tmp, 56)
    5025      383808 :          data_tmp = IAND(data_tmp, mask_left(0))
    5026      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5027      383808 :          ipack = ipack + 1
    5028      383808 :          packed_data(ipack) = pack_tmp
    5029      383808 :          data_tmp = full_data(idata)
    5030      383808 :          pack_tmp = ISHFT(data_tmp, 56)
    5031      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    5032      383808 :          idata = idata + 1
    5033      383808 :          data_tmp = full_data(idata)
    5034      383808 :          data_tmp = ISHFT(data_tmp, 56)
    5035      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5036      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    5037      383808 :          idata = idata + 1
    5038      383808 :          data_tmp = full_data(idata)
    5039      383808 :          data_tmp = ISHFT(data_tmp, 56)
    5040      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5041      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    5042      383808 :          idata = idata + 1
    5043      383808 :          data_tmp = full_data(idata)
    5044      383808 :          data_tmp = ISHFT(data_tmp, 56)
    5045      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5046      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    5047      383808 :          idata = idata + 1
    5048      383808 :          data_tmp = full_data(idata)
    5049      383808 :          data_tmp = ISHFT(data_tmp, 56)
    5050      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5051      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    5052      383808 :          idata = idata + 1
    5053      383808 :          data_tmp = full_data(idata)
    5054      383808 :          data_tmp = ISHFT(data_tmp, 56)
    5055      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5056      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    5057      383808 :          idata = idata + 1
    5058      383808 :          data_tmp = full_data(idata)
    5059      383808 :          data_tmp = ISHFT(data_tmp, 56)
    5060      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5061      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    5062      383808 :          idata = idata + 1
    5063      383808 :          data_tmp = full_data(idata)
    5064      383808 :          data_tmp = ISHFT(data_tmp, 56)
    5065      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5066      383808 :          pack_tmp = ISHFT(pack_tmp, 0)
    5067      383808 :          idata = idata + 1
    5068      383808 :          data_tmp = full_data(idata)
    5069             :          data_tmp = ISHFT(data_tmp, 56)
    5070      383808 :          data_tmp = IAND(data_tmp, mask_left(0))
    5071      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5072      383808 :          ipack = ipack + 1
    5073      383808 :          packed_data(ipack) = pack_tmp
    5074      383808 :          data_tmp = full_data(idata)
    5075      383808 :          pack_tmp = ISHFT(data_tmp, 56)
    5076      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    5077      383808 :          idata = idata + 1
    5078      383808 :          data_tmp = full_data(idata)
    5079      383808 :          data_tmp = ISHFT(data_tmp, 56)
    5080      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5081      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    5082      383808 :          idata = idata + 1
    5083      383808 :          data_tmp = full_data(idata)
    5084      383808 :          data_tmp = ISHFT(data_tmp, 56)
    5085      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5086      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    5087      383808 :          idata = idata + 1
    5088      383808 :          data_tmp = full_data(idata)
    5089      383808 :          data_tmp = ISHFT(data_tmp, 56)
    5090      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5091      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    5092      383808 :          idata = idata + 1
    5093      383808 :          data_tmp = full_data(idata)
    5094      383808 :          data_tmp = ISHFT(data_tmp, 56)
    5095      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5096      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    5097      383808 :          idata = idata + 1
    5098      383808 :          data_tmp = full_data(idata)
    5099      383808 :          data_tmp = ISHFT(data_tmp, 56)
    5100      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5101      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    5102      383808 :          idata = idata + 1
    5103      383808 :          data_tmp = full_data(idata)
    5104      383808 :          data_tmp = ISHFT(data_tmp, 56)
    5105      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5106      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    5107      383808 :          idata = idata + 1
    5108      383808 :          data_tmp = full_data(idata)
    5109      383808 :          data_tmp = ISHFT(data_tmp, 56)
    5110      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5111      383808 :          pack_tmp = ISHFT(pack_tmp, 0)
    5112      383808 :          idata = idata + 1
    5113      383808 :          data_tmp = full_data(idata)
    5114             :          data_tmp = ISHFT(data_tmp, 56)
    5115      383808 :          data_tmp = IAND(data_tmp, mask_left(0))
    5116      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5117      383808 :          ipack = ipack + 1
    5118      383808 :          packed_data(ipack) = pack_tmp
    5119      383808 :          data_tmp = full_data(idata)
    5120      383808 :          pack_tmp = ISHFT(data_tmp, 56)
    5121      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    5122      383808 :          idata = idata + 1
    5123      383808 :          data_tmp = full_data(idata)
    5124      383808 :          data_tmp = ISHFT(data_tmp, 56)
    5125      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5126      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    5127      383808 :          idata = idata + 1
    5128      383808 :          data_tmp = full_data(idata)
    5129      383808 :          data_tmp = ISHFT(data_tmp, 56)
    5130      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5131      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    5132      383808 :          idata = idata + 1
    5133      383808 :          data_tmp = full_data(idata)
    5134      383808 :          data_tmp = ISHFT(data_tmp, 56)
    5135      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5136      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    5137      383808 :          idata = idata + 1
    5138      383808 :          data_tmp = full_data(idata)
    5139      383808 :          data_tmp = ISHFT(data_tmp, 56)
    5140      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5141      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    5142      383808 :          idata = idata + 1
    5143      383808 :          data_tmp = full_data(idata)
    5144      383808 :          data_tmp = ISHFT(data_tmp, 56)
    5145      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5146      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    5147      383808 :          idata = idata + 1
    5148      383808 :          data_tmp = full_data(idata)
    5149      383808 :          data_tmp = ISHFT(data_tmp, 56)
    5150      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5151      383808 :          pack_tmp = ISHFT(pack_tmp, -8)
    5152      383808 :          idata = idata + 1
    5153      383808 :          data_tmp = full_data(idata)
    5154      383808 :          data_tmp = ISHFT(data_tmp, 56)
    5155      383808 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5156             :          pack_tmp = ISHFT(pack_tmp, 0)
    5157      383808 :          pack_tmp = ISHFT(pack_tmp, 0)
    5158      383808 :          ipack = ipack + 1
    5159      383842 :          packed_data(ipack) = pack_tmp
    5160             :       END DO
    5161       24022 :       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       24022 :    END SUBROUTINE ints2bits_8
    5165             : 
    5166             : ! **************************************************************************************************
    5167             : !> \brief ...
    5168             : !> \param Ndata ...
    5169             : !> \param packed_data ...
    5170             : !> \param full_data ...
    5171             : ! **************************************************************************************************
    5172       99008 :    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       99008 :       ipack = 0
    5183       99008 :       idata = 0
    5184       99008 :       pack_tmp = 0
    5185       99008 :       Ndata_rep = (Ndata/64)*64
    5186       99008 :       DO kdata = 1, Ndata_rep, 64
    5187     1578416 :          idata = idata + 1
    5188     1578416 :          data_tmp = ISHFT(pack_tmp, 8)
    5189     1578416 :          ipack = ipack + 1
    5190     1578416 :          pack_tmp = packed_data(ipack)
    5191     1578416 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5192     1578416 :          pack_tmp = ISHFT(pack_tmp, -8)
    5193     1578416 :          idata = idata + 1
    5194     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5195     1578416 :          full_data(idata) = data_tmp
    5196     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5197     1578416 :          idata = idata + 1
    5198     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5199     1578416 :          full_data(idata) = data_tmp
    5200     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5201     1578416 :          idata = idata + 1
    5202     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5203     1578416 :          full_data(idata) = data_tmp
    5204     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5205     1578416 :          idata = idata + 1
    5206     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5207     1578416 :          full_data(idata) = data_tmp
    5208     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5209     1578416 :          idata = idata + 1
    5210     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5211     1578416 :          full_data(idata) = data_tmp
    5212     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5213     1578416 :          idata = idata + 1
    5214     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5215     1578416 :          full_data(idata) = data_tmp
    5216     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5217     1578416 :          idata = idata + 1
    5218     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5219     1578416 :          full_data(idata) = data_tmp
    5220     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5221     1578416 :          idata = idata + 1
    5222     1578416 :          data_tmp = ISHFT(pack_tmp, 8)
    5223     1578416 :          ipack = ipack + 1
    5224     1578416 :          pack_tmp = packed_data(ipack)
    5225     1578416 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5226     1578416 :          pack_tmp = ISHFT(pack_tmp, -8)
    5227     1578416 :          idata = idata + 1
    5228     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5229     1578416 :          full_data(idata) = data_tmp
    5230     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5231     1578416 :          idata = idata + 1
    5232     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5233     1578416 :          full_data(idata) = data_tmp
    5234     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5235     1578416 :          idata = idata + 1
    5236     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5237     1578416 :          full_data(idata) = data_tmp
    5238     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5239     1578416 :          idata = idata + 1
    5240     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5241     1578416 :          full_data(idata) = data_tmp
    5242     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5243     1578416 :          idata = idata + 1
    5244     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5245     1578416 :          full_data(idata) = data_tmp
    5246     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5247     1578416 :          idata = idata + 1
    5248     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5249     1578416 :          full_data(idata) = data_tmp
    5250     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5251     1578416 :          idata = idata + 1
    5252     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5253     1578416 :          full_data(idata) = data_tmp
    5254     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5255     1578416 :          idata = idata + 1
    5256     1578416 :          data_tmp = ISHFT(pack_tmp, 8)
    5257     1578416 :          ipack = ipack + 1
    5258     1578416 :          pack_tmp = packed_data(ipack)
    5259     1578416 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5260     1578416 :          pack_tmp = ISHFT(pack_tmp, -8)
    5261     1578416 :          idata = idata + 1
    5262     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5263     1578416 :          full_data(idata) = data_tmp
    5264     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5265     1578416 :          idata = idata + 1
    5266     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5267     1578416 :          full_data(idata) = data_tmp
    5268     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5269     1578416 :          idata = idata + 1
    5270     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5271     1578416 :          full_data(idata) = data_tmp
    5272     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5273     1578416 :          idata = idata + 1
    5274     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5275     1578416 :          full_data(idata) = data_tmp
    5276     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5277     1578416 :          idata = idata + 1
    5278     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5279     1578416 :          full_data(idata) = data_tmp
    5280     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5281     1578416 :          idata = idata + 1
    5282     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5283     1578416 :          full_data(idata) = data_tmp
    5284     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5285     1578416 :          idata = idata + 1
    5286     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5287     1578416 :          full_data(idata) = data_tmp
    5288     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5289     1578416 :          idata = idata + 1
    5290     1578416 :          data_tmp = ISHFT(pack_tmp, 8)
    5291     1578416 :          ipack = ipack + 1
    5292     1578416 :          pack_tmp = packed_data(ipack)
    5293     1578416 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5294     1578416 :          pack_tmp = ISHFT(pack_tmp, -8)
    5295     1578416 :          idata = idata + 1
    5296     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5297     1578416 :          full_data(idata) = data_tmp
    5298     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5299     1578416 :          idata = idata + 1
    5300     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5301     1578416 :          full_data(idata) = data_tmp
    5302     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5303     1578416 :          idata = idata + 1
    5304     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5305     1578416 :          full_data(idata) = data_tmp
    5306     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5307     1578416 :          idata = idata + 1
    5308     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5309     1578416 :          full_data(idata) = data_tmp
    5310     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5311     1578416 :          idata = idata + 1
    5312     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5313     1578416 :          full_data(idata) = data_tmp
    5314     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5315     1578416 :          idata = idata + 1
    5316     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5317     1578416 :          full_data(idata) = data_tmp
    5318     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5319     1578416 :          idata = idata + 1
    5320     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5321     1578416 :          full_data(idata) = data_tmp
    5322     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5323     1578416 :          idata = idata + 1
    5324     1578416 :          data_tmp = ISHFT(pack_tmp, 8)
    5325     1578416 :          ipack = ipack + 1
    5326     1578416 :          pack_tmp = packed_data(ipack)
    5327     1578416 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5328     1578416 :          pack_tmp = ISHFT(pack_tmp, -8)
    5329     1578416 :          idata = idata + 1
    5330     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5331     1578416 :          full_data(idata) = data_tmp
    5332     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5333     1578416 :          idata = idata + 1
    5334     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5335     1578416 :          full_data(idata) = data_tmp
    5336     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5337     1578416 :          idata = idata + 1
    5338     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5339     1578416 :          full_data(idata) = data_tmp
    5340     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5341     1578416 :          idata = idata + 1
    5342     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5343     1578416 :          full_data(idata) = data_tmp
    5344     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5345     1578416 :          idata = idata + 1
    5346     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5347     1578416 :          full_data(idata) = data_tmp
    5348     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5349     1578416 :          idata = idata + 1
    5350     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5351     1578416 :          full_data(idata) = data_tmp
    5352     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5353     1578416 :          idata = idata + 1
    5354     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5355     1578416 :          full_data(idata) = data_tmp
    5356     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5357     1578416 :          idata = idata + 1
    5358     1578416 :          data_tmp = ISHFT(pack_tmp, 8)
    5359     1578416 :          ipack = ipack + 1
    5360     1578416 :          pack_tmp = packed_data(ipack)
    5361     1578416 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5362     1578416 :          pack_tmp = ISHFT(pack_tmp, -8)
    5363     1578416 :          idata = idata + 1
    5364     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5365     1578416 :          full_data(idata) = data_tmp
    5366     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5367     1578416 :          idata = idata + 1
    5368     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5369     1578416 :          full_data(idata) = data_tmp
    5370     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5371     1578416 :          idata = idata + 1
    5372     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5373     1578416 :          full_data(idata) = data_tmp
    5374     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5375     1578416 :          idata = idata + 1
    5376     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5377     1578416 :          full_data(idata) = data_tmp
    5378     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5379     1578416 :          idata = idata + 1
    5380     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5381     1578416 :          full_data(idata) = data_tmp
    5382     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5383     1578416 :          idata = idata + 1
    5384     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5385     1578416 :          full_data(idata) = data_tmp
    5386     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5387     1578416 :          idata = idata + 1
    5388     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5389     1578416 :          full_data(idata) = data_tmp
    5390     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5391     1578416 :          idata = idata + 1
    5392     1578416 :          data_tmp = ISHFT(pack_tmp, 8)
    5393     1578416 :          ipack = ipack + 1
    5394     1578416 :          pack_tmp = packed_data(ipack)
    5395     1578416 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5396     1578416 :          pack_tmp = ISHFT(pack_tmp, -8)
    5397     1578416 :          idata = idata + 1
    5398     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5399     1578416 :          full_data(idata) = data_tmp
    5400     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5401     1578416 :          idata = idata + 1
    5402     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5403     1578416 :          full_data(idata) = data_tmp
    5404     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5405     1578416 :          idata = idata + 1
    5406     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5407     1578416 :          full_data(idata) = data_tmp
    5408     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5409     1578416 :          idata = idata + 1
    5410     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5411     1578416 :          full_data(idata) = data_tmp
    5412     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5413     1578416 :          idata = idata + 1
    5414     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5415     1578416 :          full_data(idata) = data_tmp
    5416     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5417     1578416 :          idata = idata + 1
    5418     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5419     1578416 :          full_data(idata) = data_tmp
    5420     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5421     1578416 :          idata = idata + 1
    5422     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5423     1578416 :          full_data(idata) = data_tmp
    5424     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5425     1578416 :          idata = idata + 1
    5426     1578416 :          data_tmp = ISHFT(pack_tmp, 8)
    5427     1578416 :          ipack = ipack + 1
    5428     1578416 :          pack_tmp = packed_data(ipack)
    5429     1578416 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5430     1578416 :          pack_tmp = ISHFT(pack_tmp, -8)
    5431     1578416 :          idata = idata + 1
    5432     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5433     1578416 :          full_data(idata) = data_tmp
    5434     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5435     1578416 :          idata = idata + 1
    5436     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5437     1578416 :          full_data(idata) = data_tmp
    5438     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5439     1578416 :          idata = idata + 1
    5440     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5441     1578416 :          full_data(idata) = data_tmp
    5442     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5443     1578416 :          idata = idata + 1
    5444     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5445     1578416 :          full_data(idata) = data_tmp
    5446     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5447     1578416 :          idata = idata + 1
    5448     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5449     1578416 :          full_data(idata) = data_tmp
    5450     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5451     1578416 :          idata = idata + 1
    5452     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5453     1578416 :          full_data(idata) = data_tmp
    5454     1578416 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5455     1578416 :          idata = idata + 1
    5456     1578416 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5457     1578416 :          full_data(idata) = data_tmp
    5458     1578773 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5459             :       END DO
    5460       99008 :       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       99008 :    END SUBROUTINE bits2ints_8
    5464             : 
    5465             : ! **************************************************************************************************
    5466             : !> \brief ...
    5467             : !> \param Ndata ...
    5468             : !> \param packed_data ...
    5469             : !> \param full_data ...
    5470             : ! **************************************************************************************************
    5471       23980 :    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       23980 :       idata = 0
    5482       23980 :       ipack = 0
    5483       23980 :       Ndata_rep = (Ndata/64)*64
    5484       23980 :       DO kdata = 1, Ndata_rep, 64
    5485      383119 :          pack_tmp = 0
    5486      383119 :          idata = idata + 1
    5487      383119 :          data_tmp = full_data(idata)
    5488      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5489      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5490      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5491      383119 :          idata = idata + 1
    5492      383119 :          data_tmp = full_data(idata)
    5493      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5494      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5495      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5496      383119 :          idata = idata + 1
    5497      383119 :          data_tmp = full_data(idata)
    5498      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5499      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5500      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5501      383119 :          idata = idata + 1
    5502      383119 :          data_tmp = full_data(idata)
    5503      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5504      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5505      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5506      383119 :          idata = idata + 1
    5507      383119 :          data_tmp = full_data(idata)
    5508      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5509      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5510      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5511      383119 :          idata = idata + 1
    5512      383119 :          data_tmp = full_data(idata)
    5513      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5514      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5515      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5516      383119 :          idata = idata + 1
    5517      383119 :          data_tmp = full_data(idata)
    5518      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5519      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5520      383119 :          pack_tmp = ISHFT(pack_tmp, -1)
    5521      383119 :          idata = idata + 1
    5522      383119 :          data_tmp = full_data(idata)
    5523      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5524      383119 :          data_tmp = IAND(data_tmp, mask_left(1))
    5525      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5526      383119 :          ipack = ipack + 1
    5527      383119 :          packed_data(ipack) = pack_tmp
    5528      383119 :          data_tmp = full_data(idata)
    5529      383119 :          pack_tmp = ISHFT(data_tmp, 56)
    5530      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5531      383119 :          idata = idata + 1
    5532      383119 :          data_tmp = full_data(idata)
    5533      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5534      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5535      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5536      383119 :          idata = idata + 1
    5537      383119 :          data_tmp = full_data(idata)
    5538      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5539      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5540      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5541      383119 :          idata = idata + 1
    5542      383119 :          data_tmp = full_data(idata)
    5543      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5544      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5545      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5546      383119 :          idata = idata + 1
    5547      383119 :          data_tmp = full_data(idata)
    5548      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5549      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5550      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5551      383119 :          idata = idata + 1
    5552      383119 :          data_tmp = full_data(idata)
    5553      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5554      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5555      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5556      383119 :          idata = idata + 1
    5557      383119 :          data_tmp = full_data(idata)
    5558      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5559      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5560      383119 :          pack_tmp = ISHFT(pack_tmp, -2)
    5561      383119 :          idata = idata + 1
    5562      383119 :          data_tmp = full_data(idata)
    5563      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5564      383119 :          data_tmp = IAND(data_tmp, mask_left(2))
    5565      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5566      383119 :          ipack = ipack + 1
    5567      383119 :          packed_data(ipack) = pack_tmp
    5568      383119 :          data_tmp = full_data(idata)
    5569      383119 :          pack_tmp = ISHFT(data_tmp, 57)
    5570      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5571      383119 :          idata = idata + 1
    5572      383119 :          data_tmp = full_data(idata)
    5573      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5574      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5575      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5576      383119 :          idata = idata + 1
    5577      383119 :          data_tmp = full_data(idata)
    5578      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5579      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5580      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5581      383119 :          idata = idata + 1
    5582      383119 :          data_tmp = full_data(idata)
    5583      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5584      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5585      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5586      383119 :          idata = idata + 1
    5587      383119 :          data_tmp = full_data(idata)
    5588      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5589      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5590      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5591      383119 :          idata = idata + 1
    5592      383119 :          data_tmp = full_data(idata)
    5593      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5594      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5595      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5596      383119 :          idata = idata + 1
    5597      383119 :          data_tmp = full_data(idata)
    5598      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5599      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5600      383119 :          pack_tmp = ISHFT(pack_tmp, -3)
    5601      383119 :          idata = idata + 1
    5602      383119 :          data_tmp = full_data(idata)
    5603      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5604      383119 :          data_tmp = IAND(data_tmp, mask_left(3))
    5605      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5606      383119 :          ipack = ipack + 1
    5607      383119 :          packed_data(ipack) = pack_tmp
    5608      383119 :          data_tmp = full_data(idata)
    5609      383119 :          pack_tmp = ISHFT(data_tmp, 58)
    5610      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5611      383119 :          idata = idata + 1
    5612      383119 :          data_tmp = full_data(idata)
    5613      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5614      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5615      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5616      383119 :          idata = idata + 1
    5617      383119 :          data_tmp = full_data(idata)
    5618      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5619      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5620      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5621      383119 :          idata = idata + 1
    5622      383119 :          data_tmp = full_data(idata)
    5623      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5624      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5625      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5626      383119 :          idata = idata + 1
    5627      383119 :          data_tmp = full_data(idata)
    5628      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5629      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5630      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5631      383119 :          idata = idata + 1
    5632      383119 :          data_tmp = full_data(idata)
    5633      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5634      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5635      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5636      383119 :          idata = idata + 1
    5637      383119 :          data_tmp = full_data(idata)
    5638      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5639      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5640      383119 :          pack_tmp = ISHFT(pack_tmp, -4)
    5641      383119 :          idata = idata + 1
    5642      383119 :          data_tmp = full_data(idata)
    5643      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5644      383119 :          data_tmp = IAND(data_tmp, mask_left(4))
    5645      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5646      383119 :          ipack = ipack + 1
    5647      383119 :          packed_data(ipack) = pack_tmp
    5648      383119 :          data_tmp = full_data(idata)
    5649      383119 :          pack_tmp = ISHFT(data_tmp, 59)
    5650      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5651      383119 :          idata = idata + 1
    5652      383119 :          data_tmp = full_data(idata)
    5653      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5654      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5655      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5656      383119 :          idata = idata + 1
    5657      383119 :          data_tmp = full_data(idata)
    5658      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5659      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5660      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5661      383119 :          idata = idata + 1
    5662      383119 :          data_tmp = full_data(idata)
    5663      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5664      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5665      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5666      383119 :          idata = idata + 1
    5667      383119 :          data_tmp = full_data(idata)
    5668      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5669      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5670      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5671      383119 :          idata = idata + 1
    5672      383119 :          data_tmp = full_data(idata)
    5673      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5674      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5675      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5676      383119 :          idata = idata + 1
    5677      383119 :          data_tmp = full_data(idata)
    5678      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5679      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5680      383119 :          pack_tmp = ISHFT(pack_tmp, -5)
    5681      383119 :          idata = idata + 1
    5682      383119 :          data_tmp = full_data(idata)
    5683      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5684      383119 :          data_tmp = IAND(data_tmp, mask_left(5))
    5685      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5686      383119 :          ipack = ipack + 1
    5687      383119 :          packed_data(ipack) = pack_tmp
    5688      383119 :          data_tmp = full_data(idata)
    5689      383119 :          pack_tmp = ISHFT(data_tmp, 60)
    5690      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5691      383119 :          idata = idata + 1
    5692      383119 :          data_tmp = full_data(idata)
    5693      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5694      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5695      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5696      383119 :          idata = idata + 1
    5697      383119 :          data_tmp = full_data(idata)
    5698      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5699      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5700      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5701      383119 :          idata = idata + 1
    5702      383119 :          data_tmp = full_data(idata)
    5703      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5704      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5705      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5706      383119 :          idata = idata + 1
    5707      383119 :          data_tmp = full_data(idata)
    5708      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5709      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5710      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5711      383119 :          idata = idata + 1
    5712      383119 :          data_tmp = full_data(idata)
    5713      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5714      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5715      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5716      383119 :          idata = idata + 1
    5717      383119 :          data_tmp = full_data(idata)
    5718      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5719      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5720      383119 :          pack_tmp = ISHFT(pack_tmp, -6)
    5721      383119 :          idata = idata + 1
    5722      383119 :          data_tmp = full_data(idata)
    5723      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5724      383119 :          data_tmp = IAND(data_tmp, mask_left(6))
    5725      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5726      383119 :          ipack = ipack + 1
    5727      383119 :          packed_data(ipack) = pack_tmp
    5728      383119 :          data_tmp = full_data(idata)
    5729      383119 :          pack_tmp = ISHFT(data_tmp, 61)
    5730      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5731      383119 :          idata = idata + 1
    5732      383119 :          data_tmp = full_data(idata)
    5733      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5734      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5735      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5736      383119 :          idata = idata + 1
    5737      383119 :          data_tmp = full_data(idata)
    5738      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5739      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5740      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5741      383119 :          idata = idata + 1
    5742      383119 :          data_tmp = full_data(idata)
    5743      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5744      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5745      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5746      383119 :          idata = idata + 1
    5747      383119 :          data_tmp = full_data(idata)
    5748      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5749      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5750      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5751      383119 :          idata = idata + 1
    5752      383119 :          data_tmp = full_data(idata)
    5753      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5754      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5755      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5756      383119 :          idata = idata + 1
    5757      383119 :          data_tmp = full_data(idata)
    5758      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5759      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5760      383119 :          pack_tmp = ISHFT(pack_tmp, -7)
    5761      383119 :          idata = idata + 1
    5762      383119 :          data_tmp = full_data(idata)
    5763      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5764      383119 :          data_tmp = IAND(data_tmp, mask_left(7))
    5765      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5766      383119 :          ipack = ipack + 1
    5767      383119 :          packed_data(ipack) = pack_tmp
    5768      383119 :          data_tmp = full_data(idata)
    5769      383119 :          pack_tmp = ISHFT(data_tmp, 62)
    5770      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5771      383119 :          idata = idata + 1
    5772      383119 :          data_tmp = full_data(idata)
    5773      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5774      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5775      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5776      383119 :          idata = idata + 1
    5777      383119 :          data_tmp = full_data(idata)
    5778      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5779      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5780      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5781      383119 :          idata = idata + 1
    5782      383119 :          data_tmp = full_data(idata)
    5783      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5784      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5785      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5786      383119 :          idata = idata + 1
    5787      383119 :          data_tmp = full_data(idata)
    5788      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5789      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5790      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5791      383119 :          idata = idata + 1
    5792      383119 :          data_tmp = full_data(idata)
    5793      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5794      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5795      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5796      383119 :          idata = idata + 1
    5797      383119 :          data_tmp = full_data(idata)
    5798      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5799      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5800      383119 :          pack_tmp = ISHFT(pack_tmp, -8)
    5801      383119 :          idata = idata + 1
    5802      383119 :          data_tmp = full_data(idata)
    5803      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5804      383119 :          data_tmp = IAND(data_tmp, mask_left(8))
    5805      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5806      383119 :          ipack = ipack + 1
    5807      383119 :          packed_data(ipack) = pack_tmp
    5808      383119 :          data_tmp = full_data(idata)
    5809      383119 :          pack_tmp = ISHFT(data_tmp, 63)
    5810      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5811      383119 :          idata = idata + 1
    5812      383119 :          data_tmp = full_data(idata)
    5813      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5814      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5815      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5816      383119 :          idata = idata + 1
    5817      383119 :          data_tmp = full_data(idata)
    5818      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5819      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5820      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5821      383119 :          idata = idata + 1
    5822      383119 :          data_tmp = full_data(idata)
    5823      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5824      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5825      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5826      383119 :          idata = idata + 1
    5827      383119 :          data_tmp = full_data(idata)
    5828      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5829      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5830      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5831      383119 :          idata = idata + 1
    5832      383119 :          data_tmp = full_data(idata)
    5833      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5834      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5835      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5836      383119 :          idata = idata + 1
    5837      383119 :          data_tmp = full_data(idata)
    5838      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5839      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5840      383119 :          pack_tmp = ISHFT(pack_tmp, -9)
    5841      383119 :          idata = idata + 1
    5842      383119 :          data_tmp = full_data(idata)
    5843      383119 :          data_tmp = ISHFT(data_tmp, 55)
    5844      383119 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5845             :          pack_tmp = ISHFT(pack_tmp, 0)
    5846      383119 :          pack_tmp = ISHFT(pack_tmp, 0)
    5847      383119 :          ipack = ipack + 1
    5848      383119 :          packed_data(ipack) = pack_tmp
    5849             :       END DO
    5850       23980 :       IF (Ndata_rep < Ndata) THEN
    5851          66 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    5852             :       END IF
    5853       23980 :    END SUBROUTINE ints2bits_9
    5854             : 
    5855             : ! **************************************************************************************************
    5856             : !> \brief ...
    5857             : !> \param Ndata ...
    5858             : !> \param packed_data ...
    5859             : !> \param full_data ...
    5860             : ! **************************************************************************************************
    5861       98342 :    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       98342 :       ipack = 0
    5872       98342 :       idata = 0
    5873       98342 :       pack_tmp = 0
    5874       98342 :       Ndata_rep = (Ndata/64)*64
    5875       98342 :       DO kdata = 1, Ndata_rep, 64
    5876     1568219 :          idata = idata + 1
    5877     1568219 :          data_tmp = ISHFT(pack_tmp, 9)
    5878     1568219 :          ipack = ipack + 1
    5879     1568219 :          pack_tmp = packed_data(ipack)
    5880     1568219 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
    5881     1568219 :          pack_tmp = ISHFT(pack_tmp, -9)
    5882     1568219 :          idata = idata + 1
    5883     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5884     1568219 :          full_data(idata) = data_tmp
    5885     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5886     1568219 :          idata = idata + 1
    5887     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5888     1568219 :          full_data(idata) = data_tmp
    5889     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5890     1568219 :          idata = idata + 1
    5891     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5892     1568219 :          full_data(idata) = data_tmp
    5893     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5894     1568219 :          idata = idata + 1
    5895     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5896     1568219 :          full_data(idata) = data_tmp
    5897     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5898     1568219 :          idata = idata + 1
    5899     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5900     1568219 :          full_data(idata) = data_tmp
    5901     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5902     1568219 :          idata = idata + 1
    5903     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5904     1568219 :          full_data(idata) = data_tmp
    5905     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5906     1568219 :          idata = idata + 1
    5907     1568219 :          data_tmp = ISHFT(pack_tmp, 8)
    5908     1568219 :          ipack = ipack + 1
    5909     1568219 :          pack_tmp = packed_data(ipack)
    5910     1568219 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5911     1568219 :          pack_tmp = ISHFT(pack_tmp, -8)
    5912     1568219 :          idata = idata + 1
    5913     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5914     1568219 :          full_data(idata) = data_tmp
    5915     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5916     1568219 :          idata = idata + 1
    5917     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5918     1568219 :          full_data(idata) = data_tmp
    5919     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5920     1568219 :          idata = idata + 1
    5921     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5922     1568219 :          full_data(idata) = data_tmp
    5923     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5924     1568219 :          idata = idata + 1
    5925     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5926     1568219 :          full_data(idata) = data_tmp
    5927     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5928     1568219 :          idata = idata + 1
    5929     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5930     1568219 :          full_data(idata) = data_tmp
    5931     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5932     1568219 :          idata = idata + 1
    5933     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5934     1568219 :          full_data(idata) = data_tmp
    5935     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5936     1568219 :          idata = idata + 1
    5937     1568219 :          data_tmp = ISHFT(pack_tmp, 7)
    5938     1568219 :          ipack = ipack + 1
    5939     1568219 :          pack_tmp = packed_data(ipack)
    5940     1568219 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
    5941     1568219 :          pack_tmp = ISHFT(pack_tmp, -7)
    5942     1568219 :          idata = idata + 1
    5943     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5944     1568219 :          full_data(idata) = data_tmp
    5945     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5946     1568219 :          idata = idata + 1
    5947     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5948     1568219 :          full_data(idata) = data_tmp
    5949     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5950     1568219 :          idata = idata + 1
    5951     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5952     1568219 :          full_data(idata) = data_tmp
    5953     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5954     1568219 :          idata = idata + 1
    5955     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5956     1568219 :          full_data(idata) = data_tmp
    5957     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5958     1568219 :          idata = idata + 1
    5959     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5960     1568219 :          full_data(idata) = data_tmp
    5961     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5962     1568219 :          idata = idata + 1
    5963     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5964     1568219 :          full_data(idata) = data_tmp
    5965     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5966     1568219 :          idata = idata + 1
    5967     1568219 :          data_tmp = ISHFT(pack_tmp, 6)
    5968     1568219 :          ipack = ipack + 1
    5969     1568219 :          pack_tmp = packed_data(ipack)
    5970     1568219 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    5971     1568219 :          pack_tmp = ISHFT(pack_tmp, -6)
    5972     1568219 :          idata = idata + 1
    5973     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5974     1568219 :          full_data(idata) = data_tmp
    5975     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5976     1568219 :          idata = idata + 1
    5977     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5978     1568219 :          full_data(idata) = data_tmp
    5979     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5980     1568219 :          idata = idata + 1
    5981     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5982     1568219 :          full_data(idata) = data_tmp
    5983     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5984     1568219 :          idata = idata + 1
    5985     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5986     1568219 :          full_data(idata) = data_tmp
    5987     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5988     1568219 :          idata = idata + 1
    5989     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5990     1568219 :          full_data(idata) = data_tmp
    5991     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5992     1568219 :          idata = idata + 1
    5993     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5994     1568219 :          full_data(idata) = data_tmp
    5995     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5996     1568219 :          idata = idata + 1
    5997     1568219 :          data_tmp = ISHFT(pack_tmp, 5)
    5998     1568219 :          ipack = ipack + 1
    5999     1568219 :          pack_tmp = packed_data(ipack)
    6000     1568219 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
    6001     1568219 :          pack_tmp = ISHFT(pack_tmp, -5)
    6002     1568219 :          idata = idata + 1
    6003     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6004     1568219 :          full_data(idata) = data_tmp
    6005     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6006     1568219 :          idata = idata + 1
    6007     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6008     1568219 :          full_data(idata) = data_tmp
    6009     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6010     1568219 :          idata = idata + 1
    6011     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6012     1568219 :          full_data(idata) = data_tmp
    6013     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6014     1568219 :          idata = idata + 1
    6015     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6016     1568219 :          full_data(idata) = data_tmp
    6017     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6018     1568219 :          idata = idata + 1
    6019     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6020     1568219 :          full_data(idata) = data_tmp
    6021     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6022     1568219 :          idata = idata + 1
    6023     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6024     1568219 :          full_data(idata) = data_tmp
    6025     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6026     1568219 :          idata = idata + 1
    6027     1568219 :          data_tmp = ISHFT(pack_tmp, 4)
    6028     1568219 :          ipack = ipack + 1
    6029     1568219 :          pack_tmp = packed_data(ipack)
    6030     1568219 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    6031     1568219 :          pack_tmp = ISHFT(pack_tmp, -4)
    6032     1568219 :          idata = idata + 1
    6033     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6034     1568219 :          full_data(idata) = data_tmp
    6035     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6036     1568219 :          idata = idata + 1
    6037     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6038     1568219 :          full_data(idata) = data_tmp
    6039     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6040     1568219 :          idata = idata + 1
    6041     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6042     1568219 :          full_data(idata) = data_tmp
    6043     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6044     1568219 :          idata = idata + 1
    6045     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6046     1568219 :          full_data(idata) = data_tmp
    6047     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6048     1568219 :          idata = idata + 1
    6049     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6050     1568219 :          full_data(idata) = data_tmp
    6051     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6052     1568219 :          idata = idata + 1
    6053     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6054     1568219 :          full_data(idata) = data_tmp
    6055     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6056     1568219 :          idata = idata + 1
    6057     1568219 :          data_tmp = ISHFT(pack_tmp, 3)
    6058     1568219 :          ipack = ipack + 1
    6059     1568219 :          pack_tmp = packed_data(ipack)
    6060     1568219 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    6061     1568219 :          pack_tmp = ISHFT(pack_tmp, -3)
    6062     1568219 :          idata = idata + 1
    6063     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6064     1568219 :          full_data(idata) = data_tmp
    6065     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6066     1568219 :          idata = idata + 1
    6067     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6068     1568219 :          full_data(idata) = data_tmp
    6069     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6070     1568219 :          idata = idata + 1
    6071     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6072     1568219 :          full_data(idata) = data_tmp
    6073     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6074     1568219 :          idata = idata + 1
    6075     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6076     1568219 :          full_data(idata) = data_tmp
    6077     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6078     1568219 :          idata = idata + 1
    6079     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6080     1568219 :          full_data(idata) = data_tmp
    6081     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6082     1568219 :          idata = idata + 1
    6083     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6084     1568219 :          full_data(idata) = data_tmp
    6085     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6086     1568219 :          idata = idata + 1
    6087     1568219 :          data_tmp = ISHFT(pack_tmp, 2)
    6088     1568219 :          ipack = ipack + 1
    6089     1568219 :          pack_tmp = packed_data(ipack)
    6090     1568219 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    6091     1568219 :          pack_tmp = ISHFT(pack_tmp, -2)
    6092     1568219 :          idata = idata + 1
    6093     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6094     1568219 :          full_data(idata) = data_tmp
    6095     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6096     1568219 :          idata = idata + 1
    6097     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6098     1568219 :          full_data(idata) = data_tmp
    6099     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6100     1568219 :          idata = idata + 1
    6101     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6102     1568219 :          full_data(idata) = data_tmp
    6103     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6104     1568219 :          idata = idata + 1
    6105     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6106     1568219 :          full_data(idata) = data_tmp
    6107     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6108     1568219 :          idata = idata + 1
    6109     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6110     1568219 :          full_data(idata) = data_tmp
    6111     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6112     1568219 :          idata = idata + 1
    6113     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6114     1568219 :          full_data(idata) = data_tmp
    6115     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6116     1568219 :          idata = idata + 1
    6117     1568219 :          data_tmp = ISHFT(pack_tmp, 1)
    6118     1568219 :          ipack = ipack + 1
    6119     1568219 :          pack_tmp = packed_data(ipack)
    6120     1568219 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    6121     1568219 :          pack_tmp = ISHFT(pack_tmp, -1)
    6122     1568219 :          idata = idata + 1
    6123     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6124     1568219 :          full_data(idata) = data_tmp
    6125     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6126     1568219 :          idata = idata + 1
    6127     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6128     1568219 :          full_data(idata) = data_tmp
    6129     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6130     1568219 :          idata = idata + 1
    6131     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6132     1568219 :          full_data(idata) = data_tmp
    6133     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6134     1568219 :          idata = idata + 1
    6135     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6136     1568219 :          full_data(idata) = data_tmp
    6137     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6138     1568219 :          idata = idata + 1
    6139     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6140     1568219 :          full_data(idata) = data_tmp
    6141     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6142     1568219 :          idata = idata + 1
    6143     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6144     1568219 :          full_data(idata) = data_tmp
    6145     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6146     1568219 :          idata = idata + 1
    6147     1568219 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6148     1568219 :          full_data(idata) = data_tmp
    6149     1568219 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6150             :       END DO
    6151       98342 :       IF (Ndata_rep < Ndata) THEN
    6152         618 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    6153             :       END IF
    6154       98342 :    END SUBROUTINE bits2ints_9
    6155             : 
    6156             : ! **************************************************************************************************
    6157             : !> \brief ...
    6158             : !> \param Ndata ...
    6159             : !> \param packed_data ...
    6160             : !> \param full_data ...
    6161             : ! **************************************************************************************************
    6162       50461 :    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       50461 :       idata = 0
    6173       50461 :       ipack = 0
    6174       50461 :       Ndata_rep = (Ndata/64)*64
    6175       50461 :       DO kdata = 1, Ndata_rep, 64
    6176      747298 :          pack_tmp = 0
    6177      747298 :          idata = idata + 1
    6178      747298 :          data_tmp = full_data(idata)
    6179      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6180      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6181      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6182      747298 :          idata = idata + 1
    6183      747298 :          data_tmp = full_data(idata)
    6184      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6185      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6186      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6187      747298 :          idata = idata + 1
    6188      747298 :          data_tmp = full_data(idata)
    6189      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6190      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6191      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6192      747298 :          idata = idata + 1
    6193      747298 :          data_tmp = full_data(idata)
    6194      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6195      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6196      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6197      747298 :          idata = idata + 1
    6198      747298 :          data_tmp = full_data(idata)
    6199      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6200      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6201      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6202      747298 :          idata = idata + 1
    6203      747298 :          data_tmp = full_data(idata)
    6204      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6205      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6206      747298 :          pack_tmp = ISHFT(pack_tmp, -4)
    6207      747298 :          idata = idata + 1
    6208      747298 :          data_tmp = full_data(idata)
    6209      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6210      747298 :          data_tmp = IAND(data_tmp, mask_left(4))
    6211      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6212      747298 :          ipack = ipack + 1
    6213      747298 :          packed_data(ipack) = pack_tmp
    6214      747298 :          data_tmp = full_data(idata)
    6215      747298 :          pack_tmp = ISHFT(data_tmp, 58)
    6216      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6217      747298 :          idata = idata + 1
    6218      747298 :          data_tmp = full_data(idata)
    6219      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6220      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6221      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6222      747298 :          idata = idata + 1
    6223      747298 :          data_tmp = full_data(idata)
    6224      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6225      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6226      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6227      747298 :          idata = idata + 1
    6228      747298 :          data_tmp = full_data(idata)
    6229      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6230      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6231      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6232      747298 :          idata = idata + 1
    6233      747298 :          data_tmp = full_data(idata)
    6234      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6235      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6236      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6237      747298 :          idata = idata + 1
    6238      747298 :          data_tmp = full_data(idata)
    6239      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6240      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6241      747298 :          pack_tmp = ISHFT(pack_tmp, -8)
    6242      747298 :          idata = idata + 1
    6243      747298 :          data_tmp = full_data(idata)
    6244      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6245      747298 :          data_tmp = IAND(data_tmp, mask_left(8))
    6246      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6247      747298 :          ipack = ipack + 1
    6248      747298 :          packed_data(ipack) = pack_tmp
    6249      747298 :          data_tmp = full_data(idata)
    6250      747298 :          pack_tmp = ISHFT(data_tmp, 62)
    6251      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6252      747298 :          idata = idata + 1
    6253      747298 :          data_tmp = full_data(idata)
    6254      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6255      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6256      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6257      747298 :          idata = idata + 1
    6258      747298 :          data_tmp = full_data(idata)
    6259      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6260      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6261      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6262      747298 :          idata = idata + 1
    6263      747298 :          data_tmp = full_data(idata)
    6264      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6265      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6266      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6267      747298 :          idata = idata + 1
    6268      747298 :          data_tmp = full_data(idata)
    6269      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6270      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6271      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6272      747298 :          idata = idata + 1
    6273      747298 :          data_tmp = full_data(idata)
    6274      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6275      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6276      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6277      747298 :          idata = idata + 1
    6278      747298 :          data_tmp = full_data(idata)
    6279      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6280      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6281      747298 :          pack_tmp = ISHFT(pack_tmp, -2)
    6282      747298 :          idata = idata + 1
    6283      747298 :          data_tmp = full_data(idata)
    6284      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6285      747298 :          data_tmp = IAND(data_tmp, mask_left(2))
    6286      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6287      747298 :          ipack = ipack + 1
    6288      747298 :          packed_data(ipack) = pack_tmp
    6289      747298 :          data_tmp = full_data(idata)
    6290      747298 :          pack_tmp = ISHFT(data_tmp, 56)
    6291      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6292      747298 :          idata = idata + 1
    6293      747298 :          data_tmp = full_data(idata)
    6294      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6295      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6296      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6297      747298 :          idata = idata + 1
    6298      747298 :          data_tmp = full_data(idata)
    6299      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6300      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6301      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6302      747298 :          idata = idata + 1
    6303      747298 :          data_tmp = full_data(idata)
    6304      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6305      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6306      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6307      747298 :          idata = idata + 1
    6308      747298 :          data_tmp = full_data(idata)
    6309      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6310      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6311      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6312      747298 :          idata = idata + 1
    6313      747298 :          data_tmp = full_data(idata)
    6314      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6315      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6316      747298 :          pack_tmp = ISHFT(pack_tmp, -6)
    6317      747298 :          idata = idata + 1
    6318      747298 :          data_tmp = full_data(idata)
    6319      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6320      747298 :          data_tmp = IAND(data_tmp, mask_left(6))
    6321      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6322      747298 :          ipack = ipack + 1
    6323      747298 :          packed_data(ipack) = pack_tmp
    6324      747298 :          data_tmp = full_data(idata)
    6325      747298 :          pack_tmp = ISHFT(data_tmp, 60)
    6326      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6327      747298 :          idata = idata + 1
    6328      747298 :          data_tmp = full_data(idata)
    6329      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6330      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6331      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6332      747298 :          idata = idata + 1
    6333      747298 :          data_tmp = full_data(idata)
    6334      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6335      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6336      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6337      747298 :          idata = idata + 1
    6338      747298 :          data_tmp = full_data(idata)
    6339      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6340      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6341      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6342      747298 :          idata = idata + 1
    6343      747298 :          data_tmp = full_data(idata)
    6344      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6345      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6346      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6347      747298 :          idata = idata + 1
    6348      747298 :          data_tmp = full_data(idata)
    6349      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6350      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6351      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6352      747298 :          idata = idata + 1
    6353      747298 :          data_tmp = full_data(idata)
    6354      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6355      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6356      747298 :          pack_tmp = ISHFT(pack_tmp, 0)
    6357      747298 :          idata = idata + 1
    6358      747298 :          data_tmp = full_data(idata)
    6359             :          data_tmp = ISHFT(data_tmp, 54)
    6360      747298 :          data_tmp = IAND(data_tmp, mask_left(0))
    6361      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6362      747298 :          ipack = ipack + 1
    6363      747298 :          packed_data(ipack) = pack_tmp
    6364      747298 :          data_tmp = full_data(idata)
    6365      747298 :          pack_tmp = ISHFT(data_tmp, 54)
    6366      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6367      747298 :          idata = idata + 1
    6368      747298 :          data_tmp = full_data(idata)
    6369      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6370      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6371      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6372      747298 :          idata = idata + 1
    6373      747298 :          data_tmp = full_data(idata)
    6374      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6375      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6376      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6377      747298 :          idata = idata + 1
    6378      747298 :          data_tmp = full_data(idata)
    6379      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6380      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6381      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6382      747298 :          idata = idata + 1
    6383      747298 :          data_tmp = full_data(idata)
    6384      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6385      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6386      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6387      747298 :          idata = idata + 1
    6388      747298 :          data_tmp = full_data(idata)
    6389      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6390      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6391      747298 :          pack_tmp = ISHFT(pack_tmp, -4)
    6392      747298 :          idata = idata + 1
    6393      747298 :          data_tmp = full_data(idata)
    6394      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6395      747298 :          data_tmp = IAND(data_tmp, mask_left(4))
    6396      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6397      747298 :          ipack = ipack + 1
    6398      747298 :          packed_data(ipack) = pack_tmp
    6399      747298 :          data_tmp = full_data(idata)
    6400      747298 :          pack_tmp = ISHFT(data_tmp, 58)
    6401      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6402      747298 :          idata = idata + 1
    6403      747298 :          data_tmp = full_data(idata)
    6404      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6405      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6406      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6407      747298 :          idata = idata + 1
    6408      747298 :          data_tmp = full_data(idata)
    6409      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6410      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6411      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6412      747298 :          idata = idata + 1
    6413      747298 :          data_tmp = full_data(idata)
    6414      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6415      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6416      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6417      747298 :          idata = idata + 1
    6418      747298 :          data_tmp = full_data(idata)
    6419      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6420      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6421      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6422      747298 :          idata = idata + 1
    6423      747298 :          data_tmp = full_data(idata)
    6424      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6425      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6426      747298 :          pack_tmp = ISHFT(pack_tmp, -8)
    6427      747298 :          idata = idata + 1
    6428      747298 :          data_tmp = full_data(idata)
    6429      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6430      747298 :          data_tmp = IAND(data_tmp, mask_left(8))
    6431      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6432      747298 :          ipack = ipack + 1
    6433      747298 :          packed_data(ipack) = pack_tmp
    6434      747298 :          data_tmp = full_data(idata)
    6435      747298 :          pack_tmp = ISHFT(data_tmp, 62)
    6436      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6437      747298 :          idata = idata + 1
    6438      747298 :          data_tmp = full_data(idata)
    6439      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6440      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6441      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6442      747298 :          idata = idata + 1
    6443      747298 :          data_tmp = full_data(idata)
    6444      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6445      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6446      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6447      747298 :          idata = idata + 1
    6448      747298 :          data_tmp = full_data(idata)
    6449      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6450      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6451      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6452      747298 :          idata = idata + 1
    6453      747298 :          data_tmp = full_data(idata)
    6454      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6455      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6456      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6457      747298 :          idata = idata + 1
    6458      747298 :          data_tmp = full_data(idata)
    6459      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6460      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6461      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6462      747298 :          idata = idata + 1
    6463      747298 :          data_tmp = full_data(idata)
    6464      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6465      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6466      747298 :          pack_tmp = ISHFT(pack_tmp, -2)
    6467      747298 :          idata = idata + 1
    6468      747298 :          data_tmp = full_data(idata)
    6469      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6470      747298 :          data_tmp = IAND(data_tmp, mask_left(2))
    6471      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6472      747298 :          ipack = ipack + 1
    6473      747298 :          packed_data(ipack) = pack_tmp
    6474      747298 :          data_tmp = full_data(idata)
    6475      747298 :          pack_tmp = ISHFT(data_tmp, 56)
    6476      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6477      747298 :          idata = idata + 1
    6478      747298 :          data_tmp = full_data(idata)
    6479      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6480      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6481      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6482      747298 :          idata = idata + 1
    6483      747298 :          data_tmp = full_data(idata)
    6484      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6485      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6486      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6487      747298 :          idata = idata + 1
    6488      747298 :          data_tmp = full_data(idata)
    6489      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6490      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6491      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6492      747298 :          idata = idata + 1
    6493      747298 :          data_tmp = full_data(idata)
    6494      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6495      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6496      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6497      747298 :          idata = idata + 1
    6498      747298 :          data_tmp = full_data(idata)
    6499      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6500      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6501      747298 :          pack_tmp = ISHFT(pack_tmp, -6)
    6502      747298 :          idata = idata + 1
    6503      747298 :          data_tmp = full_data(idata)
    6504      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6505      747298 :          data_tmp = IAND(data_tmp, mask_left(6))
    6506      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6507      747298 :          ipack = ipack + 1
    6508      747298 :          packed_data(ipack) = pack_tmp
    6509      747298 :          data_tmp = full_data(idata)
    6510      747298 :          pack_tmp = ISHFT(data_tmp, 60)
    6511      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6512      747298 :          idata = idata + 1
    6513      747298 :          data_tmp = full_data(idata)
    6514      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6515      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6516      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6517      747298 :          idata = idata + 1
    6518      747298 :          data_tmp = full_data(idata)
    6519      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6520      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6521      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6522      747298 :          idata = idata + 1
    6523      747298 :          data_tmp = full_data(idata)
    6524      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6525      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6526      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6527      747298 :          idata = idata + 1
    6528      747298 :          data_tmp = full_data(idata)
    6529      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6530      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6531      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6532      747298 :          idata = idata + 1
    6533      747298 :          data_tmp = full_data(idata)
    6534      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6535      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6536      747298 :          pack_tmp = ISHFT(pack_tmp, -10)
    6537      747298 :          idata = idata + 1
    6538      747298 :          data_tmp = full_data(idata)
    6539      747298 :          data_tmp = ISHFT(data_tmp, 54)
    6540      747298 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6541             :          pack_tmp = ISHFT(pack_tmp, 0)
    6542      747298 :          pack_tmp = ISHFT(pack_tmp, 0)
    6543      747298 :          ipack = ipack + 1
    6544      747663 :          packed_data(ipack) = pack_tmp
    6545             :       END DO
    6546       50461 :       IF (Ndata_rep < Ndata) THEN
    6547        4828 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    6548             :       END IF
    6549       50461 :    END SUBROUTINE ints2bits_10
    6550             : 
    6551             : ! **************************************************************************************************
    6552             : !> \brief ...
    6553             : !> \param Ndata ...
    6554             : !> \param packed_data ...
    6555             : !> \param full_data ...
    6556             : ! **************************************************************************************************
    6557      303538 :    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      303538 :       ipack = 0
    6568      303538 :       idata = 0
    6569      303538 :       pack_tmp = 0
    6570      303538 :       Ndata_rep = (Ndata/64)*64
    6571      303538 :       DO kdata = 1, Ndata_rep, 64
    6572     4393822 :          idata = idata + 1
    6573     4393822 :          data_tmp = ISHFT(pack_tmp, 10)
    6574     4393822 :          ipack = ipack + 1
    6575     4393822 :          pack_tmp = packed_data(ipack)
    6576     4393822 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    6577     4393822 :          pack_tmp = ISHFT(pack_tmp, -10)
    6578     4393822 :          idata = idata + 1
    6579     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6580     4393822 :          full_data(idata) = data_tmp
    6581     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6582     4393822 :          idata = idata + 1
    6583     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6584     4393822 :          full_data(idata) = data_tmp
    6585     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6586     4393822 :          idata = idata + 1
    6587     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6588     4393822 :          full_data(idata) = data_tmp
    6589     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6590     4393822 :          idata = idata + 1
    6591     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6592     4393822 :          full_data(idata) = data_tmp
    6593     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6594     4393822 :          idata = idata + 1
    6595     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6596     4393822 :          full_data(idata) = data_tmp
    6597     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6598     4393822 :          idata = idata + 1
    6599     4393822 :          data_tmp = ISHFT(pack_tmp, 6)
    6600     4393822 :          ipack = ipack + 1
    6601     4393822 :          pack_tmp = packed_data(ipack)
    6602     4393822 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    6603     4393822 :          pack_tmp = ISHFT(pack_tmp, -6)
    6604     4393822 :          idata = idata + 1
    6605     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6606     4393822 :          full_data(idata) = data_tmp
    6607     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6608     4393822 :          idata = idata + 1
    6609     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6610     4393822 :          full_data(idata) = data_tmp
    6611     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6612     4393822 :          idata = idata + 1
    6613     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6614     4393822 :          full_data(idata) = data_tmp
    6615     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6616     4393822 :          idata = idata + 1
    6617     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6618     4393822 :          full_data(idata) = data_tmp
    6619     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6620     4393822 :          idata = idata + 1
    6621     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6622     4393822 :          full_data(idata) = data_tmp
    6623     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6624     4393822 :          idata = idata + 1
    6625     4393822 :          data_tmp = ISHFT(pack_tmp, 2)
    6626     4393822 :          ipack = ipack + 1
    6627     4393822 :          pack_tmp = packed_data(ipack)
    6628     4393822 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    6629     4393822 :          pack_tmp = ISHFT(pack_tmp, -2)
    6630     4393822 :          idata = idata + 1
    6631     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6632     4393822 :          full_data(idata) = data_tmp
    6633     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6634     4393822 :          idata = idata + 1
    6635     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6636     4393822 :          full_data(idata) = data_tmp
    6637     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6638     4393822 :          idata = idata + 1
    6639     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6640     4393822 :          full_data(idata) = data_tmp
    6641     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6642     4393822 :          idata = idata + 1
    6643     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6644     4393822 :          full_data(idata) = data_tmp
    6645     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6646     4393822 :          idata = idata + 1
    6647     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6648     4393822 :          full_data(idata) = data_tmp
    6649     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6650     4393822 :          idata = idata + 1
    6651     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6652     4393822 :          full_data(idata) = data_tmp
    6653     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6654     4393822 :          idata = idata + 1
    6655     4393822 :          data_tmp = ISHFT(pack_tmp, 8)
    6656     4393822 :          ipack = ipack + 1
    6657     4393822 :          pack_tmp = packed_data(ipack)
    6658     4393822 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    6659     4393822 :          pack_tmp = ISHFT(pack_tmp, -8)
    6660     4393822 :          idata = idata + 1
    6661     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6662     4393822 :          full_data(idata) = data_tmp
    6663     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6664     4393822 :          idata = idata + 1
    6665     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6666     4393822 :          full_data(idata) = data_tmp
    6667     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6668     4393822 :          idata = idata + 1
    6669     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6670     4393822 :          full_data(idata) = data_tmp
    6671     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6672     4393822 :          idata = idata + 1
    6673     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6674     4393822 :          full_data(idata) = data_tmp
    6675     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6676     4393822 :          idata = idata + 1
    6677     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6678     4393822 :          full_data(idata) = data_tmp
    6679     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6680     4393822 :          idata = idata + 1
    6681     4393822 :          data_tmp = ISHFT(pack_tmp, 4)
    6682     4393822 :          ipack = ipack + 1
    6683     4393822 :          pack_tmp = packed_data(ipack)
    6684     4393822 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    6685     4393822 :          pack_tmp = ISHFT(pack_tmp, -4)
    6686     4393822 :          idata = idata + 1
    6687     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6688     4393822 :          full_data(idata) = data_tmp
    6689     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6690     4393822 :          idata = idata + 1
    6691     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6692     4393822 :          full_data(idata) = data_tmp
    6693     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6694     4393822 :          idata = idata + 1
    6695     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6696     4393822 :          full_data(idata) = data_tmp
    6697     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6698     4393822 :          idata = idata + 1
    6699     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6700     4393822 :          full_data(idata) = data_tmp
    6701     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6702     4393822 :          idata = idata + 1
    6703     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6704     4393822 :          full_data(idata) = data_tmp
    6705     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6706     4393822 :          idata = idata + 1
    6707     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6708     4393822 :          full_data(idata) = data_tmp
    6709     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6710     4393822 :          idata = idata + 1
    6711     4393822 :          data_tmp = ISHFT(pack_tmp, 10)
    6712     4393822 :          ipack = ipack + 1
    6713     4393822 :          pack_tmp = packed_data(ipack)
    6714     4393822 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    6715     4393822 :          pack_tmp = ISHFT(pack_tmp, -10)
    6716     4393822 :          idata = idata + 1
    6717     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6718     4393822 :          full_data(idata) = data_tmp
    6719     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6720     4393822 :          idata = idata + 1
    6721     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6722     4393822 :          full_data(idata) = data_tmp
    6723     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6724     4393822 :          idata = idata + 1
    6725     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6726     4393822 :          full_data(idata) = data_tmp
    6727     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6728     4393822 :          idata = idata + 1
    6729     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6730     4393822 :          full_data(idata) = data_tmp
    6731     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6732     4393822 :          idata = idata + 1
    6733     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6734     4393822 :          full_data(idata) = data_tmp
    6735     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6736     4393822 :          idata = idata + 1
    6737     4393822 :          data_tmp = ISHFT(pack_tmp, 6)
    6738     4393822 :          ipack = ipack + 1
    6739     4393822 :          pack_tmp = packed_data(ipack)
    6740     4393822 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    6741     4393822 :          pack_tmp = ISHFT(pack_tmp, -6)
    6742     4393822 :          idata = idata + 1
    6743     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6744     4393822 :          full_data(idata) = data_tmp
    6745     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6746     4393822 :          idata = idata + 1
    6747     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6748     4393822 :          full_data(idata) = data_tmp
    6749     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6750     4393822 :          idata = idata + 1
    6751     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6752     4393822 :          full_data(idata) = data_tmp
    6753     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6754     4393822 :          idata = idata + 1
    6755     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6756     4393822 :          full_data(idata) = data_tmp
    6757     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6758     4393822 :          idata = idata + 1
    6759     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6760     4393822 :          full_data(idata) = data_tmp
    6761     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6762     4393822 :          idata = idata + 1
    6763     4393822 :          data_tmp = ISHFT(pack_tmp, 2)
    6764     4393822 :          ipack = ipack + 1
    6765     4393822 :          pack_tmp = packed_data(ipack)
    6766     4393822 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    6767     4393822 :          pack_tmp = ISHFT(pack_tmp, -2)
    6768     4393822 :          idata = idata + 1
    6769     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6770     4393822 :          full_data(idata) = data_tmp
    6771     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6772     4393822 :          idata = idata + 1
    6773     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6774     4393822 :          full_data(idata) = data_tmp
    6775     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6776     4393822 :          idata = idata + 1
    6777     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6778     4393822 :          full_data(idata) = data_tmp
    6779     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6780     4393822 :          idata = idata + 1
    6781     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6782     4393822 :          full_data(idata) = data_tmp
    6783     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6784     4393822 :          idata = idata + 1
    6785     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6786     4393822 :          full_data(idata) = data_tmp
    6787     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6788     4393822 :          idata = idata + 1
    6789     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6790     4393822 :          full_data(idata) = data_tmp
    6791     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6792     4393822 :          idata = idata + 1
    6793     4393822 :          data_tmp = ISHFT(pack_tmp, 8)
    6794     4393822 :          ipack = ipack + 1
    6795     4393822 :          pack_tmp = packed_data(ipack)
    6796     4393822 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    6797     4393822 :          pack_tmp = ISHFT(pack_tmp, -8)
    6798     4393822 :          idata = idata + 1
    6799     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6800     4393822 :          full_data(idata) = data_tmp
    6801     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6802     4393822 :          idata = idata + 1
    6803     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6804     4393822 :          full_data(idata) = data_tmp
    6805     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6806     4393822 :          idata = idata + 1
    6807     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6808     4393822 :          full_data(idata) = data_tmp
    6809     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6810     4393822 :          idata = idata + 1
    6811     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6812     4393822 :          full_data(idata) = data_tmp
    6813     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6814     4393822 :          idata = idata + 1
    6815     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6816     4393822 :          full_data(idata) = data_tmp
    6817     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6818     4393822 :          idata = idata + 1
    6819     4393822 :          data_tmp = ISHFT(pack_tmp, 4)
    6820     4393822 :          ipack = ipack + 1
    6821     4393822 :          pack_tmp = packed_data(ipack)
    6822     4393822 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    6823     4393822 :          pack_tmp = ISHFT(pack_tmp, -4)
    6824     4393822 :          idata = idata + 1
    6825     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6826     4393822 :          full_data(idata) = data_tmp
    6827     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6828     4393822 :          idata = idata + 1
    6829     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6830     4393822 :          full_data(idata) = data_tmp
    6831     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6832     4393822 :          idata = idata + 1
    6833     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6834     4393822 :          full_data(idata) = data_tmp
    6835     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6836     4393822 :          idata = idata + 1
    6837     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6838     4393822 :          full_data(idata) = data_tmp
    6839     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6840     4393822 :          idata = idata + 1
    6841     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6842     4393822 :          full_data(idata) = data_tmp
    6843     4393822 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6844     4393822 :          idata = idata + 1
    6845     4393822 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6846     4393822 :          full_data(idata) = data_tmp
    6847     4396568 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6848             :       END DO
    6849      303538 :       IF (Ndata_rep < Ndata) THEN
    6850       37636 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    6851             :       END IF
    6852      303538 :    END SUBROUTINE bits2ints_10
    6853             : 
    6854             : ! **************************************************************************************************
    6855             : !> \brief ...
    6856             : !> \param Ndata ...
    6857             : !> \param packed_data ...
    6858             : !> \param full_data ...
    6859             : ! **************************************************************************************************
    6860       26433 :    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       26433 :       idata = 0
    6871       26433 :       ipack = 0
    6872       26433 :       Ndata_rep = (Ndata/64)*64
    6873       26433 :       DO kdata = 1, Ndata_rep, 64
    6874      416281 :          pack_tmp = 0
    6875      416281 :          idata = idata + 1
    6876      416281 :          data_tmp = full_data(idata)
    6877      416281 :          data_tmp = ISHFT(data_tmp, 53)
    6878      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6879      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    6880      416281 :          idata = idata + 1
    6881      416281 :          data_tmp = full_data(idata)
    6882      416281 :          data_tmp = ISHFT(data_tmp, 53)
    6883      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6884      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    6885      416281 :          idata = idata + 1
    6886      416281 :          data_tmp = full_data(idata)
    6887      416281 :          data_tmp = ISHFT(data_tmp, 53)
    6888      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6889      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    6890      416281 :          idata = idata + 1
    6891      416281 :          data_tmp = full_data(idata)
    6892      416281 :          data_tmp = ISHFT(data_tmp, 53)
    6893      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6894      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    6895      416281 :          idata = idata + 1
    6896      416281 :          data_tmp = full_data(idata)
    6897      416281 :          data_tmp = ISHFT(data_tmp, 53)
    6898      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6899      416281 :          pack_tmp = ISHFT(pack_tmp, -9)
    6900      416281 :          idata = idata + 1
    6901      416281 :          data_tmp = full_data(idata)
    6902      416281 :          data_tmp = ISHFT(data_tmp, 53)
    6903      416281 :          data_tmp = IAND(data_tmp, mask_left(9))
    6904      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6905      416281 :          ipack = ipack + 1
    6906      416281 :          packed_data(ipack) = pack_tmp
    6907      416281 :          data_tmp = full_data(idata)
    6908      416281 :          pack_tmp = ISHFT(data_tmp, 62)
    6909      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    6910      416281 :          idata = idata + 1
    6911      416281 :          data_tmp = full_data(idata)
    6912      416281 :          data_tmp = ISHFT(data_tmp, 53)
    6913      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6914      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    6915      416281 :          idata = idata + 1
    6916      416281 :          data_tmp = full_data(idata)
    6917      416281 :          data_tmp = ISHFT(data_tmp, 53)
    6918      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6919      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    6920      416281 :          idata = idata + 1
    6921      416281 :          data_tmp = full_data(idata)
    6922      416281 :          data_tmp = ISHFT(data_tmp, 53)
    6923      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6924      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    6925      416281 :          idata = idata + 1
    6926      416281 :          data_tmp = full_data(idata)
    6927      416281 :          data_tmp = ISHFT(data_tmp, 53)
    6928      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6929      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    6930      416281 :          idata = idata + 1
    6931      416281 :          data_tmp = full_data(idata)
    6932      416281 :          data_tmp = ISHFT(data_tmp, 53)
    6933      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6934      416281 :          pack_tmp = ISHFT(pack_tmp, -7)
    6935      416281 :          idata = idata + 1
    6936      416281 :          data_tmp = full_data(idata)
    6937      416281 :          data_tmp = ISHFT(data_tmp, 53)
    6938      416281 :          data_tmp = IAND(data_tmp, mask_left(7))
    6939      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6940      416281 :          ipack = ipack + 1
    6941      416281 :          packed_data(ipack) = pack_tmp
    6942      416281 :          data_tmp = full_data(idata)
    6943      416281 :          pack_tmp = ISHFT(data_tmp, 60)
    6944      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    6945      416281 :          idata = idata + 1
    6946      416281 :          data_tmp = full_data(idata)
    6947      416281 :          data_tmp = ISHFT(data_tmp, 53)
    6948      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6949      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    6950      416281 :          idata = idata + 1
    6951      416281 :          data_tmp = full_data(idata)
    6952      416281 :          data_tmp = ISHFT(data_tmp, 53)
    6953      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6954      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    6955      416281 :          idata = idata + 1
    6956      416281 :          data_tmp = full_data(idata)
    6957      416281 :          data_tmp = ISHFT(data_tmp, 53)
    6958      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6959      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    6960      416281 :          idata = idata + 1
    6961      416281 :          data_tmp = full_data(idata)
    6962      416281 :          data_tmp = ISHFT(data_tmp, 53)
    6963      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6964      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    6965      416281 :          idata = idata + 1
    6966      416281 :          data_tmp = full_data(idata)
    6967      416281 :          data_tmp = ISHFT(data_tmp, 53)
    6968      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6969      416281 :          pack_tmp = ISHFT(pack_tmp, -5)
    6970      416281 :          idata = idata + 1
    6971      416281 :          data_tmp = full_data(idata)
    6972      416281 :          data_tmp = ISHFT(data_tmp, 53)
    6973      416281 :          data_tmp = IAND(data_tmp, mask_left(5))
    6974      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6975      416281 :          ipack = ipack + 1
    6976      416281 :          packed_data(ipack) = pack_tmp
    6977      416281 :          data_tmp = full_data(idata)
    6978      416281 :          pack_tmp = ISHFT(data_tmp, 58)
    6979      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    6980      416281 :          idata = idata + 1
    6981      416281 :          data_tmp = full_data(idata)
    6982      416281 :          data_tmp = ISHFT(data_tmp, 53)
    6983      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6984      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    6985      416281 :          idata = idata + 1
    6986      416281 :          data_tmp = full_data(idata)
    6987      416281 :          data_tmp = ISHFT(data_tmp, 53)
    6988      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6989      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    6990      416281 :          idata = idata + 1
    6991      416281 :          data_tmp = full_data(idata)
    6992      416281 :          data_tmp = ISHFT(data_tmp, 53)
    6993      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6994      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    6995      416281 :          idata = idata + 1
    6996      416281 :          data_tmp = full_data(idata)
    6997      416281 :          data_tmp = ISHFT(data_tmp, 53)
    6998      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6999      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7000      416281 :          idata = idata + 1
    7001      416281 :          data_tmp = full_data(idata)
    7002      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7003      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7004      416281 :          pack_tmp = ISHFT(pack_tmp, -3)
    7005      416281 :          idata = idata + 1
    7006      416281 :          data_tmp = full_data(idata)
    7007      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7008      416281 :          data_tmp = IAND(data_tmp, mask_left(3))
    7009      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7010      416281 :          ipack = ipack + 1
    7011      416281 :          packed_data(ipack) = pack_tmp
    7012      416281 :          data_tmp = full_data(idata)
    7013      416281 :          pack_tmp = ISHFT(data_tmp, 56)
    7014      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7015      416281 :          idata = idata + 1
    7016      416281 :          data_tmp = full_data(idata)
    7017      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7018      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7019      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7020      416281 :          idata = idata + 1
    7021      416281 :          data_tmp = full_data(idata)
    7022      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7023      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7024      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7025      416281 :          idata = idata + 1
    7026      416281 :          data_tmp = full_data(idata)
    7027      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7028      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7029      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7030      416281 :          idata = idata + 1
    7031      416281 :          data_tmp = full_data(idata)
    7032      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7033      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7034      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7035      416281 :          idata = idata + 1
    7036      416281 :          data_tmp = full_data(idata)
    7037      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7038      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7039      416281 :          pack_tmp = ISHFT(pack_tmp, -1)
    7040      416281 :          idata = idata + 1
    7041      416281 :          data_tmp = full_data(idata)
    7042      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7043      416281 :          data_tmp = IAND(data_tmp, mask_left(1))
    7044      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7045      416281 :          ipack = ipack + 1
    7046      416281 :          packed_data(ipack) = pack_tmp
    7047      416281 :          data_tmp = full_data(idata)
    7048      416281 :          pack_tmp = ISHFT(data_tmp, 54)
    7049      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7050      416281 :          idata = idata + 1
    7051      416281 :          data_tmp = full_data(idata)
    7052      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7053      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7054      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7055      416281 :          idata = idata + 1
    7056      416281 :          data_tmp = full_data(idata)
    7057      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7058      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7059      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7060      416281 :          idata = idata + 1
    7061      416281 :          data_tmp = full_data(idata)
    7062      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7063      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7064      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7065      416281 :          idata = idata + 1
    7066      416281 :          data_tmp = full_data(idata)
    7067      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7068      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7069      416281 :          pack_tmp = ISHFT(pack_tmp, -10)
    7070      416281 :          idata = idata + 1
    7071      416281 :          data_tmp = full_data(idata)
    7072      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7073      416281 :          data_tmp = IAND(data_tmp, mask_left(10))
    7074      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7075      416281 :          ipack = ipack + 1
    7076      416281 :          packed_data(ipack) = pack_tmp
    7077      416281 :          data_tmp = full_data(idata)
    7078      416281 :          pack_tmp = ISHFT(data_tmp, 63)
    7079      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7080      416281 :          idata = idata + 1
    7081      416281 :          data_tmp = full_data(idata)
    7082      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7083      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7084      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7085      416281 :          idata = idata + 1
    7086      416281 :          data_tmp = full_data(idata)
    7087      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7088      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7089      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7090      416281 :          idata = idata + 1
    7091      416281 :          data_tmp = full_data(idata)
    7092      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7093      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7094      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7095      416281 :          idata = idata + 1
    7096      416281 :          data_tmp = full_data(idata)
    7097      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7098      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7099      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7100      416281 :          idata = idata + 1
    7101      416281 :          data_tmp = full_data(idata)
    7102      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7103      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7104      416281 :          pack_tmp = ISHFT(pack_tmp, -8)
    7105      416281 :          idata = idata + 1
    7106      416281 :          data_tmp = full_data(idata)
    7107      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7108      416281 :          data_tmp = IAND(data_tmp, mask_left(8))
    7109      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7110      416281 :          ipack = ipack + 1
    7111      416281 :          packed_data(ipack) = pack_tmp
    7112      416281 :          data_tmp = full_data(idata)
    7113      416281 :          pack_tmp = ISHFT(data_tmp, 61)
    7114      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7115      416281 :          idata = idata + 1
    7116      416281 :          data_tmp = full_data(idata)
    7117      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7118      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7119      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7120      416281 :          idata = idata + 1
    7121      416281 :          data_tmp = full_data(idata)
    7122      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7123      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7124      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7125      416281 :          idata = idata + 1
    7126      416281 :          data_tmp = full_data(idata)
    7127      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7128      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7129      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7130      416281 :          idata = idata + 1
    7131      416281 :          data_tmp = full_data(idata)
    7132      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7133      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7134      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7135      416281 :          idata = idata + 1
    7136      416281 :          data_tmp = full_data(idata)
    7137      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7138      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7139      416281 :          pack_tmp = ISHFT(pack_tmp, -6)
    7140      416281 :          idata = idata + 1
    7141      416281 :          data_tmp = full_data(idata)
    7142      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7143      416281 :          data_tmp = IAND(data_tmp, mask_left(6))
    7144      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7145      416281 :          ipack = ipack + 1
    7146      416281 :          packed_data(ipack) = pack_tmp
    7147      416281 :          data_tmp = full_data(idata)
    7148      416281 :          pack_tmp = ISHFT(data_tmp, 59)
    7149      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7150      416281 :          idata = idata + 1
    7151      416281 :          data_tmp = full_data(idata)
    7152      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7153      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7154      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7155      416281 :          idata = idata + 1
    7156      416281 :          data_tmp = full_data(idata)
    7157      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7158      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7159      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7160      416281 :          idata = idata + 1
    7161      416281 :          data_tmp = full_data(idata)
    7162      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7163      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7164      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7165      416281 :          idata = idata + 1
    7166      416281 :          data_tmp = full_data(idata)
    7167      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7168      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7169      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7170      416281 :          idata = idata + 1
    7171      416281 :          data_tmp = full_data(idata)
    7172      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7173      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7174      416281 :          pack_tmp = ISHFT(pack_tmp, -4)
    7175      416281 :          idata = idata + 1
    7176      416281 :          data_tmp = full_data(idata)
    7177      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7178      416281 :          data_tmp = IAND(data_tmp, mask_left(4))
    7179      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7180      416281 :          ipack = ipack + 1
    7181      416281 :          packed_data(ipack) = pack_tmp
    7182      416281 :          data_tmp = full_data(idata)
    7183      416281 :          pack_tmp = ISHFT(data_tmp, 57)
    7184      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7185      416281 :          idata = idata + 1
    7186      416281 :          data_tmp = full_data(idata)
    7187      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7188      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7189      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7190      416281 :          idata = idata + 1
    7191      416281 :          data_tmp = full_data(idata)
    7192      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7193      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7194      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7195      416281 :          idata = idata + 1
    7196      416281 :          data_tmp = full_data(idata)
    7197      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7198      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7199      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7200      416281 :          idata = idata + 1
    7201      416281 :          data_tmp = full_data(idata)
    7202      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7203      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7204      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7205      416281 :          idata = idata + 1
    7206      416281 :          data_tmp = full_data(idata)
    7207      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7208      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7209      416281 :          pack_tmp = ISHFT(pack_tmp, -2)
    7210      416281 :          idata = idata + 1
    7211      416281 :          data_tmp = full_data(idata)
    7212      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7213      416281 :          data_tmp = IAND(data_tmp, mask_left(2))
    7214      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7215      416281 :          ipack = ipack + 1
    7216      416281 :          packed_data(ipack) = pack_tmp
    7217      416281 :          data_tmp = full_data(idata)
    7218      416281 :          pack_tmp = ISHFT(data_tmp, 55)
    7219      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7220      416281 :          idata = idata + 1
    7221      416281 :          data_tmp = full_data(idata)
    7222      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7223      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7224      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7225      416281 :          idata = idata + 1
    7226      416281 :          data_tmp = full_data(idata)
    7227      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7228      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7229      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7230      416281 :          idata = idata + 1
    7231      416281 :          data_tmp = full_data(idata)
    7232      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7233      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7234      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7235      416281 :          idata = idata + 1
    7236      416281 :          data_tmp = full_data(idata)
    7237      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7238      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7239      416281 :          pack_tmp = ISHFT(pack_tmp, -11)
    7240      416281 :          idata = idata + 1
    7241      416281 :          data_tmp = full_data(idata)
    7242      416281 :          data_tmp = ISHFT(data_tmp, 53)
    7243      416281 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7244             :          pack_tmp = ISHFT(pack_tmp, 0)
    7245      416281 :          pack_tmp = ISHFT(pack_tmp, 0)
    7246      416281 :          ipack = ipack + 1
    7247      416318 :          packed_data(ipack) = pack_tmp
    7248             :       END DO
    7249       26433 :       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       26433 :    END SUBROUTINE ints2bits_11
    7253             : 
    7254             : ! **************************************************************************************************
    7255             : !> \brief ...
    7256             : !> \param Ndata ...
    7257             : !> \param packed_data ...
    7258             : !> \param full_data ...
    7259             : ! **************************************************************************************************
    7260      116992 :    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      116992 :       ipack = 0
    7271      116992 :       idata = 0
    7272      116992 :       pack_tmp = 0
    7273      116992 :       Ndata_rep = (Ndata/64)*64
    7274      116992 :       DO kdata = 1, Ndata_rep, 64
    7275     1821552 :          idata = idata + 1
    7276     1821552 :          data_tmp = ISHFT(pack_tmp, 11)
    7277     1821552 :          ipack = ipack + 1
    7278     1821552 :          pack_tmp = packed_data(ipack)
    7279     1821552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
    7280     1821552 :          pack_tmp = ISHFT(pack_tmp, -11)
    7281     1821552 :          idata = idata + 1
    7282     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7283     1821552 :          full_data(idata) = data_tmp
    7284     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7285     1821552 :          idata = idata + 1
    7286     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7287     1821552 :          full_data(idata) = data_tmp
    7288     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7289     1821552 :          idata = idata + 1
    7290     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7291     1821552 :          full_data(idata) = data_tmp
    7292     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7293     1821552 :          idata = idata + 1
    7294     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7295     1821552 :          full_data(idata) = data_tmp
    7296     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7297     1821552 :          idata = idata + 1
    7298     1821552 :          data_tmp = ISHFT(pack_tmp, 2)
    7299     1821552 :          ipack = ipack + 1
    7300     1821552 :          pack_tmp = packed_data(ipack)
    7301     1821552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    7302     1821552 :          pack_tmp = ISHFT(pack_tmp, -2)
    7303     1821552 :          idata = idata + 1
    7304     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7305     1821552 :          full_data(idata) = data_tmp
    7306     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7307     1821552 :          idata = idata + 1
    7308     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7309     1821552 :          full_data(idata) = data_tmp
    7310     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7311     1821552 :          idata = idata + 1
    7312     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7313     1821552 :          full_data(idata) = data_tmp
    7314     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7315     1821552 :          idata = idata + 1
    7316     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7317     1821552 :          full_data(idata) = data_tmp
    7318     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7319     1821552 :          idata = idata + 1
    7320     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7321     1821552 :          full_data(idata) = data_tmp
    7322     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7323     1821552 :          idata = idata + 1
    7324     1821552 :          data_tmp = ISHFT(pack_tmp, 4)
    7325     1821552 :          ipack = ipack + 1
    7326     1821552 :          pack_tmp = packed_data(ipack)
    7327     1821552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    7328     1821552 :          pack_tmp = ISHFT(pack_tmp, -4)
    7329     1821552 :          idata = idata + 1
    7330     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7331     1821552 :          full_data(idata) = data_tmp
    7332     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7333     1821552 :          idata = idata + 1
    7334     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7335     1821552 :          full_data(idata) = data_tmp
    7336     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7337     1821552 :          idata = idata + 1
    7338     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7339     1821552 :          full_data(idata) = data_tmp
    7340     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7341     1821552 :          idata = idata + 1
    7342     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7343     1821552 :          full_data(idata) = data_tmp
    7344     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7345     1821552 :          idata = idata + 1
    7346     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7347     1821552 :          full_data(idata) = data_tmp
    7348     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7349     1821552 :          idata = idata + 1
    7350     1821552 :          data_tmp = ISHFT(pack_tmp, 6)
    7351     1821552 :          ipack = ipack + 1
    7352     1821552 :          pack_tmp = packed_data(ipack)
    7353     1821552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    7354     1821552 :          pack_tmp = ISHFT(pack_tmp, -6)
    7355     1821552 :          idata = idata + 1
    7356     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7357     1821552 :          full_data(idata) = data_tmp
    7358     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7359     1821552 :          idata = idata + 1
    7360     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7361     1821552 :          full_data(idata) = data_tmp
    7362     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7363     1821552 :          idata = idata + 1
    7364     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7365     1821552 :          full_data(idata) = data_tmp
    7366     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7367     1821552 :          idata = idata + 1
    7368     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7369     1821552 :          full_data(idata) = data_tmp
    7370     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7371     1821552 :          idata = idata + 1
    7372     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7373     1821552 :          full_data(idata) = data_tmp
    7374     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7375     1821552 :          idata = idata + 1
    7376     1821552 :          data_tmp = ISHFT(pack_tmp, 8)
    7377     1821552 :          ipack = ipack + 1
    7378     1821552 :          pack_tmp = packed_data(ipack)
    7379     1821552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    7380     1821552 :          pack_tmp = ISHFT(pack_tmp, -8)
    7381     1821552 :          idata = idata + 1
    7382     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7383     1821552 :          full_data(idata) = data_tmp
    7384     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7385     1821552 :          idata = idata + 1
    7386     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7387     1821552 :          full_data(idata) = data_tmp
    7388     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7389     1821552 :          idata = idata + 1
    7390     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7391     1821552 :          full_data(idata) = data_tmp
    7392     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7393     1821552 :          idata = idata + 1
    7394     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7395     1821552 :          full_data(idata) = data_tmp
    7396     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7397     1821552 :          idata = idata + 1
    7398     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7399     1821552 :          full_data(idata) = data_tmp
    7400     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7401     1821552 :          idata = idata + 1
    7402     1821552 :          data_tmp = ISHFT(pack_tmp, 10)
    7403     1821552 :          ipack = ipack + 1
    7404     1821552 :          pack_tmp = packed_data(ipack)
    7405     1821552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    7406     1821552 :          pack_tmp = ISHFT(pack_tmp, -10)
    7407     1821552 :          idata = idata + 1
    7408     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7409     1821552 :          full_data(idata) = data_tmp
    7410     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7411     1821552 :          idata = idata + 1
    7412     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7413     1821552 :          full_data(idata) = data_tmp
    7414     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7415     1821552 :          idata = idata + 1
    7416     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7417     1821552 :          full_data(idata) = data_tmp
    7418     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7419     1821552 :          idata = idata + 1
    7420     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7421     1821552 :          full_data(idata) = data_tmp
    7422     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7423     1821552 :          idata = idata + 1
    7424     1821552 :          data_tmp = ISHFT(pack_tmp, 1)
    7425     1821552 :          ipack = ipack + 1
    7426     1821552 :          pack_tmp = packed_data(ipack)
    7427     1821552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    7428     1821552 :          pack_tmp = ISHFT(pack_tmp, -1)
    7429     1821552 :          idata = idata + 1
    7430     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7431     1821552 :          full_data(idata) = data_tmp
    7432     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7433     1821552 :          idata = idata + 1
    7434     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7435     1821552 :          full_data(idata) = data_tmp
    7436     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7437     1821552 :          idata = idata + 1
    7438     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7439     1821552 :          full_data(idata) = data_tmp
    7440     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7441     1821552 :          idata = idata + 1
    7442     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7443     1821552 :          full_data(idata) = data_tmp
    7444     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7445     1821552 :          idata = idata + 1
    7446     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7447     1821552 :          full_data(idata) = data_tmp
    7448     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7449     1821552 :          idata = idata + 1
    7450     1821552 :          data_tmp = ISHFT(pack_tmp, 3)
    7451     1821552 :          ipack = ipack + 1
    7452     1821552 :          pack_tmp = packed_data(ipack)
    7453     1821552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    7454     1821552 :          pack_tmp = ISHFT(pack_tmp, -3)
    7455     1821552 :          idata = idata + 1
    7456     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7457     1821552 :          full_data(idata) = data_tmp
    7458     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7459     1821552 :          idata = idata + 1
    7460     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7461     1821552 :          full_data(idata) = data_tmp
    7462     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7463     1821552 :          idata = idata + 1
    7464     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7465     1821552 :          full_data(idata) = data_tmp
    7466     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7467     1821552 :          idata = idata + 1
    7468     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7469     1821552 :          full_data(idata) = data_tmp
    7470     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7471     1821552 :          idata = idata + 1
    7472     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7473     1821552 :          full_data(idata) = data_tmp
    7474     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7475     1821552 :          idata = idata + 1
    7476     1821552 :          data_tmp = ISHFT(pack_tmp, 5)
    7477     1821552 :          ipack = ipack + 1
    7478     1821552 :          pack_tmp = packed_data(ipack)
    7479     1821552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
    7480     1821552 :          pack_tmp = ISHFT(pack_tmp, -5)
    7481     1821552 :          idata = idata + 1
    7482     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7483     1821552 :          full_data(idata) = data_tmp
    7484     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7485     1821552 :          idata = idata + 1
    7486     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7487     1821552 :          full_data(idata) = data_tmp
    7488     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7489     1821552 :          idata = idata + 1
    7490     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7491     1821552 :          full_data(idata) = data_tmp
    7492     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7493     1821552 :          idata = idata + 1
    7494     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7495     1821552 :          full_data(idata) = data_tmp
    7496     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7497     1821552 :          idata = idata + 1
    7498     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7499     1821552 :          full_data(idata) = data_tmp
    7500     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7501     1821552 :          idata = idata + 1
    7502     1821552 :          data_tmp = ISHFT(pack_tmp, 7)
    7503     1821552 :          ipack = ipack + 1
    7504     1821552 :          pack_tmp = packed_data(ipack)
    7505     1821552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
    7506     1821552 :          pack_tmp = ISHFT(pack_tmp, -7)
    7507     1821552 :          idata = idata + 1
    7508     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7509     1821552 :          full_data(idata) = data_tmp
    7510     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7511     1821552 :          idata = idata + 1
    7512     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7513     1821552 :          full_data(idata) = data_tmp
    7514     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7515     1821552 :          idata = idata + 1
    7516     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7517     1821552 :          full_data(idata) = data_tmp
    7518     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7519     1821552 :          idata = idata + 1
    7520     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7521     1821552 :          full_data(idata) = data_tmp
    7522     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7523     1821552 :          idata = idata + 1
    7524     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7525     1821552 :          full_data(idata) = data_tmp
    7526     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7527     1821552 :          idata = idata + 1
    7528     1821552 :          data_tmp = ISHFT(pack_tmp, 9)
    7529     1821552 :          ipack = ipack + 1
    7530     1821552 :          pack_tmp = packed_data(ipack)
    7531     1821552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
    7532     1821552 :          pack_tmp = ISHFT(pack_tmp, -9)
    7533     1821552 :          idata = idata + 1
    7534     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7535     1821552 :          full_data(idata) = data_tmp
    7536     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7537     1821552 :          idata = idata + 1
    7538     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7539     1821552 :          full_data(idata) = data_tmp
    7540     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7541     1821552 :          idata = idata + 1
    7542     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7543     1821552 :          full_data(idata) = data_tmp
    7544     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7545     1821552 :          idata = idata + 1
    7546     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7547     1821552 :          full_data(idata) = data_tmp
    7548     1821552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7549     1821552 :          idata = idata + 1
    7550     1821552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7551     1821552 :          full_data(idata) = data_tmp
    7552     1821833 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7553             :       END DO
    7554      116992 :       IF (Ndata_rep < Ndata) THEN
    7555        5920 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    7556             :       END IF
    7557      116992 :    END SUBROUTINE bits2ints_11
    7558             : 
    7559             : ! **************************************************************************************************
    7560             : !> \brief ...
    7561             : !> \param Ndata ...
    7562             : !> \param packed_data ...
    7563             : !> \param full_data ...
    7564             : ! **************************************************************************************************
    7565       26679 :    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       26679 :       idata = 0
    7576       26679 :       ipack = 0
    7577       26679 :       Ndata_rep = (Ndata/64)*64
    7578       26679 :       DO kdata = 1, Ndata_rep, 64
    7579      419044 :          pack_tmp = 0
    7580      419044 :          idata = idata + 1
    7581      419044 :          data_tmp = full_data(idata)
    7582      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7583      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7584      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7585      419044 :          idata = idata + 1
    7586      419044 :          data_tmp = full_data(idata)
    7587      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7588      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7589      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7590      419044 :          idata = idata + 1
    7591      419044 :          data_tmp = full_data(idata)
    7592      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7593      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7594      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7595      419044 :          idata = idata + 1
    7596      419044 :          data_tmp = full_data(idata)
    7597      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7598      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7599      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7600      419044 :          idata = idata + 1
    7601      419044 :          data_tmp = full_data(idata)
    7602      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7603      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7604      419044 :          pack_tmp = ISHFT(pack_tmp, -4)
    7605      419044 :          idata = idata + 1
    7606      419044 :          data_tmp = full_data(idata)
    7607      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7608      419044 :          data_tmp = IAND(data_tmp, mask_left(4))
    7609      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7610      419044 :          ipack = ipack + 1
    7611      419044 :          packed_data(ipack) = pack_tmp
    7612      419044 :          data_tmp = full_data(idata)
    7613      419044 :          pack_tmp = ISHFT(data_tmp, 56)
    7614      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7615      419044 :          idata = idata + 1
    7616      419044 :          data_tmp = full_data(idata)
    7617      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7618      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7619      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7620      419044 :          idata = idata + 1
    7621      419044 :          data_tmp = full_data(idata)
    7622      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7623      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7624      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7625      419044 :          idata = idata + 1
    7626      419044 :          data_tmp = full_data(idata)
    7627      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7628      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7629      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7630      419044 :          idata = idata + 1
    7631      419044 :          data_tmp = full_data(idata)
    7632      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7633      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7634      419044 :          pack_tmp = ISHFT(pack_tmp, -8)
    7635      419044 :          idata = idata + 1
    7636      419044 :          data_tmp = full_data(idata)
    7637      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7638      419044 :          data_tmp = IAND(data_tmp, mask_left(8))
    7639      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7640      419044 :          ipack = ipack + 1
    7641      419044 :          packed_data(ipack) = pack_tmp
    7642      419044 :          data_tmp = full_data(idata)
    7643      419044 :          pack_tmp = ISHFT(data_tmp, 60)
    7644      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7645      419044 :          idata = idata + 1
    7646      419044 :          data_tmp = full_data(idata)
    7647      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7648      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7649      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7650      419044 :          idata = idata + 1
    7651      419044 :          data_tmp = full_data(idata)
    7652      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7653      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7654      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7655      419044 :          idata = idata + 1
    7656      419044 :          data_tmp = full_data(idata)
    7657      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7658      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7659      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7660      419044 :          idata = idata + 1
    7661      419044 :          data_tmp = full_data(idata)
    7662      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7663      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7664      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7665      419044 :          idata = idata + 1
    7666      419044 :          data_tmp = full_data(idata)
    7667      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7668      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7669      419044 :          pack_tmp = ISHFT(pack_tmp, 0)
    7670      419044 :          idata = idata + 1
    7671      419044 :          data_tmp = full_data(idata)
    7672             :          data_tmp = ISHFT(data_tmp, 52)
    7673      419044 :          data_tmp = IAND(data_tmp, mask_left(0))
    7674      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7675      419044 :          ipack = ipack + 1
    7676      419044 :          packed_data(ipack) = pack_tmp
    7677      419044 :          data_tmp = full_data(idata)
    7678      419044 :          pack_tmp = ISHFT(data_tmp, 52)
    7679      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7680      419044 :          idata = idata + 1
    7681      419044 :          data_tmp = full_data(idata)
    7682      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7683      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7684      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7685      419044 :          idata = idata + 1
    7686      419044 :          data_tmp = full_data(idata)
    7687      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7688      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7689      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7690      419044 :          idata = idata + 1
    7691      419044 :          data_tmp = full_data(idata)
    7692      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7693      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7694      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7695      419044 :          idata = idata + 1
    7696      419044 :          data_tmp = full_data(idata)
    7697      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7698      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7699      419044 :          pack_tmp = ISHFT(pack_tmp, -4)
    7700      419044 :          idata = idata + 1
    7701      419044 :          data_tmp = full_data(idata)
    7702      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7703      419044 :          data_tmp = IAND(data_tmp, mask_left(4))
    7704      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7705      419044 :          ipack = ipack + 1
    7706      419044 :          packed_data(ipack) = pack_tmp
    7707      419044 :          data_tmp = full_data(idata)
    7708      419044 :          pack_tmp = ISHFT(data_tmp, 56)
    7709      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7710      419044 :          idata = idata + 1
    7711      419044 :          data_tmp = full_data(idata)
    7712      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7713      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7714      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7715      419044 :          idata = idata + 1
    7716      419044 :          data_tmp = full_data(idata)
    7717      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7718      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7719      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7720      419044 :          idata = idata + 1
    7721      419044 :          data_tmp = full_data(idata)
    7722      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7723      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7724      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7725      419044 :          idata = idata + 1
    7726      419044 :          data_tmp = full_data(idata)
    7727      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7728      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7729      419044 :          pack_tmp = ISHFT(pack_tmp, -8)
    7730      419044 :          idata = idata + 1
    7731      419044 :          data_tmp = full_data(idata)
    7732      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7733      419044 :          data_tmp = IAND(data_tmp, mask_left(8))
    7734      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7735      419044 :          ipack = ipack + 1
    7736      419044 :          packed_data(ipack) = pack_tmp
    7737      419044 :          data_tmp = full_data(idata)
    7738      419044 :          pack_tmp = ISHFT(data_tmp, 60)
    7739      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7740      419044 :          idata = idata + 1
    7741      419044 :          data_tmp = full_data(idata)
    7742      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7743      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7744      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7745      419044 :          idata = idata + 1
    7746      419044 :          data_tmp = full_data(idata)
    7747      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7748      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7749      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7750      419044 :          idata = idata + 1
    7751      419044 :          data_tmp = full_data(idata)
    7752      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7753      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7754      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7755      419044 :          idata = idata + 1
    7756      419044 :          data_tmp = full_data(idata)
    7757      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7758      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7759      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7760      419044 :          idata = idata + 1
    7761      419044 :          data_tmp = full_data(idata)
    7762      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7763      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7764      419044 :          pack_tmp = ISHFT(pack_tmp, 0)
    7765      419044 :          idata = idata + 1
    7766      419044 :          data_tmp = full_data(idata)
    7767             :          data_tmp = ISHFT(data_tmp, 52)
    7768      419044 :          data_tmp = IAND(data_tmp, mask_left(0))
    7769      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7770      419044 :          ipack = ipack + 1
    7771      419044 :          packed_data(ipack) = pack_tmp
    7772      419044 :          data_tmp = full_data(idata)
    7773      419044 :          pack_tmp = ISHFT(data_tmp, 52)
    7774      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7775      419044 :          idata = idata + 1
    7776      419044 :          data_tmp = full_data(idata)
    7777      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7778      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7779      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7780      419044 :          idata = idata + 1
    7781      419044 :          data_tmp = full_data(idata)
    7782      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7783      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7784      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7785      419044 :          idata = idata + 1
    7786      419044 :          data_tmp = full_data(idata)
    7787      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7788      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7789      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7790      419044 :          idata = idata + 1
    7791      419044 :          data_tmp = full_data(idata)
    7792      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7793      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7794      419044 :          pack_tmp = ISHFT(pack_tmp, -4)
    7795      419044 :          idata = idata + 1
    7796      419044 :          data_tmp = full_data(idata)
    7797      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7798      419044 :          data_tmp = IAND(data_tmp, mask_left(4))
    7799      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7800      419044 :          ipack = ipack + 1
    7801      419044 :          packed_data(ipack) = pack_tmp
    7802      419044 :          data_tmp = full_data(idata)
    7803      419044 :          pack_tmp = ISHFT(data_tmp, 56)
    7804      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7805      419044 :          idata = idata + 1
    7806      419044 :          data_tmp = full_data(idata)
    7807      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7808      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7809      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7810      419044 :          idata = idata + 1
    7811      419044 :          data_tmp = full_data(idata)
    7812      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7813      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7814      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7815      419044 :          idata = idata + 1
    7816      419044 :          data_tmp = full_data(idata)
    7817      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7818      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7819      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7820      419044 :          idata = idata + 1
    7821      419044 :          data_tmp = full_data(idata)
    7822      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7823      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7824      419044 :          pack_tmp = ISHFT(pack_tmp, -8)
    7825      419044 :          idata = idata + 1
    7826      419044 :          data_tmp = full_data(idata)
    7827      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7828      419044 :          data_tmp = IAND(data_tmp, mask_left(8))
    7829      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7830      419044 :          ipack = ipack + 1
    7831      419044 :          packed_data(ipack) = pack_tmp
    7832      419044 :          data_tmp = full_data(idata)
    7833      419044 :          pack_tmp = ISHFT(data_tmp, 60)
    7834      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7835      419044 :          idata = idata + 1
    7836      419044 :          data_tmp = full_data(idata)
    7837      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7838      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7839      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7840      419044 :          idata = idata + 1
    7841      419044 :          data_tmp = full_data(idata)
    7842      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7843      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7844      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7845      419044 :          idata = idata + 1
    7846      419044 :          data_tmp = full_data(idata)
    7847      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7848      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7849      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7850      419044 :          idata = idata + 1
    7851      419044 :          data_tmp = full_data(idata)
    7852      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7853      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7854      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7855      419044 :          idata = idata + 1
    7856      419044 :          data_tmp = full_data(idata)
    7857      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7858      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7859      419044 :          pack_tmp = ISHFT(pack_tmp, 0)
    7860      419044 :          idata = idata + 1
    7861      419044 :          data_tmp = full_data(idata)
    7862             :          data_tmp = ISHFT(data_tmp, 52)
    7863      419044 :          data_tmp = IAND(data_tmp, mask_left(0))
    7864      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7865      419044 :          ipack = ipack + 1
    7866      419044 :          packed_data(ipack) = pack_tmp
    7867      419044 :          data_tmp = full_data(idata)
    7868      419044 :          pack_tmp = ISHFT(data_tmp, 52)
    7869      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7870      419044 :          idata = idata + 1
    7871      419044 :          data_tmp = full_data(idata)
    7872      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7873      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7874      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7875      419044 :          idata = idata + 1
    7876      419044 :          data_tmp = full_data(idata)
    7877      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7878      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7879      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7880      419044 :          idata = idata + 1
    7881      419044 :          data_tmp = full_data(idata)
    7882      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7883      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7884      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7885      419044 :          idata = idata + 1
    7886      419044 :          data_tmp = full_data(idata)
    7887      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7888      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7889      419044 :          pack_tmp = ISHFT(pack_tmp, -4)
    7890      419044 :          idata = idata + 1
    7891      419044 :          data_tmp = full_data(idata)
    7892      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7893      419044 :          data_tmp = IAND(data_tmp, mask_left(4))
    7894      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7895      419044 :          ipack = ipack + 1
    7896      419044 :          packed_data(ipack) = pack_tmp
    7897      419044 :          data_tmp = full_data(idata)
    7898      419044 :          pack_tmp = ISHFT(data_tmp, 56)
    7899      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7900      419044 :          idata = idata + 1
    7901      419044 :          data_tmp = full_data(idata)
    7902      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7903      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7904      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7905      419044 :          idata = idata + 1
    7906      419044 :          data_tmp = full_data(idata)
    7907      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7908      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7909      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7910      419044 :          idata = idata + 1
    7911      419044 :          data_tmp = full_data(idata)
    7912      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7913      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7914      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7915      419044 :          idata = idata + 1
    7916      419044 :          data_tmp = full_data(idata)
    7917      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7918      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7919      419044 :          pack_tmp = ISHFT(pack_tmp, -8)
    7920      419044 :          idata = idata + 1
    7921      419044 :          data_tmp = full_data(idata)
    7922      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7923      419044 :          data_tmp = IAND(data_tmp, mask_left(8))
    7924      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7925      419044 :          ipack = ipack + 1
    7926      419044 :          packed_data(ipack) = pack_tmp
    7927      419044 :          data_tmp = full_data(idata)
    7928      419044 :          pack_tmp = ISHFT(data_tmp, 60)
    7929      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7930      419044 :          idata = idata + 1
    7931      419044 :          data_tmp = full_data(idata)
    7932      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7933      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7934      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7935      419044 :          idata = idata + 1
    7936      419044 :          data_tmp = full_data(idata)
    7937      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7938      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7939      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7940      419044 :          idata = idata + 1
    7941      419044 :          data_tmp = full_data(idata)
    7942      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7943      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7944      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7945      419044 :          idata = idata + 1
    7946      419044 :          data_tmp = full_data(idata)
    7947      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7948      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7949      419044 :          pack_tmp = ISHFT(pack_tmp, -12)
    7950      419044 :          idata = idata + 1
    7951      419044 :          data_tmp = full_data(idata)
    7952      419044 :          data_tmp = ISHFT(data_tmp, 52)
    7953      419044 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7954             :          pack_tmp = ISHFT(pack_tmp, 0)
    7955      419044 :          pack_tmp = ISHFT(pack_tmp, 0)
    7956      419044 :          ipack = ipack + 1
    7957      419109 :          packed_data(ipack) = pack_tmp
    7958             :       END DO
    7959       26679 :       IF (Ndata_rep < Ndata) THEN
    7960         920 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    7961             :       END IF
    7962       26679 :    END SUBROUTINE ints2bits_12
    7963             : 
    7964             : ! **************************************************************************************************
    7965             : !> \brief ...
    7966             : !> \param Ndata ...
    7967             : !> \param packed_data ...
    7968             : !> \param full_data ...
    7969             : ! **************************************************************************************************
    7970      118924 :    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      118924 :       ipack = 0
    7981      118924 :       idata = 0
    7982      118924 :       pack_tmp = 0
    7983      118924 :       Ndata_rep = (Ndata/64)*64
    7984      118924 :       DO kdata = 1, Ndata_rep, 64
    7985     1843760 :          idata = idata + 1
    7986     1843760 :          data_tmp = ISHFT(pack_tmp, 12)
    7987     1843760 :          ipack = ipack + 1
    7988     1843760 :          pack_tmp = packed_data(ipack)
    7989     1843760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    7990     1843760 :          pack_tmp = ISHFT(pack_tmp, -12)
    7991     1843760 :          idata = idata + 1
    7992     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7993     1843760 :          full_data(idata) = data_tmp
    7994     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7995     1843760 :          idata = idata + 1
    7996     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7997     1843760 :          full_data(idata) = data_tmp
    7998     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7999     1843760 :          idata = idata + 1
    8000     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8001     1843760 :          full_data(idata) = data_tmp
    8002     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8003     1843760 :          idata = idata + 1
    8004     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8005     1843760 :          full_data(idata) = data_tmp
    8006     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8007     1843760 :          idata = idata + 1
    8008     1843760 :          data_tmp = ISHFT(pack_tmp, 8)
    8009     1843760 :          ipack = ipack + 1
    8010     1843760 :          pack_tmp = packed_data(ipack)
    8011     1843760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    8012     1843760 :          pack_tmp = ISHFT(pack_tmp, -8)
    8013     1843760 :          idata = idata + 1
    8014     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8015     1843760 :          full_data(idata) = data_tmp
    8016     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8017     1843760 :          idata = idata + 1
    8018     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8019     1843760 :          full_data(idata) = data_tmp
    8020     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8021     1843760 :          idata = idata + 1
    8022     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8023     1843760 :          full_data(idata) = data_tmp
    8024     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8025     1843760 :          idata = idata + 1
    8026     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8027     1843760 :          full_data(idata) = data_tmp
    8028     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8029     1843760 :          idata = idata + 1
    8030     1843760 :          data_tmp = ISHFT(pack_tmp, 4)
    8031     1843760 :          ipack = ipack + 1
    8032     1843760 :          pack_tmp = packed_data(ipack)
    8033     1843760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    8034     1843760 :          pack_tmp = ISHFT(pack_tmp, -4)
    8035     1843760 :          idata = idata + 1
    8036     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8037     1843760 :          full_data(idata) = data_tmp
    8038     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8039     1843760 :          idata = idata + 1
    8040     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8041     1843760 :          full_data(idata) = data_tmp
    8042     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8043     1843760 :          idata = idata + 1
    8044     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8045     1843760 :          full_data(idata) = data_tmp
    8046     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8047     1843760 :          idata = idata + 1
    8048     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8049     1843760 :          full_data(idata) = data_tmp
    8050     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8051     1843760 :          idata = idata + 1
    8052     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8053     1843760 :          full_data(idata) = data_tmp
    8054     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8055     1843760 :          idata = idata + 1
    8056     1843760 :          data_tmp = ISHFT(pack_tmp, 12)
    8057     1843760 :          ipack = ipack + 1
    8058     1843760 :          pack_tmp = packed_data(ipack)
    8059     1843760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    8060     1843760 :          pack_tmp = ISHFT(pack_tmp, -12)
    8061     1843760 :          idata = idata + 1
    8062     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8063     1843760 :          full_data(idata) = data_tmp
    8064     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8065     1843760 :          idata = idata + 1
    8066     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8067     1843760 :          full_data(idata) = data_tmp
    8068     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8069     1843760 :          idata = idata + 1
    8070     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8071     1843760 :          full_data(idata) = data_tmp
    8072     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8073     1843760 :          idata = idata + 1
    8074     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8075     1843760 :          full_data(idata) = data_tmp
    8076     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8077     1843760 :          idata = idata + 1
    8078     1843760 :          data_tmp = ISHFT(pack_tmp, 8)
    8079     1843760 :          ipack = ipack + 1
    8080     1843760 :          pack_tmp = packed_data(ipack)
    8081     1843760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    8082     1843760 :          pack_tmp = ISHFT(pack_tmp, -8)
    8083     1843760 :          idata = idata + 1
    8084     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8085     1843760 :          full_data(idata) = data_tmp
    8086     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8087     1843760 :          idata = idata + 1
    8088     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8089     1843760 :          full_data(idata) = data_tmp
    8090     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8091     1843760 :          idata = idata + 1
    8092     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8093     1843760 :          full_data(idata) = data_tmp
    8094     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8095     1843760 :          idata = idata + 1
    8096     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8097     1843760 :          full_data(idata) = data_tmp
    8098     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8099     1843760 :          idata = idata + 1
    8100     1843760 :          data_tmp = ISHFT(pack_tmp, 4)
    8101     1843760 :          ipack = ipack + 1
    8102     1843760 :          pack_tmp = packed_data(ipack)
    8103     1843760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    8104     1843760 :          pack_tmp = ISHFT(pack_tmp, -4)
    8105     1843760 :          idata = idata + 1
    8106     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8107     1843760 :          full_data(idata) = data_tmp
    8108     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8109     1843760 :          idata = idata + 1
    8110     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8111     1843760 :          full_data(idata) = data_tmp
    8112     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8113     1843760 :          idata = idata + 1
    8114     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8115     1843760 :          full_data(idata) = data_tmp
    8116     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8117     1843760 :          idata = idata + 1
    8118     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8119     1843760 :          full_data(idata) = data_tmp
    8120     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8121     1843760 :          idata = idata + 1
    8122     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8123     1843760 :          full_data(idata) = data_tmp
    8124     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8125     1843760 :          idata = idata + 1
    8126     1843760 :          data_tmp = ISHFT(pack_tmp, 12)
    8127     1843760 :          ipack = ipack + 1
    8128     1843760 :          pack_tmp = packed_data(ipack)
    8129     1843760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    8130     1843760 :          pack_tmp = ISHFT(pack_tmp, -12)
    8131     1843760 :          idata = idata + 1
    8132     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8133     1843760 :          full_data(idata) = data_tmp
    8134     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8135     1843760 :          idata = idata + 1
    8136     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8137     1843760 :          full_data(idata) = data_tmp
    8138     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8139     1843760 :          idata = idata + 1
    8140     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8141     1843760 :          full_data(idata) = data_tmp
    8142     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8143     1843760 :          idata = idata + 1
    8144     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8145     1843760 :          full_data(idata) = data_tmp
    8146     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8147     1843760 :          idata = idata + 1
    8148     1843760 :          data_tmp = ISHFT(pack_tmp, 8)
    8149     1843760 :          ipack = ipack + 1
    8150     1843760 :          pack_tmp = packed_data(ipack)
    8151     1843760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    8152     1843760 :          pack_tmp = ISHFT(pack_tmp, -8)
    8153     1843760 :          idata = idata + 1
    8154     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8155     1843760 :          full_data(idata) = data_tmp
    8156     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8157     1843760 :          idata = idata + 1
    8158     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8159     1843760 :          full_data(idata) = data_tmp
    8160     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8161     1843760 :          idata = idata + 1
    8162     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8163     1843760 :          full_data(idata) = data_tmp
    8164     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8165     1843760 :          idata = idata + 1
    8166     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8167     1843760 :          full_data(idata) = data_tmp
    8168     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8169     1843760 :          idata = idata + 1
    8170     1843760 :          data_tmp = ISHFT(pack_tmp, 4)
    8171     1843760 :          ipack = ipack + 1
    8172     1843760 :          pack_tmp = packed_data(ipack)
    8173     1843760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    8174     1843760 :          pack_tmp = ISHFT(pack_tmp, -4)
    8175     1843760 :          idata = idata + 1
    8176     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8177     1843760 :          full_data(idata) = data_tmp
    8178     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8179     1843760 :          idata = idata + 1
    8180     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8181     1843760 :          full_data(idata) = data_tmp
    8182     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8183     1843760 :          idata = idata + 1
    8184     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8185     1843760 :          full_data(idata) = data_tmp
    8186     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8187     1843760 :          idata = idata + 1
    8188     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8189     1843760 :          full_data(idata) = data_tmp
    8190     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8191     1843760 :          idata = idata + 1
    8192     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8193     1843760 :          full_data(idata) = data_tmp
    8194     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8195     1843760 :          idata = idata + 1
    8196     1843760 :          data_tmp = ISHFT(pack_tmp, 12)
    8197     1843760 :          ipack = ipack + 1
    8198     1843760 :          pack_tmp = packed_data(ipack)
    8199     1843760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    8200     1843760 :          pack_tmp = ISHFT(pack_tmp, -12)
    8201     1843760 :          idata = idata + 1
    8202     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8203     1843760 :          full_data(idata) = data_tmp
    8204     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8205     1843760 :          idata = idata + 1
    8206     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8207     1843760 :          full_data(idata) = data_tmp
    8208     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8209     1843760 :          idata = idata + 1
    8210     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8211     1843760 :          full_data(idata) = data_tmp
    8212     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8213     1843760 :          idata = idata + 1
    8214     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8215     1843760 :          full_data(idata) = data_tmp
    8216     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8217     1843760 :          idata = idata + 1
    8218     1843760 :          data_tmp = ISHFT(pack_tmp, 8)
    8219     1843760 :          ipack = ipack + 1
    8220     1843760 :          pack_tmp = packed_data(ipack)
    8221     1843760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    8222     1843760 :          pack_tmp = ISHFT(pack_tmp, -8)
    8223     1843760 :          idata = idata + 1
    8224     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8225     1843760 :          full_data(idata) = data_tmp
    8226     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8227     1843760 :          idata = idata + 1
    8228     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8229     1843760 :          full_data(idata) = data_tmp
    8230     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8231     1843760 :          idata = idata + 1
    8232     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8233     1843760 :          full_data(idata) = data_tmp
    8234     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8235     1843760 :          idata = idata + 1
    8236     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8237     1843760 :          full_data(idata) = data_tmp
    8238     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8239     1843760 :          idata = idata + 1
    8240     1843760 :          data_tmp = ISHFT(pack_tmp, 4)
    8241     1843760 :          ipack = ipack + 1
    8242     1843760 :          pack_tmp = packed_data(ipack)
    8243     1843760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    8244     1843760 :          pack_tmp = ISHFT(pack_tmp, -4)
    8245     1843760 :          idata = idata + 1
    8246     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8247     1843760 :          full_data(idata) = data_tmp
    8248     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8249     1843760 :          idata = idata + 1
    8250     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8251     1843760 :          full_data(idata) = data_tmp
    8252     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8253     1843760 :          idata = idata + 1
    8254     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8255     1843760 :          full_data(idata) = data_tmp
    8256     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8257     1843760 :          idata = idata + 1
    8258     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8259     1843760 :          full_data(idata) = data_tmp
    8260     1843760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8261     1843760 :          idata = idata + 1
    8262     1843760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8263     1843760 :          full_data(idata) = data_tmp
    8264     1844247 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8265             :       END DO
    8266      118924 :       IF (Ndata_rep < Ndata) THEN
    8267        6944 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    8268             :       END IF
    8269      118924 :    END SUBROUTINE bits2ints_12
    8270             : 
    8271             : ! **************************************************************************************************
    8272             : !> \brief ...
    8273             : !> \param Ndata ...
    8274             : !> \param packed_data ...
    8275             : !> \param full_data ...
    8276             : ! **************************************************************************************************
    8277       28076 :    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       28076 :       idata = 0
    8288       28076 :       ipack = 0
    8289       28076 :       Ndata_rep = (Ndata/64)*64
    8290       28076 :       DO kdata = 1, Ndata_rep, 64
    8291      436960 :          pack_tmp = 0
    8292      436960 :          idata = idata + 1
    8293      436960 :          data_tmp = full_data(idata)
    8294      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8295      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8296      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8297      436960 :          idata = idata + 1
    8298      436960 :          data_tmp = full_data(idata)
    8299      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8300      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8301      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8302      436960 :          idata = idata + 1
    8303      436960 :          data_tmp = full_data(idata)
    8304      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8305      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8306      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8307      436960 :          idata = idata + 1
    8308      436960 :          data_tmp = full_data(idata)
    8309      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8310      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8311      436960 :          pack_tmp = ISHFT(pack_tmp, -12)
    8312      436960 :          idata = idata + 1
    8313      436960 :          data_tmp = full_data(idata)
    8314      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8315      436960 :          data_tmp = IAND(data_tmp, mask_left(12))
    8316      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8317      436960 :          ipack = ipack + 1
    8318      436960 :          packed_data(ipack) = pack_tmp
    8319      436960 :          data_tmp = full_data(idata)
    8320      436960 :          pack_tmp = ISHFT(data_tmp, 63)
    8321      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8322      436960 :          idata = idata + 1
    8323      436960 :          data_tmp = full_data(idata)
    8324      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8325      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8326      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8327      436960 :          idata = idata + 1
    8328      436960 :          data_tmp = full_data(idata)
    8329      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8330      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8331      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8332      436960 :          idata = idata + 1
    8333      436960 :          data_tmp = full_data(idata)
    8334      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8335      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8336      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8337      436960 :          idata = idata + 1
    8338      436960 :          data_tmp = full_data(idata)
    8339      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8340      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8341      436960 :          pack_tmp = ISHFT(pack_tmp, -11)
    8342      436960 :          idata = idata + 1
    8343      436960 :          data_tmp = full_data(idata)
    8344      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8345      436960 :          data_tmp = IAND(data_tmp, mask_left(11))
    8346      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8347      436960 :          ipack = ipack + 1
    8348      436960 :          packed_data(ipack) = pack_tmp
    8349      436960 :          data_tmp = full_data(idata)
    8350      436960 :          pack_tmp = ISHFT(data_tmp, 62)
    8351      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8352      436960 :          idata = idata + 1
    8353      436960 :          data_tmp = full_data(idata)
    8354      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8355      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8356      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8357      436960 :          idata = idata + 1
    8358      436960 :          data_tmp = full_data(idata)
    8359      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8360      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8361      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8362      436960 :          idata = idata + 1
    8363      436960 :          data_tmp = full_data(idata)
    8364      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8365      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8366      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8367      436960 :          idata = idata + 1
    8368      436960 :          data_tmp = full_data(idata)
    8369      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8370      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8371      436960 :          pack_tmp = ISHFT(pack_tmp, -10)
    8372      436960 :          idata = idata + 1
    8373      436960 :          data_tmp = full_data(idata)
    8374      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8375      436960 :          data_tmp = IAND(data_tmp, mask_left(10))
    8376      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8377      436960 :          ipack = ipack + 1
    8378      436960 :          packed_data(ipack) = pack_tmp
    8379      436960 :          data_tmp = full_data(idata)
    8380      436960 :          pack_tmp = ISHFT(data_tmp, 61)
    8381      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8382      436960 :          idata = idata + 1
    8383      436960 :          data_tmp = full_data(idata)
    8384      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8385      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8386      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8387      436960 :          idata = idata + 1
    8388      436960 :          data_tmp = full_data(idata)
    8389      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8390      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8391      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8392      436960 :          idata = idata + 1
    8393      436960 :          data_tmp = full_data(idata)
    8394      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8395      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8396      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8397      436960 :          idata = idata + 1
    8398      436960 :          data_tmp = full_data(idata)
    8399      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8400      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8401      436960 :          pack_tmp = ISHFT(pack_tmp, -9)
    8402      436960 :          idata = idata + 1
    8403      436960 :          data_tmp = full_data(idata)
    8404      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8405      436960 :          data_tmp = IAND(data_tmp, mask_left(9))
    8406      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8407      436960 :          ipack = ipack + 1
    8408      436960 :          packed_data(ipack) = pack_tmp
    8409      436960 :          data_tmp = full_data(idata)
    8410      436960 :          pack_tmp = ISHFT(data_tmp, 60)
    8411      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8412      436960 :          idata = idata + 1
    8413      436960 :          data_tmp = full_data(idata)
    8414      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8415      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8416      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8417      436960 :          idata = idata + 1
    8418      436960 :          data_tmp = full_data(idata)
    8419      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8420      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8421      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8422      436960 :          idata = idata + 1
    8423      436960 :          data_tmp = full_data(idata)
    8424      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8425      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8426      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8427      436960 :          idata = idata + 1
    8428      436960 :          data_tmp = full_data(idata)
    8429      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8430      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8431      436960 :          pack_tmp = ISHFT(pack_tmp, -8)
    8432      436960 :          idata = idata + 1
    8433      436960 :          data_tmp = full_data(idata)
    8434      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8435      436960 :          data_tmp = IAND(data_tmp, mask_left(8))
    8436      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8437      436960 :          ipack = ipack + 1
    8438      436960 :          packed_data(ipack) = pack_tmp
    8439      436960 :          data_tmp = full_data(idata)
    8440      436960 :          pack_tmp = ISHFT(data_tmp, 59)
    8441      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8442      436960 :          idata = idata + 1
    8443      436960 :          data_tmp = full_data(idata)
    8444      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8445      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8446      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8447      436960 :          idata = idata + 1
    8448      436960 :          data_tmp = full_data(idata)
    8449      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8450      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8451      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8452      436960 :          idata = idata + 1
    8453      436960 :          data_tmp = full_data(idata)
    8454      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8455      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8456      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8457      436960 :          idata = idata + 1
    8458      436960 :          data_tmp = full_data(idata)
    8459      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8460      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8461      436960 :          pack_tmp = ISHFT(pack_tmp, -7)
    8462      436960 :          idata = idata + 1
    8463      436960 :          data_tmp = full_data(idata)
    8464      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8465      436960 :          data_tmp = IAND(data_tmp, mask_left(7))
    8466      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8467      436960 :          ipack = ipack + 1
    8468      436960 :          packed_data(ipack) = pack_tmp
    8469      436960 :          data_tmp = full_data(idata)
    8470      436960 :          pack_tmp = ISHFT(data_tmp, 58)
    8471      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8472      436960 :          idata = idata + 1
    8473      436960 :          data_tmp = full_data(idata)
    8474      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8475      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8476      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8477      436960 :          idata = idata + 1
    8478      436960 :          data_tmp = full_data(idata)
    8479      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8480      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8481      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8482      436960 :          idata = idata + 1
    8483      436960 :          data_tmp = full_data(idata)
    8484      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8485      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8486      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8487      436960 :          idata = idata + 1
    8488      436960 :          data_tmp = full_data(idata)
    8489      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8490      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8491      436960 :          pack_tmp = ISHFT(pack_tmp, -6)
    8492      436960 :          idata = idata + 1
    8493      436960 :          data_tmp = full_data(idata)
    8494      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8495      436960 :          data_tmp = IAND(data_tmp, mask_left(6))
    8496      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8497      436960 :          ipack = ipack + 1
    8498      436960 :          packed_data(ipack) = pack_tmp
    8499      436960 :          data_tmp = full_data(idata)
    8500      436960 :          pack_tmp = ISHFT(data_tmp, 57)
    8501      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8502      436960 :          idata = idata + 1
    8503      436960 :          data_tmp = full_data(idata)
    8504      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8505      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8506      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8507      436960 :          idata = idata + 1
    8508      436960 :          data_tmp = full_data(idata)
    8509      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8510      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8511      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8512      436960 :          idata = idata + 1
    8513      436960 :          data_tmp = full_data(idata)
    8514      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8515      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8516      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8517      436960 :          idata = idata + 1
    8518      436960 :          data_tmp = full_data(idata)
    8519      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8520      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8521      436960 :          pack_tmp = ISHFT(pack_tmp, -5)
    8522      436960 :          idata = idata + 1
    8523      436960 :          data_tmp = full_data(idata)
    8524      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8525      436960 :          data_tmp = IAND(data_tmp, mask_left(5))
    8526      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8527      436960 :          ipack = ipack + 1
    8528      436960 :          packed_data(ipack) = pack_tmp
    8529      436960 :          data_tmp = full_data(idata)
    8530      436960 :          pack_tmp = ISHFT(data_tmp, 56)
    8531      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8532      436960 :          idata = idata + 1
    8533      436960 :          data_tmp = full_data(idata)
    8534      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8535      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8536      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8537      436960 :          idata = idata + 1
    8538      436960 :          data_tmp = full_data(idata)
    8539      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8540      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8541      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8542      436960 :          idata = idata + 1
    8543      436960 :          data_tmp = full_data(idata)
    8544      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8545      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8546      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8547      436960 :          idata = idata + 1
    8548      436960 :          data_tmp = full_data(idata)
    8549      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8550      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8551      436960 :          pack_tmp = ISHFT(pack_tmp, -4)
    8552      436960 :          idata = idata + 1
    8553      436960 :          data_tmp = full_data(idata)
    8554      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8555      436960 :          data_tmp = IAND(data_tmp, mask_left(4))
    8556      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8557      436960 :          ipack = ipack + 1
    8558      436960 :          packed_data(ipack) = pack_tmp
    8559      436960 :          data_tmp = full_data(idata)
    8560      436960 :          pack_tmp = ISHFT(data_tmp, 55)
    8561      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8562      436960 :          idata = idata + 1
    8563      436960 :          data_tmp = full_data(idata)
    8564      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8565      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8566      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8567      436960 :          idata = idata + 1
    8568      436960 :          data_tmp = full_data(idata)
    8569      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8570      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8571      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8572      436960 :          idata = idata + 1
    8573      436960 :          data_tmp = full_data(idata)
    8574      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8575      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8576      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8577      436960 :          idata = idata + 1
    8578      436960 :          data_tmp = full_data(idata)
    8579      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8580      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8581      436960 :          pack_tmp = ISHFT(pack_tmp, -3)
    8582      436960 :          idata = idata + 1
    8583      436960 :          data_tmp = full_data(idata)
    8584      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8585      436960 :          data_tmp = IAND(data_tmp, mask_left(3))
    8586      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8587      436960 :          ipack = ipack + 1
    8588      436960 :          packed_data(ipack) = pack_tmp
    8589      436960 :          data_tmp = full_data(idata)
    8590      436960 :          pack_tmp = ISHFT(data_tmp, 54)
    8591      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8592      436960 :          idata = idata + 1
    8593      436960 :          data_tmp = full_data(idata)
    8594      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8595      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8596      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8597      436960 :          idata = idata + 1
    8598      436960 :          data_tmp = full_data(idata)
    8599      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8600      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8601      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8602      436960 :          idata = idata + 1
    8603      436960 :          data_tmp = full_data(idata)
    8604      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8605      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8606      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8607      436960 :          idata = idata + 1
    8608      436960 :          data_tmp = full_data(idata)
    8609      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8610      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8611      436960 :          pack_tmp = ISHFT(pack_tmp, -2)
    8612      436960 :          idata = idata + 1
    8613      436960 :          data_tmp = full_data(idata)
    8614      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8615      436960 :          data_tmp = IAND(data_tmp, mask_left(2))
    8616      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8617      436960 :          ipack = ipack + 1
    8618      436960 :          packed_data(ipack) = pack_tmp
    8619      436960 :          data_tmp = full_data(idata)
    8620      436960 :          pack_tmp = ISHFT(data_tmp, 53)
    8621      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8622      436960 :          idata = idata + 1
    8623      436960 :          data_tmp = full_data(idata)
    8624      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8625      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8626      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8627      436960 :          idata = idata + 1
    8628      436960 :          data_tmp = full_data(idata)
    8629      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8630      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8631      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8632      436960 :          idata = idata + 1
    8633      436960 :          data_tmp = full_data(idata)
    8634      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8635      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8636      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8637      436960 :          idata = idata + 1
    8638      436960 :          data_tmp = full_data(idata)
    8639      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8640      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8641      436960 :          pack_tmp = ISHFT(pack_tmp, -1)
    8642      436960 :          idata = idata + 1
    8643      436960 :          data_tmp = full_data(idata)
    8644      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8645      436960 :          data_tmp = IAND(data_tmp, mask_left(1))
    8646      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8647      436960 :          ipack = ipack + 1
    8648      436960 :          packed_data(ipack) = pack_tmp
    8649      436960 :          data_tmp = full_data(idata)
    8650      436960 :          pack_tmp = ISHFT(data_tmp, 52)
    8651      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8652      436960 :          idata = idata + 1
    8653      436960 :          data_tmp = full_data(idata)
    8654      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8655      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8656      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8657      436960 :          idata = idata + 1
    8658      436960 :          data_tmp = full_data(idata)
    8659      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8660      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8661      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8662      436960 :          idata = idata + 1
    8663      436960 :          data_tmp = full_data(idata)
    8664      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8665      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8666      436960 :          pack_tmp = ISHFT(pack_tmp, -13)
    8667      436960 :          idata = idata + 1
    8668      436960 :          data_tmp = full_data(idata)
    8669      436960 :          data_tmp = ISHFT(data_tmp, 51)
    8670      436960 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8671             :          pack_tmp = ISHFT(pack_tmp, 0)
    8672      436960 :          pack_tmp = ISHFT(pack_tmp, 0)
    8673      436960 :          ipack = ipack + 1
    8674      437030 :          packed_data(ipack) = pack_tmp
    8675             :       END DO
    8676       28076 :       IF (Ndata_rep < Ndata) THEN
    8677        1344 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    8678             :       END IF
    8679       28076 :    END SUBROUTINE ints2bits_13
    8680             : 
    8681             : ! **************************************************************************************************
    8682             : !> \brief ...
    8683             : !> \param Ndata ...
    8684             : !> \param packed_data ...
    8685             : !> \param full_data ...
    8686             : ! **************************************************************************************************
    8687      131082 :    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      131082 :       ipack = 0
    8698      131082 :       idata = 0
    8699      131082 :       pack_tmp = 0
    8700      131082 :       Ndata_rep = (Ndata/64)*64
    8701      131082 :       DO kdata = 1, Ndata_rep, 64
    8702     1999330 :          idata = idata + 1
    8703     1999330 :          data_tmp = ISHFT(pack_tmp, 13)
    8704     1999330 :          ipack = ipack + 1
    8705     1999330 :          pack_tmp = packed_data(ipack)
    8706     1999330 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
    8707     1999330 :          pack_tmp = ISHFT(pack_tmp, -13)
    8708     1999330 :          idata = idata + 1
    8709     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8710     1999330 :          full_data(idata) = data_tmp
    8711     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8712     1999330 :          idata = idata + 1
    8713     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8714     1999330 :          full_data(idata) = data_tmp
    8715     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8716     1999330 :          idata = idata + 1
    8717     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8718     1999330 :          full_data(idata) = data_tmp
    8719     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8720     1999330 :          idata = idata + 1
    8721     1999330 :          data_tmp = ISHFT(pack_tmp, 1)
    8722     1999330 :          ipack = ipack + 1
    8723     1999330 :          pack_tmp = packed_data(ipack)
    8724     1999330 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    8725     1999330 :          pack_tmp = ISHFT(pack_tmp, -1)
    8726     1999330 :          idata = idata + 1
    8727     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8728     1999330 :          full_data(idata) = data_tmp
    8729     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8730     1999330 :          idata = idata + 1
    8731     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8732     1999330 :          full_data(idata) = data_tmp
    8733     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8734     1999330 :          idata = idata + 1
    8735     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8736     1999330 :          full_data(idata) = data_tmp
    8737     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8738     1999330 :          idata = idata + 1
    8739     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8740     1999330 :          full_data(idata) = data_tmp
    8741     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8742     1999330 :          idata = idata + 1
    8743     1999330 :          data_tmp = ISHFT(pack_tmp, 2)
    8744     1999330 :          ipack = ipack + 1
    8745     1999330 :          pack_tmp = packed_data(ipack)
    8746     1999330 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    8747     1999330 :          pack_tmp = ISHFT(pack_tmp, -2)
    8748     1999330 :          idata = idata + 1
    8749     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8750     1999330 :          full_data(idata) = data_tmp
    8751     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8752     1999330 :          idata = idata + 1
    8753     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8754     1999330 :          full_data(idata) = data_tmp
    8755     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8756     1999330 :          idata = idata + 1
    8757     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8758     1999330 :          full_data(idata) = data_tmp
    8759     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8760     1999330 :          idata = idata + 1
    8761     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8762     1999330 :          full_data(idata) = data_tmp
    8763     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8764     1999330 :          idata = idata + 1
    8765     1999330 :          data_tmp = ISHFT(pack_tmp, 3)
    8766     1999330 :          ipack = ipack + 1
    8767     1999330 :          pack_tmp = packed_data(ipack)
    8768     1999330 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    8769     1999330 :          pack_tmp = ISHFT(pack_tmp, -3)
    8770     1999330 :          idata = idata + 1
    8771     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8772     1999330 :          full_data(idata) = data_tmp
    8773     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8774     1999330 :          idata = idata + 1
    8775     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8776     1999330 :          full_data(idata) = data_tmp
    8777     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8778     1999330 :          idata = idata + 1
    8779     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8780     1999330 :          full_data(idata) = data_tmp
    8781     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8782     1999330 :          idata = idata + 1
    8783     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8784     1999330 :          full_data(idata) = data_tmp
    8785     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8786     1999330 :          idata = idata + 1
    8787     1999330 :          data_tmp = ISHFT(pack_tmp, 4)
    8788     1999330 :          ipack = ipack + 1
    8789     1999330 :          pack_tmp = packed_data(ipack)
    8790     1999330 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    8791     1999330 :          pack_tmp = ISHFT(pack_tmp, -4)
    8792     1999330 :          idata = idata + 1
    8793     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8794     1999330 :          full_data(idata) = data_tmp
    8795     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8796     1999330 :          idata = idata + 1
    8797     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8798     1999330 :          full_data(idata) = data_tmp
    8799     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8800     1999330 :          idata = idata + 1
    8801     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8802     1999330 :          full_data(idata) = data_tmp
    8803     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8804     1999330 :          idata = idata + 1
    8805     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8806     1999330 :          full_data(idata) = data_tmp
    8807     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8808     1999330 :          idata = idata + 1
    8809     1999330 :          data_tmp = ISHFT(pack_tmp, 5)
    8810     1999330 :          ipack = ipack + 1
    8811     1999330 :          pack_tmp = packed_data(ipack)
    8812     1999330 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
    8813     1999330 :          pack_tmp = ISHFT(pack_tmp, -5)
    8814     1999330 :          idata = idata + 1
    8815     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8816     1999330 :          full_data(idata) = data_tmp
    8817     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8818     1999330 :          idata = idata + 1
    8819     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8820     1999330 :          full_data(idata) = data_tmp
    8821     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8822     1999330 :          idata = idata + 1
    8823     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8824     1999330 :          full_data(idata) = data_tmp
    8825     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8826     1999330 :          idata = idata + 1
    8827     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8828     1999330 :          full_data(idata) = data_tmp
    8829     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8830     1999330 :          idata = idata + 1
    8831     1999330 :          data_tmp = ISHFT(pack_tmp, 6)
    8832     1999330 :          ipack = ipack + 1
    8833     1999330 :          pack_tmp = packed_data(ipack)
    8834     1999330 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    8835     1999330 :          pack_tmp = ISHFT(pack_tmp, -6)
    8836     1999330 :          idata = idata + 1
    8837     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8838     1999330 :          full_data(idata) = data_tmp
    8839     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8840     1999330 :          idata = idata + 1
    8841     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8842     1999330 :          full_data(idata) = data_tmp
    8843     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8844     1999330 :          idata = idata + 1
    8845     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8846     1999330 :          full_data(idata) = data_tmp
    8847     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8848     1999330 :          idata = idata + 1
    8849     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8850     1999330 :          full_data(idata) = data_tmp
    8851     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8852     1999330 :          idata = idata + 1
    8853     1999330 :          data_tmp = ISHFT(pack_tmp, 7)
    8854     1999330 :          ipack = ipack + 1
    8855     1999330 :          pack_tmp = packed_data(ipack)
    8856     1999330 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
    8857     1999330 :          pack_tmp = ISHFT(pack_tmp, -7)
    8858     1999330 :          idata = idata + 1
    8859     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8860     1999330 :          full_data(idata) = data_tmp
    8861     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8862     1999330 :          idata = idata + 1
    8863     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8864     1999330 :          full_data(idata) = data_tmp
    8865     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8866     1999330 :          idata = idata + 1
    8867     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8868     1999330 :          full_data(idata) = data_tmp
    8869     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8870     1999330 :          idata = idata + 1
    8871     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8872     1999330 :          full_data(idata) = data_tmp
    8873     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8874     1999330 :          idata = idata + 1
    8875     1999330 :          data_tmp = ISHFT(pack_tmp, 8)
    8876     1999330 :          ipack = ipack + 1
    8877     1999330 :          pack_tmp = packed_data(ipack)
    8878     1999330 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    8879     1999330 :          pack_tmp = ISHFT(pack_tmp, -8)
    8880     1999330 :          idata = idata + 1
    8881     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8882     1999330 :          full_data(idata) = data_tmp
    8883     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8884     1999330 :          idata = idata + 1
    8885     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8886     1999330 :          full_data(idata) = data_tmp
    8887     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8888     1999330 :          idata = idata + 1
    8889     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8890     1999330 :          full_data(idata) = data_tmp
    8891     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8892     1999330 :          idata = idata + 1
    8893     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8894     1999330 :          full_data(idata) = data_tmp
    8895     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8896     1999330 :          idata = idata + 1
    8897     1999330 :          data_tmp = ISHFT(pack_tmp, 9)
    8898     1999330 :          ipack = ipack + 1
    8899     1999330 :          pack_tmp = packed_data(ipack)
    8900     1999330 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
    8901     1999330 :          pack_tmp = ISHFT(pack_tmp, -9)
    8902     1999330 :          idata = idata + 1
    8903     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8904     1999330 :          full_data(idata) = data_tmp
    8905     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8906     1999330 :          idata = idata + 1
    8907     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8908     1999330 :          full_data(idata) = data_tmp
    8909     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8910     1999330 :          idata = idata + 1
    8911     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8912     1999330 :          full_data(idata) = data_tmp
    8913     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8914     1999330 :          idata = idata + 1
    8915     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8916     1999330 :          full_data(idata) = data_tmp
    8917     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8918     1999330 :          idata = idata + 1
    8919     1999330 :          data_tmp = ISHFT(pack_tmp, 10)
    8920     1999330 :          ipack = ipack + 1
    8921     1999330 :          pack_tmp = packed_data(ipack)
    8922     1999330 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    8923     1999330 :          pack_tmp = ISHFT(pack_tmp, -10)
    8924     1999330 :          idata = idata + 1
    8925     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8926     1999330 :          full_data(idata) = data_tmp
    8927     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8928     1999330 :          idata = idata + 1
    8929     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8930     1999330 :          full_data(idata) = data_tmp
    8931     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8932     1999330 :          idata = idata + 1
    8933     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8934     1999330 :          full_data(idata) = data_tmp
    8935     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8936     1999330 :          idata = idata + 1
    8937     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8938     1999330 :          full_data(idata) = data_tmp
    8939     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8940     1999330 :          idata = idata + 1
    8941     1999330 :          data_tmp = ISHFT(pack_tmp, 11)
    8942     1999330 :          ipack = ipack + 1
    8943     1999330 :          pack_tmp = packed_data(ipack)
    8944     1999330 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
    8945     1999330 :          pack_tmp = ISHFT(pack_tmp, -11)
    8946     1999330 :          idata = idata + 1
    8947     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8948     1999330 :          full_data(idata) = data_tmp
    8949     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8950     1999330 :          idata = idata + 1
    8951     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8952     1999330 :          full_data(idata) = data_tmp
    8953     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8954     1999330 :          idata = idata + 1
    8955     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8956     1999330 :          full_data(idata) = data_tmp
    8957     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8958     1999330 :          idata = idata + 1
    8959     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8960     1999330 :          full_data(idata) = data_tmp
    8961     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8962     1999330 :          idata = idata + 1
    8963     1999330 :          data_tmp = ISHFT(pack_tmp, 12)
    8964     1999330 :          ipack = ipack + 1
    8965     1999330 :          pack_tmp = packed_data(ipack)
    8966     1999330 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    8967     1999330 :          pack_tmp = ISHFT(pack_tmp, -12)
    8968     1999330 :          idata = idata + 1
    8969     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8970     1999330 :          full_data(idata) = data_tmp
    8971     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8972     1999330 :          idata = idata + 1
    8973     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8974     1999330 :          full_data(idata) = data_tmp
    8975     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8976     1999330 :          idata = idata + 1
    8977     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8978     1999330 :          full_data(idata) = data_tmp
    8979     1999330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8980     1999330 :          idata = idata + 1
    8981     1999330 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8982     1999330 :          full_data(idata) = data_tmp
    8983     1999878 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8984             :       END DO
    8985      131082 :       IF (Ndata_rep < Ndata) THEN
    8986       10780 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    8987             :       END IF
    8988      131082 :    END SUBROUTINE bits2ints_13
    8989             : 
    8990             : ! **************************************************************************************************
    8991             : !> \brief ...
    8992             : !> \param Ndata ...
    8993             : !> \param packed_data ...
    8994             : !> \param full_data ...
    8995             : ! **************************************************************************************************
    8996       27120 :    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       27120 :       idata = 0
    9007       27120 :       ipack = 0
    9008       27120 :       Ndata_rep = (Ndata/64)*64
    9009       27120 :       DO kdata = 1, Ndata_rep, 64
    9010      423806 :          pack_tmp = 0
    9011      423806 :          idata = idata + 1
    9012      423806 :          data_tmp = full_data(idata)
    9013      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9014      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9015      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9016      423806 :          idata = idata + 1
    9017      423806 :          data_tmp = full_data(idata)
    9018      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9019      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9020      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9021      423806 :          idata = idata + 1
    9022      423806 :          data_tmp = full_data(idata)
    9023      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9024      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9025      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9026      423806 :          idata = idata + 1
    9027      423806 :          data_tmp = full_data(idata)
    9028      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9029      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9030      423806 :          pack_tmp = ISHFT(pack_tmp, -8)
    9031      423806 :          idata = idata + 1
    9032      423806 :          data_tmp = full_data(idata)
    9033      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9034      423806 :          data_tmp = IAND(data_tmp, mask_left(8))
    9035      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9036      423806 :          ipack = ipack + 1
    9037      423806 :          packed_data(ipack) = pack_tmp
    9038      423806 :          data_tmp = full_data(idata)
    9039      423806 :          pack_tmp = ISHFT(data_tmp, 58)
    9040      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9041      423806 :          idata = idata + 1
    9042      423806 :          data_tmp = full_data(idata)
    9043      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9044      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9045      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9046      423806 :          idata = idata + 1
    9047      423806 :          data_tmp = full_data(idata)
    9048      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9049      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9050      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9051      423806 :          idata = idata + 1
    9052      423806 :          data_tmp = full_data(idata)
    9053      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9054      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9055      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9056      423806 :          idata = idata + 1
    9057      423806 :          data_tmp = full_data(idata)
    9058      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9059      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9060      423806 :          pack_tmp = ISHFT(pack_tmp, -2)
    9061      423806 :          idata = idata + 1
    9062      423806 :          data_tmp = full_data(idata)
    9063      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9064      423806 :          data_tmp = IAND(data_tmp, mask_left(2))
    9065      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9066      423806 :          ipack = ipack + 1
    9067      423806 :          packed_data(ipack) = pack_tmp
    9068      423806 :          data_tmp = full_data(idata)
    9069      423806 :          pack_tmp = ISHFT(data_tmp, 52)
    9070      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9071      423806 :          idata = idata + 1
    9072      423806 :          data_tmp = full_data(idata)
    9073      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9074      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9075      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9076      423806 :          idata = idata + 1
    9077      423806 :          data_tmp = full_data(idata)
    9078      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9079      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9080      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9081      423806 :          idata = idata + 1
    9082      423806 :          data_tmp = full_data(idata)
    9083      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9084      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9085      423806 :          pack_tmp = ISHFT(pack_tmp, -10)
    9086      423806 :          idata = idata + 1
    9087      423806 :          data_tmp = full_data(idata)
    9088      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9089      423806 :          data_tmp = IAND(data_tmp, mask_left(10))
    9090      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9091      423806 :          ipack = ipack + 1
    9092      423806 :          packed_data(ipack) = pack_tmp
    9093      423806 :          data_tmp = full_data(idata)
    9094      423806 :          pack_tmp = ISHFT(data_tmp, 60)
    9095      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9096      423806 :          idata = idata + 1
    9097      423806 :          data_tmp = full_data(idata)
    9098      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9099      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9100      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9101      423806 :          idata = idata + 1
    9102      423806 :          data_tmp = full_data(idata)
    9103      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9104      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9105      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9106      423806 :          idata = idata + 1
    9107      423806 :          data_tmp = full_data(idata)
    9108      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9109      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9110      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9111      423806 :          idata = idata + 1
    9112      423806 :          data_tmp = full_data(idata)
    9113      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9114      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9115      423806 :          pack_tmp = ISHFT(pack_tmp, -4)
    9116      423806 :          idata = idata + 1
    9117      423806 :          data_tmp = full_data(idata)
    9118      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9119      423806 :          data_tmp = IAND(data_tmp, mask_left(4))
    9120      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9121      423806 :          ipack = ipack + 1
    9122      423806 :          packed_data(ipack) = pack_tmp
    9123      423806 :          data_tmp = full_data(idata)
    9124      423806 :          pack_tmp = ISHFT(data_tmp, 54)
    9125      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9126      423806 :          idata = idata + 1
    9127      423806 :          data_tmp = full_data(idata)
    9128      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9129      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9130      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9131      423806 :          idata = idata + 1
    9132      423806 :          data_tmp = full_data(idata)
    9133      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9134      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9135      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9136      423806 :          idata = idata + 1
    9137      423806 :          data_tmp = full_data(idata)
    9138      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9139      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9140      423806 :          pack_tmp = ISHFT(pack_tmp, -12)
    9141      423806 :          idata = idata + 1
    9142      423806 :          data_tmp = full_data(idata)
    9143      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9144      423806 :          data_tmp = IAND(data_tmp, mask_left(12))
    9145      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9146      423806 :          ipack = ipack + 1
    9147      423806 :          packed_data(ipack) = pack_tmp
    9148      423806 :          data_tmp = full_data(idata)
    9149      423806 :          pack_tmp = ISHFT(data_tmp, 62)
    9150      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9151      423806 :          idata = idata + 1
    9152      423806 :          data_tmp = full_data(idata)
    9153      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9154      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9155      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9156      423806 :          idata = idata + 1
    9157      423806 :          data_tmp = full_data(idata)
    9158      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9159      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9160      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9161      423806 :          idata = idata + 1
    9162      423806 :          data_tmp = full_data(idata)
    9163      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9164      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9165      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9166      423806 :          idata = idata + 1
    9167      423806 :          data_tmp = full_data(idata)
    9168      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9169      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9170      423806 :          pack_tmp = ISHFT(pack_tmp, -6)
    9171      423806 :          idata = idata + 1
    9172      423806 :          data_tmp = full_data(idata)
    9173      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9174      423806 :          data_tmp = IAND(data_tmp, mask_left(6))
    9175      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9176      423806 :          ipack = ipack + 1
    9177      423806 :          packed_data(ipack) = pack_tmp
    9178      423806 :          data_tmp = full_data(idata)
    9179      423806 :          pack_tmp = ISHFT(data_tmp, 56)
    9180      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9181      423806 :          idata = idata + 1
    9182      423806 :          data_tmp = full_data(idata)
    9183      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9184      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9185      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9186      423806 :          idata = idata + 1
    9187      423806 :          data_tmp = full_data(idata)
    9188      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9189      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9190      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9191      423806 :          idata = idata + 1
    9192      423806 :          data_tmp = full_data(idata)
    9193      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9194      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9195      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9196      423806 :          idata = idata + 1
    9197      423806 :          data_tmp = full_data(idata)
    9198      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9199      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9200      423806 :          pack_tmp = ISHFT(pack_tmp, 0)
    9201      423806 :          idata = idata + 1
    9202      423806 :          data_tmp = full_data(idata)
    9203             :          data_tmp = ISHFT(data_tmp, 50)
    9204      423806 :          data_tmp = IAND(data_tmp, mask_left(0))
    9205      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9206      423806 :          ipack = ipack + 1
    9207      423806 :          packed_data(ipack) = pack_tmp
    9208      423806 :          data_tmp = full_data(idata)
    9209      423806 :          pack_tmp = ISHFT(data_tmp, 50)
    9210      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9211      423806 :          idata = idata + 1
    9212      423806 :          data_tmp = full_data(idata)
    9213      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9214      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9215      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9216      423806 :          idata = idata + 1
    9217      423806 :          data_tmp = full_data(idata)
    9218      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9219      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9220      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9221      423806 :          idata = idata + 1
    9222      423806 :          data_tmp = full_data(idata)
    9223      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9224      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9225      423806 :          pack_tmp = ISHFT(pack_tmp, -8)
    9226      423806 :          idata = idata + 1
    9227      423806 :          data_tmp = full_data(idata)
    9228      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9229      423806 :          data_tmp = IAND(data_tmp, mask_left(8))
    9230      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9231      423806 :          ipack = ipack + 1
    9232      423806 :          packed_data(ipack) = pack_tmp
    9233      423806 :          data_tmp = full_data(idata)
    9234      423806 :          pack_tmp = ISHFT(data_tmp, 58)
    9235      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9236      423806 :          idata = idata + 1
    9237      423806 :          data_tmp = full_data(idata)
    9238      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9239      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9240      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9241      423806 :          idata = idata + 1
    9242      423806 :          data_tmp = full_data(idata)
    9243      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9244      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9245      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9246      423806 :          idata = idata + 1
    9247      423806 :          data_tmp = full_data(idata)
    9248      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9249      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9250      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9251      423806 :          idata = idata + 1
    9252      423806 :          data_tmp = full_data(idata)
    9253      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9254      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9255      423806 :          pack_tmp = ISHFT(pack_tmp, -2)
    9256      423806 :          idata = idata + 1
    9257      423806 :          data_tmp = full_data(idata)
    9258      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9259      423806 :          data_tmp = IAND(data_tmp, mask_left(2))
    9260      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9261      423806 :          ipack = ipack + 1
    9262      423806 :          packed_data(ipack) = pack_tmp
    9263      423806 :          data_tmp = full_data(idata)
    9264      423806 :          pack_tmp = ISHFT(data_tmp, 52)
    9265      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9266      423806 :          idata = idata + 1
    9267      423806 :          data_tmp = full_data(idata)
    9268      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9269      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9270      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9271      423806 :          idata = idata + 1
    9272      423806 :          data_tmp = full_data(idata)
    9273      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9274      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9275      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9276      423806 :          idata = idata + 1
    9277      423806 :          data_tmp = full_data(idata)
    9278      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9279      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9280      423806 :          pack_tmp = ISHFT(pack_tmp, -10)
    9281      423806 :          idata = idata + 1
    9282      423806 :          data_tmp = full_data(idata)
    9283      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9284      423806 :          data_tmp = IAND(data_tmp, mask_left(10))
    9285      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9286      423806 :          ipack = ipack + 1
    9287      423806 :          packed_data(ipack) = pack_tmp
    9288      423806 :          data_tmp = full_data(idata)
    9289      423806 :          pack_tmp = ISHFT(data_tmp, 60)
    9290      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9291      423806 :          idata = idata + 1
    9292      423806 :          data_tmp = full_data(idata)
    9293      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9294      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9295      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9296      423806 :          idata = idata + 1
    9297      423806 :          data_tmp = full_data(idata)
    9298      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9299      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9300      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9301      423806 :          idata = idata + 1
    9302      423806 :          data_tmp = full_data(idata)
    9303      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9304      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9305      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9306      423806 :          idata = idata + 1
    9307      423806 :          data_tmp = full_data(idata)
    9308      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9309      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9310      423806 :          pack_tmp = ISHFT(pack_tmp, -4)
    9311      423806 :          idata = idata + 1
    9312      423806 :          data_tmp = full_data(idata)
    9313      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9314      423806 :          data_tmp = IAND(data_tmp, mask_left(4))
    9315      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9316      423806 :          ipack = ipack + 1
    9317      423806 :          packed_data(ipack) = pack_tmp
    9318      423806 :          data_tmp = full_data(idata)
    9319      423806 :          pack_tmp = ISHFT(data_tmp, 54)
    9320      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9321      423806 :          idata = idata + 1
    9322      423806 :          data_tmp = full_data(idata)
    9323      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9324      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9325      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9326      423806 :          idata = idata + 1
    9327      423806 :          data_tmp = full_data(idata)
    9328      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9329      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9330      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9331      423806 :          idata = idata + 1
    9332      423806 :          data_tmp = full_data(idata)
    9333      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9334      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9335      423806 :          pack_tmp = ISHFT(pack_tmp, -12)
    9336      423806 :          idata = idata + 1
    9337      423806 :          data_tmp = full_data(idata)
    9338      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9339      423806 :          data_tmp = IAND(data_tmp, mask_left(12))
    9340      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9341      423806 :          ipack = ipack + 1
    9342      423806 :          packed_data(ipack) = pack_tmp
    9343      423806 :          data_tmp = full_data(idata)
    9344      423806 :          pack_tmp = ISHFT(data_tmp, 62)
    9345      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9346      423806 :          idata = idata + 1
    9347      423806 :          data_tmp = full_data(idata)
    9348      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9349      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9350      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9351      423806 :          idata = idata + 1
    9352      423806 :          data_tmp = full_data(idata)
    9353      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9354      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9355      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9356      423806 :          idata = idata + 1
    9357      423806 :          data_tmp = full_data(idata)
    9358      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9359      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9360      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9361      423806 :          idata = idata + 1
    9362      423806 :          data_tmp = full_data(idata)
    9363      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9364      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9365      423806 :          pack_tmp = ISHFT(pack_tmp, -6)
    9366      423806 :          idata = idata + 1
    9367      423806 :          data_tmp = full_data(idata)
    9368      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9369      423806 :          data_tmp = IAND(data_tmp, mask_left(6))
    9370      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9371      423806 :          ipack = ipack + 1
    9372      423806 :          packed_data(ipack) = pack_tmp
    9373      423806 :          data_tmp = full_data(idata)
    9374      423806 :          pack_tmp = ISHFT(data_tmp, 56)
    9375      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9376      423806 :          idata = idata + 1
    9377      423806 :          data_tmp = full_data(idata)
    9378      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9379      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9380      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9381      423806 :          idata = idata + 1
    9382      423806 :          data_tmp = full_data(idata)
    9383      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9384      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9385      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9386      423806 :          idata = idata + 1
    9387      423806 :          data_tmp = full_data(idata)
    9388      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9389      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9390      423806 :          pack_tmp = ISHFT(pack_tmp, -14)
    9391      423806 :          idata = idata + 1
    9392      423806 :          data_tmp = full_data(idata)
    9393      423806 :          data_tmp = ISHFT(data_tmp, 50)
    9394      423806 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9395             :          pack_tmp = ISHFT(pack_tmp, 0)
    9396      423806 :          pack_tmp = ISHFT(pack_tmp, 0)
    9397      423806 :          ipack = ipack + 1
    9398      423866 :          packed_data(ipack) = pack_tmp
    9399             :       END DO
    9400       27120 :       IF (Ndata_rep < Ndata) THEN
    9401        1124 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    9402             :       END IF
    9403       27120 :    END SUBROUTINE ints2bits_14
    9404             : 
    9405             : ! **************************************************************************************************
    9406             : !> \brief ...
    9407             : !> \param Ndata ...
    9408             : !> \param packed_data ...
    9409             : !> \param full_data ...
    9410             : ! **************************************************************************************************
    9411      122822 :    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      122822 :       ipack = 0
    9422      122822 :       idata = 0
    9423      122822 :       pack_tmp = 0
    9424      122822 :       Ndata_rep = (Ndata/64)*64
    9425      122822 :       DO kdata = 1, Ndata_rep, 64
    9426     1887408 :          idata = idata + 1
    9427     1887408 :          data_tmp = ISHFT(pack_tmp, 14)
    9428     1887408 :          ipack = ipack + 1
    9429     1887408 :          pack_tmp = packed_data(ipack)
    9430     1887408 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
    9431     1887408 :          pack_tmp = ISHFT(pack_tmp, -14)
    9432     1887408 :          idata = idata + 1
    9433     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9434     1887408 :          full_data(idata) = data_tmp
    9435     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9436     1887408 :          idata = idata + 1
    9437     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9438     1887408 :          full_data(idata) = data_tmp
    9439     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9440     1887408 :          idata = idata + 1
    9441     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9442     1887408 :          full_data(idata) = data_tmp
    9443     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9444     1887408 :          idata = idata + 1
    9445     1887408 :          data_tmp = ISHFT(pack_tmp, 6)
    9446     1887408 :          ipack = ipack + 1
    9447     1887408 :          pack_tmp = packed_data(ipack)
    9448     1887408 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    9449     1887408 :          pack_tmp = ISHFT(pack_tmp, -6)
    9450     1887408 :          idata = idata + 1
    9451     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9452     1887408 :          full_data(idata) = data_tmp
    9453     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9454     1887408 :          idata = idata + 1
    9455     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9456     1887408 :          full_data(idata) = data_tmp
    9457     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9458     1887408 :          idata = idata + 1
    9459     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9460     1887408 :          full_data(idata) = data_tmp
    9461     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9462     1887408 :          idata = idata + 1
    9463     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9464     1887408 :          full_data(idata) = data_tmp
    9465     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9466     1887408 :          idata = idata + 1
    9467     1887408 :          data_tmp = ISHFT(pack_tmp, 12)
    9468     1887408 :          ipack = ipack + 1
    9469     1887408 :          pack_tmp = packed_data(ipack)
    9470     1887408 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    9471     1887408 :          pack_tmp = ISHFT(pack_tmp, -12)
    9472     1887408 :          idata = idata + 1
    9473     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9474     1887408 :          full_data(idata) = data_tmp
    9475     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9476     1887408 :          idata = idata + 1
    9477     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9478     1887408 :          full_data(idata) = data_tmp
    9479     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9480     1887408 :          idata = idata + 1
    9481     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9482     1887408 :          full_data(idata) = data_tmp
    9483     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9484     1887408 :          idata = idata + 1
    9485     1887408 :          data_tmp = ISHFT(pack_tmp, 4)
    9486     1887408 :          ipack = ipack + 1
    9487     1887408 :          pack_tmp = packed_data(ipack)
    9488     1887408 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    9489     1887408 :          pack_tmp = ISHFT(pack_tmp, -4)
    9490     1887408 :          idata = idata + 1
    9491     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9492     1887408 :          full_data(idata) = data_tmp
    9493     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9494     1887408 :          idata = idata + 1
    9495     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9496     1887408 :          full_data(idata) = data_tmp
    9497     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9498     1887408 :          idata = idata + 1
    9499     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9500     1887408 :          full_data(idata) = data_tmp
    9501     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9502     1887408 :          idata = idata + 1
    9503     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9504     1887408 :          full_data(idata) = data_tmp
    9505     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9506     1887408 :          idata = idata + 1
    9507     1887408 :          data_tmp = ISHFT(pack_tmp, 10)
    9508     1887408 :          ipack = ipack + 1
    9509     1887408 :          pack_tmp = packed_data(ipack)
    9510     1887408 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    9511     1887408 :          pack_tmp = ISHFT(pack_tmp, -10)
    9512     1887408 :          idata = idata + 1
    9513     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9514     1887408 :          full_data(idata) = data_tmp
    9515     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9516     1887408 :          idata = idata + 1
    9517     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9518     1887408 :          full_data(idata) = data_tmp
    9519     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9520     1887408 :          idata = idata + 1
    9521     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9522     1887408 :          full_data(idata) = data_tmp
    9523     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9524     1887408 :          idata = idata + 1
    9525     1887408 :          data_tmp = ISHFT(pack_tmp, 2)
    9526     1887408 :          ipack = ipack + 1
    9527     1887408 :          pack_tmp = packed_data(ipack)
    9528     1887408 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    9529     1887408 :          pack_tmp = ISHFT(pack_tmp, -2)
    9530     1887408 :          idata = idata + 1
    9531     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9532     1887408 :          full_data(idata) = data_tmp
    9533     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9534     1887408 :          idata = idata + 1
    9535     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9536     1887408 :          full_data(idata) = data_tmp
    9537     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9538     1887408 :          idata = idata + 1
    9539     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9540     1887408 :          full_data(idata) = data_tmp
    9541     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9542     1887408 :          idata = idata + 1
    9543     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9544     1887408 :          full_data(idata) = data_tmp
    9545     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9546     1887408 :          idata = idata + 1
    9547     1887408 :          data_tmp = ISHFT(pack_tmp, 8)
    9548     1887408 :          ipack = ipack + 1
    9549     1887408 :          pack_tmp = packed_data(ipack)
    9550     1887408 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    9551     1887408 :          pack_tmp = ISHFT(pack_tmp, -8)
    9552     1887408 :          idata = idata + 1
    9553     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9554     1887408 :          full_data(idata) = data_tmp
    9555     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9556     1887408 :          idata = idata + 1
    9557     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9558     1887408 :          full_data(idata) = data_tmp
    9559     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9560     1887408 :          idata = idata + 1
    9561     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9562     1887408 :          full_data(idata) = data_tmp
    9563     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9564     1887408 :          idata = idata + 1
    9565     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9566     1887408 :          full_data(idata) = data_tmp
    9567     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9568     1887408 :          idata = idata + 1
    9569     1887408 :          data_tmp = ISHFT(pack_tmp, 14)
    9570     1887408 :          ipack = ipack + 1
    9571     1887408 :          pack_tmp = packed_data(ipack)
    9572     1887408 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
    9573     1887408 :          pack_tmp = ISHFT(pack_tmp, -14)
    9574     1887408 :          idata = idata + 1
    9575     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9576     1887408 :          full_data(idata) = data_tmp
    9577     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9578     1887408 :          idata = idata + 1
    9579     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9580     1887408 :          full_data(idata) = data_tmp
    9581     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9582     1887408 :          idata = idata + 1
    9583     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9584     1887408 :          full_data(idata) = data_tmp
    9585     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9586     1887408 :          idata = idata + 1
    9587     1887408 :          data_tmp = ISHFT(pack_tmp, 6)
    9588     1887408 :          ipack = ipack + 1
    9589     1887408 :          pack_tmp = packed_data(ipack)
    9590     1887408 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    9591     1887408 :          pack_tmp = ISHFT(pack_tmp, -6)
    9592     1887408 :          idata = idata + 1
    9593     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9594     1887408 :          full_data(idata) = data_tmp
    9595     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9596     1887408 :          idata = idata + 1
    9597     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9598     1887408 :          full_data(idata) = data_tmp
    9599     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9600     1887408 :          idata = idata + 1
    9601     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9602     1887408 :          full_data(idata) = data_tmp
    9603     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9604     1887408 :          idata = idata + 1
    9605     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9606     1887408 :          full_data(idata) = data_tmp
    9607     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9608     1887408 :          idata = idata + 1
    9609     1887408 :          data_tmp = ISHFT(pack_tmp, 12)
    9610     1887408 :          ipack = ipack + 1
    9611     1887408 :          pack_tmp = packed_data(ipack)
    9612     1887408 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    9613     1887408 :          pack_tmp = ISHFT(pack_tmp, -12)
    9614     1887408 :          idata = idata + 1
    9615     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9616     1887408 :          full_data(idata) = data_tmp
    9617     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9618     1887408 :          idata = idata + 1
    9619     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9620     1887408 :          full_data(idata) = data_tmp
    9621     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9622     1887408 :          idata = idata + 1
    9623     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9624     1887408 :          full_data(idata) = data_tmp
    9625     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9626     1887408 :          idata = idata + 1
    9627     1887408 :          data_tmp = ISHFT(pack_tmp, 4)
    9628     1887408 :          ipack = ipack + 1
    9629     1887408 :          pack_tmp = packed_data(ipack)
    9630     1887408 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    9631     1887408 :          pack_tmp = ISHFT(pack_tmp, -4)
    9632     1887408 :          idata = idata + 1
    9633     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9634     1887408 :          full_data(idata) = data_tmp
    9635     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9636     1887408 :          idata = idata + 1
    9637     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9638     1887408 :          full_data(idata) = data_tmp
    9639     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9640     1887408 :          idata = idata + 1
    9641     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9642     1887408 :          full_data(idata) = data_tmp
    9643     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9644     1887408 :          idata = idata + 1
    9645     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9646     1887408 :          full_data(idata) = data_tmp
    9647     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9648     1887408 :          idata = idata + 1
    9649     1887408 :          data_tmp = ISHFT(pack_tmp, 10)
    9650     1887408 :          ipack = ipack + 1
    9651     1887408 :          pack_tmp = packed_data(ipack)
    9652     1887408 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    9653     1887408 :          pack_tmp = ISHFT(pack_tmp, -10)
    9654     1887408 :          idata = idata + 1
    9655     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9656     1887408 :          full_data(idata) = data_tmp
    9657     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9658     1887408 :          idata = idata + 1
    9659     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9660     1887408 :          full_data(idata) = data_tmp
    9661     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9662     1887408 :          idata = idata + 1
    9663     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9664     1887408 :          full_data(idata) = data_tmp
    9665     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9666     1887408 :          idata = idata + 1
    9667     1887408 :          data_tmp = ISHFT(pack_tmp, 2)
    9668     1887408 :          ipack = ipack + 1
    9669     1887408 :          pack_tmp = packed_data(ipack)
    9670     1887408 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    9671     1887408 :          pack_tmp = ISHFT(pack_tmp, -2)
    9672     1887408 :          idata = idata + 1
    9673     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9674     1887408 :          full_data(idata) = data_tmp
    9675     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9676     1887408 :          idata = idata + 1
    9677     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9678     1887408 :          full_data(idata) = data_tmp
    9679     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9680     1887408 :          idata = idata + 1
    9681     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9682     1887408 :          full_data(idata) = data_tmp
    9683     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9684     1887408 :          idata = idata + 1
    9685     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9686     1887408 :          full_data(idata) = data_tmp
    9687     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9688     1887408 :          idata = idata + 1
    9689     1887408 :          data_tmp = ISHFT(pack_tmp, 8)
    9690     1887408 :          ipack = ipack + 1
    9691     1887408 :          pack_tmp = packed_data(ipack)
    9692     1887408 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    9693     1887408 :          pack_tmp = ISHFT(pack_tmp, -8)
    9694     1887408 :          idata = idata + 1
    9695     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9696     1887408 :          full_data(idata) = data_tmp
    9697     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9698     1887408 :          idata = idata + 1
    9699     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9700     1887408 :          full_data(idata) = data_tmp
    9701     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9702     1887408 :          idata = idata + 1
    9703     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9704     1887408 :          full_data(idata) = data_tmp
    9705     1887408 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9706     1887408 :          idata = idata + 1
    9707     1887408 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9708     1887408 :          full_data(idata) = data_tmp
    9709     1887873 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9710             :       END DO
    9711      122822 :       IF (Ndata_rep < Ndata) THEN
    9712        8640 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    9713             :       END IF
    9714      122822 :    END SUBROUTINE bits2ints_14
    9715             : 
    9716             : ! **************************************************************************************************
    9717             : !> \brief ...
    9718             : !> \param Ndata ...
    9719             : !> \param packed_data ...
    9720             : !> \param full_data ...
    9721             : ! **************************************************************************************************
    9722       27438 :    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       27438 :       idata = 0
    9733       27438 :       ipack = 0
    9734       27438 :       Ndata_rep = (Ndata/64)*64
    9735       27438 :       DO kdata = 1, Ndata_rep, 64
    9736      427312 :          pack_tmp = 0
    9737      427312 :          idata = idata + 1
    9738      427312 :          data_tmp = full_data(idata)
    9739      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9740      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9741      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9742      427312 :          idata = idata + 1
    9743      427312 :          data_tmp = full_data(idata)
    9744      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9745      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9746      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9747      427312 :          idata = idata + 1
    9748      427312 :          data_tmp = full_data(idata)
    9749      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9750      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9751      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9752      427312 :          idata = idata + 1
    9753      427312 :          data_tmp = full_data(idata)
    9754      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9755      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9756      427312 :          pack_tmp = ISHFT(pack_tmp, -4)
    9757      427312 :          idata = idata + 1
    9758      427312 :          data_tmp = full_data(idata)
    9759      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9760      427312 :          data_tmp = IAND(data_tmp, mask_left(4))
    9761      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9762      427312 :          ipack = ipack + 1
    9763      427312 :          packed_data(ipack) = pack_tmp
    9764      427312 :          data_tmp = full_data(idata)
    9765      427312 :          pack_tmp = ISHFT(data_tmp, 53)
    9766      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9767      427312 :          idata = idata + 1
    9768      427312 :          data_tmp = full_data(idata)
    9769      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9770      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9771      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9772      427312 :          idata = idata + 1
    9773      427312 :          data_tmp = full_data(idata)
    9774      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9775      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9776      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9777      427312 :          idata = idata + 1
    9778      427312 :          data_tmp = full_data(idata)
    9779      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9780      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9781      427312 :          pack_tmp = ISHFT(pack_tmp, -8)
    9782      427312 :          idata = idata + 1
    9783      427312 :          data_tmp = full_data(idata)
    9784      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9785      427312 :          data_tmp = IAND(data_tmp, mask_left(8))
    9786      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9787      427312 :          ipack = ipack + 1
    9788      427312 :          packed_data(ipack) = pack_tmp
    9789      427312 :          data_tmp = full_data(idata)
    9790      427312 :          pack_tmp = ISHFT(data_tmp, 57)
    9791      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9792      427312 :          idata = idata + 1
    9793      427312 :          data_tmp = full_data(idata)
    9794      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9795      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9796      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9797      427312 :          idata = idata + 1
    9798      427312 :          data_tmp = full_data(idata)
    9799      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9800      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9801      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9802      427312 :          idata = idata + 1
    9803      427312 :          data_tmp = full_data(idata)
    9804      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9805      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9806      427312 :          pack_tmp = ISHFT(pack_tmp, -12)
    9807      427312 :          idata = idata + 1
    9808      427312 :          data_tmp = full_data(idata)
    9809      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9810      427312 :          data_tmp = IAND(data_tmp, mask_left(12))
    9811      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9812      427312 :          ipack = ipack + 1
    9813      427312 :          packed_data(ipack) = pack_tmp
    9814      427312 :          data_tmp = full_data(idata)
    9815      427312 :          pack_tmp = ISHFT(data_tmp, 61)
    9816      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9817      427312 :          idata = idata + 1
    9818      427312 :          data_tmp = full_data(idata)
    9819      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9820      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9821      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9822      427312 :          idata = idata + 1
    9823      427312 :          data_tmp = full_data(idata)
    9824      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9825      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9826      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9827      427312 :          idata = idata + 1
    9828      427312 :          data_tmp = full_data(idata)
    9829      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9830      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9831      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9832      427312 :          idata = idata + 1
    9833      427312 :          data_tmp = full_data(idata)
    9834      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9835      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9836      427312 :          pack_tmp = ISHFT(pack_tmp, -1)
    9837      427312 :          idata = idata + 1
    9838      427312 :          data_tmp = full_data(idata)
    9839      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9840      427312 :          data_tmp = IAND(data_tmp, mask_left(1))
    9841      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9842      427312 :          ipack = ipack + 1
    9843      427312 :          packed_data(ipack) = pack_tmp
    9844      427312 :          data_tmp = full_data(idata)
    9845      427312 :          pack_tmp = ISHFT(data_tmp, 50)
    9846      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9847      427312 :          idata = idata + 1
    9848      427312 :          data_tmp = full_data(idata)
    9849      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9850      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9851      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9852      427312 :          idata = idata + 1
    9853      427312 :          data_tmp = full_data(idata)
    9854      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9855      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9856      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9857      427312 :          idata = idata + 1
    9858      427312 :          data_tmp = full_data(idata)
    9859      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9860      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9861      427312 :          pack_tmp = ISHFT(pack_tmp, -5)
    9862      427312 :          idata = idata + 1
    9863      427312 :          data_tmp = full_data(idata)
    9864      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9865      427312 :          data_tmp = IAND(data_tmp, mask_left(5))
    9866      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9867      427312 :          ipack = ipack + 1
    9868      427312 :          packed_data(ipack) = pack_tmp
    9869      427312 :          data_tmp = full_data(idata)
    9870      427312 :          pack_tmp = ISHFT(data_tmp, 54)
    9871      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9872      427312 :          idata = idata + 1
    9873      427312 :          data_tmp = full_data(idata)
    9874      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9875      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9876      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9877      427312 :          idata = idata + 1
    9878      427312 :          data_tmp = full_data(idata)
    9879      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9880      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9881      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9882      427312 :          idata = idata + 1
    9883      427312 :          data_tmp = full_data(idata)
    9884      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9885      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9886      427312 :          pack_tmp = ISHFT(pack_tmp, -9)
    9887      427312 :          idata = idata + 1
    9888      427312 :          data_tmp = full_data(idata)
    9889      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9890      427312 :          data_tmp = IAND(data_tmp, mask_left(9))
    9891      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9892      427312 :          ipack = ipack + 1
    9893      427312 :          packed_data(ipack) = pack_tmp
    9894      427312 :          data_tmp = full_data(idata)
    9895      427312 :          pack_tmp = ISHFT(data_tmp, 58)
    9896      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9897      427312 :          idata = idata + 1
    9898      427312 :          data_tmp = full_data(idata)
    9899      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9900      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9901      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9902      427312 :          idata = idata + 1
    9903      427312 :          data_tmp = full_data(idata)
    9904      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9905      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9906      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9907      427312 :          idata = idata + 1
    9908      427312 :          data_tmp = full_data(idata)
    9909      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9910      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9911      427312 :          pack_tmp = ISHFT(pack_tmp, -13)
    9912      427312 :          idata = idata + 1
    9913      427312 :          data_tmp = full_data(idata)
    9914      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9915      427312 :          data_tmp = IAND(data_tmp, mask_left(13))
    9916      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9917      427312 :          ipack = ipack + 1
    9918      427312 :          packed_data(ipack) = pack_tmp
    9919      427312 :          data_tmp = full_data(idata)
    9920      427312 :          pack_tmp = ISHFT(data_tmp, 62)
    9921      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9922      427312 :          idata = idata + 1
    9923      427312 :          data_tmp = full_data(idata)
    9924      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9925      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9926      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9927      427312 :          idata = idata + 1
    9928      427312 :          data_tmp = full_data(idata)
    9929      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9930      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9931      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9932      427312 :          idata = idata + 1
    9933      427312 :          data_tmp = full_data(idata)
    9934      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9935      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9936      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9937      427312 :          idata = idata + 1
    9938      427312 :          data_tmp = full_data(idata)
    9939      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9940      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9941      427312 :          pack_tmp = ISHFT(pack_tmp, -2)
    9942      427312 :          idata = idata + 1
    9943      427312 :          data_tmp = full_data(idata)
    9944      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9945      427312 :          data_tmp = IAND(data_tmp, mask_left(2))
    9946      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9947      427312 :          ipack = ipack + 1
    9948      427312 :          packed_data(ipack) = pack_tmp
    9949      427312 :          data_tmp = full_data(idata)
    9950      427312 :          pack_tmp = ISHFT(data_tmp, 51)
    9951      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9952      427312 :          idata = idata + 1
    9953      427312 :          data_tmp = full_data(idata)
    9954      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9955      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9956      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9957      427312 :          idata = idata + 1
    9958      427312 :          data_tmp = full_data(idata)
    9959      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9960      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9961      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9962      427312 :          idata = idata + 1
    9963      427312 :          data_tmp = full_data(idata)
    9964      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9965      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9966      427312 :          pack_tmp = ISHFT(pack_tmp, -6)
    9967      427312 :          idata = idata + 1
    9968      427312 :          data_tmp = full_data(idata)
    9969      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9970      427312 :          data_tmp = IAND(data_tmp, mask_left(6))
    9971      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9972      427312 :          ipack = ipack + 1
    9973      427312 :          packed_data(ipack) = pack_tmp
    9974      427312 :          data_tmp = full_data(idata)
    9975      427312 :          pack_tmp = ISHFT(data_tmp, 55)
    9976      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9977      427312 :          idata = idata + 1
    9978      427312 :          data_tmp = full_data(idata)
    9979      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9980      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9981      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9982      427312 :          idata = idata + 1
    9983      427312 :          data_tmp = full_data(idata)
    9984      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9985      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9986      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
    9987      427312 :          idata = idata + 1
    9988      427312 :          data_tmp = full_data(idata)
    9989      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9990      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9991      427312 :          pack_tmp = ISHFT(pack_tmp, -10)
    9992      427312 :          idata = idata + 1
    9993      427312 :          data_tmp = full_data(idata)
    9994      427312 :          data_tmp = ISHFT(data_tmp, 49)
    9995      427312 :          data_tmp = IAND(data_tmp, mask_left(10))
    9996      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9997      427312 :          ipack = ipack + 1
    9998      427312 :          packed_data(ipack) = pack_tmp
    9999      427312 :          data_tmp = full_data(idata)
   10000      427312 :          pack_tmp = ISHFT(data_tmp, 59)
   10001      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
   10002      427312 :          idata = idata + 1
   10003      427312 :          data_tmp = full_data(idata)
   10004      427312 :          data_tmp = ISHFT(data_tmp, 49)
   10005      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10006      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
   10007      427312 :          idata = idata + 1
   10008      427312 :          data_tmp = full_data(idata)
   10009      427312 :          data_tmp = ISHFT(data_tmp, 49)
   10010      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10011      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
   10012      427312 :          idata = idata + 1
   10013      427312 :          data_tmp = full_data(idata)
   10014      427312 :          data_tmp = ISHFT(data_tmp, 49)
   10015      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10016      427312 :          pack_tmp = ISHFT(pack_tmp, -14)
   10017      427312 :          idata = idata + 1
   10018      427312 :          data_tmp = full_data(idata)
   10019      427312 :          data_tmp = ISHFT(data_tmp, 49)
   10020      427312 :          data_tmp = IAND(data_tmp, mask_left(14))
   10021      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10022      427312 :          ipack = ipack + 1
   10023      427312 :          packed_data(ipack) = pack_tmp
   10024      427312 :          data_tmp = full_data(idata)
   10025      427312 :          pack_tmp = ISHFT(data_tmp, 63)
   10026      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
   10027      427312 :          idata = idata + 1
   10028      427312 :          data_tmp = full_data(idata)
   10029      427312 :          data_tmp = ISHFT(data_tmp, 49)
   10030      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10031      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
   10032      427312 :          idata = idata + 1
   10033      427312 :          data_tmp = full_data(idata)
   10034      427312 :          data_tmp = ISHFT(data_tmp, 49)
   10035      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10036      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
   10037      427312 :          idata = idata + 1
   10038      427312 :          data_tmp = full_data(idata)
   10039      427312 :          data_tmp = ISHFT(data_tmp, 49)
   10040      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10041      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
   10042      427312 :          idata = idata + 1
   10043      427312 :          data_tmp = full_data(idata)
   10044      427312 :          data_tmp = ISHFT(data_tmp, 49)
   10045      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10046      427312 :          pack_tmp = ISHFT(pack_tmp, -3)
   10047      427312 :          idata = idata + 1
   10048      427312 :          data_tmp = full_data(idata)
   10049      427312 :          data_tmp = ISHFT(data_tmp, 49)
   10050      427312 :          data_tmp = IAND(data_tmp, mask_left(3))
   10051      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10052      427312 :          ipack = ipack + 1
   10053      427312 :          packed_data(ipack) = pack_tmp
   10054      427312 :          data_tmp = full_data(idata)
   10055      427312 :          pack_tmp = ISHFT(data_tmp, 52)
   10056      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
   10057      427312 :          idata = idata + 1
   10058      427312 :          data_tmp = full_data(idata)
   10059      427312 :          data_tmp = ISHFT(data_tmp, 49)
   10060      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10061      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
   10062      427312 :          idata = idata + 1
   10063      427312 :          data_tmp = full_data(idata)
   10064      427312 :          data_tmp = ISHFT(data_tmp, 49)
   10065      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10066      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
   10067      427312 :          idata = idata + 1
   10068      427312 :          data_tmp = full_data(idata)
   10069      427312 :          data_tmp = ISHFT(data_tmp, 49)
   10070      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10071      427312 :          pack_tmp = ISHFT(pack_tmp, -7)
   10072      427312 :          idata = idata + 1
   10073      427312 :          data_tmp = full_data(idata)
   10074      427312 :          data_tmp = ISHFT(data_tmp, 49)
   10075      427312 :          data_tmp = IAND(data_tmp, mask_left(7))
   10076      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10077      427312 :          ipack = ipack + 1
   10078      427312 :          packed_data(ipack) = pack_tmp
   10079      427312 :          data_tmp = full_data(idata)
   10080      427312 :          pack_tmp = ISHFT(data_tmp, 56)
   10081      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
   10082      427312 :          idata = idata + 1
   10083      427312 :          data_tmp = full_data(idata)
   10084      427312 :          data_tmp = ISHFT(data_tmp, 49)
   10085      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10086      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
   10087      427312 :          idata = idata + 1
   10088      427312 :          data_tmp = full_data(idata)
   10089      427312 :          data_tmp = ISHFT(data_tmp, 49)
   10090      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10091      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
   10092      427312 :          idata = idata + 1
   10093      427312 :          data_tmp = full_data(idata)
   10094      427312 :          data_tmp = ISHFT(data_tmp, 49)
   10095      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10096      427312 :          pack_tmp = ISHFT(pack_tmp, -11)
   10097      427312 :          idata = idata + 1
   10098      427312 :          data_tmp = full_data(idata)
   10099      427312 :          data_tmp = ISHFT(data_tmp, 49)
   10100      427312 :          data_tmp = IAND(data_tmp, mask_left(11))
   10101      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10102      427312 :          ipack = ipack + 1
   10103      427312 :          packed_data(ipack) = pack_tmp
   10104      427312 :          data_tmp = full_data(idata)
   10105      427312 :          pack_tmp = ISHFT(data_tmp, 60)
   10106      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
   10107      427312 :          idata = idata + 1
   10108      427312 :          data_tmp = full_data(idata)
   10109      427312 :          data_tmp = ISHFT(data_tmp, 49)
   10110      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10111      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
   10112      427312 :          idata = idata + 1
   10113      427312 :          data_tmp = full_data(idata)
   10114      427312 :          data_tmp = ISHFT(data_tmp, 49)
   10115      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10116      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
   10117      427312 :          idata = idata + 1
   10118      427312 :          data_tmp = full_data(idata)
   10119      427312 :          data_tmp = ISHFT(data_tmp, 49)
   10120      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10121      427312 :          pack_tmp = ISHFT(pack_tmp, -15)
   10122      427312 :          idata = idata + 1
   10123      427312 :          data_tmp = full_data(idata)
   10124      427312 :          data_tmp = ISHFT(data_tmp, 49)
   10125      427312 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10126             :          pack_tmp = ISHFT(pack_tmp, 0)
   10127      427312 :          pack_tmp = ISHFT(pack_tmp, 0)
   10128      427312 :          ipack = ipack + 1
   10129      427396 :          packed_data(ipack) = pack_tmp
   10130             :       END DO
   10131       27438 :       IF (Ndata_rep < Ndata) THEN
   10132        1376 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   10133             :       END IF
   10134       27438 :    END SUBROUTINE ints2bits_15
   10135             : 
   10136             : ! **************************************************************************************************
   10137             : !> \brief ...
   10138             : !> \param Ndata ...
   10139             : !> \param packed_data ...
   10140             : !> \param full_data ...
   10141             : ! **************************************************************************************************
   10142      124897 :    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      124897 :       ipack = 0
   10153      124897 :       idata = 0
   10154      124897 :       pack_tmp = 0
   10155      124897 :       Ndata_rep = (Ndata/64)*64
   10156      124897 :       DO kdata = 1, Ndata_rep, 64
   10157     1908184 :          idata = idata + 1
   10158     1908184 :          data_tmp = ISHFT(pack_tmp, 15)
   10159     1908184 :          ipack = ipack + 1
   10160     1908184 :          pack_tmp = packed_data(ipack)
   10161     1908184 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   10162     1908184 :          pack_tmp = ISHFT(pack_tmp, -15)
   10163     1908184 :          idata = idata + 1
   10164     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10165     1908184 :          full_data(idata) = data_tmp
   10166     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10167     1908184 :          idata = idata + 1
   10168     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10169     1908184 :          full_data(idata) = data_tmp
   10170     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10171     1908184 :          idata = idata + 1
   10172     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10173     1908184 :          full_data(idata) = data_tmp
   10174     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10175     1908184 :          idata = idata + 1
   10176     1908184 :          data_tmp = ISHFT(pack_tmp, 11)
   10177     1908184 :          ipack = ipack + 1
   10178     1908184 :          pack_tmp = packed_data(ipack)
   10179     1908184 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   10180     1908184 :          pack_tmp = ISHFT(pack_tmp, -11)
   10181     1908184 :          idata = idata + 1
   10182     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10183     1908184 :          full_data(idata) = data_tmp
   10184     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10185     1908184 :          idata = idata + 1
   10186     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10187     1908184 :          full_data(idata) = data_tmp
   10188     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10189     1908184 :          idata = idata + 1
   10190     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10191     1908184 :          full_data(idata) = data_tmp
   10192     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10193     1908184 :          idata = idata + 1
   10194     1908184 :          data_tmp = ISHFT(pack_tmp, 7)
   10195     1908184 :          ipack = ipack + 1
   10196     1908184 :          pack_tmp = packed_data(ipack)
   10197     1908184 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   10198     1908184 :          pack_tmp = ISHFT(pack_tmp, -7)
   10199     1908184 :          idata = idata + 1
   10200     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10201     1908184 :          full_data(idata) = data_tmp
   10202     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10203     1908184 :          idata = idata + 1
   10204     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10205     1908184 :          full_data(idata) = data_tmp
   10206     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10207     1908184 :          idata = idata + 1
   10208     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10209     1908184 :          full_data(idata) = data_tmp
   10210     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10211     1908184 :          idata = idata + 1
   10212     1908184 :          data_tmp = ISHFT(pack_tmp, 3)
   10213     1908184 :          ipack = ipack + 1
   10214     1908184 :          pack_tmp = packed_data(ipack)
   10215     1908184 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   10216     1908184 :          pack_tmp = ISHFT(pack_tmp, -3)
   10217     1908184 :          idata = idata + 1
   10218     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10219     1908184 :          full_data(idata) = data_tmp
   10220     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10221     1908184 :          idata = idata + 1
   10222     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10223     1908184 :          full_data(idata) = data_tmp
   10224     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10225     1908184 :          idata = idata + 1
   10226     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10227     1908184 :          full_data(idata) = data_tmp
   10228     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10229     1908184 :          idata = idata + 1
   10230     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10231     1908184 :          full_data(idata) = data_tmp
   10232     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10233     1908184 :          idata = idata + 1
   10234     1908184 :          data_tmp = ISHFT(pack_tmp, 14)
   10235     1908184 :          ipack = ipack + 1
   10236     1908184 :          pack_tmp = packed_data(ipack)
   10237     1908184 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   10238     1908184 :          pack_tmp = ISHFT(pack_tmp, -14)
   10239     1908184 :          idata = idata + 1
   10240     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10241     1908184 :          full_data(idata) = data_tmp
   10242     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10243     1908184 :          idata = idata + 1
   10244     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10245     1908184 :          full_data(idata) = data_tmp
   10246     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10247     1908184 :          idata = idata + 1
   10248     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10249     1908184 :          full_data(idata) = data_tmp
   10250     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10251     1908184 :          idata = idata + 1
   10252     1908184 :          data_tmp = ISHFT(pack_tmp, 10)
   10253     1908184 :          ipack = ipack + 1
   10254     1908184 :          pack_tmp = packed_data(ipack)
   10255     1908184 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   10256     1908184 :          pack_tmp = ISHFT(pack_tmp, -10)
   10257     1908184 :          idata = idata + 1
   10258     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10259     1908184 :          full_data(idata) = data_tmp
   10260     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10261     1908184 :          idata = idata + 1
   10262     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10263     1908184 :          full_data(idata) = data_tmp
   10264     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10265     1908184 :          idata = idata + 1
   10266     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10267     1908184 :          full_data(idata) = data_tmp
   10268     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10269     1908184 :          idata = idata + 1
   10270     1908184 :          data_tmp = ISHFT(pack_tmp, 6)
   10271     1908184 :          ipack = ipack + 1
   10272     1908184 :          pack_tmp = packed_data(ipack)
   10273     1908184 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   10274     1908184 :          pack_tmp = ISHFT(pack_tmp, -6)
   10275     1908184 :          idata = idata + 1
   10276     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10277     1908184 :          full_data(idata) = data_tmp
   10278     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10279     1908184 :          idata = idata + 1
   10280     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10281     1908184 :          full_data(idata) = data_tmp
   10282     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10283     1908184 :          idata = idata + 1
   10284     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10285     1908184 :          full_data(idata) = data_tmp
   10286     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10287     1908184 :          idata = idata + 1
   10288     1908184 :          data_tmp = ISHFT(pack_tmp, 2)
   10289     1908184 :          ipack = ipack + 1
   10290     1908184 :          pack_tmp = packed_data(ipack)
   10291     1908184 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   10292     1908184 :          pack_tmp = ISHFT(pack_tmp, -2)
   10293     1908184 :          idata = idata + 1
   10294     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10295     1908184 :          full_data(idata) = data_tmp
   10296     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10297     1908184 :          idata = idata + 1
   10298     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10299     1908184 :          full_data(idata) = data_tmp
   10300     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10301     1908184 :          idata = idata + 1
   10302     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10303     1908184 :          full_data(idata) = data_tmp
   10304     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10305     1908184 :          idata = idata + 1
   10306     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10307     1908184 :          full_data(idata) = data_tmp
   10308     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10309     1908184 :          idata = idata + 1
   10310     1908184 :          data_tmp = ISHFT(pack_tmp, 13)
   10311     1908184 :          ipack = ipack + 1
   10312     1908184 :          pack_tmp = packed_data(ipack)
   10313     1908184 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   10314     1908184 :          pack_tmp = ISHFT(pack_tmp, -13)
   10315     1908184 :          idata = idata + 1
   10316     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10317     1908184 :          full_data(idata) = data_tmp
   10318     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10319     1908184 :          idata = idata + 1
   10320     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10321     1908184 :          full_data(idata) = data_tmp
   10322     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10323     1908184 :          idata = idata + 1
   10324     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10325     1908184 :          full_data(idata) = data_tmp
   10326     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10327     1908184 :          idata = idata + 1
   10328     1908184 :          data_tmp = ISHFT(pack_tmp, 9)
   10329     1908184 :          ipack = ipack + 1
   10330     1908184 :          pack_tmp = packed_data(ipack)
   10331     1908184 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   10332     1908184 :          pack_tmp = ISHFT(pack_tmp, -9)
   10333     1908184 :          idata = idata + 1
   10334     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10335     1908184 :          full_data(idata) = data_tmp
   10336     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10337     1908184 :          idata = idata + 1
   10338     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10339     1908184 :          full_data(idata) = data_tmp
   10340     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10341     1908184 :          idata = idata + 1
   10342     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10343     1908184 :          full_data(idata) = data_tmp
   10344     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10345     1908184 :          idata = idata + 1
   10346     1908184 :          data_tmp = ISHFT(pack_tmp, 5)
   10347     1908184 :          ipack = ipack + 1
   10348     1908184 :          pack_tmp = packed_data(ipack)
   10349     1908184 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   10350     1908184 :          pack_tmp = ISHFT(pack_tmp, -5)
   10351     1908184 :          idata = idata + 1
   10352     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10353     1908184 :          full_data(idata) = data_tmp
   10354     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10355     1908184 :          idata = idata + 1
   10356     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10357     1908184 :          full_data(idata) = data_tmp
   10358     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10359     1908184 :          idata = idata + 1
   10360     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10361     1908184 :          full_data(idata) = data_tmp
   10362     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10363     1908184 :          idata = idata + 1
   10364     1908184 :          data_tmp = ISHFT(pack_tmp, 1)
   10365     1908184 :          ipack = ipack + 1
   10366     1908184 :          pack_tmp = packed_data(ipack)
   10367     1908184 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   10368     1908184 :          pack_tmp = ISHFT(pack_tmp, -1)
   10369     1908184 :          idata = idata + 1
   10370     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10371     1908184 :          full_data(idata) = data_tmp
   10372     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10373     1908184 :          idata = idata + 1
   10374     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10375     1908184 :          full_data(idata) = data_tmp
   10376     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10377     1908184 :          idata = idata + 1
   10378     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10379     1908184 :          full_data(idata) = data_tmp
   10380     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10381     1908184 :          idata = idata + 1
   10382     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10383     1908184 :          full_data(idata) = data_tmp
   10384     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10385     1908184 :          idata = idata + 1
   10386     1908184 :          data_tmp = ISHFT(pack_tmp, 12)
   10387     1908184 :          ipack = ipack + 1
   10388     1908184 :          pack_tmp = packed_data(ipack)
   10389     1908184 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   10390     1908184 :          pack_tmp = ISHFT(pack_tmp, -12)
   10391     1908184 :          idata = idata + 1
   10392     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10393     1908184 :          full_data(idata) = data_tmp
   10394     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10395     1908184 :          idata = idata + 1
   10396     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10397     1908184 :          full_data(idata) = data_tmp
   10398     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10399     1908184 :          idata = idata + 1
   10400     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10401     1908184 :          full_data(idata) = data_tmp
   10402     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10403     1908184 :          idata = idata + 1
   10404     1908184 :          data_tmp = ISHFT(pack_tmp, 8)
   10405     1908184 :          ipack = ipack + 1
   10406     1908184 :          pack_tmp = packed_data(ipack)
   10407     1908184 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   10408     1908184 :          pack_tmp = ISHFT(pack_tmp, -8)
   10409     1908184 :          idata = idata + 1
   10410     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10411     1908184 :          full_data(idata) = data_tmp
   10412     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10413     1908184 :          idata = idata + 1
   10414     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10415     1908184 :          full_data(idata) = data_tmp
   10416     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10417     1908184 :          idata = idata + 1
   10418     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10419     1908184 :          full_data(idata) = data_tmp
   10420     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10421     1908184 :          idata = idata + 1
   10422     1908184 :          data_tmp = ISHFT(pack_tmp, 4)
   10423     1908184 :          ipack = ipack + 1
   10424     1908184 :          pack_tmp = packed_data(ipack)
   10425     1908184 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   10426     1908184 :          pack_tmp = ISHFT(pack_tmp, -4)
   10427     1908184 :          idata = idata + 1
   10428     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10429     1908184 :          full_data(idata) = data_tmp
   10430     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10431     1908184 :          idata = idata + 1
   10432     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10433     1908184 :          full_data(idata) = data_tmp
   10434     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10435     1908184 :          idata = idata + 1
   10436     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10437     1908184 :          full_data(idata) = data_tmp
   10438     1908184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10439     1908184 :          idata = idata + 1
   10440     1908184 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10441     1908184 :          full_data(idata) = data_tmp
   10442     1908824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10443             :       END DO
   10444      124897 :       IF (Ndata_rep < Ndata) THEN
   10445       10608 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   10446             :       END IF
   10447      124897 :    END SUBROUTINE bits2ints_15
   10448             : 
   10449             : ! **************************************************************************************************
   10450             : !> \brief ...
   10451             : !> \param Ndata ...
   10452             : !> \param packed_data ...
   10453             : !> \param full_data ...
   10454             : ! **************************************************************************************************
   10455       28308 :    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       28308 :       idata = 0
   10466       28308 :       ipack = 0
   10467       28308 :       Ndata_rep = (Ndata/64)*64
   10468       28308 :       DO kdata = 1, Ndata_rep, 64
   10469      438912 :          pack_tmp = 0
   10470      438912 :          idata = idata + 1
   10471      438912 :          data_tmp = full_data(idata)
   10472      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10473      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10474      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10475      438912 :          idata = idata + 1
   10476      438912 :          data_tmp = full_data(idata)
   10477      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10478      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10479      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10480      438912 :          idata = idata + 1
   10481      438912 :          data_tmp = full_data(idata)
   10482      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10483      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10484      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10485      438912 :          idata = idata + 1
   10486      438912 :          data_tmp = full_data(idata)
   10487      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10488      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10489      438912 :          pack_tmp = ISHFT(pack_tmp, 0)
   10490      438912 :          idata = idata + 1
   10491      438912 :          data_tmp = full_data(idata)
   10492             :          data_tmp = ISHFT(data_tmp, 48)
   10493      438912 :          data_tmp = IAND(data_tmp, mask_left(0))
   10494      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10495      438912 :          ipack = ipack + 1
   10496      438912 :          packed_data(ipack) = pack_tmp
   10497      438912 :          data_tmp = full_data(idata)
   10498      438912 :          pack_tmp = ISHFT(data_tmp, 48)
   10499      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10500      438912 :          idata = idata + 1
   10501      438912 :          data_tmp = full_data(idata)
   10502      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10503      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10504      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10505      438912 :          idata = idata + 1
   10506      438912 :          data_tmp = full_data(idata)
   10507      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10508      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10509      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10510      438912 :          idata = idata + 1
   10511      438912 :          data_tmp = full_data(idata)
   10512      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10513      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10514      438912 :          pack_tmp = ISHFT(pack_tmp, 0)
   10515      438912 :          idata = idata + 1
   10516      438912 :          data_tmp = full_data(idata)
   10517             :          data_tmp = ISHFT(data_tmp, 48)
   10518      438912 :          data_tmp = IAND(data_tmp, mask_left(0))
   10519      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10520      438912 :          ipack = ipack + 1
   10521      438912 :          packed_data(ipack) = pack_tmp
   10522      438912 :          data_tmp = full_data(idata)
   10523      438912 :          pack_tmp = ISHFT(data_tmp, 48)
   10524      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10525      438912 :          idata = idata + 1
   10526      438912 :          data_tmp = full_data(idata)
   10527      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10528      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10529      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10530      438912 :          idata = idata + 1
   10531      438912 :          data_tmp = full_data(idata)
   10532      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10533      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10534      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10535      438912 :          idata = idata + 1
   10536      438912 :          data_tmp = full_data(idata)
   10537      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10538      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10539      438912 :          pack_tmp = ISHFT(pack_tmp, 0)
   10540      438912 :          idata = idata + 1
   10541      438912 :          data_tmp = full_data(idata)
   10542             :          data_tmp = ISHFT(data_tmp, 48)
   10543      438912 :          data_tmp = IAND(data_tmp, mask_left(0))
   10544      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10545      438912 :          ipack = ipack + 1
   10546      438912 :          packed_data(ipack) = pack_tmp
   10547      438912 :          data_tmp = full_data(idata)
   10548      438912 :          pack_tmp = ISHFT(data_tmp, 48)
   10549      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10550      438912 :          idata = idata + 1
   10551      438912 :          data_tmp = full_data(idata)
   10552      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10553      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10554      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10555      438912 :          idata = idata + 1
   10556      438912 :          data_tmp = full_data(idata)
   10557      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10558      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10559      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10560      438912 :          idata = idata + 1
   10561      438912 :          data_tmp = full_data(idata)
   10562      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10563      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10564      438912 :          pack_tmp = ISHFT(pack_tmp, 0)
   10565      438912 :          idata = idata + 1
   10566      438912 :          data_tmp = full_data(idata)
   10567             :          data_tmp = ISHFT(data_tmp, 48)
   10568      438912 :          data_tmp = IAND(data_tmp, mask_left(0))
   10569      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10570      438912 :          ipack = ipack + 1
   10571      438912 :          packed_data(ipack) = pack_tmp
   10572      438912 :          data_tmp = full_data(idata)
   10573      438912 :          pack_tmp = ISHFT(data_tmp, 48)
   10574      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10575      438912 :          idata = idata + 1
   10576      438912 :          data_tmp = full_data(idata)
   10577      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10578      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10579      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10580      438912 :          idata = idata + 1
   10581      438912 :          data_tmp = full_data(idata)
   10582      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10583      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10584      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10585      438912 :          idata = idata + 1
   10586      438912 :          data_tmp = full_data(idata)
   10587      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10588      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10589      438912 :          pack_tmp = ISHFT(pack_tmp, 0)
   10590      438912 :          idata = idata + 1
   10591      438912 :          data_tmp = full_data(idata)
   10592             :          data_tmp = ISHFT(data_tmp, 48)
   10593      438912 :          data_tmp = IAND(data_tmp, mask_left(0))
   10594      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10595      438912 :          ipack = ipack + 1
   10596      438912 :          packed_data(ipack) = pack_tmp
   10597      438912 :          data_tmp = full_data(idata)
   10598      438912 :          pack_tmp = ISHFT(data_tmp, 48)
   10599      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10600      438912 :          idata = idata + 1
   10601      438912 :          data_tmp = full_data(idata)
   10602      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10603      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10604      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10605      438912 :          idata = idata + 1
   10606      438912 :          data_tmp = full_data(idata)
   10607      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10608      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10609      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10610      438912 :          idata = idata + 1
   10611      438912 :          data_tmp = full_data(idata)
   10612      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10613      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10614      438912 :          pack_tmp = ISHFT(pack_tmp, 0)
   10615      438912 :          idata = idata + 1
   10616      438912 :          data_tmp = full_data(idata)
   10617             :          data_tmp = ISHFT(data_tmp, 48)
   10618      438912 :          data_tmp = IAND(data_tmp, mask_left(0))
   10619      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10620      438912 :          ipack = ipack + 1
   10621      438912 :          packed_data(ipack) = pack_tmp
   10622      438912 :          data_tmp = full_data(idata)
   10623      438912 :          pack_tmp = ISHFT(data_tmp, 48)
   10624      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10625      438912 :          idata = idata + 1
   10626      438912 :          data_tmp = full_data(idata)
   10627      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10628      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10629      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10630      438912 :          idata = idata + 1
   10631      438912 :          data_tmp = full_data(idata)
   10632      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10633      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10634      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10635      438912 :          idata = idata + 1
   10636      438912 :          data_tmp = full_data(idata)
   10637      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10638      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10639      438912 :          pack_tmp = ISHFT(pack_tmp, 0)
   10640      438912 :          idata = idata + 1
   10641      438912 :          data_tmp = full_data(idata)
   10642             :          data_tmp = ISHFT(data_tmp, 48)
   10643      438912 :          data_tmp = IAND(data_tmp, mask_left(0))
   10644      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10645      438912 :          ipack = ipack + 1
   10646      438912 :          packed_data(ipack) = pack_tmp
   10647      438912 :          data_tmp = full_data(idata)
   10648      438912 :          pack_tmp = ISHFT(data_tmp, 48)
   10649      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10650      438912 :          idata = idata + 1
   10651      438912 :          data_tmp = full_data(idata)
   10652      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10653      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10654      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10655      438912 :          idata = idata + 1
   10656      438912 :          data_tmp = full_data(idata)
   10657      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10658      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10659      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10660      438912 :          idata = idata + 1
   10661      438912 :          data_tmp = full_data(idata)
   10662      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10663      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10664      438912 :          pack_tmp = ISHFT(pack_tmp, 0)
   10665      438912 :          idata = idata + 1
   10666      438912 :          data_tmp = full_data(idata)
   10667             :          data_tmp = ISHFT(data_tmp, 48)
   10668      438912 :          data_tmp = IAND(data_tmp, mask_left(0))
   10669      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10670      438912 :          ipack = ipack + 1
   10671      438912 :          packed_data(ipack) = pack_tmp
   10672      438912 :          data_tmp = full_data(idata)
   10673      438912 :          pack_tmp = ISHFT(data_tmp, 48)
   10674      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10675      438912 :          idata = idata + 1
   10676      438912 :          data_tmp = full_data(idata)
   10677      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10678      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10679      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10680      438912 :          idata = idata + 1
   10681      438912 :          data_tmp = full_data(idata)
   10682      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10683      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10684      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10685      438912 :          idata = idata + 1
   10686      438912 :          data_tmp = full_data(idata)
   10687      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10688      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10689      438912 :          pack_tmp = ISHFT(pack_tmp, 0)
   10690      438912 :          idata = idata + 1
   10691      438912 :          data_tmp = full_data(idata)
   10692             :          data_tmp = ISHFT(data_tmp, 48)
   10693      438912 :          data_tmp = IAND(data_tmp, mask_left(0))
   10694      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10695      438912 :          ipack = ipack + 1
   10696      438912 :          packed_data(ipack) = pack_tmp
   10697      438912 :          data_tmp = full_data(idata)
   10698      438912 :          pack_tmp = ISHFT(data_tmp, 48)
   10699      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10700      438912 :          idata = idata + 1
   10701      438912 :          data_tmp = full_data(idata)
   10702      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10703      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10704      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10705      438912 :          idata = idata + 1
   10706      438912 :          data_tmp = full_data(idata)
   10707      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10708      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10709      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10710      438912 :          idata = idata + 1
   10711      438912 :          data_tmp = full_data(idata)
   10712      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10713      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10714      438912 :          pack_tmp = ISHFT(pack_tmp, 0)
   10715      438912 :          idata = idata + 1
   10716      438912 :          data_tmp = full_data(idata)
   10717             :          data_tmp = ISHFT(data_tmp, 48)
   10718      438912 :          data_tmp = IAND(data_tmp, mask_left(0))
   10719      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10720      438912 :          ipack = ipack + 1
   10721      438912 :          packed_data(ipack) = pack_tmp
   10722      438912 :          data_tmp = full_data(idata)
   10723      438912 :          pack_tmp = ISHFT(data_tmp, 48)
   10724      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10725      438912 :          idata = idata + 1
   10726      438912 :          data_tmp = full_data(idata)
   10727      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10728      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10729      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10730      438912 :          idata = idata + 1
   10731      438912 :          data_tmp = full_data(idata)
   10732      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10733      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10734      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10735      438912 :          idata = idata + 1
   10736      438912 :          data_tmp = full_data(idata)
   10737      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10738      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10739      438912 :          pack_tmp = ISHFT(pack_tmp, 0)
   10740      438912 :          idata = idata + 1
   10741      438912 :          data_tmp = full_data(idata)
   10742             :          data_tmp = ISHFT(data_tmp, 48)
   10743      438912 :          data_tmp = IAND(data_tmp, mask_left(0))
   10744      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10745      438912 :          ipack = ipack + 1
   10746      438912 :          packed_data(ipack) = pack_tmp
   10747      438912 :          data_tmp = full_data(idata)
   10748      438912 :          pack_tmp = ISHFT(data_tmp, 48)
   10749      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10750      438912 :          idata = idata + 1
   10751      438912 :          data_tmp = full_data(idata)
   10752      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10753      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10754      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10755      438912 :          idata = idata + 1
   10756      438912 :          data_tmp = full_data(idata)
   10757      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10758      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10759      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10760      438912 :          idata = idata + 1
   10761      438912 :          data_tmp = full_data(idata)
   10762      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10763      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10764      438912 :          pack_tmp = ISHFT(pack_tmp, 0)
   10765      438912 :          idata = idata + 1
   10766      438912 :          data_tmp = full_data(idata)
   10767             :          data_tmp = ISHFT(data_tmp, 48)
   10768      438912 :          data_tmp = IAND(data_tmp, mask_left(0))
   10769      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10770      438912 :          ipack = ipack + 1
   10771      438912 :          packed_data(ipack) = pack_tmp
   10772      438912 :          data_tmp = full_data(idata)
   10773      438912 :          pack_tmp = ISHFT(data_tmp, 48)
   10774      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10775      438912 :          idata = idata + 1
   10776      438912 :          data_tmp = full_data(idata)
   10777      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10778      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10779      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10780      438912 :          idata = idata + 1
   10781      438912 :          data_tmp = full_data(idata)
   10782      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10783      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10784      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10785      438912 :          idata = idata + 1
   10786      438912 :          data_tmp = full_data(idata)
   10787      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10788      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10789      438912 :          pack_tmp = ISHFT(pack_tmp, 0)
   10790      438912 :          idata = idata + 1
   10791      438912 :          data_tmp = full_data(idata)
   10792             :          data_tmp = ISHFT(data_tmp, 48)
   10793      438912 :          data_tmp = IAND(data_tmp, mask_left(0))
   10794      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10795      438912 :          ipack = ipack + 1
   10796      438912 :          packed_data(ipack) = pack_tmp
   10797      438912 :          data_tmp = full_data(idata)
   10798      438912 :          pack_tmp = ISHFT(data_tmp, 48)
   10799      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10800      438912 :          idata = idata + 1
   10801      438912 :          data_tmp = full_data(idata)
   10802      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10803      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10804      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10805      438912 :          idata = idata + 1
   10806      438912 :          data_tmp = full_data(idata)
   10807      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10808      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10809      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10810      438912 :          idata = idata + 1
   10811      438912 :          data_tmp = full_data(idata)
   10812      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10813      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10814      438912 :          pack_tmp = ISHFT(pack_tmp, 0)
   10815      438912 :          idata = idata + 1
   10816      438912 :          data_tmp = full_data(idata)
   10817             :          data_tmp = ISHFT(data_tmp, 48)
   10818      438912 :          data_tmp = IAND(data_tmp, mask_left(0))
   10819      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10820      438912 :          ipack = ipack + 1
   10821      438912 :          packed_data(ipack) = pack_tmp
   10822      438912 :          data_tmp = full_data(idata)
   10823      438912 :          pack_tmp = ISHFT(data_tmp, 48)
   10824      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10825      438912 :          idata = idata + 1
   10826      438912 :          data_tmp = full_data(idata)
   10827      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10828      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10829      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10830      438912 :          idata = idata + 1
   10831      438912 :          data_tmp = full_data(idata)
   10832      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10833      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10834      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10835      438912 :          idata = idata + 1
   10836      438912 :          data_tmp = full_data(idata)
   10837      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10838      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10839      438912 :          pack_tmp = ISHFT(pack_tmp, 0)
   10840      438912 :          idata = idata + 1
   10841      438912 :          data_tmp = full_data(idata)
   10842             :          data_tmp = ISHFT(data_tmp, 48)
   10843      438912 :          data_tmp = IAND(data_tmp, mask_left(0))
   10844      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10845      438912 :          ipack = ipack + 1
   10846      438912 :          packed_data(ipack) = pack_tmp
   10847      438912 :          data_tmp = full_data(idata)
   10848      438912 :          pack_tmp = ISHFT(data_tmp, 48)
   10849      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10850      438912 :          idata = idata + 1
   10851      438912 :          data_tmp = full_data(idata)
   10852      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10853      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10854      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10855      438912 :          idata = idata + 1
   10856      438912 :          data_tmp = full_data(idata)
   10857      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10858      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10859      438912 :          pack_tmp = ISHFT(pack_tmp, -16)
   10860      438912 :          idata = idata + 1
   10861      438912 :          data_tmp = full_data(idata)
   10862      438912 :          data_tmp = ISHFT(data_tmp, 48)
   10863      438912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10864             :          pack_tmp = ISHFT(pack_tmp, 0)
   10865      438912 :          pack_tmp = ISHFT(pack_tmp, 0)
   10866      438912 :          ipack = ipack + 1
   10867      439788 :          packed_data(ipack) = pack_tmp
   10868             :       END DO
   10869       28308 :       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       28308 :    END SUBROUTINE ints2bits_16
   10873             : 
   10874             : ! **************************************************************************************************
   10875             : !> \brief ...
   10876             : !> \param Ndata ...
   10877             : !> \param packed_data ...
   10878             : !> \param full_data ...
   10879             : ! **************************************************************************************************
   10880      137301 :    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      137301 :       ipack = 0
   10891      137301 :       idata = 0
   10892      137301 :       pack_tmp = 0
   10893      137301 :       Ndata_rep = (Ndata/64)*64
   10894      137301 :       DO kdata = 1, Ndata_rep, 64
   10895     2071200 :          idata = idata + 1
   10896     2071200 :          data_tmp = ISHFT(pack_tmp, 16)
   10897     2071200 :          ipack = ipack + 1
   10898     2071200 :          pack_tmp = packed_data(ipack)
   10899     2071200 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10900     2071200 :          pack_tmp = ISHFT(pack_tmp, -16)
   10901     2071200 :          idata = idata + 1
   10902     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10903     2071200 :          full_data(idata) = data_tmp
   10904     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10905     2071200 :          idata = idata + 1
   10906     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10907     2071200 :          full_data(idata) = data_tmp
   10908     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10909     2071200 :          idata = idata + 1
   10910     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10911     2071200 :          full_data(idata) = data_tmp
   10912     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10913     2071200 :          idata = idata + 1
   10914     2071200 :          data_tmp = ISHFT(pack_tmp, 16)
   10915     2071200 :          ipack = ipack + 1
   10916     2071200 :          pack_tmp = packed_data(ipack)
   10917     2071200 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10918     2071200 :          pack_tmp = ISHFT(pack_tmp, -16)
   10919     2071200 :          idata = idata + 1
   10920     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10921     2071200 :          full_data(idata) = data_tmp
   10922     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10923     2071200 :          idata = idata + 1
   10924     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10925     2071200 :          full_data(idata) = data_tmp
   10926     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10927     2071200 :          idata = idata + 1
   10928     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10929     2071200 :          full_data(idata) = data_tmp
   10930     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10931     2071200 :          idata = idata + 1
   10932     2071200 :          data_tmp = ISHFT(pack_tmp, 16)
   10933     2071200 :          ipack = ipack + 1
   10934     2071200 :          pack_tmp = packed_data(ipack)
   10935     2071200 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10936     2071200 :          pack_tmp = ISHFT(pack_tmp, -16)
   10937     2071200 :          idata = idata + 1
   10938     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10939     2071200 :          full_data(idata) = data_tmp
   10940     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10941     2071200 :          idata = idata + 1
   10942     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10943     2071200 :          full_data(idata) = data_tmp
   10944     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10945     2071200 :          idata = idata + 1
   10946     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10947     2071200 :          full_data(idata) = data_tmp
   10948     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10949     2071200 :          idata = idata + 1
   10950     2071200 :          data_tmp = ISHFT(pack_tmp, 16)
   10951     2071200 :          ipack = ipack + 1
   10952     2071200 :          pack_tmp = packed_data(ipack)
   10953     2071200 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10954     2071200 :          pack_tmp = ISHFT(pack_tmp, -16)
   10955     2071200 :          idata = idata + 1
   10956     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10957     2071200 :          full_data(idata) = data_tmp
   10958     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10959     2071200 :          idata = idata + 1
   10960     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10961     2071200 :          full_data(idata) = data_tmp
   10962     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10963     2071200 :          idata = idata + 1
   10964     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10965     2071200 :          full_data(idata) = data_tmp
   10966     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10967     2071200 :          idata = idata + 1
   10968     2071200 :          data_tmp = ISHFT(pack_tmp, 16)
   10969     2071200 :          ipack = ipack + 1
   10970     2071200 :          pack_tmp = packed_data(ipack)
   10971     2071200 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10972     2071200 :          pack_tmp = ISHFT(pack_tmp, -16)
   10973     2071200 :          idata = idata + 1
   10974     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10975     2071200 :          full_data(idata) = data_tmp
   10976     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10977     2071200 :          idata = idata + 1
   10978     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10979     2071200 :          full_data(idata) = data_tmp
   10980     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10981     2071200 :          idata = idata + 1
   10982     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10983     2071200 :          full_data(idata) = data_tmp
   10984     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10985     2071200 :          idata = idata + 1
   10986     2071200 :          data_tmp = ISHFT(pack_tmp, 16)
   10987     2071200 :          ipack = ipack + 1
   10988     2071200 :          pack_tmp = packed_data(ipack)
   10989     2071200 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10990     2071200 :          pack_tmp = ISHFT(pack_tmp, -16)
   10991     2071200 :          idata = idata + 1
   10992     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10993     2071200 :          full_data(idata) = data_tmp
   10994     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10995     2071200 :          idata = idata + 1
   10996     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10997     2071200 :          full_data(idata) = data_tmp
   10998     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10999     2071200 :          idata = idata + 1
   11000     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11001     2071200 :          full_data(idata) = data_tmp
   11002     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11003     2071200 :          idata = idata + 1
   11004     2071200 :          data_tmp = ISHFT(pack_tmp, 16)
   11005     2071200 :          ipack = ipack + 1
   11006     2071200 :          pack_tmp = packed_data(ipack)
   11007     2071200 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11008     2071200 :          pack_tmp = ISHFT(pack_tmp, -16)
   11009     2071200 :          idata = idata + 1
   11010     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11011     2071200 :          full_data(idata) = data_tmp
   11012     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11013     2071200 :          idata = idata + 1
   11014     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11015     2071200 :          full_data(idata) = data_tmp
   11016     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11017     2071200 :          idata = idata + 1
   11018     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11019     2071200 :          full_data(idata) = data_tmp
   11020     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11021     2071200 :          idata = idata + 1
   11022     2071200 :          data_tmp = ISHFT(pack_tmp, 16)
   11023     2071200 :          ipack = ipack + 1
   11024     2071200 :          pack_tmp = packed_data(ipack)
   11025     2071200 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11026     2071200 :          pack_tmp = ISHFT(pack_tmp, -16)
   11027     2071200 :          idata = idata + 1
   11028     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11029     2071200 :          full_data(idata) = data_tmp
   11030     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11031     2071200 :          idata = idata + 1
   11032     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11033     2071200 :          full_data(idata) = data_tmp
   11034     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11035     2071200 :          idata = idata + 1
   11036     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11037     2071200 :          full_data(idata) = data_tmp
   11038     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11039     2071200 :          idata = idata + 1
   11040     2071200 :          data_tmp = ISHFT(pack_tmp, 16)
   11041     2071200 :          ipack = ipack + 1
   11042     2071200 :          pack_tmp = packed_data(ipack)
   11043     2071200 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11044     2071200 :          pack_tmp = ISHFT(pack_tmp, -16)
   11045     2071200 :          idata = idata + 1
   11046     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11047     2071200 :          full_data(idata) = data_tmp
   11048     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11049     2071200 :          idata = idata + 1
   11050     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11051     2071200 :          full_data(idata) = data_tmp
   11052     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11053     2071200 :          idata = idata + 1
   11054     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11055     2071200 :          full_data(idata) = data_tmp
   11056     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11057     2071200 :          idata = idata + 1
   11058     2071200 :          data_tmp = ISHFT(pack_tmp, 16)
   11059     2071200 :          ipack = ipack + 1
   11060     2071200 :          pack_tmp = packed_data(ipack)
   11061     2071200 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11062     2071200 :          pack_tmp = ISHFT(pack_tmp, -16)
   11063     2071200 :          idata = idata + 1
   11064     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11065     2071200 :          full_data(idata) = data_tmp
   11066     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11067     2071200 :          idata = idata + 1
   11068     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11069     2071200 :          full_data(idata) = data_tmp
   11070     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11071     2071200 :          idata = idata + 1
   11072     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11073     2071200 :          full_data(idata) = data_tmp
   11074     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11075     2071200 :          idata = idata + 1
   11076     2071200 :          data_tmp = ISHFT(pack_tmp, 16)
   11077     2071200 :          ipack = ipack + 1
   11078     2071200 :          pack_tmp = packed_data(ipack)
   11079     2071200 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11080     2071200 :          pack_tmp = ISHFT(pack_tmp, -16)
   11081     2071200 :          idata = idata + 1
   11082     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11083     2071200 :          full_data(idata) = data_tmp
   11084     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11085     2071200 :          idata = idata + 1
   11086     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11087     2071200 :          full_data(idata) = data_tmp
   11088     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11089     2071200 :          idata = idata + 1
   11090     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11091     2071200 :          full_data(idata) = data_tmp
   11092     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11093     2071200 :          idata = idata + 1
   11094     2071200 :          data_tmp = ISHFT(pack_tmp, 16)
   11095     2071200 :          ipack = ipack + 1
   11096     2071200 :          pack_tmp = packed_data(ipack)
   11097     2071200 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11098     2071200 :          pack_tmp = ISHFT(pack_tmp, -16)
   11099     2071200 :          idata = idata + 1
   11100     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11101     2071200 :          full_data(idata) = data_tmp
   11102     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11103     2071200 :          idata = idata + 1
   11104     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11105     2071200 :          full_data(idata) = data_tmp
   11106     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11107     2071200 :          idata = idata + 1
   11108     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11109     2071200 :          full_data(idata) = data_tmp
   11110     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11111     2071200 :          idata = idata + 1
   11112     2071200 :          data_tmp = ISHFT(pack_tmp, 16)
   11113     2071200 :          ipack = ipack + 1
   11114     2071200 :          pack_tmp = packed_data(ipack)
   11115     2071200 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11116     2071200 :          pack_tmp = ISHFT(pack_tmp, -16)
   11117     2071200 :          idata = idata + 1
   11118     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11119     2071200 :          full_data(idata) = data_tmp
   11120     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11121     2071200 :          idata = idata + 1
   11122     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11123     2071200 :          full_data(idata) = data_tmp
   11124     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11125     2071200 :          idata = idata + 1
   11126     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11127     2071200 :          full_data(idata) = data_tmp
   11128     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11129     2071200 :          idata = idata + 1
   11130     2071200 :          data_tmp = ISHFT(pack_tmp, 16)
   11131     2071200 :          ipack = ipack + 1
   11132     2071200 :          pack_tmp = packed_data(ipack)
   11133     2071200 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11134     2071200 :          pack_tmp = ISHFT(pack_tmp, -16)
   11135     2071200 :          idata = idata + 1
   11136     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11137     2071200 :          full_data(idata) = data_tmp
   11138     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11139     2071200 :          idata = idata + 1
   11140     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11141     2071200 :          full_data(idata) = data_tmp
   11142     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11143     2071200 :          idata = idata + 1
   11144     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11145     2071200 :          full_data(idata) = data_tmp
   11146     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11147     2071200 :          idata = idata + 1
   11148     2071200 :          data_tmp = ISHFT(pack_tmp, 16)
   11149     2071200 :          ipack = ipack + 1
   11150     2071200 :          pack_tmp = packed_data(ipack)
   11151     2071200 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11152     2071200 :          pack_tmp = ISHFT(pack_tmp, -16)
   11153     2071200 :          idata = idata + 1
   11154     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11155     2071200 :          full_data(idata) = data_tmp
   11156     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11157     2071200 :          idata = idata + 1
   11158     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11159     2071200 :          full_data(idata) = data_tmp
   11160     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11161     2071200 :          idata = idata + 1
   11162     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11163     2071200 :          full_data(idata) = data_tmp
   11164     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11165     2071200 :          idata = idata + 1
   11166     2071200 :          data_tmp = ISHFT(pack_tmp, 16)
   11167     2071200 :          ipack = ipack + 1
   11168     2071200 :          pack_tmp = packed_data(ipack)
   11169     2071200 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11170     2071200 :          pack_tmp = ISHFT(pack_tmp, -16)
   11171     2071200 :          idata = idata + 1
   11172     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11173     2071200 :          full_data(idata) = data_tmp
   11174     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11175     2071200 :          idata = idata + 1
   11176     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11177     2071200 :          full_data(idata) = data_tmp
   11178     2071200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11179     2071200 :          idata = idata + 1
   11180     2071200 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11181     2071200 :          full_data(idata) = data_tmp
   11182     2079051 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11183             :       END DO
   11184      137301 :       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      137301 :    END SUBROUTINE bits2ints_16
   11188             : 
   11189             : ! **************************************************************************************************
   11190             : !> \brief ...
   11191             : !> \param Ndata ...
   11192             : !> \param packed_data ...
   11193             : !> \param full_data ...
   11194             : ! **************************************************************************************************
   11195       31814 :    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       31814 :       idata = 0
   11206       31814 :       ipack = 0
   11207       31814 :       Ndata_rep = (Ndata/64)*64
   11208       31814 :       DO kdata = 1, Ndata_rep, 64
   11209      481335 :          pack_tmp = 0
   11210      481335 :          idata = idata + 1
   11211      481335 :          data_tmp = full_data(idata)
   11212      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11213      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11214      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11215      481335 :          idata = idata + 1
   11216      481335 :          data_tmp = full_data(idata)
   11217      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11218      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11219      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11220      481335 :          idata = idata + 1
   11221      481335 :          data_tmp = full_data(idata)
   11222      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11223      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11224      481335 :          pack_tmp = ISHFT(pack_tmp, -13)
   11225      481335 :          idata = idata + 1
   11226      481335 :          data_tmp = full_data(idata)
   11227      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11228      481335 :          data_tmp = IAND(data_tmp, mask_left(13))
   11229      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11230      481335 :          ipack = ipack + 1
   11231      481335 :          packed_data(ipack) = pack_tmp
   11232      481335 :          data_tmp = full_data(idata)
   11233      481335 :          pack_tmp = ISHFT(data_tmp, 60)
   11234      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11235      481335 :          idata = idata + 1
   11236      481335 :          data_tmp = full_data(idata)
   11237      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11238      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11239      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11240      481335 :          idata = idata + 1
   11241      481335 :          data_tmp = full_data(idata)
   11242      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11243      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11244      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11245      481335 :          idata = idata + 1
   11246      481335 :          data_tmp = full_data(idata)
   11247      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11248      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11249      481335 :          pack_tmp = ISHFT(pack_tmp, -9)
   11250      481335 :          idata = idata + 1
   11251      481335 :          data_tmp = full_data(idata)
   11252      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11253      481335 :          data_tmp = IAND(data_tmp, mask_left(9))
   11254      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11255      481335 :          ipack = ipack + 1
   11256      481335 :          packed_data(ipack) = pack_tmp
   11257      481335 :          data_tmp = full_data(idata)
   11258      481335 :          pack_tmp = ISHFT(data_tmp, 56)
   11259      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11260      481335 :          idata = idata + 1
   11261      481335 :          data_tmp = full_data(idata)
   11262      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11263      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11264      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11265      481335 :          idata = idata + 1
   11266      481335 :          data_tmp = full_data(idata)
   11267      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11268      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11269      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11270      481335 :          idata = idata + 1
   11271      481335 :          data_tmp = full_data(idata)
   11272      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11273      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11274      481335 :          pack_tmp = ISHFT(pack_tmp, -5)
   11275      481335 :          idata = idata + 1
   11276      481335 :          data_tmp = full_data(idata)
   11277      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11278      481335 :          data_tmp = IAND(data_tmp, mask_left(5))
   11279      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11280      481335 :          ipack = ipack + 1
   11281      481335 :          packed_data(ipack) = pack_tmp
   11282      481335 :          data_tmp = full_data(idata)
   11283      481335 :          pack_tmp = ISHFT(data_tmp, 52)
   11284      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11285      481335 :          idata = idata + 1
   11286      481335 :          data_tmp = full_data(idata)
   11287      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11288      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11289      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11290      481335 :          idata = idata + 1
   11291      481335 :          data_tmp = full_data(idata)
   11292      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11293      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11294      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11295      481335 :          idata = idata + 1
   11296      481335 :          data_tmp = full_data(idata)
   11297      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11298      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11299      481335 :          pack_tmp = ISHFT(pack_tmp, -1)
   11300      481335 :          idata = idata + 1
   11301      481335 :          data_tmp = full_data(idata)
   11302      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11303      481335 :          data_tmp = IAND(data_tmp, mask_left(1))
   11304      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11305      481335 :          ipack = ipack + 1
   11306      481335 :          packed_data(ipack) = pack_tmp
   11307      481335 :          data_tmp = full_data(idata)
   11308      481335 :          pack_tmp = ISHFT(data_tmp, 48)
   11309      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11310      481335 :          idata = idata + 1
   11311      481335 :          data_tmp = full_data(idata)
   11312      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11313      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11314      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11315      481335 :          idata = idata + 1
   11316      481335 :          data_tmp = full_data(idata)
   11317      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11318      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11319      481335 :          pack_tmp = ISHFT(pack_tmp, -14)
   11320      481335 :          idata = idata + 1
   11321      481335 :          data_tmp = full_data(idata)
   11322      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11323      481335 :          data_tmp = IAND(data_tmp, mask_left(14))
   11324      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11325      481335 :          ipack = ipack + 1
   11326      481335 :          packed_data(ipack) = pack_tmp
   11327      481335 :          data_tmp = full_data(idata)
   11328      481335 :          pack_tmp = ISHFT(data_tmp, 61)
   11329      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11330      481335 :          idata = idata + 1
   11331      481335 :          data_tmp = full_data(idata)
   11332      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11333      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11334      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11335      481335 :          idata = idata + 1
   11336      481335 :          data_tmp = full_data(idata)
   11337      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11338      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11339      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11340      481335 :          idata = idata + 1
   11341      481335 :          data_tmp = full_data(idata)
   11342      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11343      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11344      481335 :          pack_tmp = ISHFT(pack_tmp, -10)
   11345      481335 :          idata = idata + 1
   11346      481335 :          data_tmp = full_data(idata)
   11347      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11348      481335 :          data_tmp = IAND(data_tmp, mask_left(10))
   11349      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11350      481335 :          ipack = ipack + 1
   11351      481335 :          packed_data(ipack) = pack_tmp
   11352      481335 :          data_tmp = full_data(idata)
   11353      481335 :          pack_tmp = ISHFT(data_tmp, 57)
   11354      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11355      481335 :          idata = idata + 1
   11356      481335 :          data_tmp = full_data(idata)
   11357      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11358      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11359      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11360      481335 :          idata = idata + 1
   11361      481335 :          data_tmp = full_data(idata)
   11362      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11363      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11364      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11365      481335 :          idata = idata + 1
   11366      481335 :          data_tmp = full_data(idata)
   11367      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11368      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11369      481335 :          pack_tmp = ISHFT(pack_tmp, -6)
   11370      481335 :          idata = idata + 1
   11371      481335 :          data_tmp = full_data(idata)
   11372      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11373      481335 :          data_tmp = IAND(data_tmp, mask_left(6))
   11374      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11375      481335 :          ipack = ipack + 1
   11376      481335 :          packed_data(ipack) = pack_tmp
   11377      481335 :          data_tmp = full_data(idata)
   11378      481335 :          pack_tmp = ISHFT(data_tmp, 53)
   11379      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11380      481335 :          idata = idata + 1
   11381      481335 :          data_tmp = full_data(idata)
   11382      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11383      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11384      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11385      481335 :          idata = idata + 1
   11386      481335 :          data_tmp = full_data(idata)
   11387      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11388      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11389      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11390      481335 :          idata = idata + 1
   11391      481335 :          data_tmp = full_data(idata)
   11392      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11393      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11394      481335 :          pack_tmp = ISHFT(pack_tmp, -2)
   11395      481335 :          idata = idata + 1
   11396      481335 :          data_tmp = full_data(idata)
   11397      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11398      481335 :          data_tmp = IAND(data_tmp, mask_left(2))
   11399      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11400      481335 :          ipack = ipack + 1
   11401      481335 :          packed_data(ipack) = pack_tmp
   11402      481335 :          data_tmp = full_data(idata)
   11403      481335 :          pack_tmp = ISHFT(data_tmp, 49)
   11404      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11405      481335 :          idata = idata + 1
   11406      481335 :          data_tmp = full_data(idata)
   11407      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11408      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11409      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11410      481335 :          idata = idata + 1
   11411      481335 :          data_tmp = full_data(idata)
   11412      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11413      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11414      481335 :          pack_tmp = ISHFT(pack_tmp, -15)
   11415      481335 :          idata = idata + 1
   11416      481335 :          data_tmp = full_data(idata)
   11417      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11418      481335 :          data_tmp = IAND(data_tmp, mask_left(15))
   11419      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11420      481335 :          ipack = ipack + 1
   11421      481335 :          packed_data(ipack) = pack_tmp
   11422      481335 :          data_tmp = full_data(idata)
   11423      481335 :          pack_tmp = ISHFT(data_tmp, 62)
   11424      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11425      481335 :          idata = idata + 1
   11426      481335 :          data_tmp = full_data(idata)
   11427      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11428      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11429      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11430      481335 :          idata = idata + 1
   11431      481335 :          data_tmp = full_data(idata)
   11432      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11433      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11434      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11435      481335 :          idata = idata + 1
   11436      481335 :          data_tmp = full_data(idata)
   11437      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11438      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11439      481335 :          pack_tmp = ISHFT(pack_tmp, -11)
   11440      481335 :          idata = idata + 1
   11441      481335 :          data_tmp = full_data(idata)
   11442      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11443      481335 :          data_tmp = IAND(data_tmp, mask_left(11))
   11444      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11445      481335 :          ipack = ipack + 1
   11446      481335 :          packed_data(ipack) = pack_tmp
   11447      481335 :          data_tmp = full_data(idata)
   11448      481335 :          pack_tmp = ISHFT(data_tmp, 58)
   11449      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11450      481335 :          idata = idata + 1
   11451      481335 :          data_tmp = full_data(idata)
   11452      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11453      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11454      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11455      481335 :          idata = idata + 1
   11456      481335 :          data_tmp = full_data(idata)
   11457      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11458      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11459      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11460      481335 :          idata = idata + 1
   11461      481335 :          data_tmp = full_data(idata)
   11462      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11463      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11464      481335 :          pack_tmp = ISHFT(pack_tmp, -7)
   11465      481335 :          idata = idata + 1
   11466      481335 :          data_tmp = full_data(idata)
   11467      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11468      481335 :          data_tmp = IAND(data_tmp, mask_left(7))
   11469      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11470      481335 :          ipack = ipack + 1
   11471      481335 :          packed_data(ipack) = pack_tmp
   11472      481335 :          data_tmp = full_data(idata)
   11473      481335 :          pack_tmp = ISHFT(data_tmp, 54)
   11474      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11475      481335 :          idata = idata + 1
   11476      481335 :          data_tmp = full_data(idata)
   11477      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11478      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11479      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11480      481335 :          idata = idata + 1
   11481      481335 :          data_tmp = full_data(idata)
   11482      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11483      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11484      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11485      481335 :          idata = idata + 1
   11486      481335 :          data_tmp = full_data(idata)
   11487      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11488      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11489      481335 :          pack_tmp = ISHFT(pack_tmp, -3)
   11490      481335 :          idata = idata + 1
   11491      481335 :          data_tmp = full_data(idata)
   11492      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11493      481335 :          data_tmp = IAND(data_tmp, mask_left(3))
   11494      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11495      481335 :          ipack = ipack + 1
   11496      481335 :          packed_data(ipack) = pack_tmp
   11497      481335 :          data_tmp = full_data(idata)
   11498      481335 :          pack_tmp = ISHFT(data_tmp, 50)
   11499      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11500      481335 :          idata = idata + 1
   11501      481335 :          data_tmp = full_data(idata)
   11502      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11503      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11504      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11505      481335 :          idata = idata + 1
   11506      481335 :          data_tmp = full_data(idata)
   11507      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11508      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11509      481335 :          pack_tmp = ISHFT(pack_tmp, -16)
   11510      481335 :          idata = idata + 1
   11511      481335 :          data_tmp = full_data(idata)
   11512      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11513      481335 :          data_tmp = IAND(data_tmp, mask_left(16))
   11514      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11515      481335 :          ipack = ipack + 1
   11516      481335 :          packed_data(ipack) = pack_tmp
   11517      481335 :          data_tmp = full_data(idata)
   11518      481335 :          pack_tmp = ISHFT(data_tmp, 63)
   11519      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11520      481335 :          idata = idata + 1
   11521      481335 :          data_tmp = full_data(idata)
   11522      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11523      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11524      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11525      481335 :          idata = idata + 1
   11526      481335 :          data_tmp = full_data(idata)
   11527      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11528      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11529      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11530      481335 :          idata = idata + 1
   11531      481335 :          data_tmp = full_data(idata)
   11532      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11533      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11534      481335 :          pack_tmp = ISHFT(pack_tmp, -12)
   11535      481335 :          idata = idata + 1
   11536      481335 :          data_tmp = full_data(idata)
   11537      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11538      481335 :          data_tmp = IAND(data_tmp, mask_left(12))
   11539      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11540      481335 :          ipack = ipack + 1
   11541      481335 :          packed_data(ipack) = pack_tmp
   11542      481335 :          data_tmp = full_data(idata)
   11543      481335 :          pack_tmp = ISHFT(data_tmp, 59)
   11544      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11545      481335 :          idata = idata + 1
   11546      481335 :          data_tmp = full_data(idata)
   11547      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11548      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11549      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11550      481335 :          idata = idata + 1
   11551      481335 :          data_tmp = full_data(idata)
   11552      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11553      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11554      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11555      481335 :          idata = idata + 1
   11556      481335 :          data_tmp = full_data(idata)
   11557      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11558      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11559      481335 :          pack_tmp = ISHFT(pack_tmp, -8)
   11560      481335 :          idata = idata + 1
   11561      481335 :          data_tmp = full_data(idata)
   11562      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11563      481335 :          data_tmp = IAND(data_tmp, mask_left(8))
   11564      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11565      481335 :          ipack = ipack + 1
   11566      481335 :          packed_data(ipack) = pack_tmp
   11567      481335 :          data_tmp = full_data(idata)
   11568      481335 :          pack_tmp = ISHFT(data_tmp, 55)
   11569      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11570      481335 :          idata = idata + 1
   11571      481335 :          data_tmp = full_data(idata)
   11572      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11573      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11574      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11575      481335 :          idata = idata + 1
   11576      481335 :          data_tmp = full_data(idata)
   11577      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11578      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11579      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11580      481335 :          idata = idata + 1
   11581      481335 :          data_tmp = full_data(idata)
   11582      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11583      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11584      481335 :          pack_tmp = ISHFT(pack_tmp, -4)
   11585      481335 :          idata = idata + 1
   11586      481335 :          data_tmp = full_data(idata)
   11587      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11588      481335 :          data_tmp = IAND(data_tmp, mask_left(4))
   11589      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11590      481335 :          ipack = ipack + 1
   11591      481335 :          packed_data(ipack) = pack_tmp
   11592      481335 :          data_tmp = full_data(idata)
   11593      481335 :          pack_tmp = ISHFT(data_tmp, 51)
   11594      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11595      481335 :          idata = idata + 1
   11596      481335 :          data_tmp = full_data(idata)
   11597      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11598      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11599      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11600      481335 :          idata = idata + 1
   11601      481335 :          data_tmp = full_data(idata)
   11602      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11603      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11604      481335 :          pack_tmp = ISHFT(pack_tmp, -17)
   11605      481335 :          idata = idata + 1
   11606      481335 :          data_tmp = full_data(idata)
   11607      481335 :          data_tmp = ISHFT(data_tmp, 47)
   11608      481335 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11609             :          pack_tmp = ISHFT(pack_tmp, 0)
   11610      481335 :          pack_tmp = ISHFT(pack_tmp, 0)
   11611      481335 :          ipack = ipack + 1
   11612      481478 :          packed_data(ipack) = pack_tmp
   11613             :       END DO
   11614       31814 :       IF (Ndata_rep < Ndata) THEN
   11615        3154 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   11616             :       END IF
   11617       31814 :    END SUBROUTINE ints2bits_17
   11618             : 
   11619             : ! **************************************************************************************************
   11620             : !> \brief ...
   11621             : !> \param Ndata ...
   11622             : !> \param packed_data ...
   11623             : !> \param full_data ...
   11624             : ! **************************************************************************************************
   11625      162988 :    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      162988 :       ipack = 0
   11636      162988 :       idata = 0
   11637      162988 :       pack_tmp = 0
   11638      162988 :       Ndata_rep = (Ndata/64)*64
   11639      162988 :       DO kdata = 1, Ndata_rep, 64
   11640     2382648 :          idata = idata + 1
   11641     2382648 :          data_tmp = ISHFT(pack_tmp, 17)
   11642     2382648 :          ipack = ipack + 1
   11643     2382648 :          pack_tmp = packed_data(ipack)
   11644     2382648 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   11645     2382648 :          pack_tmp = ISHFT(pack_tmp, -17)
   11646     2382648 :          idata = idata + 1
   11647     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11648     2382648 :          full_data(idata) = data_tmp
   11649     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11650     2382648 :          idata = idata + 1
   11651     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11652     2382648 :          full_data(idata) = data_tmp
   11653     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11654     2382648 :          idata = idata + 1
   11655     2382648 :          data_tmp = ISHFT(pack_tmp, 4)
   11656     2382648 :          ipack = ipack + 1
   11657     2382648 :          pack_tmp = packed_data(ipack)
   11658     2382648 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   11659     2382648 :          pack_tmp = ISHFT(pack_tmp, -4)
   11660     2382648 :          idata = idata + 1
   11661     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11662     2382648 :          full_data(idata) = data_tmp
   11663     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11664     2382648 :          idata = idata + 1
   11665     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11666     2382648 :          full_data(idata) = data_tmp
   11667     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11668     2382648 :          idata = idata + 1
   11669     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11670     2382648 :          full_data(idata) = data_tmp
   11671     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11672     2382648 :          idata = idata + 1
   11673     2382648 :          data_tmp = ISHFT(pack_tmp, 8)
   11674     2382648 :          ipack = ipack + 1
   11675     2382648 :          pack_tmp = packed_data(ipack)
   11676     2382648 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   11677     2382648 :          pack_tmp = ISHFT(pack_tmp, -8)
   11678     2382648 :          idata = idata + 1
   11679     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11680     2382648 :          full_data(idata) = data_tmp
   11681     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11682     2382648 :          idata = idata + 1
   11683     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11684     2382648 :          full_data(idata) = data_tmp
   11685     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11686     2382648 :          idata = idata + 1
   11687     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11688     2382648 :          full_data(idata) = data_tmp
   11689     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11690     2382648 :          idata = idata + 1
   11691     2382648 :          data_tmp = ISHFT(pack_tmp, 12)
   11692     2382648 :          ipack = ipack + 1
   11693     2382648 :          pack_tmp = packed_data(ipack)
   11694     2382648 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   11695     2382648 :          pack_tmp = ISHFT(pack_tmp, -12)
   11696     2382648 :          idata = idata + 1
   11697     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11698     2382648 :          full_data(idata) = data_tmp
   11699     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11700     2382648 :          idata = idata + 1
   11701     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11702     2382648 :          full_data(idata) = data_tmp
   11703     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11704     2382648 :          idata = idata + 1
   11705     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11706     2382648 :          full_data(idata) = data_tmp
   11707     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11708     2382648 :          idata = idata + 1
   11709     2382648 :          data_tmp = ISHFT(pack_tmp, 16)
   11710     2382648 :          ipack = ipack + 1
   11711     2382648 :          pack_tmp = packed_data(ipack)
   11712     2382648 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11713     2382648 :          pack_tmp = ISHFT(pack_tmp, -16)
   11714     2382648 :          idata = idata + 1
   11715     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11716     2382648 :          full_data(idata) = data_tmp
   11717     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11718     2382648 :          idata = idata + 1
   11719     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11720     2382648 :          full_data(idata) = data_tmp
   11721     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11722     2382648 :          idata = idata + 1
   11723     2382648 :          data_tmp = ISHFT(pack_tmp, 3)
   11724     2382648 :          ipack = ipack + 1
   11725     2382648 :          pack_tmp = packed_data(ipack)
   11726     2382648 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   11727     2382648 :          pack_tmp = ISHFT(pack_tmp, -3)
   11728     2382648 :          idata = idata + 1
   11729     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11730     2382648 :          full_data(idata) = data_tmp
   11731     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11732     2382648 :          idata = idata + 1
   11733     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11734     2382648 :          full_data(idata) = data_tmp
   11735     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11736     2382648 :          idata = idata + 1
   11737     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11738     2382648 :          full_data(idata) = data_tmp
   11739     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11740     2382648 :          idata = idata + 1
   11741     2382648 :          data_tmp = ISHFT(pack_tmp, 7)
   11742     2382648 :          ipack = ipack + 1
   11743     2382648 :          pack_tmp = packed_data(ipack)
   11744     2382648 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   11745     2382648 :          pack_tmp = ISHFT(pack_tmp, -7)
   11746     2382648 :          idata = idata + 1
   11747     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11748     2382648 :          full_data(idata) = data_tmp
   11749     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11750     2382648 :          idata = idata + 1
   11751     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11752     2382648 :          full_data(idata) = data_tmp
   11753     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11754     2382648 :          idata = idata + 1
   11755     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11756     2382648 :          full_data(idata) = data_tmp
   11757     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11758     2382648 :          idata = idata + 1
   11759     2382648 :          data_tmp = ISHFT(pack_tmp, 11)
   11760     2382648 :          ipack = ipack + 1
   11761     2382648 :          pack_tmp = packed_data(ipack)
   11762     2382648 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   11763     2382648 :          pack_tmp = ISHFT(pack_tmp, -11)
   11764     2382648 :          idata = idata + 1
   11765     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11766     2382648 :          full_data(idata) = data_tmp
   11767     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11768     2382648 :          idata = idata + 1
   11769     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11770     2382648 :          full_data(idata) = data_tmp
   11771     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11772     2382648 :          idata = idata + 1
   11773     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11774     2382648 :          full_data(idata) = data_tmp
   11775     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11776     2382648 :          idata = idata + 1
   11777     2382648 :          data_tmp = ISHFT(pack_tmp, 15)
   11778     2382648 :          ipack = ipack + 1
   11779     2382648 :          pack_tmp = packed_data(ipack)
   11780     2382648 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   11781     2382648 :          pack_tmp = ISHFT(pack_tmp, -15)
   11782     2382648 :          idata = idata + 1
   11783     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11784     2382648 :          full_data(idata) = data_tmp
   11785     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11786     2382648 :          idata = idata + 1
   11787     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11788     2382648 :          full_data(idata) = data_tmp
   11789     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11790     2382648 :          idata = idata + 1
   11791     2382648 :          data_tmp = ISHFT(pack_tmp, 2)
   11792     2382648 :          ipack = ipack + 1
   11793     2382648 :          pack_tmp = packed_data(ipack)
   11794     2382648 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   11795     2382648 :          pack_tmp = ISHFT(pack_tmp, -2)
   11796     2382648 :          idata = idata + 1
   11797     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11798     2382648 :          full_data(idata) = data_tmp
   11799     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11800     2382648 :          idata = idata + 1
   11801     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11802     2382648 :          full_data(idata) = data_tmp
   11803     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11804     2382648 :          idata = idata + 1
   11805     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11806     2382648 :          full_data(idata) = data_tmp
   11807     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11808     2382648 :          idata = idata + 1
   11809     2382648 :          data_tmp = ISHFT(pack_tmp, 6)
   11810     2382648 :          ipack = ipack + 1
   11811     2382648 :          pack_tmp = packed_data(ipack)
   11812     2382648 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   11813     2382648 :          pack_tmp = ISHFT(pack_tmp, -6)
   11814     2382648 :          idata = idata + 1
   11815     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11816     2382648 :          full_data(idata) = data_tmp
   11817     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11818     2382648 :          idata = idata + 1
   11819     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11820     2382648 :          full_data(idata) = data_tmp
   11821     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11822     2382648 :          idata = idata + 1
   11823     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11824     2382648 :          full_data(idata) = data_tmp
   11825     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11826     2382648 :          idata = idata + 1
   11827     2382648 :          data_tmp = ISHFT(pack_tmp, 10)
   11828     2382648 :          ipack = ipack + 1
   11829     2382648 :          pack_tmp = packed_data(ipack)
   11830     2382648 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   11831     2382648 :          pack_tmp = ISHFT(pack_tmp, -10)
   11832     2382648 :          idata = idata + 1
   11833     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11834     2382648 :          full_data(idata) = data_tmp
   11835     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11836     2382648 :          idata = idata + 1
   11837     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11838     2382648 :          full_data(idata) = data_tmp
   11839     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11840     2382648 :          idata = idata + 1
   11841     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11842     2382648 :          full_data(idata) = data_tmp
   11843     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11844     2382648 :          idata = idata + 1
   11845     2382648 :          data_tmp = ISHFT(pack_tmp, 14)
   11846     2382648 :          ipack = ipack + 1
   11847     2382648 :          pack_tmp = packed_data(ipack)
   11848     2382648 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   11849     2382648 :          pack_tmp = ISHFT(pack_tmp, -14)
   11850     2382648 :          idata = idata + 1
   11851     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11852     2382648 :          full_data(idata) = data_tmp
   11853     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11854     2382648 :          idata = idata + 1
   11855     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11856     2382648 :          full_data(idata) = data_tmp
   11857     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11858     2382648 :          idata = idata + 1
   11859     2382648 :          data_tmp = ISHFT(pack_tmp, 1)
   11860     2382648 :          ipack = ipack + 1
   11861     2382648 :          pack_tmp = packed_data(ipack)
   11862     2382648 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   11863     2382648 :          pack_tmp = ISHFT(pack_tmp, -1)
   11864     2382648 :          idata = idata + 1
   11865     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11866     2382648 :          full_data(idata) = data_tmp
   11867     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11868     2382648 :          idata = idata + 1
   11869     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11870     2382648 :          full_data(idata) = data_tmp
   11871     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11872     2382648 :          idata = idata + 1
   11873     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11874     2382648 :          full_data(idata) = data_tmp
   11875     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11876     2382648 :          idata = idata + 1
   11877     2382648 :          data_tmp = ISHFT(pack_tmp, 5)
   11878     2382648 :          ipack = ipack + 1
   11879     2382648 :          pack_tmp = packed_data(ipack)
   11880     2382648 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   11881     2382648 :          pack_tmp = ISHFT(pack_tmp, -5)
   11882     2382648 :          idata = idata + 1
   11883     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11884     2382648 :          full_data(idata) = data_tmp
   11885     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11886     2382648 :          idata = idata + 1
   11887     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11888     2382648 :          full_data(idata) = data_tmp
   11889     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11890     2382648 :          idata = idata + 1
   11891     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11892     2382648 :          full_data(idata) = data_tmp
   11893     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11894     2382648 :          idata = idata + 1
   11895     2382648 :          data_tmp = ISHFT(pack_tmp, 9)
   11896     2382648 :          ipack = ipack + 1
   11897     2382648 :          pack_tmp = packed_data(ipack)
   11898     2382648 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   11899     2382648 :          pack_tmp = ISHFT(pack_tmp, -9)
   11900     2382648 :          idata = idata + 1
   11901     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11902     2382648 :          full_data(idata) = data_tmp
   11903     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11904     2382648 :          idata = idata + 1
   11905     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11906     2382648 :          full_data(idata) = data_tmp
   11907     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11908     2382648 :          idata = idata + 1
   11909     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11910     2382648 :          full_data(idata) = data_tmp
   11911     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11912     2382648 :          idata = idata + 1
   11913     2382648 :          data_tmp = ISHFT(pack_tmp, 13)
   11914     2382648 :          ipack = ipack + 1
   11915     2382648 :          pack_tmp = packed_data(ipack)
   11916     2382648 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   11917     2382648 :          pack_tmp = ISHFT(pack_tmp, -13)
   11918     2382648 :          idata = idata + 1
   11919     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11920     2382648 :          full_data(idata) = data_tmp
   11921     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11922     2382648 :          idata = idata + 1
   11923     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11924     2382648 :          full_data(idata) = data_tmp
   11925     2382648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11926     2382648 :          idata = idata + 1
   11927     2382648 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11928     2382648 :          full_data(idata) = data_tmp
   11929     2383675 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11930             :       END DO
   11931      162988 :       IF (Ndata_rep < Ndata) THEN
   11932       25680 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   11933             :       END IF
   11934      162988 :    END SUBROUTINE bits2ints_17
   11935             : 
   11936             : ! **************************************************************************************************
   11937             : !> \brief ...
   11938             : !> \param Ndata ...
   11939             : !> \param packed_data ...
   11940             : !> \param full_data ...
   11941             : ! **************************************************************************************************
   11942       32721 :    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       32721 :       idata = 0
   11953       32721 :       ipack = 0
   11954       32721 :       Ndata_rep = (Ndata/64)*64
   11955       32721 :       DO kdata = 1, Ndata_rep, 64
   11956      490352 :          pack_tmp = 0
   11957      490352 :          idata = idata + 1
   11958      490352 :          data_tmp = full_data(idata)
   11959      490352 :          data_tmp = ISHFT(data_tmp, 46)
   11960      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11961      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   11962      490352 :          idata = idata + 1
   11963      490352 :          data_tmp = full_data(idata)
   11964      490352 :          data_tmp = ISHFT(data_tmp, 46)
   11965      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11966      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   11967      490352 :          idata = idata + 1
   11968      490352 :          data_tmp = full_data(idata)
   11969      490352 :          data_tmp = ISHFT(data_tmp, 46)
   11970      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11971      490352 :          pack_tmp = ISHFT(pack_tmp, -10)
   11972      490352 :          idata = idata + 1
   11973      490352 :          data_tmp = full_data(idata)
   11974      490352 :          data_tmp = ISHFT(data_tmp, 46)
   11975      490352 :          data_tmp = IAND(data_tmp, mask_left(10))
   11976      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11977      490352 :          ipack = ipack + 1
   11978      490352 :          packed_data(ipack) = pack_tmp
   11979      490352 :          data_tmp = full_data(idata)
   11980      490352 :          pack_tmp = ISHFT(data_tmp, 56)
   11981      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   11982      490352 :          idata = idata + 1
   11983      490352 :          data_tmp = full_data(idata)
   11984      490352 :          data_tmp = ISHFT(data_tmp, 46)
   11985      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11986      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   11987      490352 :          idata = idata + 1
   11988      490352 :          data_tmp = full_data(idata)
   11989      490352 :          data_tmp = ISHFT(data_tmp, 46)
   11990      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11991      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   11992      490352 :          idata = idata + 1
   11993      490352 :          data_tmp = full_data(idata)
   11994      490352 :          data_tmp = ISHFT(data_tmp, 46)
   11995      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11996      490352 :          pack_tmp = ISHFT(pack_tmp, -2)
   11997      490352 :          idata = idata + 1
   11998      490352 :          data_tmp = full_data(idata)
   11999      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12000      490352 :          data_tmp = IAND(data_tmp, mask_left(2))
   12001      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12002      490352 :          ipack = ipack + 1
   12003      490352 :          packed_data(ipack) = pack_tmp
   12004      490352 :          data_tmp = full_data(idata)
   12005      490352 :          pack_tmp = ISHFT(data_tmp, 48)
   12006      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12007      490352 :          idata = idata + 1
   12008      490352 :          data_tmp = full_data(idata)
   12009      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12010      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12011      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12012      490352 :          idata = idata + 1
   12013      490352 :          data_tmp = full_data(idata)
   12014      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12015      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12016      490352 :          pack_tmp = ISHFT(pack_tmp, -12)
   12017      490352 :          idata = idata + 1
   12018      490352 :          data_tmp = full_data(idata)
   12019      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12020      490352 :          data_tmp = IAND(data_tmp, mask_left(12))
   12021      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12022      490352 :          ipack = ipack + 1
   12023      490352 :          packed_data(ipack) = pack_tmp
   12024      490352 :          data_tmp = full_data(idata)
   12025      490352 :          pack_tmp = ISHFT(data_tmp, 58)
   12026      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12027      490352 :          idata = idata + 1
   12028      490352 :          data_tmp = full_data(idata)
   12029      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12030      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12031      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12032      490352 :          idata = idata + 1
   12033      490352 :          data_tmp = full_data(idata)
   12034      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12035      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12036      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12037      490352 :          idata = idata + 1
   12038      490352 :          data_tmp = full_data(idata)
   12039      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12040      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12041      490352 :          pack_tmp = ISHFT(pack_tmp, -4)
   12042      490352 :          idata = idata + 1
   12043      490352 :          data_tmp = full_data(idata)
   12044      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12045      490352 :          data_tmp = IAND(data_tmp, mask_left(4))
   12046      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12047      490352 :          ipack = ipack + 1
   12048      490352 :          packed_data(ipack) = pack_tmp
   12049      490352 :          data_tmp = full_data(idata)
   12050      490352 :          pack_tmp = ISHFT(data_tmp, 50)
   12051      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12052      490352 :          idata = idata + 1
   12053      490352 :          data_tmp = full_data(idata)
   12054      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12055      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12056      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12057      490352 :          idata = idata + 1
   12058      490352 :          data_tmp = full_data(idata)
   12059      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12060      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12061      490352 :          pack_tmp = ISHFT(pack_tmp, -14)
   12062      490352 :          idata = idata + 1
   12063      490352 :          data_tmp = full_data(idata)
   12064      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12065      490352 :          data_tmp = IAND(data_tmp, mask_left(14))
   12066      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12067      490352 :          ipack = ipack + 1
   12068      490352 :          packed_data(ipack) = pack_tmp
   12069      490352 :          data_tmp = full_data(idata)
   12070      490352 :          pack_tmp = ISHFT(data_tmp, 60)
   12071      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12072      490352 :          idata = idata + 1
   12073      490352 :          data_tmp = full_data(idata)
   12074      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12075      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12076      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12077      490352 :          idata = idata + 1
   12078      490352 :          data_tmp = full_data(idata)
   12079      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12080      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12081      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12082      490352 :          idata = idata + 1
   12083      490352 :          data_tmp = full_data(idata)
   12084      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12085      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12086      490352 :          pack_tmp = ISHFT(pack_tmp, -6)
   12087      490352 :          idata = idata + 1
   12088      490352 :          data_tmp = full_data(idata)
   12089      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12090      490352 :          data_tmp = IAND(data_tmp, mask_left(6))
   12091      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12092      490352 :          ipack = ipack + 1
   12093      490352 :          packed_data(ipack) = pack_tmp
   12094      490352 :          data_tmp = full_data(idata)
   12095      490352 :          pack_tmp = ISHFT(data_tmp, 52)
   12096      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12097      490352 :          idata = idata + 1
   12098      490352 :          data_tmp = full_data(idata)
   12099      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12100      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12101      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12102      490352 :          idata = idata + 1
   12103      490352 :          data_tmp = full_data(idata)
   12104      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12105      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12106      490352 :          pack_tmp = ISHFT(pack_tmp, -16)
   12107      490352 :          idata = idata + 1
   12108      490352 :          data_tmp = full_data(idata)
   12109      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12110      490352 :          data_tmp = IAND(data_tmp, mask_left(16))
   12111      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12112      490352 :          ipack = ipack + 1
   12113      490352 :          packed_data(ipack) = pack_tmp
   12114      490352 :          data_tmp = full_data(idata)
   12115      490352 :          pack_tmp = ISHFT(data_tmp, 62)
   12116      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12117      490352 :          idata = idata + 1
   12118      490352 :          data_tmp = full_data(idata)
   12119      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12120      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12121      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12122      490352 :          idata = idata + 1
   12123      490352 :          data_tmp = full_data(idata)
   12124      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12125      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12126      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12127      490352 :          idata = idata + 1
   12128      490352 :          data_tmp = full_data(idata)
   12129      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12130      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12131      490352 :          pack_tmp = ISHFT(pack_tmp, -8)
   12132      490352 :          idata = idata + 1
   12133      490352 :          data_tmp = full_data(idata)
   12134      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12135      490352 :          data_tmp = IAND(data_tmp, mask_left(8))
   12136      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12137      490352 :          ipack = ipack + 1
   12138      490352 :          packed_data(ipack) = pack_tmp
   12139      490352 :          data_tmp = full_data(idata)
   12140      490352 :          pack_tmp = ISHFT(data_tmp, 54)
   12141      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12142      490352 :          idata = idata + 1
   12143      490352 :          data_tmp = full_data(idata)
   12144      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12145      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12146      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12147      490352 :          idata = idata + 1
   12148      490352 :          data_tmp = full_data(idata)
   12149      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12150      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12151      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12152      490352 :          idata = idata + 1
   12153      490352 :          data_tmp = full_data(idata)
   12154      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12155      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12156      490352 :          pack_tmp = ISHFT(pack_tmp, 0)
   12157      490352 :          idata = idata + 1
   12158      490352 :          data_tmp = full_data(idata)
   12159             :          data_tmp = ISHFT(data_tmp, 46)
   12160      490352 :          data_tmp = IAND(data_tmp, mask_left(0))
   12161      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12162      490352 :          ipack = ipack + 1
   12163      490352 :          packed_data(ipack) = pack_tmp
   12164      490352 :          data_tmp = full_data(idata)
   12165      490352 :          pack_tmp = ISHFT(data_tmp, 46)
   12166      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12167      490352 :          idata = idata + 1
   12168      490352 :          data_tmp = full_data(idata)
   12169      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12170      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12171      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12172      490352 :          idata = idata + 1
   12173      490352 :          data_tmp = full_data(idata)
   12174      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12175      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12176      490352 :          pack_tmp = ISHFT(pack_tmp, -10)
   12177      490352 :          idata = idata + 1
   12178      490352 :          data_tmp = full_data(idata)
   12179      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12180      490352 :          data_tmp = IAND(data_tmp, mask_left(10))
   12181      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12182      490352 :          ipack = ipack + 1
   12183      490352 :          packed_data(ipack) = pack_tmp
   12184      490352 :          data_tmp = full_data(idata)
   12185      490352 :          pack_tmp = ISHFT(data_tmp, 56)
   12186      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12187      490352 :          idata = idata + 1
   12188      490352 :          data_tmp = full_data(idata)
   12189      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12190      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12191      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12192      490352 :          idata = idata + 1
   12193      490352 :          data_tmp = full_data(idata)
   12194      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12195      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12196      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12197      490352 :          idata = idata + 1
   12198      490352 :          data_tmp = full_data(idata)
   12199      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12200      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12201      490352 :          pack_tmp = ISHFT(pack_tmp, -2)
   12202      490352 :          idata = idata + 1
   12203      490352 :          data_tmp = full_data(idata)
   12204      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12205      490352 :          data_tmp = IAND(data_tmp, mask_left(2))
   12206      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12207      490352 :          ipack = ipack + 1
   12208      490352 :          packed_data(ipack) = pack_tmp
   12209      490352 :          data_tmp = full_data(idata)
   12210      490352 :          pack_tmp = ISHFT(data_tmp, 48)
   12211      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12212      490352 :          idata = idata + 1
   12213      490352 :          data_tmp = full_data(idata)
   12214      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12215      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12216      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12217      490352 :          idata = idata + 1
   12218      490352 :          data_tmp = full_data(idata)
   12219      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12220      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12221      490352 :          pack_tmp = ISHFT(pack_tmp, -12)
   12222      490352 :          idata = idata + 1
   12223      490352 :          data_tmp = full_data(idata)
   12224      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12225      490352 :          data_tmp = IAND(data_tmp, mask_left(12))
   12226      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12227      490352 :          ipack = ipack + 1
   12228      490352 :          packed_data(ipack) = pack_tmp
   12229      490352 :          data_tmp = full_data(idata)
   12230      490352 :          pack_tmp = ISHFT(data_tmp, 58)
   12231      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12232      490352 :          idata = idata + 1
   12233      490352 :          data_tmp = full_data(idata)
   12234      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12235      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12236      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12237      490352 :          idata = idata + 1
   12238      490352 :          data_tmp = full_data(idata)
   12239      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12240      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12241      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12242      490352 :          idata = idata + 1
   12243      490352 :          data_tmp = full_data(idata)
   12244      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12245      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12246      490352 :          pack_tmp = ISHFT(pack_tmp, -4)
   12247      490352 :          idata = idata + 1
   12248      490352 :          data_tmp = full_data(idata)
   12249      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12250      490352 :          data_tmp = IAND(data_tmp, mask_left(4))
   12251      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12252      490352 :          ipack = ipack + 1
   12253      490352 :          packed_data(ipack) = pack_tmp
   12254      490352 :          data_tmp = full_data(idata)
   12255      490352 :          pack_tmp = ISHFT(data_tmp, 50)
   12256      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12257      490352 :          idata = idata + 1
   12258      490352 :          data_tmp = full_data(idata)
   12259      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12260      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12261      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12262      490352 :          idata = idata + 1
   12263      490352 :          data_tmp = full_data(idata)
   12264      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12265      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12266      490352 :          pack_tmp = ISHFT(pack_tmp, -14)
   12267      490352 :          idata = idata + 1
   12268      490352 :          data_tmp = full_data(idata)
   12269      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12270      490352 :          data_tmp = IAND(data_tmp, mask_left(14))
   12271      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12272      490352 :          ipack = ipack + 1
   12273      490352 :          packed_data(ipack) = pack_tmp
   12274      490352 :          data_tmp = full_data(idata)
   12275      490352 :          pack_tmp = ISHFT(data_tmp, 60)
   12276      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12277      490352 :          idata = idata + 1
   12278      490352 :          data_tmp = full_data(idata)
   12279      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12280      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12281      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12282      490352 :          idata = idata + 1
   12283      490352 :          data_tmp = full_data(idata)
   12284      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12285      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12286      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12287      490352 :          idata = idata + 1
   12288      490352 :          data_tmp = full_data(idata)
   12289      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12290      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12291      490352 :          pack_tmp = ISHFT(pack_tmp, -6)
   12292      490352 :          idata = idata + 1
   12293      490352 :          data_tmp = full_data(idata)
   12294      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12295      490352 :          data_tmp = IAND(data_tmp, mask_left(6))
   12296      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12297      490352 :          ipack = ipack + 1
   12298      490352 :          packed_data(ipack) = pack_tmp
   12299      490352 :          data_tmp = full_data(idata)
   12300      490352 :          pack_tmp = ISHFT(data_tmp, 52)
   12301      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12302      490352 :          idata = idata + 1
   12303      490352 :          data_tmp = full_data(idata)
   12304      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12305      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12306      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12307      490352 :          idata = idata + 1
   12308      490352 :          data_tmp = full_data(idata)
   12309      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12310      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12311      490352 :          pack_tmp = ISHFT(pack_tmp, -16)
   12312      490352 :          idata = idata + 1
   12313      490352 :          data_tmp = full_data(idata)
   12314      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12315      490352 :          data_tmp = IAND(data_tmp, mask_left(16))
   12316      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12317      490352 :          ipack = ipack + 1
   12318      490352 :          packed_data(ipack) = pack_tmp
   12319      490352 :          data_tmp = full_data(idata)
   12320      490352 :          pack_tmp = ISHFT(data_tmp, 62)
   12321      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12322      490352 :          idata = idata + 1
   12323      490352 :          data_tmp = full_data(idata)
   12324      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12325      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12326      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12327      490352 :          idata = idata + 1
   12328      490352 :          data_tmp = full_data(idata)
   12329      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12330      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12331      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12332      490352 :          idata = idata + 1
   12333      490352 :          data_tmp = full_data(idata)
   12334      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12335      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12336      490352 :          pack_tmp = ISHFT(pack_tmp, -8)
   12337      490352 :          idata = idata + 1
   12338      490352 :          data_tmp = full_data(idata)
   12339      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12340      490352 :          data_tmp = IAND(data_tmp, mask_left(8))
   12341      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12342      490352 :          ipack = ipack + 1
   12343      490352 :          packed_data(ipack) = pack_tmp
   12344      490352 :          data_tmp = full_data(idata)
   12345      490352 :          pack_tmp = ISHFT(data_tmp, 54)
   12346      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12347      490352 :          idata = idata + 1
   12348      490352 :          data_tmp = full_data(idata)
   12349      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12350      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12351      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12352      490352 :          idata = idata + 1
   12353      490352 :          data_tmp = full_data(idata)
   12354      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12355      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12356      490352 :          pack_tmp = ISHFT(pack_tmp, -18)
   12357      490352 :          idata = idata + 1
   12358      490352 :          data_tmp = full_data(idata)
   12359      490352 :          data_tmp = ISHFT(data_tmp, 46)
   12360      490352 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12361             :          pack_tmp = ISHFT(pack_tmp, 0)
   12362      490352 :          pack_tmp = ISHFT(pack_tmp, 0)
   12363      490352 :          ipack = ipack + 1
   12364      490448 :          packed_data(ipack) = pack_tmp
   12365             :       END DO
   12366       32721 :       IF (Ndata_rep < Ndata) THEN
   12367        3904 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   12368             :       END IF
   12369       32721 :    END SUBROUTINE ints2bits_18
   12370             : 
   12371             : ! **************************************************************************************************
   12372             : !> \brief ...
   12373             : !> \param Ndata ...
   12374             : !> \param packed_data ...
   12375             : !> \param full_data ...
   12376             : ! **************************************************************************************************
   12377      170117 :    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      170117 :       ipack = 0
   12388      170117 :       idata = 0
   12389      170117 :       pack_tmp = 0
   12390      170117 :       Ndata_rep = (Ndata/64)*64
   12391      170117 :       DO kdata = 1, Ndata_rep, 64
   12392     2450824 :          idata = idata + 1
   12393     2450824 :          data_tmp = ISHFT(pack_tmp, 18)
   12394     2450824 :          ipack = ipack + 1
   12395     2450824 :          pack_tmp = packed_data(ipack)
   12396     2450824 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   12397     2450824 :          pack_tmp = ISHFT(pack_tmp, -18)
   12398     2450824 :          idata = idata + 1
   12399     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12400     2450824 :          full_data(idata) = data_tmp
   12401     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12402     2450824 :          idata = idata + 1
   12403     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12404     2450824 :          full_data(idata) = data_tmp
   12405     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12406     2450824 :          idata = idata + 1
   12407     2450824 :          data_tmp = ISHFT(pack_tmp, 8)
   12408     2450824 :          ipack = ipack + 1
   12409     2450824 :          pack_tmp = packed_data(ipack)
   12410     2450824 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   12411     2450824 :          pack_tmp = ISHFT(pack_tmp, -8)
   12412     2450824 :          idata = idata + 1
   12413     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12414     2450824 :          full_data(idata) = data_tmp
   12415     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12416     2450824 :          idata = idata + 1
   12417     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12418     2450824 :          full_data(idata) = data_tmp
   12419     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12420     2450824 :          idata = idata + 1
   12421     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12422     2450824 :          full_data(idata) = data_tmp
   12423     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12424     2450824 :          idata = idata + 1
   12425     2450824 :          data_tmp = ISHFT(pack_tmp, 16)
   12426     2450824 :          ipack = ipack + 1
   12427     2450824 :          pack_tmp = packed_data(ipack)
   12428     2450824 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   12429     2450824 :          pack_tmp = ISHFT(pack_tmp, -16)
   12430     2450824 :          idata = idata + 1
   12431     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12432     2450824 :          full_data(idata) = data_tmp
   12433     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12434     2450824 :          idata = idata + 1
   12435     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12436     2450824 :          full_data(idata) = data_tmp
   12437     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12438     2450824 :          idata = idata + 1
   12439     2450824 :          data_tmp = ISHFT(pack_tmp, 6)
   12440     2450824 :          ipack = ipack + 1
   12441     2450824 :          pack_tmp = packed_data(ipack)
   12442     2450824 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   12443     2450824 :          pack_tmp = ISHFT(pack_tmp, -6)
   12444     2450824 :          idata = idata + 1
   12445     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12446     2450824 :          full_data(idata) = data_tmp
   12447     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12448     2450824 :          idata = idata + 1
   12449     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12450     2450824 :          full_data(idata) = data_tmp
   12451     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12452     2450824 :          idata = idata + 1
   12453     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12454     2450824 :          full_data(idata) = data_tmp
   12455     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12456     2450824 :          idata = idata + 1
   12457     2450824 :          data_tmp = ISHFT(pack_tmp, 14)
   12458     2450824 :          ipack = ipack + 1
   12459     2450824 :          pack_tmp = packed_data(ipack)
   12460     2450824 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   12461     2450824 :          pack_tmp = ISHFT(pack_tmp, -14)
   12462     2450824 :          idata = idata + 1
   12463     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12464     2450824 :          full_data(idata) = data_tmp
   12465     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12466     2450824 :          idata = idata + 1
   12467     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12468     2450824 :          full_data(idata) = data_tmp
   12469     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12470     2450824 :          idata = idata + 1
   12471     2450824 :          data_tmp = ISHFT(pack_tmp, 4)
   12472     2450824 :          ipack = ipack + 1
   12473     2450824 :          pack_tmp = packed_data(ipack)
   12474     2450824 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   12475     2450824 :          pack_tmp = ISHFT(pack_tmp, -4)
   12476     2450824 :          idata = idata + 1
   12477     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12478     2450824 :          full_data(idata) = data_tmp
   12479     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12480     2450824 :          idata = idata + 1
   12481     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12482     2450824 :          full_data(idata) = data_tmp
   12483     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12484     2450824 :          idata = idata + 1
   12485     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12486     2450824 :          full_data(idata) = data_tmp
   12487     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12488     2450824 :          idata = idata + 1
   12489     2450824 :          data_tmp = ISHFT(pack_tmp, 12)
   12490     2450824 :          ipack = ipack + 1
   12491     2450824 :          pack_tmp = packed_data(ipack)
   12492     2450824 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   12493     2450824 :          pack_tmp = ISHFT(pack_tmp, -12)
   12494     2450824 :          idata = idata + 1
   12495     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12496     2450824 :          full_data(idata) = data_tmp
   12497     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12498     2450824 :          idata = idata + 1
   12499     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12500     2450824 :          full_data(idata) = data_tmp
   12501     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12502     2450824 :          idata = idata + 1
   12503     2450824 :          data_tmp = ISHFT(pack_tmp, 2)
   12504     2450824 :          ipack = ipack + 1
   12505     2450824 :          pack_tmp = packed_data(ipack)
   12506     2450824 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   12507     2450824 :          pack_tmp = ISHFT(pack_tmp, -2)
   12508     2450824 :          idata = idata + 1
   12509     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12510     2450824 :          full_data(idata) = data_tmp
   12511     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12512     2450824 :          idata = idata + 1
   12513     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12514     2450824 :          full_data(idata) = data_tmp
   12515     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12516     2450824 :          idata = idata + 1
   12517     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12518     2450824 :          full_data(idata) = data_tmp
   12519     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12520     2450824 :          idata = idata + 1
   12521     2450824 :          data_tmp = ISHFT(pack_tmp, 10)
   12522     2450824 :          ipack = ipack + 1
   12523     2450824 :          pack_tmp = packed_data(ipack)
   12524     2450824 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   12525     2450824 :          pack_tmp = ISHFT(pack_tmp, -10)
   12526     2450824 :          idata = idata + 1
   12527     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12528     2450824 :          full_data(idata) = data_tmp
   12529     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12530     2450824 :          idata = idata + 1
   12531     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12532     2450824 :          full_data(idata) = data_tmp
   12533     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12534     2450824 :          idata = idata + 1
   12535     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12536     2450824 :          full_data(idata) = data_tmp
   12537     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12538     2450824 :          idata = idata + 1
   12539     2450824 :          data_tmp = ISHFT(pack_tmp, 18)
   12540     2450824 :          ipack = ipack + 1
   12541     2450824 :          pack_tmp = packed_data(ipack)
   12542     2450824 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   12543     2450824 :          pack_tmp = ISHFT(pack_tmp, -18)
   12544     2450824 :          idata = idata + 1
   12545     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12546     2450824 :          full_data(idata) = data_tmp
   12547     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12548     2450824 :          idata = idata + 1
   12549     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12550     2450824 :          full_data(idata) = data_tmp
   12551     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12552     2450824 :          idata = idata + 1
   12553     2450824 :          data_tmp = ISHFT(pack_tmp, 8)
   12554     2450824 :          ipack = ipack + 1
   12555     2450824 :          pack_tmp = packed_data(ipack)
   12556     2450824 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   12557     2450824 :          pack_tmp = ISHFT(pack_tmp, -8)
   12558     2450824 :          idata = idata + 1
   12559     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12560     2450824 :          full_data(idata) = data_tmp
   12561     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12562     2450824 :          idata = idata + 1
   12563     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12564     2450824 :          full_data(idata) = data_tmp
   12565     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12566     2450824 :          idata = idata + 1
   12567     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12568     2450824 :          full_data(idata) = data_tmp
   12569     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12570     2450824 :          idata = idata + 1
   12571     2450824 :          data_tmp = ISHFT(pack_tmp, 16)
   12572     2450824 :          ipack = ipack + 1
   12573     2450824 :          pack_tmp = packed_data(ipack)
   12574     2450824 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   12575     2450824 :          pack_tmp = ISHFT(pack_tmp, -16)
   12576     2450824 :          idata = idata + 1
   12577     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12578     2450824 :          full_data(idata) = data_tmp
   12579     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12580     2450824 :          idata = idata + 1
   12581     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12582     2450824 :          full_data(idata) = data_tmp
   12583     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12584     2450824 :          idata = idata + 1
   12585     2450824 :          data_tmp = ISHFT(pack_tmp, 6)
   12586     2450824 :          ipack = ipack + 1
   12587     2450824 :          pack_tmp = packed_data(ipack)
   12588     2450824 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   12589     2450824 :          pack_tmp = ISHFT(pack_tmp, -6)
   12590     2450824 :          idata = idata + 1
   12591     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12592     2450824 :          full_data(idata) = data_tmp
   12593     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12594     2450824 :          idata = idata + 1
   12595     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12596     2450824 :          full_data(idata) = data_tmp
   12597     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12598     2450824 :          idata = idata + 1
   12599     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12600     2450824 :          full_data(idata) = data_tmp
   12601     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12602     2450824 :          idata = idata + 1
   12603     2450824 :          data_tmp = ISHFT(pack_tmp, 14)
   12604     2450824 :          ipack = ipack + 1
   12605     2450824 :          pack_tmp = packed_data(ipack)
   12606     2450824 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   12607     2450824 :          pack_tmp = ISHFT(pack_tmp, -14)
   12608     2450824 :          idata = idata + 1
   12609     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12610     2450824 :          full_data(idata) = data_tmp
   12611     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12612     2450824 :          idata = idata + 1
   12613     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12614     2450824 :          full_data(idata) = data_tmp
   12615     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12616     2450824 :          idata = idata + 1
   12617     2450824 :          data_tmp = ISHFT(pack_tmp, 4)
   12618     2450824 :          ipack = ipack + 1
   12619     2450824 :          pack_tmp = packed_data(ipack)
   12620     2450824 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   12621     2450824 :          pack_tmp = ISHFT(pack_tmp, -4)
   12622     2450824 :          idata = idata + 1
   12623     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12624     2450824 :          full_data(idata) = data_tmp
   12625     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12626     2450824 :          idata = idata + 1
   12627     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12628     2450824 :          full_data(idata) = data_tmp
   12629     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12630     2450824 :          idata = idata + 1
   12631     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12632     2450824 :          full_data(idata) = data_tmp
   12633     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12634     2450824 :          idata = idata + 1
   12635     2450824 :          data_tmp = ISHFT(pack_tmp, 12)
   12636     2450824 :          ipack = ipack + 1
   12637     2450824 :          pack_tmp = packed_data(ipack)
   12638     2450824 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   12639     2450824 :          pack_tmp = ISHFT(pack_tmp, -12)
   12640     2450824 :          idata = idata + 1
   12641     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12642     2450824 :          full_data(idata) = data_tmp
   12643     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12644     2450824 :          idata = idata + 1
   12645     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12646     2450824 :          full_data(idata) = data_tmp
   12647     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12648     2450824 :          idata = idata + 1
   12649     2450824 :          data_tmp = ISHFT(pack_tmp, 2)
   12650     2450824 :          ipack = ipack + 1
   12651     2450824 :          pack_tmp = packed_data(ipack)
   12652     2450824 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   12653     2450824 :          pack_tmp = ISHFT(pack_tmp, -2)
   12654     2450824 :          idata = idata + 1
   12655     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12656     2450824 :          full_data(idata) = data_tmp
   12657     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12658     2450824 :          idata = idata + 1
   12659     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12660     2450824 :          full_data(idata) = data_tmp
   12661     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12662     2450824 :          idata = idata + 1
   12663     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12664     2450824 :          full_data(idata) = data_tmp
   12665     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12666     2450824 :          idata = idata + 1
   12667     2450824 :          data_tmp = ISHFT(pack_tmp, 10)
   12668     2450824 :          ipack = ipack + 1
   12669     2450824 :          pack_tmp = packed_data(ipack)
   12670     2450824 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   12671     2450824 :          pack_tmp = ISHFT(pack_tmp, -10)
   12672     2450824 :          idata = idata + 1
   12673     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12674     2450824 :          full_data(idata) = data_tmp
   12675     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12676     2450824 :          idata = idata + 1
   12677     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12678     2450824 :          full_data(idata) = data_tmp
   12679     2450824 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12680     2450824 :          idata = idata + 1
   12681     2450824 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12682     2450824 :          full_data(idata) = data_tmp
   12683     2451567 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12684             :       END DO
   12685      170117 :       IF (Ndata_rep < Ndata) THEN
   12686       31888 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   12687             :       END IF
   12688      170117 :    END SUBROUTINE bits2ints_18
   12689             : 
   12690             : ! **************************************************************************************************
   12691             : !> \brief ...
   12692             : !> \param Ndata ...
   12693             : !> \param packed_data ...
   12694             : !> \param full_data ...
   12695             : ! **************************************************************************************************
   12696       30454 :    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       30454 :       idata = 0
   12707       30454 :       ipack = 0
   12708       30454 :       Ndata_rep = (Ndata/64)*64
   12709       30454 :       DO kdata = 1, Ndata_rep, 64
   12710      462837 :          pack_tmp = 0
   12711      462837 :          idata = idata + 1
   12712      462837 :          data_tmp = full_data(idata)
   12713      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12714      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12715      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12716      462837 :          idata = idata + 1
   12717      462837 :          data_tmp = full_data(idata)
   12718      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12719      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12720      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12721      462837 :          idata = idata + 1
   12722      462837 :          data_tmp = full_data(idata)
   12723      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12724      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12725      462837 :          pack_tmp = ISHFT(pack_tmp, -7)
   12726      462837 :          idata = idata + 1
   12727      462837 :          data_tmp = full_data(idata)
   12728      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12729      462837 :          data_tmp = IAND(data_tmp, mask_left(7))
   12730      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12731      462837 :          ipack = ipack + 1
   12732      462837 :          packed_data(ipack) = pack_tmp
   12733      462837 :          data_tmp = full_data(idata)
   12734      462837 :          pack_tmp = ISHFT(data_tmp, 52)
   12735      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12736      462837 :          idata = idata + 1
   12737      462837 :          data_tmp = full_data(idata)
   12738      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12739      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12740      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12741      462837 :          idata = idata + 1
   12742      462837 :          data_tmp = full_data(idata)
   12743      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12744      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12745      462837 :          pack_tmp = ISHFT(pack_tmp, -14)
   12746      462837 :          idata = idata + 1
   12747      462837 :          data_tmp = full_data(idata)
   12748      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12749      462837 :          data_tmp = IAND(data_tmp, mask_left(14))
   12750      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12751      462837 :          ipack = ipack + 1
   12752      462837 :          packed_data(ipack) = pack_tmp
   12753      462837 :          data_tmp = full_data(idata)
   12754      462837 :          pack_tmp = ISHFT(data_tmp, 59)
   12755      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12756      462837 :          idata = idata + 1
   12757      462837 :          data_tmp = full_data(idata)
   12758      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12759      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12760      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12761      462837 :          idata = idata + 1
   12762      462837 :          data_tmp = full_data(idata)
   12763      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12764      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12765      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12766      462837 :          idata = idata + 1
   12767      462837 :          data_tmp = full_data(idata)
   12768      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12769      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12770      462837 :          pack_tmp = ISHFT(pack_tmp, -2)
   12771      462837 :          idata = idata + 1
   12772      462837 :          data_tmp = full_data(idata)
   12773      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12774      462837 :          data_tmp = IAND(data_tmp, mask_left(2))
   12775      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12776      462837 :          ipack = ipack + 1
   12777      462837 :          packed_data(ipack) = pack_tmp
   12778      462837 :          data_tmp = full_data(idata)
   12779      462837 :          pack_tmp = ISHFT(data_tmp, 47)
   12780      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12781      462837 :          idata = idata + 1
   12782      462837 :          data_tmp = full_data(idata)
   12783      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12784      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12785      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12786      462837 :          idata = idata + 1
   12787      462837 :          data_tmp = full_data(idata)
   12788      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12789      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12790      462837 :          pack_tmp = ISHFT(pack_tmp, -9)
   12791      462837 :          idata = idata + 1
   12792      462837 :          data_tmp = full_data(idata)
   12793      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12794      462837 :          data_tmp = IAND(data_tmp, mask_left(9))
   12795      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12796      462837 :          ipack = ipack + 1
   12797      462837 :          packed_data(ipack) = pack_tmp
   12798      462837 :          data_tmp = full_data(idata)
   12799      462837 :          pack_tmp = ISHFT(data_tmp, 54)
   12800      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12801      462837 :          idata = idata + 1
   12802      462837 :          data_tmp = full_data(idata)
   12803      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12804      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12805      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12806      462837 :          idata = idata + 1
   12807      462837 :          data_tmp = full_data(idata)
   12808      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12809      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12810      462837 :          pack_tmp = ISHFT(pack_tmp, -16)
   12811      462837 :          idata = idata + 1
   12812      462837 :          data_tmp = full_data(idata)
   12813      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12814      462837 :          data_tmp = IAND(data_tmp, mask_left(16))
   12815      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12816      462837 :          ipack = ipack + 1
   12817      462837 :          packed_data(ipack) = pack_tmp
   12818      462837 :          data_tmp = full_data(idata)
   12819      462837 :          pack_tmp = ISHFT(data_tmp, 61)
   12820      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12821      462837 :          idata = idata + 1
   12822      462837 :          data_tmp = full_data(idata)
   12823      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12824      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12825      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12826      462837 :          idata = idata + 1
   12827      462837 :          data_tmp = full_data(idata)
   12828      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12829      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12830      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12831      462837 :          idata = idata + 1
   12832      462837 :          data_tmp = full_data(idata)
   12833      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12834      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12835      462837 :          pack_tmp = ISHFT(pack_tmp, -4)
   12836      462837 :          idata = idata + 1
   12837      462837 :          data_tmp = full_data(idata)
   12838      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12839      462837 :          data_tmp = IAND(data_tmp, mask_left(4))
   12840      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12841      462837 :          ipack = ipack + 1
   12842      462837 :          packed_data(ipack) = pack_tmp
   12843      462837 :          data_tmp = full_data(idata)
   12844      462837 :          pack_tmp = ISHFT(data_tmp, 49)
   12845      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12846      462837 :          idata = idata + 1
   12847      462837 :          data_tmp = full_data(idata)
   12848      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12849      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12850      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12851      462837 :          idata = idata + 1
   12852      462837 :          data_tmp = full_data(idata)
   12853      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12854      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12855      462837 :          pack_tmp = ISHFT(pack_tmp, -11)
   12856      462837 :          idata = idata + 1
   12857      462837 :          data_tmp = full_data(idata)
   12858      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12859      462837 :          data_tmp = IAND(data_tmp, mask_left(11))
   12860      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12861      462837 :          ipack = ipack + 1
   12862      462837 :          packed_data(ipack) = pack_tmp
   12863      462837 :          data_tmp = full_data(idata)
   12864      462837 :          pack_tmp = ISHFT(data_tmp, 56)
   12865      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12866      462837 :          idata = idata + 1
   12867      462837 :          data_tmp = full_data(idata)
   12868      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12869      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12870      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12871      462837 :          idata = idata + 1
   12872      462837 :          data_tmp = full_data(idata)
   12873      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12874      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12875      462837 :          pack_tmp = ISHFT(pack_tmp, -18)
   12876      462837 :          idata = idata + 1
   12877      462837 :          data_tmp = full_data(idata)
   12878      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12879      462837 :          data_tmp = IAND(data_tmp, mask_left(18))
   12880      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12881      462837 :          ipack = ipack + 1
   12882      462837 :          packed_data(ipack) = pack_tmp
   12883      462837 :          data_tmp = full_data(idata)
   12884      462837 :          pack_tmp = ISHFT(data_tmp, 63)
   12885      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12886      462837 :          idata = idata + 1
   12887      462837 :          data_tmp = full_data(idata)
   12888      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12889      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12890      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12891      462837 :          idata = idata + 1
   12892      462837 :          data_tmp = full_data(idata)
   12893      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12894      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12895      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12896      462837 :          idata = idata + 1
   12897      462837 :          data_tmp = full_data(idata)
   12898      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12899      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12900      462837 :          pack_tmp = ISHFT(pack_tmp, -6)
   12901      462837 :          idata = idata + 1
   12902      462837 :          data_tmp = full_data(idata)
   12903      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12904      462837 :          data_tmp = IAND(data_tmp, mask_left(6))
   12905      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12906      462837 :          ipack = ipack + 1
   12907      462837 :          packed_data(ipack) = pack_tmp
   12908      462837 :          data_tmp = full_data(idata)
   12909      462837 :          pack_tmp = ISHFT(data_tmp, 51)
   12910      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12911      462837 :          idata = idata + 1
   12912      462837 :          data_tmp = full_data(idata)
   12913      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12914      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12915      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12916      462837 :          idata = idata + 1
   12917      462837 :          data_tmp = full_data(idata)
   12918      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12919      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12920      462837 :          pack_tmp = ISHFT(pack_tmp, -13)
   12921      462837 :          idata = idata + 1
   12922      462837 :          data_tmp = full_data(idata)
   12923      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12924      462837 :          data_tmp = IAND(data_tmp, mask_left(13))
   12925      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12926      462837 :          ipack = ipack + 1
   12927      462837 :          packed_data(ipack) = pack_tmp
   12928      462837 :          data_tmp = full_data(idata)
   12929      462837 :          pack_tmp = ISHFT(data_tmp, 58)
   12930      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12931      462837 :          idata = idata + 1
   12932      462837 :          data_tmp = full_data(idata)
   12933      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12934      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12935      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12936      462837 :          idata = idata + 1
   12937      462837 :          data_tmp = full_data(idata)
   12938      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12939      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12940      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12941      462837 :          idata = idata + 1
   12942      462837 :          data_tmp = full_data(idata)
   12943      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12944      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12945      462837 :          pack_tmp = ISHFT(pack_tmp, -1)
   12946      462837 :          idata = idata + 1
   12947      462837 :          data_tmp = full_data(idata)
   12948      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12949      462837 :          data_tmp = IAND(data_tmp, mask_left(1))
   12950      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12951      462837 :          ipack = ipack + 1
   12952      462837 :          packed_data(ipack) = pack_tmp
   12953      462837 :          data_tmp = full_data(idata)
   12954      462837 :          pack_tmp = ISHFT(data_tmp, 46)
   12955      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12956      462837 :          idata = idata + 1
   12957      462837 :          data_tmp = full_data(idata)
   12958      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12959      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12960      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12961      462837 :          idata = idata + 1
   12962      462837 :          data_tmp = full_data(idata)
   12963      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12964      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12965      462837 :          pack_tmp = ISHFT(pack_tmp, -8)
   12966      462837 :          idata = idata + 1
   12967      462837 :          data_tmp = full_data(idata)
   12968      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12969      462837 :          data_tmp = IAND(data_tmp, mask_left(8))
   12970      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12971      462837 :          ipack = ipack + 1
   12972      462837 :          packed_data(ipack) = pack_tmp
   12973      462837 :          data_tmp = full_data(idata)
   12974      462837 :          pack_tmp = ISHFT(data_tmp, 53)
   12975      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12976      462837 :          idata = idata + 1
   12977      462837 :          data_tmp = full_data(idata)
   12978      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12979      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12980      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12981      462837 :          idata = idata + 1
   12982      462837 :          data_tmp = full_data(idata)
   12983      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12984      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12985      462837 :          pack_tmp = ISHFT(pack_tmp, -15)
   12986      462837 :          idata = idata + 1
   12987      462837 :          data_tmp = full_data(idata)
   12988      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12989      462837 :          data_tmp = IAND(data_tmp, mask_left(15))
   12990      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12991      462837 :          ipack = ipack + 1
   12992      462837 :          packed_data(ipack) = pack_tmp
   12993      462837 :          data_tmp = full_data(idata)
   12994      462837 :          pack_tmp = ISHFT(data_tmp, 60)
   12995      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   12996      462837 :          idata = idata + 1
   12997      462837 :          data_tmp = full_data(idata)
   12998      462837 :          data_tmp = ISHFT(data_tmp, 45)
   12999      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13000      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   13001      462837 :          idata = idata + 1
   13002      462837 :          data_tmp = full_data(idata)
   13003      462837 :          data_tmp = ISHFT(data_tmp, 45)
   13004      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13005      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   13006      462837 :          idata = idata + 1
   13007      462837 :          data_tmp = full_data(idata)
   13008      462837 :          data_tmp = ISHFT(data_tmp, 45)
   13009      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13010      462837 :          pack_tmp = ISHFT(pack_tmp, -3)
   13011      462837 :          idata = idata + 1
   13012      462837 :          data_tmp = full_data(idata)
   13013      462837 :          data_tmp = ISHFT(data_tmp, 45)
   13014      462837 :          data_tmp = IAND(data_tmp, mask_left(3))
   13015      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13016      462837 :          ipack = ipack + 1
   13017      462837 :          packed_data(ipack) = pack_tmp
   13018      462837 :          data_tmp = full_data(idata)
   13019      462837 :          pack_tmp = ISHFT(data_tmp, 48)
   13020      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   13021      462837 :          idata = idata + 1
   13022      462837 :          data_tmp = full_data(idata)
   13023      462837 :          data_tmp = ISHFT(data_tmp, 45)
   13024      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13025      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   13026      462837 :          idata = idata + 1
   13027      462837 :          data_tmp = full_data(idata)
   13028      462837 :          data_tmp = ISHFT(data_tmp, 45)
   13029      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13030      462837 :          pack_tmp = ISHFT(pack_tmp, -10)
   13031      462837 :          idata = idata + 1
   13032      462837 :          data_tmp = full_data(idata)
   13033      462837 :          data_tmp = ISHFT(data_tmp, 45)
   13034      462837 :          data_tmp = IAND(data_tmp, mask_left(10))
   13035      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13036      462837 :          ipack = ipack + 1
   13037      462837 :          packed_data(ipack) = pack_tmp
   13038      462837 :          data_tmp = full_data(idata)
   13039      462837 :          pack_tmp = ISHFT(data_tmp, 55)
   13040      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   13041      462837 :          idata = idata + 1
   13042      462837 :          data_tmp = full_data(idata)
   13043      462837 :          data_tmp = ISHFT(data_tmp, 45)
   13044      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13045      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   13046      462837 :          idata = idata + 1
   13047      462837 :          data_tmp = full_data(idata)
   13048      462837 :          data_tmp = ISHFT(data_tmp, 45)
   13049      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13050      462837 :          pack_tmp = ISHFT(pack_tmp, -17)
   13051      462837 :          idata = idata + 1
   13052      462837 :          data_tmp = full_data(idata)
   13053      462837 :          data_tmp = ISHFT(data_tmp, 45)
   13054      462837 :          data_tmp = IAND(data_tmp, mask_left(17))
   13055      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13056      462837 :          ipack = ipack + 1
   13057      462837 :          packed_data(ipack) = pack_tmp
   13058      462837 :          data_tmp = full_data(idata)
   13059      462837 :          pack_tmp = ISHFT(data_tmp, 62)
   13060      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   13061      462837 :          idata = idata + 1
   13062      462837 :          data_tmp = full_data(idata)
   13063      462837 :          data_tmp = ISHFT(data_tmp, 45)
   13064      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13065      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   13066      462837 :          idata = idata + 1
   13067      462837 :          data_tmp = full_data(idata)
   13068      462837 :          data_tmp = ISHFT(data_tmp, 45)
   13069      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13070      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   13071      462837 :          idata = idata + 1
   13072      462837 :          data_tmp = full_data(idata)
   13073      462837 :          data_tmp = ISHFT(data_tmp, 45)
   13074      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13075      462837 :          pack_tmp = ISHFT(pack_tmp, -5)
   13076      462837 :          idata = idata + 1
   13077      462837 :          data_tmp = full_data(idata)
   13078      462837 :          data_tmp = ISHFT(data_tmp, 45)
   13079      462837 :          data_tmp = IAND(data_tmp, mask_left(5))
   13080      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13081      462837 :          ipack = ipack + 1
   13082      462837 :          packed_data(ipack) = pack_tmp
   13083      462837 :          data_tmp = full_data(idata)
   13084      462837 :          pack_tmp = ISHFT(data_tmp, 50)
   13085      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   13086      462837 :          idata = idata + 1
   13087      462837 :          data_tmp = full_data(idata)
   13088      462837 :          data_tmp = ISHFT(data_tmp, 45)
   13089      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13090      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   13091      462837 :          idata = idata + 1
   13092      462837 :          data_tmp = full_data(idata)
   13093      462837 :          data_tmp = ISHFT(data_tmp, 45)
   13094      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13095      462837 :          pack_tmp = ISHFT(pack_tmp, -12)
   13096      462837 :          idata = idata + 1
   13097      462837 :          data_tmp = full_data(idata)
   13098      462837 :          data_tmp = ISHFT(data_tmp, 45)
   13099      462837 :          data_tmp = IAND(data_tmp, mask_left(12))
   13100      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13101      462837 :          ipack = ipack + 1
   13102      462837 :          packed_data(ipack) = pack_tmp
   13103      462837 :          data_tmp = full_data(idata)
   13104      462837 :          pack_tmp = ISHFT(data_tmp, 57)
   13105      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   13106      462837 :          idata = idata + 1
   13107      462837 :          data_tmp = full_data(idata)
   13108      462837 :          data_tmp = ISHFT(data_tmp, 45)
   13109      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13110      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   13111      462837 :          idata = idata + 1
   13112      462837 :          data_tmp = full_data(idata)
   13113      462837 :          data_tmp = ISHFT(data_tmp, 45)
   13114      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13115      462837 :          pack_tmp = ISHFT(pack_tmp, -19)
   13116      462837 :          idata = idata + 1
   13117      462837 :          data_tmp = full_data(idata)
   13118      462837 :          data_tmp = ISHFT(data_tmp, 45)
   13119      462837 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13120             :          pack_tmp = ISHFT(pack_tmp, 0)
   13121      462837 :          pack_tmp = ISHFT(pack_tmp, 0)
   13122      462837 :          ipack = ipack + 1
   13123      462931 :          packed_data(ipack) = pack_tmp
   13124             :       END DO
   13125       30454 :       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       30454 :    END SUBROUTINE ints2bits_19
   13129             : 
   13130             : ! **************************************************************************************************
   13131             : !> \brief ...
   13132             : !> \param Ndata ...
   13133             : !> \param packed_data ...
   13134             : !> \param full_data ...
   13135             : ! **************************************************************************************************
   13136      154104 :    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      154104 :       ipack = 0
   13147      154104 :       idata = 0
   13148      154104 :       pack_tmp = 0
   13149      154104 :       Ndata_rep = (Ndata/64)*64
   13150      154104 :       DO kdata = 1, Ndata_rep, 64
   13151     2260856 :          idata = idata + 1
   13152     2260856 :          data_tmp = ISHFT(pack_tmp, 19)
   13153     2260856 :          ipack = ipack + 1
   13154     2260856 :          pack_tmp = packed_data(ipack)
   13155     2260856 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   13156     2260856 :          pack_tmp = ISHFT(pack_tmp, -19)
   13157     2260856 :          idata = idata + 1
   13158     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13159     2260856 :          full_data(idata) = data_tmp
   13160     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13161     2260856 :          idata = idata + 1
   13162     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13163     2260856 :          full_data(idata) = data_tmp
   13164     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13165     2260856 :          idata = idata + 1
   13166     2260856 :          data_tmp = ISHFT(pack_tmp, 12)
   13167     2260856 :          ipack = ipack + 1
   13168     2260856 :          pack_tmp = packed_data(ipack)
   13169     2260856 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   13170     2260856 :          pack_tmp = ISHFT(pack_tmp, -12)
   13171     2260856 :          idata = idata + 1
   13172     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13173     2260856 :          full_data(idata) = data_tmp
   13174     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13175     2260856 :          idata = idata + 1
   13176     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13177     2260856 :          full_data(idata) = data_tmp
   13178     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13179     2260856 :          idata = idata + 1
   13180     2260856 :          data_tmp = ISHFT(pack_tmp, 5)
   13181     2260856 :          ipack = ipack + 1
   13182     2260856 :          pack_tmp = packed_data(ipack)
   13183     2260856 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   13184     2260856 :          pack_tmp = ISHFT(pack_tmp, -5)
   13185     2260856 :          idata = idata + 1
   13186     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13187     2260856 :          full_data(idata) = data_tmp
   13188     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13189     2260856 :          idata = idata + 1
   13190     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13191     2260856 :          full_data(idata) = data_tmp
   13192     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13193     2260856 :          idata = idata + 1
   13194     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13195     2260856 :          full_data(idata) = data_tmp
   13196     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13197     2260856 :          idata = idata + 1
   13198     2260856 :          data_tmp = ISHFT(pack_tmp, 17)
   13199     2260856 :          ipack = ipack + 1
   13200     2260856 :          pack_tmp = packed_data(ipack)
   13201     2260856 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   13202     2260856 :          pack_tmp = ISHFT(pack_tmp, -17)
   13203     2260856 :          idata = idata + 1
   13204     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13205     2260856 :          full_data(idata) = data_tmp
   13206     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13207     2260856 :          idata = idata + 1
   13208     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13209     2260856 :          full_data(idata) = data_tmp
   13210     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13211     2260856 :          idata = idata + 1
   13212     2260856 :          data_tmp = ISHFT(pack_tmp, 10)
   13213     2260856 :          ipack = ipack + 1
   13214     2260856 :          pack_tmp = packed_data(ipack)
   13215     2260856 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   13216     2260856 :          pack_tmp = ISHFT(pack_tmp, -10)
   13217     2260856 :          idata = idata + 1
   13218     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13219     2260856 :          full_data(idata) = data_tmp
   13220     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13221     2260856 :          idata = idata + 1
   13222     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13223     2260856 :          full_data(idata) = data_tmp
   13224     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13225     2260856 :          idata = idata + 1
   13226     2260856 :          data_tmp = ISHFT(pack_tmp, 3)
   13227     2260856 :          ipack = ipack + 1
   13228     2260856 :          pack_tmp = packed_data(ipack)
   13229     2260856 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   13230     2260856 :          pack_tmp = ISHFT(pack_tmp, -3)
   13231     2260856 :          idata = idata + 1
   13232     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13233     2260856 :          full_data(idata) = data_tmp
   13234     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13235     2260856 :          idata = idata + 1
   13236     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13237     2260856 :          full_data(idata) = data_tmp
   13238     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13239     2260856 :          idata = idata + 1
   13240     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13241     2260856 :          full_data(idata) = data_tmp
   13242     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13243     2260856 :          idata = idata + 1
   13244     2260856 :          data_tmp = ISHFT(pack_tmp, 15)
   13245     2260856 :          ipack = ipack + 1
   13246     2260856 :          pack_tmp = packed_data(ipack)
   13247     2260856 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   13248     2260856 :          pack_tmp = ISHFT(pack_tmp, -15)
   13249     2260856 :          idata = idata + 1
   13250     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13251     2260856 :          full_data(idata) = data_tmp
   13252     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13253     2260856 :          idata = idata + 1
   13254     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13255     2260856 :          full_data(idata) = data_tmp
   13256     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13257     2260856 :          idata = idata + 1
   13258     2260856 :          data_tmp = ISHFT(pack_tmp, 8)
   13259     2260856 :          ipack = ipack + 1
   13260     2260856 :          pack_tmp = packed_data(ipack)
   13261     2260856 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   13262     2260856 :          pack_tmp = ISHFT(pack_tmp, -8)
   13263     2260856 :          idata = idata + 1
   13264     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13265     2260856 :          full_data(idata) = data_tmp
   13266     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13267     2260856 :          idata = idata + 1
   13268     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13269     2260856 :          full_data(idata) = data_tmp
   13270     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13271     2260856 :          idata = idata + 1
   13272     2260856 :          data_tmp = ISHFT(pack_tmp, 1)
   13273     2260856 :          ipack = ipack + 1
   13274     2260856 :          pack_tmp = packed_data(ipack)
   13275     2260856 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   13276     2260856 :          pack_tmp = ISHFT(pack_tmp, -1)
   13277     2260856 :          idata = idata + 1
   13278     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13279     2260856 :          full_data(idata) = data_tmp
   13280     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13281     2260856 :          idata = idata + 1
   13282     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13283     2260856 :          full_data(idata) = data_tmp
   13284     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13285     2260856 :          idata = idata + 1
   13286     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13287     2260856 :          full_data(idata) = data_tmp
   13288     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13289     2260856 :          idata = idata + 1
   13290     2260856 :          data_tmp = ISHFT(pack_tmp, 13)
   13291     2260856 :          ipack = ipack + 1
   13292     2260856 :          pack_tmp = packed_data(ipack)
   13293     2260856 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   13294     2260856 :          pack_tmp = ISHFT(pack_tmp, -13)
   13295     2260856 :          idata = idata + 1
   13296     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13297     2260856 :          full_data(idata) = data_tmp
   13298     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13299     2260856 :          idata = idata + 1
   13300     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13301     2260856 :          full_data(idata) = data_tmp
   13302     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13303     2260856 :          idata = idata + 1
   13304     2260856 :          data_tmp = ISHFT(pack_tmp, 6)
   13305     2260856 :          ipack = ipack + 1
   13306     2260856 :          pack_tmp = packed_data(ipack)
   13307     2260856 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   13308     2260856 :          pack_tmp = ISHFT(pack_tmp, -6)
   13309     2260856 :          idata = idata + 1
   13310     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13311     2260856 :          full_data(idata) = data_tmp
   13312     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13313     2260856 :          idata = idata + 1
   13314     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13315     2260856 :          full_data(idata) = data_tmp
   13316     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13317     2260856 :          idata = idata + 1
   13318     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13319     2260856 :          full_data(idata) = data_tmp
   13320     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13321     2260856 :          idata = idata + 1
   13322     2260856 :          data_tmp = ISHFT(pack_tmp, 18)
   13323     2260856 :          ipack = ipack + 1
   13324     2260856 :          pack_tmp = packed_data(ipack)
   13325     2260856 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   13326     2260856 :          pack_tmp = ISHFT(pack_tmp, -18)
   13327     2260856 :          idata = idata + 1
   13328     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13329     2260856 :          full_data(idata) = data_tmp
   13330     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13331     2260856 :          idata = idata + 1
   13332     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13333     2260856 :          full_data(idata) = data_tmp
   13334     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13335     2260856 :          idata = idata + 1
   13336     2260856 :          data_tmp = ISHFT(pack_tmp, 11)
   13337     2260856 :          ipack = ipack + 1
   13338     2260856 :          pack_tmp = packed_data(ipack)
   13339     2260856 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   13340     2260856 :          pack_tmp = ISHFT(pack_tmp, -11)
   13341     2260856 :          idata = idata + 1
   13342     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13343     2260856 :          full_data(idata) = data_tmp
   13344     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13345     2260856 :          idata = idata + 1
   13346     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13347     2260856 :          full_data(idata) = data_tmp
   13348     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13349     2260856 :          idata = idata + 1
   13350     2260856 :          data_tmp = ISHFT(pack_tmp, 4)
   13351     2260856 :          ipack = ipack + 1
   13352     2260856 :          pack_tmp = packed_data(ipack)
   13353     2260856 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   13354     2260856 :          pack_tmp = ISHFT(pack_tmp, -4)
   13355     2260856 :          idata = idata + 1
   13356     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13357     2260856 :          full_data(idata) = data_tmp
   13358     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13359     2260856 :          idata = idata + 1
   13360     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13361     2260856 :          full_data(idata) = data_tmp
   13362     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13363     2260856 :          idata = idata + 1
   13364     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13365     2260856 :          full_data(idata) = data_tmp
   13366     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13367     2260856 :          idata = idata + 1
   13368     2260856 :          data_tmp = ISHFT(pack_tmp, 16)
   13369     2260856 :          ipack = ipack + 1
   13370     2260856 :          pack_tmp = packed_data(ipack)
   13371     2260856 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   13372     2260856 :          pack_tmp = ISHFT(pack_tmp, -16)
   13373     2260856 :          idata = idata + 1
   13374     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13375     2260856 :          full_data(idata) = data_tmp
   13376     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13377     2260856 :          idata = idata + 1
   13378     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13379     2260856 :          full_data(idata) = data_tmp
   13380     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13381     2260856 :          idata = idata + 1
   13382     2260856 :          data_tmp = ISHFT(pack_tmp, 9)
   13383     2260856 :          ipack = ipack + 1
   13384     2260856 :          pack_tmp = packed_data(ipack)
   13385     2260856 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   13386     2260856 :          pack_tmp = ISHFT(pack_tmp, -9)
   13387     2260856 :          idata = idata + 1
   13388     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13389     2260856 :          full_data(idata) = data_tmp
   13390     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13391     2260856 :          idata = idata + 1
   13392     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13393     2260856 :          full_data(idata) = data_tmp
   13394     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13395     2260856 :          idata = idata + 1
   13396     2260856 :          data_tmp = ISHFT(pack_tmp, 2)
   13397     2260856 :          ipack = ipack + 1
   13398     2260856 :          pack_tmp = packed_data(ipack)
   13399     2260856 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   13400     2260856 :          pack_tmp = ISHFT(pack_tmp, -2)
   13401     2260856 :          idata = idata + 1
   13402     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13403     2260856 :          full_data(idata) = data_tmp
   13404     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13405     2260856 :          idata = idata + 1
   13406     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13407     2260856 :          full_data(idata) = data_tmp
   13408     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13409     2260856 :          idata = idata + 1
   13410     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13411     2260856 :          full_data(idata) = data_tmp
   13412     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13413     2260856 :          idata = idata + 1
   13414     2260856 :          data_tmp = ISHFT(pack_tmp, 14)
   13415     2260856 :          ipack = ipack + 1
   13416     2260856 :          pack_tmp = packed_data(ipack)
   13417     2260856 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   13418     2260856 :          pack_tmp = ISHFT(pack_tmp, -14)
   13419     2260856 :          idata = idata + 1
   13420     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13421     2260856 :          full_data(idata) = data_tmp
   13422     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13423     2260856 :          idata = idata + 1
   13424     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13425     2260856 :          full_data(idata) = data_tmp
   13426     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13427     2260856 :          idata = idata + 1
   13428     2260856 :          data_tmp = ISHFT(pack_tmp, 7)
   13429     2260856 :          ipack = ipack + 1
   13430     2260856 :          pack_tmp = packed_data(ipack)
   13431     2260856 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   13432     2260856 :          pack_tmp = ISHFT(pack_tmp, -7)
   13433     2260856 :          idata = idata + 1
   13434     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13435     2260856 :          full_data(idata) = data_tmp
   13436     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13437     2260856 :          idata = idata + 1
   13438     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13439     2260856 :          full_data(idata) = data_tmp
   13440     2260856 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13441     2260856 :          idata = idata + 1
   13442     2260856 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13443     2260856 :          full_data(idata) = data_tmp
   13444     2261629 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13445             :       END DO
   13446      154104 :       IF (Ndata_rep < Ndata) THEN
   13447       23280 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   13448             :       END IF
   13449      154104 :    END SUBROUTINE bits2ints_19
   13450             : 
   13451             : ! **************************************************************************************************
   13452             : !> \brief ...
   13453             : !> \param Ndata ...
   13454             : !> \param packed_data ...
   13455             : !> \param full_data ...
   13456             : ! **************************************************************************************************
   13457       41397 :    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       41397 :       idata = 0
   13468       41397 :       ipack = 0
   13469       41397 :       Ndata_rep = (Ndata/64)*64
   13470       41397 :       DO kdata = 1, Ndata_rep, 64
   13471      592256 :          pack_tmp = 0
   13472      592256 :          idata = idata + 1
   13473      592256 :          data_tmp = full_data(idata)
   13474      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13475      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13476      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13477      592256 :          idata = idata + 1
   13478      592256 :          data_tmp = full_data(idata)
   13479      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13480      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13481      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13482      592256 :          idata = idata + 1
   13483      592256 :          data_tmp = full_data(idata)
   13484      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13485      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13486      592256 :          pack_tmp = ISHFT(pack_tmp, -4)
   13487      592256 :          idata = idata + 1
   13488      592256 :          data_tmp = full_data(idata)
   13489      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13490      592256 :          data_tmp = IAND(data_tmp, mask_left(4))
   13491      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13492      592256 :          ipack = ipack + 1
   13493      592256 :          packed_data(ipack) = pack_tmp
   13494      592256 :          data_tmp = full_data(idata)
   13495      592256 :          pack_tmp = ISHFT(data_tmp, 48)
   13496      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13497      592256 :          idata = idata + 1
   13498      592256 :          data_tmp = full_data(idata)
   13499      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13500      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13501      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13502      592256 :          idata = idata + 1
   13503      592256 :          data_tmp = full_data(idata)
   13504      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13505      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13506      592256 :          pack_tmp = ISHFT(pack_tmp, -8)
   13507      592256 :          idata = idata + 1
   13508      592256 :          data_tmp = full_data(idata)
   13509      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13510      592256 :          data_tmp = IAND(data_tmp, mask_left(8))
   13511      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13512      592256 :          ipack = ipack + 1
   13513      592256 :          packed_data(ipack) = pack_tmp
   13514      592256 :          data_tmp = full_data(idata)
   13515      592256 :          pack_tmp = ISHFT(data_tmp, 52)
   13516      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13517      592256 :          idata = idata + 1
   13518      592256 :          data_tmp = full_data(idata)
   13519      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13520      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13521      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13522      592256 :          idata = idata + 1
   13523      592256 :          data_tmp = full_data(idata)
   13524      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13525      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13526      592256 :          pack_tmp = ISHFT(pack_tmp, -12)
   13527      592256 :          idata = idata + 1
   13528      592256 :          data_tmp = full_data(idata)
   13529      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13530      592256 :          data_tmp = IAND(data_tmp, mask_left(12))
   13531      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13532      592256 :          ipack = ipack + 1
   13533      592256 :          packed_data(ipack) = pack_tmp
   13534      592256 :          data_tmp = full_data(idata)
   13535      592256 :          pack_tmp = ISHFT(data_tmp, 56)
   13536      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13537      592256 :          idata = idata + 1
   13538      592256 :          data_tmp = full_data(idata)
   13539      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13540      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13541      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13542      592256 :          idata = idata + 1
   13543      592256 :          data_tmp = full_data(idata)
   13544      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13545      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13546      592256 :          pack_tmp = ISHFT(pack_tmp, -16)
   13547      592256 :          idata = idata + 1
   13548      592256 :          data_tmp = full_data(idata)
   13549      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13550      592256 :          data_tmp = IAND(data_tmp, mask_left(16))
   13551      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13552      592256 :          ipack = ipack + 1
   13553      592256 :          packed_data(ipack) = pack_tmp
   13554      592256 :          data_tmp = full_data(idata)
   13555      592256 :          pack_tmp = ISHFT(data_tmp, 60)
   13556      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13557      592256 :          idata = idata + 1
   13558      592256 :          data_tmp = full_data(idata)
   13559      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13560      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13561      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13562      592256 :          idata = idata + 1
   13563      592256 :          data_tmp = full_data(idata)
   13564      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13565      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13566      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13567      592256 :          idata = idata + 1
   13568      592256 :          data_tmp = full_data(idata)
   13569      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13570      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13571      592256 :          pack_tmp = ISHFT(pack_tmp, 0)
   13572      592256 :          idata = idata + 1
   13573      592256 :          data_tmp = full_data(idata)
   13574             :          data_tmp = ISHFT(data_tmp, 44)
   13575      592256 :          data_tmp = IAND(data_tmp, mask_left(0))
   13576      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13577      592256 :          ipack = ipack + 1
   13578      592256 :          packed_data(ipack) = pack_tmp
   13579      592256 :          data_tmp = full_data(idata)
   13580      592256 :          pack_tmp = ISHFT(data_tmp, 44)
   13581      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13582      592256 :          idata = idata + 1
   13583      592256 :          data_tmp = full_data(idata)
   13584      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13585      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13586      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13587      592256 :          idata = idata + 1
   13588      592256 :          data_tmp = full_data(idata)
   13589      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13590      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13591      592256 :          pack_tmp = ISHFT(pack_tmp, -4)
   13592      592256 :          idata = idata + 1
   13593      592256 :          data_tmp = full_data(idata)
   13594      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13595      592256 :          data_tmp = IAND(data_tmp, mask_left(4))
   13596      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13597      592256 :          ipack = ipack + 1
   13598      592256 :          packed_data(ipack) = pack_tmp
   13599      592256 :          data_tmp = full_data(idata)
   13600      592256 :          pack_tmp = ISHFT(data_tmp, 48)
   13601      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13602      592256 :          idata = idata + 1
   13603      592256 :          data_tmp = full_data(idata)
   13604      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13605      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13606      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13607      592256 :          idata = idata + 1
   13608      592256 :          data_tmp = full_data(idata)
   13609      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13610      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13611      592256 :          pack_tmp = ISHFT(pack_tmp, -8)
   13612      592256 :          idata = idata + 1
   13613      592256 :          data_tmp = full_data(idata)
   13614      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13615      592256 :          data_tmp = IAND(data_tmp, mask_left(8))
   13616      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13617      592256 :          ipack = ipack + 1
   13618      592256 :          packed_data(ipack) = pack_tmp
   13619      592256 :          data_tmp = full_data(idata)
   13620      592256 :          pack_tmp = ISHFT(data_tmp, 52)
   13621      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13622      592256 :          idata = idata + 1
   13623      592256 :          data_tmp = full_data(idata)
   13624      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13625      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13626      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13627      592256 :          idata = idata + 1
   13628      592256 :          data_tmp = full_data(idata)
   13629      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13630      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13631      592256 :          pack_tmp = ISHFT(pack_tmp, -12)
   13632      592256 :          idata = idata + 1
   13633      592256 :          data_tmp = full_data(idata)
   13634      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13635      592256 :          data_tmp = IAND(data_tmp, mask_left(12))
   13636      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13637      592256 :          ipack = ipack + 1
   13638      592256 :          packed_data(ipack) = pack_tmp
   13639      592256 :          data_tmp = full_data(idata)
   13640      592256 :          pack_tmp = ISHFT(data_tmp, 56)
   13641      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13642      592256 :          idata = idata + 1
   13643      592256 :          data_tmp = full_data(idata)
   13644      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13645      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13646      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13647      592256 :          idata = idata + 1
   13648      592256 :          data_tmp = full_data(idata)
   13649      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13650      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13651      592256 :          pack_tmp = ISHFT(pack_tmp, -16)
   13652      592256 :          idata = idata + 1
   13653      592256 :          data_tmp = full_data(idata)
   13654      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13655      592256 :          data_tmp = IAND(data_tmp, mask_left(16))
   13656      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13657      592256 :          ipack = ipack + 1
   13658      592256 :          packed_data(ipack) = pack_tmp
   13659      592256 :          data_tmp = full_data(idata)
   13660      592256 :          pack_tmp = ISHFT(data_tmp, 60)
   13661      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13662      592256 :          idata = idata + 1
   13663      592256 :          data_tmp = full_data(idata)
   13664      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13665      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13666      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13667      592256 :          idata = idata + 1
   13668      592256 :          data_tmp = full_data(idata)
   13669      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13670      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13671      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13672      592256 :          idata = idata + 1
   13673      592256 :          data_tmp = full_data(idata)
   13674      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13675      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13676      592256 :          pack_tmp = ISHFT(pack_tmp, 0)
   13677      592256 :          idata = idata + 1
   13678      592256 :          data_tmp = full_data(idata)
   13679             :          data_tmp = ISHFT(data_tmp, 44)
   13680      592256 :          data_tmp = IAND(data_tmp, mask_left(0))
   13681      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13682      592256 :          ipack = ipack + 1
   13683      592256 :          packed_data(ipack) = pack_tmp
   13684      592256 :          data_tmp = full_data(idata)
   13685      592256 :          pack_tmp = ISHFT(data_tmp, 44)
   13686      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13687      592256 :          idata = idata + 1
   13688      592256 :          data_tmp = full_data(idata)
   13689      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13690      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13691      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13692      592256 :          idata = idata + 1
   13693      592256 :          data_tmp = full_data(idata)
   13694      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13695      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13696      592256 :          pack_tmp = ISHFT(pack_tmp, -4)
   13697      592256 :          idata = idata + 1
   13698      592256 :          data_tmp = full_data(idata)
   13699      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13700      592256 :          data_tmp = IAND(data_tmp, mask_left(4))
   13701      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13702      592256 :          ipack = ipack + 1
   13703      592256 :          packed_data(ipack) = pack_tmp
   13704      592256 :          data_tmp = full_data(idata)
   13705      592256 :          pack_tmp = ISHFT(data_tmp, 48)
   13706      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13707      592256 :          idata = idata + 1
   13708      592256 :          data_tmp = full_data(idata)
   13709      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13710      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13711      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13712      592256 :          idata = idata + 1
   13713      592256 :          data_tmp = full_data(idata)
   13714      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13715      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13716      592256 :          pack_tmp = ISHFT(pack_tmp, -8)
   13717      592256 :          idata = idata + 1
   13718      592256 :          data_tmp = full_data(idata)
   13719      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13720      592256 :          data_tmp = IAND(data_tmp, mask_left(8))
   13721      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13722      592256 :          ipack = ipack + 1
   13723      592256 :          packed_data(ipack) = pack_tmp
   13724      592256 :          data_tmp = full_data(idata)
   13725      592256 :          pack_tmp = ISHFT(data_tmp, 52)
   13726      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13727      592256 :          idata = idata + 1
   13728      592256 :          data_tmp = full_data(idata)
   13729      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13730      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13731      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13732      592256 :          idata = idata + 1
   13733      592256 :          data_tmp = full_data(idata)
   13734      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13735      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13736      592256 :          pack_tmp = ISHFT(pack_tmp, -12)
   13737      592256 :          idata = idata + 1
   13738      592256 :          data_tmp = full_data(idata)
   13739      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13740      592256 :          data_tmp = IAND(data_tmp, mask_left(12))
   13741      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13742      592256 :          ipack = ipack + 1
   13743      592256 :          packed_data(ipack) = pack_tmp
   13744      592256 :          data_tmp = full_data(idata)
   13745      592256 :          pack_tmp = ISHFT(data_tmp, 56)
   13746      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13747      592256 :          idata = idata + 1
   13748      592256 :          data_tmp = full_data(idata)
   13749      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13750      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13751      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13752      592256 :          idata = idata + 1
   13753      592256 :          data_tmp = full_data(idata)
   13754      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13755      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13756      592256 :          pack_tmp = ISHFT(pack_tmp, -16)
   13757      592256 :          idata = idata + 1
   13758      592256 :          data_tmp = full_data(idata)
   13759      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13760      592256 :          data_tmp = IAND(data_tmp, mask_left(16))
   13761      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13762      592256 :          ipack = ipack + 1
   13763      592256 :          packed_data(ipack) = pack_tmp
   13764      592256 :          data_tmp = full_data(idata)
   13765      592256 :          pack_tmp = ISHFT(data_tmp, 60)
   13766      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13767      592256 :          idata = idata + 1
   13768      592256 :          data_tmp = full_data(idata)
   13769      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13770      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13771      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13772      592256 :          idata = idata + 1
   13773      592256 :          data_tmp = full_data(idata)
   13774      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13775      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13776      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13777      592256 :          idata = idata + 1
   13778      592256 :          data_tmp = full_data(idata)
   13779      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13780      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13781      592256 :          pack_tmp = ISHFT(pack_tmp, 0)
   13782      592256 :          idata = idata + 1
   13783      592256 :          data_tmp = full_data(idata)
   13784             :          data_tmp = ISHFT(data_tmp, 44)
   13785      592256 :          data_tmp = IAND(data_tmp, mask_left(0))
   13786      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13787      592256 :          ipack = ipack + 1
   13788      592256 :          packed_data(ipack) = pack_tmp
   13789      592256 :          data_tmp = full_data(idata)
   13790      592256 :          pack_tmp = ISHFT(data_tmp, 44)
   13791      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13792      592256 :          idata = idata + 1
   13793      592256 :          data_tmp = full_data(idata)
   13794      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13795      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13796      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13797      592256 :          idata = idata + 1
   13798      592256 :          data_tmp = full_data(idata)
   13799      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13800      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13801      592256 :          pack_tmp = ISHFT(pack_tmp, -4)
   13802      592256 :          idata = idata + 1
   13803      592256 :          data_tmp = full_data(idata)
   13804      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13805      592256 :          data_tmp = IAND(data_tmp, mask_left(4))
   13806      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13807      592256 :          ipack = ipack + 1
   13808      592256 :          packed_data(ipack) = pack_tmp
   13809      592256 :          data_tmp = full_data(idata)
   13810      592256 :          pack_tmp = ISHFT(data_tmp, 48)
   13811      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13812      592256 :          idata = idata + 1
   13813      592256 :          data_tmp = full_data(idata)
   13814      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13815      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13816      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13817      592256 :          idata = idata + 1
   13818      592256 :          data_tmp = full_data(idata)
   13819      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13820      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13821      592256 :          pack_tmp = ISHFT(pack_tmp, -8)
   13822      592256 :          idata = idata + 1
   13823      592256 :          data_tmp = full_data(idata)
   13824      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13825      592256 :          data_tmp = IAND(data_tmp, mask_left(8))
   13826      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13827      592256 :          ipack = ipack + 1
   13828      592256 :          packed_data(ipack) = pack_tmp
   13829      592256 :          data_tmp = full_data(idata)
   13830      592256 :          pack_tmp = ISHFT(data_tmp, 52)
   13831      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13832      592256 :          idata = idata + 1
   13833      592256 :          data_tmp = full_data(idata)
   13834      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13835      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13836      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13837      592256 :          idata = idata + 1
   13838      592256 :          data_tmp = full_data(idata)
   13839      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13840      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13841      592256 :          pack_tmp = ISHFT(pack_tmp, -12)
   13842      592256 :          idata = idata + 1
   13843      592256 :          data_tmp = full_data(idata)
   13844      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13845      592256 :          data_tmp = IAND(data_tmp, mask_left(12))
   13846      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13847      592256 :          ipack = ipack + 1
   13848      592256 :          packed_data(ipack) = pack_tmp
   13849      592256 :          data_tmp = full_data(idata)
   13850      592256 :          pack_tmp = ISHFT(data_tmp, 56)
   13851      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13852      592256 :          idata = idata + 1
   13853      592256 :          data_tmp = full_data(idata)
   13854      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13855      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13856      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13857      592256 :          idata = idata + 1
   13858      592256 :          data_tmp = full_data(idata)
   13859      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13860      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13861      592256 :          pack_tmp = ISHFT(pack_tmp, -16)
   13862      592256 :          idata = idata + 1
   13863      592256 :          data_tmp = full_data(idata)
   13864      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13865      592256 :          data_tmp = IAND(data_tmp, mask_left(16))
   13866      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13867      592256 :          ipack = ipack + 1
   13868      592256 :          packed_data(ipack) = pack_tmp
   13869      592256 :          data_tmp = full_data(idata)
   13870      592256 :          pack_tmp = ISHFT(data_tmp, 60)
   13871      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13872      592256 :          idata = idata + 1
   13873      592256 :          data_tmp = full_data(idata)
   13874      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13875      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13876      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13877      592256 :          idata = idata + 1
   13878      592256 :          data_tmp = full_data(idata)
   13879      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13880      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13881      592256 :          pack_tmp = ISHFT(pack_tmp, -20)
   13882      592256 :          idata = idata + 1
   13883      592256 :          data_tmp = full_data(idata)
   13884      592256 :          data_tmp = ISHFT(data_tmp, 44)
   13885      592256 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13886             :          pack_tmp = ISHFT(pack_tmp, 0)
   13887      592256 :          pack_tmp = ISHFT(pack_tmp, 0)
   13888      592256 :          ipack = ipack + 1
   13889      592644 :          packed_data(ipack) = pack_tmp
   13890             :       END DO
   13891       41397 :       IF (Ndata_rep < Ndata) THEN
   13892        7296 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   13893             :       END IF
   13894       41397 :    END SUBROUTINE ints2bits_20
   13895             : 
   13896             : ! **************************************************************************************************
   13897             : !> \brief ...
   13898             : !> \param Ndata ...
   13899             : !> \param packed_data ...
   13900             : !> \param full_data ...
   13901             : ! **************************************************************************************************
   13902      283120 :    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      283120 :       ipack = 0
   13913      283120 :       idata = 0
   13914      283120 :       pack_tmp = 0
   13915      283120 :       Ndata_rep = (Ndata/64)*64
   13916      283120 :       DO kdata = 1, Ndata_rep, 64
   13917     3798307 :          idata = idata + 1
   13918     3798307 :          data_tmp = ISHFT(pack_tmp, 20)
   13919     3798307 :          ipack = ipack + 1
   13920     3798307 :          pack_tmp = packed_data(ipack)
   13921     3798307 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   13922     3798307 :          pack_tmp = ISHFT(pack_tmp, -20)
   13923     3798307 :          idata = idata + 1
   13924     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13925     3798307 :          full_data(idata) = data_tmp
   13926     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13927     3798307 :          idata = idata + 1
   13928     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13929     3798307 :          full_data(idata) = data_tmp
   13930     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13931     3798307 :          idata = idata + 1
   13932     3798307 :          data_tmp = ISHFT(pack_tmp, 16)
   13933     3798307 :          ipack = ipack + 1
   13934     3798307 :          pack_tmp = packed_data(ipack)
   13935     3798307 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   13936     3798307 :          pack_tmp = ISHFT(pack_tmp, -16)
   13937     3798307 :          idata = idata + 1
   13938     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13939     3798307 :          full_data(idata) = data_tmp
   13940     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13941     3798307 :          idata = idata + 1
   13942     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13943     3798307 :          full_data(idata) = data_tmp
   13944     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13945     3798307 :          idata = idata + 1
   13946     3798307 :          data_tmp = ISHFT(pack_tmp, 12)
   13947     3798307 :          ipack = ipack + 1
   13948     3798307 :          pack_tmp = packed_data(ipack)
   13949     3798307 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   13950     3798307 :          pack_tmp = ISHFT(pack_tmp, -12)
   13951     3798307 :          idata = idata + 1
   13952     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13953     3798307 :          full_data(idata) = data_tmp
   13954     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13955     3798307 :          idata = idata + 1
   13956     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13957     3798307 :          full_data(idata) = data_tmp
   13958     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13959     3798307 :          idata = idata + 1
   13960     3798307 :          data_tmp = ISHFT(pack_tmp, 8)
   13961     3798307 :          ipack = ipack + 1
   13962     3798307 :          pack_tmp = packed_data(ipack)
   13963     3798307 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   13964     3798307 :          pack_tmp = ISHFT(pack_tmp, -8)
   13965     3798307 :          idata = idata + 1
   13966     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13967     3798307 :          full_data(idata) = data_tmp
   13968     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13969     3798307 :          idata = idata + 1
   13970     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13971     3798307 :          full_data(idata) = data_tmp
   13972     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13973     3798307 :          idata = idata + 1
   13974     3798307 :          data_tmp = ISHFT(pack_tmp, 4)
   13975     3798307 :          ipack = ipack + 1
   13976     3798307 :          pack_tmp = packed_data(ipack)
   13977     3798307 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   13978     3798307 :          pack_tmp = ISHFT(pack_tmp, -4)
   13979     3798307 :          idata = idata + 1
   13980     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13981     3798307 :          full_data(idata) = data_tmp
   13982     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13983     3798307 :          idata = idata + 1
   13984     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13985     3798307 :          full_data(idata) = data_tmp
   13986     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13987     3798307 :          idata = idata + 1
   13988     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13989     3798307 :          full_data(idata) = data_tmp
   13990     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13991     3798307 :          idata = idata + 1
   13992     3798307 :          data_tmp = ISHFT(pack_tmp, 20)
   13993     3798307 :          ipack = ipack + 1
   13994     3798307 :          pack_tmp = packed_data(ipack)
   13995     3798307 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   13996     3798307 :          pack_tmp = ISHFT(pack_tmp, -20)
   13997     3798307 :          idata = idata + 1
   13998     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13999     3798307 :          full_data(idata) = data_tmp
   14000     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14001     3798307 :          idata = idata + 1
   14002     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14003     3798307 :          full_data(idata) = data_tmp
   14004     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14005     3798307 :          idata = idata + 1
   14006     3798307 :          data_tmp = ISHFT(pack_tmp, 16)
   14007     3798307 :          ipack = ipack + 1
   14008     3798307 :          pack_tmp = packed_data(ipack)
   14009     3798307 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   14010     3798307 :          pack_tmp = ISHFT(pack_tmp, -16)
   14011     3798307 :          idata = idata + 1
   14012     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14013     3798307 :          full_data(idata) = data_tmp
   14014     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14015     3798307 :          idata = idata + 1
   14016     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14017     3798307 :          full_data(idata) = data_tmp
   14018     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14019     3798307 :          idata = idata + 1
   14020     3798307 :          data_tmp = ISHFT(pack_tmp, 12)
   14021     3798307 :          ipack = ipack + 1
   14022     3798307 :          pack_tmp = packed_data(ipack)
   14023     3798307 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   14024     3798307 :          pack_tmp = ISHFT(pack_tmp, -12)
   14025     3798307 :          idata = idata + 1
   14026     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14027     3798307 :          full_data(idata) = data_tmp
   14028     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14029     3798307 :          idata = idata + 1
   14030     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14031     3798307 :          full_data(idata) = data_tmp
   14032     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14033     3798307 :          idata = idata + 1
   14034     3798307 :          data_tmp = ISHFT(pack_tmp, 8)
   14035     3798307 :          ipack = ipack + 1
   14036     3798307 :          pack_tmp = packed_data(ipack)
   14037     3798307 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   14038     3798307 :          pack_tmp = ISHFT(pack_tmp, -8)
   14039     3798307 :          idata = idata + 1
   14040     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14041     3798307 :          full_data(idata) = data_tmp
   14042     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14043     3798307 :          idata = idata + 1
   14044     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14045     3798307 :          full_data(idata) = data_tmp
   14046     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14047     3798307 :          idata = idata + 1
   14048     3798307 :          data_tmp = ISHFT(pack_tmp, 4)
   14049     3798307 :          ipack = ipack + 1
   14050     3798307 :          pack_tmp = packed_data(ipack)
   14051     3798307 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   14052     3798307 :          pack_tmp = ISHFT(pack_tmp, -4)
   14053     3798307 :          idata = idata + 1
   14054     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14055     3798307 :          full_data(idata) = data_tmp
   14056     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14057     3798307 :          idata = idata + 1
   14058     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14059     3798307 :          full_data(idata) = data_tmp
   14060     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14061     3798307 :          idata = idata + 1
   14062     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14063     3798307 :          full_data(idata) = data_tmp
   14064     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14065     3798307 :          idata = idata + 1
   14066     3798307 :          data_tmp = ISHFT(pack_tmp, 20)
   14067     3798307 :          ipack = ipack + 1
   14068     3798307 :          pack_tmp = packed_data(ipack)
   14069     3798307 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   14070     3798307 :          pack_tmp = ISHFT(pack_tmp, -20)
   14071     3798307 :          idata = idata + 1
   14072     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14073     3798307 :          full_data(idata) = data_tmp
   14074     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14075     3798307 :          idata = idata + 1
   14076     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14077     3798307 :          full_data(idata) = data_tmp
   14078     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14079     3798307 :          idata = idata + 1
   14080     3798307 :          data_tmp = ISHFT(pack_tmp, 16)
   14081     3798307 :          ipack = ipack + 1
   14082     3798307 :          pack_tmp = packed_data(ipack)
   14083     3798307 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   14084     3798307 :          pack_tmp = ISHFT(pack_tmp, -16)
   14085     3798307 :          idata = idata + 1
   14086     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14087     3798307 :          full_data(idata) = data_tmp
   14088     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14089     3798307 :          idata = idata + 1
   14090     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14091     3798307 :          full_data(idata) = data_tmp
   14092     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14093     3798307 :          idata = idata + 1
   14094     3798307 :          data_tmp = ISHFT(pack_tmp, 12)
   14095     3798307 :          ipack = ipack + 1
   14096     3798307 :          pack_tmp = packed_data(ipack)
   14097     3798307 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   14098     3798307 :          pack_tmp = ISHFT(pack_tmp, -12)
   14099     3798307 :          idata = idata + 1
   14100     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14101     3798307 :          full_data(idata) = data_tmp
   14102     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14103     3798307 :          idata = idata + 1
   14104     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14105     3798307 :          full_data(idata) = data_tmp
   14106     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14107     3798307 :          idata = idata + 1
   14108     3798307 :          data_tmp = ISHFT(pack_tmp, 8)
   14109     3798307 :          ipack = ipack + 1
   14110     3798307 :          pack_tmp = packed_data(ipack)
   14111     3798307 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   14112     3798307 :          pack_tmp = ISHFT(pack_tmp, -8)
   14113     3798307 :          idata = idata + 1
   14114     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14115     3798307 :          full_data(idata) = data_tmp
   14116     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14117     3798307 :          idata = idata + 1
   14118     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14119     3798307 :          full_data(idata) = data_tmp
   14120     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14121     3798307 :          idata = idata + 1
   14122     3798307 :          data_tmp = ISHFT(pack_tmp, 4)
   14123     3798307 :          ipack = ipack + 1
   14124     3798307 :          pack_tmp = packed_data(ipack)
   14125     3798307 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   14126     3798307 :          pack_tmp = ISHFT(pack_tmp, -4)
   14127     3798307 :          idata = idata + 1
   14128     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14129     3798307 :          full_data(idata) = data_tmp
   14130     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14131     3798307 :          idata = idata + 1
   14132     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14133     3798307 :          full_data(idata) = data_tmp
   14134     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14135     3798307 :          idata = idata + 1
   14136     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14137     3798307 :          full_data(idata) = data_tmp
   14138     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14139     3798307 :          idata = idata + 1
   14140     3798307 :          data_tmp = ISHFT(pack_tmp, 20)
   14141     3798307 :          ipack = ipack + 1
   14142     3798307 :          pack_tmp = packed_data(ipack)
   14143     3798307 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   14144     3798307 :          pack_tmp = ISHFT(pack_tmp, -20)
   14145     3798307 :          idata = idata + 1
   14146     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14147     3798307 :          full_data(idata) = data_tmp
   14148     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14149     3798307 :          idata = idata + 1
   14150     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14151     3798307 :          full_data(idata) = data_tmp
   14152     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14153     3798307 :          idata = idata + 1
   14154     3798307 :          data_tmp = ISHFT(pack_tmp, 16)
   14155     3798307 :          ipack = ipack + 1
   14156     3798307 :          pack_tmp = packed_data(ipack)
   14157     3798307 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   14158     3798307 :          pack_tmp = ISHFT(pack_tmp, -16)
   14159     3798307 :          idata = idata + 1
   14160     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14161     3798307 :          full_data(idata) = data_tmp
   14162     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14163     3798307 :          idata = idata + 1
   14164     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14165     3798307 :          full_data(idata) = data_tmp
   14166     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14167     3798307 :          idata = idata + 1
   14168     3798307 :          data_tmp = ISHFT(pack_tmp, 12)
   14169     3798307 :          ipack = ipack + 1
   14170     3798307 :          pack_tmp = packed_data(ipack)
   14171     3798307 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   14172     3798307 :          pack_tmp = ISHFT(pack_tmp, -12)
   14173     3798307 :          idata = idata + 1
   14174     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14175     3798307 :          full_data(idata) = data_tmp
   14176     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14177     3798307 :          idata = idata + 1
   14178     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14179     3798307 :          full_data(idata) = data_tmp
   14180     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14181     3798307 :          idata = idata + 1
   14182     3798307 :          data_tmp = ISHFT(pack_tmp, 8)
   14183     3798307 :          ipack = ipack + 1
   14184     3798307 :          pack_tmp = packed_data(ipack)
   14185     3798307 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   14186     3798307 :          pack_tmp = ISHFT(pack_tmp, -8)
   14187     3798307 :          idata = idata + 1
   14188     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14189     3798307 :          full_data(idata) = data_tmp
   14190     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14191     3798307 :          idata = idata + 1
   14192     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14193     3798307 :          full_data(idata) = data_tmp
   14194     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14195     3798307 :          idata = idata + 1
   14196     3798307 :          data_tmp = ISHFT(pack_tmp, 4)
   14197     3798307 :          ipack = ipack + 1
   14198     3798307 :          pack_tmp = packed_data(ipack)
   14199     3798307 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   14200     3798307 :          pack_tmp = ISHFT(pack_tmp, -4)
   14201     3798307 :          idata = idata + 1
   14202     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14203     3798307 :          full_data(idata) = data_tmp
   14204     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14205     3798307 :          idata = idata + 1
   14206     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14207     3798307 :          full_data(idata) = data_tmp
   14208     3798307 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14209     3798307 :          idata = idata + 1
   14210     3798307 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14211     3798307 :          full_data(idata) = data_tmp
   14212     3802172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14213             :       END DO
   14214      283120 :       IF (Ndata_rep < Ndata) THEN
   14215       77434 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   14216             :       END IF
   14217      283120 :    END SUBROUTINE bits2ints_20
   14218             : 
   14219             : ! **************************************************************************************************
   14220             : !> \brief ...
   14221             : !> \param Ndata ...
   14222             : !> \param packed_data ...
   14223             : !> \param full_data ...
   14224             : ! **************************************************************************************************
   14225       29420 :    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       29420 :       idata = 0
   14236       29420 :       ipack = 0
   14237       29420 :       Ndata_rep = (Ndata/64)*64
   14238       29420 :       DO kdata = 1, Ndata_rep, 64
   14239      448144 :          pack_tmp = 0
   14240      448144 :          idata = idata + 1
   14241      448144 :          data_tmp = full_data(idata)
   14242      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14243      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14244      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14245      448144 :          idata = idata + 1
   14246      448144 :          data_tmp = full_data(idata)
   14247      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14248      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14249      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14250      448144 :          idata = idata + 1
   14251      448144 :          data_tmp = full_data(idata)
   14252      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14253      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14254      448144 :          pack_tmp = ISHFT(pack_tmp, -1)
   14255      448144 :          idata = idata + 1
   14256      448144 :          data_tmp = full_data(idata)
   14257      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14258      448144 :          data_tmp = IAND(data_tmp, mask_left(1))
   14259      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14260      448144 :          ipack = ipack + 1
   14261      448144 :          packed_data(ipack) = pack_tmp
   14262      448144 :          data_tmp = full_data(idata)
   14263      448144 :          pack_tmp = ISHFT(data_tmp, 44)
   14264      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14265      448144 :          idata = idata + 1
   14266      448144 :          data_tmp = full_data(idata)
   14267      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14268      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14269      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14270      448144 :          idata = idata + 1
   14271      448144 :          data_tmp = full_data(idata)
   14272      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14273      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14274      448144 :          pack_tmp = ISHFT(pack_tmp, -2)
   14275      448144 :          idata = idata + 1
   14276      448144 :          data_tmp = full_data(idata)
   14277      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14278      448144 :          data_tmp = IAND(data_tmp, mask_left(2))
   14279      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14280      448144 :          ipack = ipack + 1
   14281      448144 :          packed_data(ipack) = pack_tmp
   14282      448144 :          data_tmp = full_data(idata)
   14283      448144 :          pack_tmp = ISHFT(data_tmp, 45)
   14284      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14285      448144 :          idata = idata + 1
   14286      448144 :          data_tmp = full_data(idata)
   14287      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14288      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14289      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14290      448144 :          idata = idata + 1
   14291      448144 :          data_tmp = full_data(idata)
   14292      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14293      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14294      448144 :          pack_tmp = ISHFT(pack_tmp, -3)
   14295      448144 :          idata = idata + 1
   14296      448144 :          data_tmp = full_data(idata)
   14297      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14298      448144 :          data_tmp = IAND(data_tmp, mask_left(3))
   14299      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14300      448144 :          ipack = ipack + 1
   14301      448144 :          packed_data(ipack) = pack_tmp
   14302      448144 :          data_tmp = full_data(idata)
   14303      448144 :          pack_tmp = ISHFT(data_tmp, 46)
   14304      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14305      448144 :          idata = idata + 1
   14306      448144 :          data_tmp = full_data(idata)
   14307      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14308      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14309      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14310      448144 :          idata = idata + 1
   14311      448144 :          data_tmp = full_data(idata)
   14312      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14313      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14314      448144 :          pack_tmp = ISHFT(pack_tmp, -4)
   14315      448144 :          idata = idata + 1
   14316      448144 :          data_tmp = full_data(idata)
   14317      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14318      448144 :          data_tmp = IAND(data_tmp, mask_left(4))
   14319      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14320      448144 :          ipack = ipack + 1
   14321      448144 :          packed_data(ipack) = pack_tmp
   14322      448144 :          data_tmp = full_data(idata)
   14323      448144 :          pack_tmp = ISHFT(data_tmp, 47)
   14324      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14325      448144 :          idata = idata + 1
   14326      448144 :          data_tmp = full_data(idata)
   14327      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14328      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14329      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14330      448144 :          idata = idata + 1
   14331      448144 :          data_tmp = full_data(idata)
   14332      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14333      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14334      448144 :          pack_tmp = ISHFT(pack_tmp, -5)
   14335      448144 :          idata = idata + 1
   14336      448144 :          data_tmp = full_data(idata)
   14337      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14338      448144 :          data_tmp = IAND(data_tmp, mask_left(5))
   14339      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14340      448144 :          ipack = ipack + 1
   14341      448144 :          packed_data(ipack) = pack_tmp
   14342      448144 :          data_tmp = full_data(idata)
   14343      448144 :          pack_tmp = ISHFT(data_tmp, 48)
   14344      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14345      448144 :          idata = idata + 1
   14346      448144 :          data_tmp = full_data(idata)
   14347      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14348      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14349      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14350      448144 :          idata = idata + 1
   14351      448144 :          data_tmp = full_data(idata)
   14352      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14353      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14354      448144 :          pack_tmp = ISHFT(pack_tmp, -6)
   14355      448144 :          idata = idata + 1
   14356      448144 :          data_tmp = full_data(idata)
   14357      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14358      448144 :          data_tmp = IAND(data_tmp, mask_left(6))
   14359      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14360      448144 :          ipack = ipack + 1
   14361      448144 :          packed_data(ipack) = pack_tmp
   14362      448144 :          data_tmp = full_data(idata)
   14363      448144 :          pack_tmp = ISHFT(data_tmp, 49)
   14364      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14365      448144 :          idata = idata + 1
   14366      448144 :          data_tmp = full_data(idata)
   14367      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14368      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14369      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14370      448144 :          idata = idata + 1
   14371      448144 :          data_tmp = full_data(idata)
   14372      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14373      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14374      448144 :          pack_tmp = ISHFT(pack_tmp, -7)
   14375      448144 :          idata = idata + 1
   14376      448144 :          data_tmp = full_data(idata)
   14377      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14378      448144 :          data_tmp = IAND(data_tmp, mask_left(7))
   14379      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14380      448144 :          ipack = ipack + 1
   14381      448144 :          packed_data(ipack) = pack_tmp
   14382      448144 :          data_tmp = full_data(idata)
   14383      448144 :          pack_tmp = ISHFT(data_tmp, 50)
   14384      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14385      448144 :          idata = idata + 1
   14386      448144 :          data_tmp = full_data(idata)
   14387      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14388      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14389      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14390      448144 :          idata = idata + 1
   14391      448144 :          data_tmp = full_data(idata)
   14392      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14393      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14394      448144 :          pack_tmp = ISHFT(pack_tmp, -8)
   14395      448144 :          idata = idata + 1
   14396      448144 :          data_tmp = full_data(idata)
   14397      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14398      448144 :          data_tmp = IAND(data_tmp, mask_left(8))
   14399      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14400      448144 :          ipack = ipack + 1
   14401      448144 :          packed_data(ipack) = pack_tmp
   14402      448144 :          data_tmp = full_data(idata)
   14403      448144 :          pack_tmp = ISHFT(data_tmp, 51)
   14404      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14405      448144 :          idata = idata + 1
   14406      448144 :          data_tmp = full_data(idata)
   14407      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14408      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14409      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14410      448144 :          idata = idata + 1
   14411      448144 :          data_tmp = full_data(idata)
   14412      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14413      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14414      448144 :          pack_tmp = ISHFT(pack_tmp, -9)
   14415      448144 :          idata = idata + 1
   14416      448144 :          data_tmp = full_data(idata)
   14417      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14418      448144 :          data_tmp = IAND(data_tmp, mask_left(9))
   14419      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14420      448144 :          ipack = ipack + 1
   14421      448144 :          packed_data(ipack) = pack_tmp
   14422      448144 :          data_tmp = full_data(idata)
   14423      448144 :          pack_tmp = ISHFT(data_tmp, 52)
   14424      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14425      448144 :          idata = idata + 1
   14426      448144 :          data_tmp = full_data(idata)
   14427      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14428      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14429      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14430      448144 :          idata = idata + 1
   14431      448144 :          data_tmp = full_data(idata)
   14432      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14433      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14434      448144 :          pack_tmp = ISHFT(pack_tmp, -10)
   14435      448144 :          idata = idata + 1
   14436      448144 :          data_tmp = full_data(idata)
   14437      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14438      448144 :          data_tmp = IAND(data_tmp, mask_left(10))
   14439      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14440      448144 :          ipack = ipack + 1
   14441      448144 :          packed_data(ipack) = pack_tmp
   14442      448144 :          data_tmp = full_data(idata)
   14443      448144 :          pack_tmp = ISHFT(data_tmp, 53)
   14444      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14445      448144 :          idata = idata + 1
   14446      448144 :          data_tmp = full_data(idata)
   14447      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14448      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14449      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14450      448144 :          idata = idata + 1
   14451      448144 :          data_tmp = full_data(idata)
   14452      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14453      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14454      448144 :          pack_tmp = ISHFT(pack_tmp, -11)
   14455      448144 :          idata = idata + 1
   14456      448144 :          data_tmp = full_data(idata)
   14457      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14458      448144 :          data_tmp = IAND(data_tmp, mask_left(11))
   14459      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14460      448144 :          ipack = ipack + 1
   14461      448144 :          packed_data(ipack) = pack_tmp
   14462      448144 :          data_tmp = full_data(idata)
   14463      448144 :          pack_tmp = ISHFT(data_tmp, 54)
   14464      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14465      448144 :          idata = idata + 1
   14466      448144 :          data_tmp = full_data(idata)
   14467      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14468      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14469      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14470      448144 :          idata = idata + 1
   14471      448144 :          data_tmp = full_data(idata)
   14472      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14473      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14474      448144 :          pack_tmp = ISHFT(pack_tmp, -12)
   14475      448144 :          idata = idata + 1
   14476      448144 :          data_tmp = full_data(idata)
   14477      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14478      448144 :          data_tmp = IAND(data_tmp, mask_left(12))
   14479      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14480      448144 :          ipack = ipack + 1
   14481      448144 :          packed_data(ipack) = pack_tmp
   14482      448144 :          data_tmp = full_data(idata)
   14483      448144 :          pack_tmp = ISHFT(data_tmp, 55)
   14484      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14485      448144 :          idata = idata + 1
   14486      448144 :          data_tmp = full_data(idata)
   14487      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14488      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14489      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14490      448144 :          idata = idata + 1
   14491      448144 :          data_tmp = full_data(idata)
   14492      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14493      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14494      448144 :          pack_tmp = ISHFT(pack_tmp, -13)
   14495      448144 :          idata = idata + 1
   14496      448144 :          data_tmp = full_data(idata)
   14497      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14498      448144 :          data_tmp = IAND(data_tmp, mask_left(13))
   14499      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14500      448144 :          ipack = ipack + 1
   14501      448144 :          packed_data(ipack) = pack_tmp
   14502      448144 :          data_tmp = full_data(idata)
   14503      448144 :          pack_tmp = ISHFT(data_tmp, 56)
   14504      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14505      448144 :          idata = idata + 1
   14506      448144 :          data_tmp = full_data(idata)
   14507      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14508      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14509      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14510      448144 :          idata = idata + 1
   14511      448144 :          data_tmp = full_data(idata)
   14512      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14513      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14514      448144 :          pack_tmp = ISHFT(pack_tmp, -14)
   14515      448144 :          idata = idata + 1
   14516      448144 :          data_tmp = full_data(idata)
   14517      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14518      448144 :          data_tmp = IAND(data_tmp, mask_left(14))
   14519      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14520      448144 :          ipack = ipack + 1
   14521      448144 :          packed_data(ipack) = pack_tmp
   14522      448144 :          data_tmp = full_data(idata)
   14523      448144 :          pack_tmp = ISHFT(data_tmp, 57)
   14524      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14525      448144 :          idata = idata + 1
   14526      448144 :          data_tmp = full_data(idata)
   14527      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14528      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14529      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14530      448144 :          idata = idata + 1
   14531      448144 :          data_tmp = full_data(idata)
   14532      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14533      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14534      448144 :          pack_tmp = ISHFT(pack_tmp, -15)
   14535      448144 :          idata = idata + 1
   14536      448144 :          data_tmp = full_data(idata)
   14537      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14538      448144 :          data_tmp = IAND(data_tmp, mask_left(15))
   14539      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14540      448144 :          ipack = ipack + 1
   14541      448144 :          packed_data(ipack) = pack_tmp
   14542      448144 :          data_tmp = full_data(idata)
   14543      448144 :          pack_tmp = ISHFT(data_tmp, 58)
   14544      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14545      448144 :          idata = idata + 1
   14546      448144 :          data_tmp = full_data(idata)
   14547      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14548      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14549      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14550      448144 :          idata = idata + 1
   14551      448144 :          data_tmp = full_data(idata)
   14552      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14553      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14554      448144 :          pack_tmp = ISHFT(pack_tmp, -16)
   14555      448144 :          idata = idata + 1
   14556      448144 :          data_tmp = full_data(idata)
   14557      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14558      448144 :          data_tmp = IAND(data_tmp, mask_left(16))
   14559      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14560      448144 :          ipack = ipack + 1
   14561      448144 :          packed_data(ipack) = pack_tmp
   14562      448144 :          data_tmp = full_data(idata)
   14563      448144 :          pack_tmp = ISHFT(data_tmp, 59)
   14564      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14565      448144 :          idata = idata + 1
   14566      448144 :          data_tmp = full_data(idata)
   14567      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14568      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14569      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14570      448144 :          idata = idata + 1
   14571      448144 :          data_tmp = full_data(idata)
   14572      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14573      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14574      448144 :          pack_tmp = ISHFT(pack_tmp, -17)
   14575      448144 :          idata = idata + 1
   14576      448144 :          data_tmp = full_data(idata)
   14577      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14578      448144 :          data_tmp = IAND(data_tmp, mask_left(17))
   14579      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14580      448144 :          ipack = ipack + 1
   14581      448144 :          packed_data(ipack) = pack_tmp
   14582      448144 :          data_tmp = full_data(idata)
   14583      448144 :          pack_tmp = ISHFT(data_tmp, 60)
   14584      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14585      448144 :          idata = idata + 1
   14586      448144 :          data_tmp = full_data(idata)
   14587      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14588      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14589      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14590      448144 :          idata = idata + 1
   14591      448144 :          data_tmp = full_data(idata)
   14592      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14593      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14594      448144 :          pack_tmp = ISHFT(pack_tmp, -18)
   14595      448144 :          idata = idata + 1
   14596      448144 :          data_tmp = full_data(idata)
   14597      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14598      448144 :          data_tmp = IAND(data_tmp, mask_left(18))
   14599      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14600      448144 :          ipack = ipack + 1
   14601      448144 :          packed_data(ipack) = pack_tmp
   14602      448144 :          data_tmp = full_data(idata)
   14603      448144 :          pack_tmp = ISHFT(data_tmp, 61)
   14604      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14605      448144 :          idata = idata + 1
   14606      448144 :          data_tmp = full_data(idata)
   14607      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14608      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14609      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14610      448144 :          idata = idata + 1
   14611      448144 :          data_tmp = full_data(idata)
   14612      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14613      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14614      448144 :          pack_tmp = ISHFT(pack_tmp, -19)
   14615      448144 :          idata = idata + 1
   14616      448144 :          data_tmp = full_data(idata)
   14617      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14618      448144 :          data_tmp = IAND(data_tmp, mask_left(19))
   14619      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14620      448144 :          ipack = ipack + 1
   14621      448144 :          packed_data(ipack) = pack_tmp
   14622      448144 :          data_tmp = full_data(idata)
   14623      448144 :          pack_tmp = ISHFT(data_tmp, 62)
   14624      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14625      448144 :          idata = idata + 1
   14626      448144 :          data_tmp = full_data(idata)
   14627      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14628      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14629      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14630      448144 :          idata = idata + 1
   14631      448144 :          data_tmp = full_data(idata)
   14632      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14633      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14634      448144 :          pack_tmp = ISHFT(pack_tmp, -20)
   14635      448144 :          idata = idata + 1
   14636      448144 :          data_tmp = full_data(idata)
   14637      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14638      448144 :          data_tmp = IAND(data_tmp, mask_left(20))
   14639      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14640      448144 :          ipack = ipack + 1
   14641      448144 :          packed_data(ipack) = pack_tmp
   14642      448144 :          data_tmp = full_data(idata)
   14643      448144 :          pack_tmp = ISHFT(data_tmp, 63)
   14644      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14645      448144 :          idata = idata + 1
   14646      448144 :          data_tmp = full_data(idata)
   14647      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14648      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14649      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14650      448144 :          idata = idata + 1
   14651      448144 :          data_tmp = full_data(idata)
   14652      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14653      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14654      448144 :          pack_tmp = ISHFT(pack_tmp, -21)
   14655      448144 :          idata = idata + 1
   14656      448144 :          data_tmp = full_data(idata)
   14657      448144 :          data_tmp = ISHFT(data_tmp, 43)
   14658      448144 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14659             :          pack_tmp = ISHFT(pack_tmp, 0)
   14660      448144 :          pack_tmp = ISHFT(pack_tmp, 0)
   14661      448144 :          ipack = ipack + 1
   14662      448499 :          packed_data(ipack) = pack_tmp
   14663             :       END DO
   14664       29420 :       IF (Ndata_rep < Ndata) THEN
   14665        2656 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   14666             :       END IF
   14667       29420 :    END SUBROUTINE ints2bits_21
   14668             : 
   14669             : ! **************************************************************************************************
   14670             : !> \brief ...
   14671             : !> \param Ndata ...
   14672             : !> \param packed_data ...
   14673             : !> \param full_data ...
   14674             : ! **************************************************************************************************
   14675      150592 :    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      150592 :       ipack = 0
   14686      150592 :       idata = 0
   14687      150592 :       pack_tmp = 0
   14688      150592 :       Ndata_rep = (Ndata/64)*64
   14689      150592 :       DO kdata = 1, Ndata_rep, 64
   14690     2203772 :          idata = idata + 1
   14691     2203772 :          data_tmp = ISHFT(pack_tmp, 21)
   14692     2203772 :          ipack = ipack + 1
   14693     2203772 :          pack_tmp = packed_data(ipack)
   14694     2203772 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   14695     2203772 :          pack_tmp = ISHFT(pack_tmp, -21)
   14696     2203772 :          idata = idata + 1
   14697     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14698     2203772 :          full_data(idata) = data_tmp
   14699     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14700     2203772 :          idata = idata + 1
   14701     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14702     2203772 :          full_data(idata) = data_tmp
   14703     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14704     2203772 :          idata = idata + 1
   14705     2203772 :          data_tmp = ISHFT(pack_tmp, 20)
   14706     2203772 :          ipack = ipack + 1
   14707     2203772 :          pack_tmp = packed_data(ipack)
   14708     2203772 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   14709     2203772 :          pack_tmp = ISHFT(pack_tmp, -20)
   14710     2203772 :          idata = idata + 1
   14711     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14712     2203772 :          full_data(idata) = data_tmp
   14713     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14714     2203772 :          idata = idata + 1
   14715     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14716     2203772 :          full_data(idata) = data_tmp
   14717     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14718     2203772 :          idata = idata + 1
   14719     2203772 :          data_tmp = ISHFT(pack_tmp, 19)
   14720     2203772 :          ipack = ipack + 1
   14721     2203772 :          pack_tmp = packed_data(ipack)
   14722     2203772 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   14723     2203772 :          pack_tmp = ISHFT(pack_tmp, -19)
   14724     2203772 :          idata = idata + 1
   14725     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14726     2203772 :          full_data(idata) = data_tmp
   14727     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14728     2203772 :          idata = idata + 1
   14729     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14730     2203772 :          full_data(idata) = data_tmp
   14731     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14732     2203772 :          idata = idata + 1
   14733     2203772 :          data_tmp = ISHFT(pack_tmp, 18)
   14734     2203772 :          ipack = ipack + 1
   14735     2203772 :          pack_tmp = packed_data(ipack)
   14736     2203772 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   14737     2203772 :          pack_tmp = ISHFT(pack_tmp, -18)
   14738     2203772 :          idata = idata + 1
   14739     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14740     2203772 :          full_data(idata) = data_tmp
   14741     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14742     2203772 :          idata = idata + 1
   14743     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14744     2203772 :          full_data(idata) = data_tmp
   14745     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14746     2203772 :          idata = idata + 1
   14747     2203772 :          data_tmp = ISHFT(pack_tmp, 17)
   14748     2203772 :          ipack = ipack + 1
   14749     2203772 :          pack_tmp = packed_data(ipack)
   14750     2203772 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   14751     2203772 :          pack_tmp = ISHFT(pack_tmp, -17)
   14752     2203772 :          idata = idata + 1
   14753     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14754     2203772 :          full_data(idata) = data_tmp
   14755     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14756     2203772 :          idata = idata + 1
   14757     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14758     2203772 :          full_data(idata) = data_tmp
   14759     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14760     2203772 :          idata = idata + 1
   14761     2203772 :          data_tmp = ISHFT(pack_tmp, 16)
   14762     2203772 :          ipack = ipack + 1
   14763     2203772 :          pack_tmp = packed_data(ipack)
   14764     2203772 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   14765     2203772 :          pack_tmp = ISHFT(pack_tmp, -16)
   14766     2203772 :          idata = idata + 1
   14767     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14768     2203772 :          full_data(idata) = data_tmp
   14769     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14770     2203772 :          idata = idata + 1
   14771     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14772     2203772 :          full_data(idata) = data_tmp
   14773     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14774     2203772 :          idata = idata + 1
   14775     2203772 :          data_tmp = ISHFT(pack_tmp, 15)
   14776     2203772 :          ipack = ipack + 1
   14777     2203772 :          pack_tmp = packed_data(ipack)
   14778     2203772 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   14779     2203772 :          pack_tmp = ISHFT(pack_tmp, -15)
   14780     2203772 :          idata = idata + 1
   14781     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14782     2203772 :          full_data(idata) = data_tmp
   14783     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14784     2203772 :          idata = idata + 1
   14785     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14786     2203772 :          full_data(idata) = data_tmp
   14787     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14788     2203772 :          idata = idata + 1
   14789     2203772 :          data_tmp = ISHFT(pack_tmp, 14)
   14790     2203772 :          ipack = ipack + 1
   14791     2203772 :          pack_tmp = packed_data(ipack)
   14792     2203772 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   14793     2203772 :          pack_tmp = ISHFT(pack_tmp, -14)
   14794     2203772 :          idata = idata + 1
   14795     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14796     2203772 :          full_data(idata) = data_tmp
   14797     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14798     2203772 :          idata = idata + 1
   14799     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14800     2203772 :          full_data(idata) = data_tmp
   14801     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14802     2203772 :          idata = idata + 1
   14803     2203772 :          data_tmp = ISHFT(pack_tmp, 13)
   14804     2203772 :          ipack = ipack + 1
   14805     2203772 :          pack_tmp = packed_data(ipack)
   14806     2203772 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   14807     2203772 :          pack_tmp = ISHFT(pack_tmp, -13)
   14808     2203772 :          idata = idata + 1
   14809     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14810     2203772 :          full_data(idata) = data_tmp
   14811     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14812     2203772 :          idata = idata + 1
   14813     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14814     2203772 :          full_data(idata) = data_tmp
   14815     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14816     2203772 :          idata = idata + 1
   14817     2203772 :          data_tmp = ISHFT(pack_tmp, 12)
   14818     2203772 :          ipack = ipack + 1
   14819     2203772 :          pack_tmp = packed_data(ipack)
   14820     2203772 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   14821     2203772 :          pack_tmp = ISHFT(pack_tmp, -12)
   14822     2203772 :          idata = idata + 1
   14823     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14824     2203772 :          full_data(idata) = data_tmp
   14825     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14826     2203772 :          idata = idata + 1
   14827     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14828     2203772 :          full_data(idata) = data_tmp
   14829     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14830     2203772 :          idata = idata + 1
   14831     2203772 :          data_tmp = ISHFT(pack_tmp, 11)
   14832     2203772 :          ipack = ipack + 1
   14833     2203772 :          pack_tmp = packed_data(ipack)
   14834     2203772 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   14835     2203772 :          pack_tmp = ISHFT(pack_tmp, -11)
   14836     2203772 :          idata = idata + 1
   14837     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14838     2203772 :          full_data(idata) = data_tmp
   14839     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14840     2203772 :          idata = idata + 1
   14841     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14842     2203772 :          full_data(idata) = data_tmp
   14843     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14844     2203772 :          idata = idata + 1
   14845     2203772 :          data_tmp = ISHFT(pack_tmp, 10)
   14846     2203772 :          ipack = ipack + 1
   14847     2203772 :          pack_tmp = packed_data(ipack)
   14848     2203772 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   14849     2203772 :          pack_tmp = ISHFT(pack_tmp, -10)
   14850     2203772 :          idata = idata + 1
   14851     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14852     2203772 :          full_data(idata) = data_tmp
   14853     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14854     2203772 :          idata = idata + 1
   14855     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14856     2203772 :          full_data(idata) = data_tmp
   14857     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14858     2203772 :          idata = idata + 1
   14859     2203772 :          data_tmp = ISHFT(pack_tmp, 9)
   14860     2203772 :          ipack = ipack + 1
   14861     2203772 :          pack_tmp = packed_data(ipack)
   14862     2203772 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   14863     2203772 :          pack_tmp = ISHFT(pack_tmp, -9)
   14864     2203772 :          idata = idata + 1
   14865     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14866     2203772 :          full_data(idata) = data_tmp
   14867     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14868     2203772 :          idata = idata + 1
   14869     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14870     2203772 :          full_data(idata) = data_tmp
   14871     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14872     2203772 :          idata = idata + 1
   14873     2203772 :          data_tmp = ISHFT(pack_tmp, 8)
   14874     2203772 :          ipack = ipack + 1
   14875     2203772 :          pack_tmp = packed_data(ipack)
   14876     2203772 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   14877     2203772 :          pack_tmp = ISHFT(pack_tmp, -8)
   14878     2203772 :          idata = idata + 1
   14879     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14880     2203772 :          full_data(idata) = data_tmp
   14881     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14882     2203772 :          idata = idata + 1
   14883     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14884     2203772 :          full_data(idata) = data_tmp
   14885     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14886     2203772 :          idata = idata + 1
   14887     2203772 :          data_tmp = ISHFT(pack_tmp, 7)
   14888     2203772 :          ipack = ipack + 1
   14889     2203772 :          pack_tmp = packed_data(ipack)
   14890     2203772 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   14891     2203772 :          pack_tmp = ISHFT(pack_tmp, -7)
   14892     2203772 :          idata = idata + 1
   14893     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14894     2203772 :          full_data(idata) = data_tmp
   14895     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14896     2203772 :          idata = idata + 1
   14897     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14898     2203772 :          full_data(idata) = data_tmp
   14899     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14900     2203772 :          idata = idata + 1
   14901     2203772 :          data_tmp = ISHFT(pack_tmp, 6)
   14902     2203772 :          ipack = ipack + 1
   14903     2203772 :          pack_tmp = packed_data(ipack)
   14904     2203772 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   14905     2203772 :          pack_tmp = ISHFT(pack_tmp, -6)
   14906     2203772 :          idata = idata + 1
   14907     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14908     2203772 :          full_data(idata) = data_tmp
   14909     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14910     2203772 :          idata = idata + 1
   14911     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14912     2203772 :          full_data(idata) = data_tmp
   14913     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14914     2203772 :          idata = idata + 1
   14915     2203772 :          data_tmp = ISHFT(pack_tmp, 5)
   14916     2203772 :          ipack = ipack + 1
   14917     2203772 :          pack_tmp = packed_data(ipack)
   14918     2203772 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   14919     2203772 :          pack_tmp = ISHFT(pack_tmp, -5)
   14920     2203772 :          idata = idata + 1
   14921     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14922     2203772 :          full_data(idata) = data_tmp
   14923     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14924     2203772 :          idata = idata + 1
   14925     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14926     2203772 :          full_data(idata) = data_tmp
   14927     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14928     2203772 :          idata = idata + 1
   14929     2203772 :          data_tmp = ISHFT(pack_tmp, 4)
   14930     2203772 :          ipack = ipack + 1
   14931     2203772 :          pack_tmp = packed_data(ipack)
   14932     2203772 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   14933     2203772 :          pack_tmp = ISHFT(pack_tmp, -4)
   14934     2203772 :          idata = idata + 1
   14935     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14936     2203772 :          full_data(idata) = data_tmp
   14937     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14938     2203772 :          idata = idata + 1
   14939     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14940     2203772 :          full_data(idata) = data_tmp
   14941     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14942     2203772 :          idata = idata + 1
   14943     2203772 :          data_tmp = ISHFT(pack_tmp, 3)
   14944     2203772 :          ipack = ipack + 1
   14945     2203772 :          pack_tmp = packed_data(ipack)
   14946     2203772 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   14947     2203772 :          pack_tmp = ISHFT(pack_tmp, -3)
   14948     2203772 :          idata = idata + 1
   14949     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14950     2203772 :          full_data(idata) = data_tmp
   14951     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14952     2203772 :          idata = idata + 1
   14953     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14954     2203772 :          full_data(idata) = data_tmp
   14955     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14956     2203772 :          idata = idata + 1
   14957     2203772 :          data_tmp = ISHFT(pack_tmp, 2)
   14958     2203772 :          ipack = ipack + 1
   14959     2203772 :          pack_tmp = packed_data(ipack)
   14960     2203772 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   14961     2203772 :          pack_tmp = ISHFT(pack_tmp, -2)
   14962     2203772 :          idata = idata + 1
   14963     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14964     2203772 :          full_data(idata) = data_tmp
   14965     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14966     2203772 :          idata = idata + 1
   14967     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14968     2203772 :          full_data(idata) = data_tmp
   14969     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14970     2203772 :          idata = idata + 1
   14971     2203772 :          data_tmp = ISHFT(pack_tmp, 1)
   14972     2203772 :          ipack = ipack + 1
   14973     2203772 :          pack_tmp = packed_data(ipack)
   14974     2203772 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   14975     2203772 :          pack_tmp = ISHFT(pack_tmp, -1)
   14976     2203772 :          idata = idata + 1
   14977     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14978     2203772 :          full_data(idata) = data_tmp
   14979     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14980     2203772 :          idata = idata + 1
   14981     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14982     2203772 :          full_data(idata) = data_tmp
   14983     2203772 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14984     2203772 :          idata = idata + 1
   14985     2203772 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14986     2203772 :          full_data(idata) = data_tmp
   14987     2207195 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14988             :       END DO
   14989      150592 :       IF (Ndata_rep < Ndata) THEN
   14990       24200 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   14991             :       END IF
   14992      150592 :    END SUBROUTINE bits2ints_21
   14993             : 
   14994             : ! **************************************************************************************************
   14995             : !> \brief ...
   14996             : !> \param Ndata ...
   14997             : !> \param packed_data ...
   14998             : !> \param full_data ...
   14999             : ! **************************************************************************************************
   15000       29277 :    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       29277 :       idata = 0
   15011       29277 :       ipack = 0
   15012       29277 :       Ndata_rep = (Ndata/64)*64
   15013       29277 :       DO kdata = 1, Ndata_rep, 64
   15014      444496 :          pack_tmp = 0
   15015      444496 :          idata = idata + 1
   15016      444496 :          data_tmp = full_data(idata)
   15017      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15018      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15019      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15020      444496 :          idata = idata + 1
   15021      444496 :          data_tmp = full_data(idata)
   15022      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15023      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15024      444496 :          pack_tmp = ISHFT(pack_tmp, -20)
   15025      444496 :          idata = idata + 1
   15026      444496 :          data_tmp = full_data(idata)
   15027      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15028      444496 :          data_tmp = IAND(data_tmp, mask_left(20))
   15029      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15030      444496 :          ipack = ipack + 1
   15031      444496 :          packed_data(ipack) = pack_tmp
   15032      444496 :          data_tmp = full_data(idata)
   15033      444496 :          pack_tmp = ISHFT(data_tmp, 62)
   15034      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15035      444496 :          idata = idata + 1
   15036      444496 :          data_tmp = full_data(idata)
   15037      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15038      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15039      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15040      444496 :          idata = idata + 1
   15041      444496 :          data_tmp = full_data(idata)
   15042      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15043      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15044      444496 :          pack_tmp = ISHFT(pack_tmp, -18)
   15045      444496 :          idata = idata + 1
   15046      444496 :          data_tmp = full_data(idata)
   15047      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15048      444496 :          data_tmp = IAND(data_tmp, mask_left(18))
   15049      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15050      444496 :          ipack = ipack + 1
   15051      444496 :          packed_data(ipack) = pack_tmp
   15052      444496 :          data_tmp = full_data(idata)
   15053      444496 :          pack_tmp = ISHFT(data_tmp, 60)
   15054      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15055      444496 :          idata = idata + 1
   15056      444496 :          data_tmp = full_data(idata)
   15057      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15058      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15059      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15060      444496 :          idata = idata + 1
   15061      444496 :          data_tmp = full_data(idata)
   15062      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15063      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15064      444496 :          pack_tmp = ISHFT(pack_tmp, -16)
   15065      444496 :          idata = idata + 1
   15066      444496 :          data_tmp = full_data(idata)
   15067      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15068      444496 :          data_tmp = IAND(data_tmp, mask_left(16))
   15069      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15070      444496 :          ipack = ipack + 1
   15071      444496 :          packed_data(ipack) = pack_tmp
   15072      444496 :          data_tmp = full_data(idata)
   15073      444496 :          pack_tmp = ISHFT(data_tmp, 58)
   15074      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15075      444496 :          idata = idata + 1
   15076      444496 :          data_tmp = full_data(idata)
   15077      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15078      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15079      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15080      444496 :          idata = idata + 1
   15081      444496 :          data_tmp = full_data(idata)
   15082      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15083      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15084      444496 :          pack_tmp = ISHFT(pack_tmp, -14)
   15085      444496 :          idata = idata + 1
   15086      444496 :          data_tmp = full_data(idata)
   15087      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15088      444496 :          data_tmp = IAND(data_tmp, mask_left(14))
   15089      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15090      444496 :          ipack = ipack + 1
   15091      444496 :          packed_data(ipack) = pack_tmp
   15092      444496 :          data_tmp = full_data(idata)
   15093      444496 :          pack_tmp = ISHFT(data_tmp, 56)
   15094      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15095      444496 :          idata = idata + 1
   15096      444496 :          data_tmp = full_data(idata)
   15097      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15098      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15099      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15100      444496 :          idata = idata + 1
   15101      444496 :          data_tmp = full_data(idata)
   15102      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15103      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15104      444496 :          pack_tmp = ISHFT(pack_tmp, -12)
   15105      444496 :          idata = idata + 1
   15106      444496 :          data_tmp = full_data(idata)
   15107      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15108      444496 :          data_tmp = IAND(data_tmp, mask_left(12))
   15109      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15110      444496 :          ipack = ipack + 1
   15111      444496 :          packed_data(ipack) = pack_tmp
   15112      444496 :          data_tmp = full_data(idata)
   15113      444496 :          pack_tmp = ISHFT(data_tmp, 54)
   15114      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15115      444496 :          idata = idata + 1
   15116      444496 :          data_tmp = full_data(idata)
   15117      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15118      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15119      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15120      444496 :          idata = idata + 1
   15121      444496 :          data_tmp = full_data(idata)
   15122      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15123      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15124      444496 :          pack_tmp = ISHFT(pack_tmp, -10)
   15125      444496 :          idata = idata + 1
   15126      444496 :          data_tmp = full_data(idata)
   15127      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15128      444496 :          data_tmp = IAND(data_tmp, mask_left(10))
   15129      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15130      444496 :          ipack = ipack + 1
   15131      444496 :          packed_data(ipack) = pack_tmp
   15132      444496 :          data_tmp = full_data(idata)
   15133      444496 :          pack_tmp = ISHFT(data_tmp, 52)
   15134      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15135      444496 :          idata = idata + 1
   15136      444496 :          data_tmp = full_data(idata)
   15137      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15138      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15139      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15140      444496 :          idata = idata + 1
   15141      444496 :          data_tmp = full_data(idata)
   15142      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15143      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15144      444496 :          pack_tmp = ISHFT(pack_tmp, -8)
   15145      444496 :          idata = idata + 1
   15146      444496 :          data_tmp = full_data(idata)
   15147      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15148      444496 :          data_tmp = IAND(data_tmp, mask_left(8))
   15149      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15150      444496 :          ipack = ipack + 1
   15151      444496 :          packed_data(ipack) = pack_tmp
   15152      444496 :          data_tmp = full_data(idata)
   15153      444496 :          pack_tmp = ISHFT(data_tmp, 50)
   15154      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15155      444496 :          idata = idata + 1
   15156      444496 :          data_tmp = full_data(idata)
   15157      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15158      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15159      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15160      444496 :          idata = idata + 1
   15161      444496 :          data_tmp = full_data(idata)
   15162      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15163      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15164      444496 :          pack_tmp = ISHFT(pack_tmp, -6)
   15165      444496 :          idata = idata + 1
   15166      444496 :          data_tmp = full_data(idata)
   15167      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15168      444496 :          data_tmp = IAND(data_tmp, mask_left(6))
   15169      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15170      444496 :          ipack = ipack + 1
   15171      444496 :          packed_data(ipack) = pack_tmp
   15172      444496 :          data_tmp = full_data(idata)
   15173      444496 :          pack_tmp = ISHFT(data_tmp, 48)
   15174      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15175      444496 :          idata = idata + 1
   15176      444496 :          data_tmp = full_data(idata)
   15177      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15178      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15179      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15180      444496 :          idata = idata + 1
   15181      444496 :          data_tmp = full_data(idata)
   15182      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15183      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15184      444496 :          pack_tmp = ISHFT(pack_tmp, -4)
   15185      444496 :          idata = idata + 1
   15186      444496 :          data_tmp = full_data(idata)
   15187      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15188      444496 :          data_tmp = IAND(data_tmp, mask_left(4))
   15189      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15190      444496 :          ipack = ipack + 1
   15191      444496 :          packed_data(ipack) = pack_tmp
   15192      444496 :          data_tmp = full_data(idata)
   15193      444496 :          pack_tmp = ISHFT(data_tmp, 46)
   15194      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15195      444496 :          idata = idata + 1
   15196      444496 :          data_tmp = full_data(idata)
   15197      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15198      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15199      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15200      444496 :          idata = idata + 1
   15201      444496 :          data_tmp = full_data(idata)
   15202      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15203      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15204      444496 :          pack_tmp = ISHFT(pack_tmp, -2)
   15205      444496 :          idata = idata + 1
   15206      444496 :          data_tmp = full_data(idata)
   15207      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15208      444496 :          data_tmp = IAND(data_tmp, mask_left(2))
   15209      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15210      444496 :          ipack = ipack + 1
   15211      444496 :          packed_data(ipack) = pack_tmp
   15212      444496 :          data_tmp = full_data(idata)
   15213      444496 :          pack_tmp = ISHFT(data_tmp, 44)
   15214      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15215      444496 :          idata = idata + 1
   15216      444496 :          data_tmp = full_data(idata)
   15217      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15218      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15219      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15220      444496 :          idata = idata + 1
   15221      444496 :          data_tmp = full_data(idata)
   15222      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15223      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15224      444496 :          pack_tmp = ISHFT(pack_tmp, 0)
   15225      444496 :          idata = idata + 1
   15226      444496 :          data_tmp = full_data(idata)
   15227             :          data_tmp = ISHFT(data_tmp, 42)
   15228      444496 :          data_tmp = IAND(data_tmp, mask_left(0))
   15229      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15230      444496 :          ipack = ipack + 1
   15231      444496 :          packed_data(ipack) = pack_tmp
   15232      444496 :          data_tmp = full_data(idata)
   15233      444496 :          pack_tmp = ISHFT(data_tmp, 42)
   15234      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15235      444496 :          idata = idata + 1
   15236      444496 :          data_tmp = full_data(idata)
   15237      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15238      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15239      444496 :          pack_tmp = ISHFT(pack_tmp, -20)
   15240      444496 :          idata = idata + 1
   15241      444496 :          data_tmp = full_data(idata)
   15242      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15243      444496 :          data_tmp = IAND(data_tmp, mask_left(20))
   15244      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15245      444496 :          ipack = ipack + 1
   15246      444496 :          packed_data(ipack) = pack_tmp
   15247      444496 :          data_tmp = full_data(idata)
   15248      444496 :          pack_tmp = ISHFT(data_tmp, 62)
   15249      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15250      444496 :          idata = idata + 1
   15251      444496 :          data_tmp = full_data(idata)
   15252      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15253      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15254      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15255      444496 :          idata = idata + 1
   15256      444496 :          data_tmp = full_data(idata)
   15257      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15258      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15259      444496 :          pack_tmp = ISHFT(pack_tmp, -18)
   15260      444496 :          idata = idata + 1
   15261      444496 :          data_tmp = full_data(idata)
   15262      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15263      444496 :          data_tmp = IAND(data_tmp, mask_left(18))
   15264      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15265      444496 :          ipack = ipack + 1
   15266      444496 :          packed_data(ipack) = pack_tmp
   15267      444496 :          data_tmp = full_data(idata)
   15268      444496 :          pack_tmp = ISHFT(data_tmp, 60)
   15269      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15270      444496 :          idata = idata + 1
   15271      444496 :          data_tmp = full_data(idata)
   15272      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15273      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15274      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15275      444496 :          idata = idata + 1
   15276      444496 :          data_tmp = full_data(idata)
   15277      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15278      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15279      444496 :          pack_tmp = ISHFT(pack_tmp, -16)
   15280      444496 :          idata = idata + 1
   15281      444496 :          data_tmp = full_data(idata)
   15282      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15283      444496 :          data_tmp = IAND(data_tmp, mask_left(16))
   15284      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15285      444496 :          ipack = ipack + 1
   15286      444496 :          packed_data(ipack) = pack_tmp
   15287      444496 :          data_tmp = full_data(idata)
   15288      444496 :          pack_tmp = ISHFT(data_tmp, 58)
   15289      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15290      444496 :          idata = idata + 1
   15291      444496 :          data_tmp = full_data(idata)
   15292      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15293      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15294      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15295      444496 :          idata = idata + 1
   15296      444496 :          data_tmp = full_data(idata)
   15297      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15298      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15299      444496 :          pack_tmp = ISHFT(pack_tmp, -14)
   15300      444496 :          idata = idata + 1
   15301      444496 :          data_tmp = full_data(idata)
   15302      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15303      444496 :          data_tmp = IAND(data_tmp, mask_left(14))
   15304      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15305      444496 :          ipack = ipack + 1
   15306      444496 :          packed_data(ipack) = pack_tmp
   15307      444496 :          data_tmp = full_data(idata)
   15308      444496 :          pack_tmp = ISHFT(data_tmp, 56)
   15309      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15310      444496 :          idata = idata + 1
   15311      444496 :          data_tmp = full_data(idata)
   15312      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15313      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15314      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15315      444496 :          idata = idata + 1
   15316      444496 :          data_tmp = full_data(idata)
   15317      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15318      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15319      444496 :          pack_tmp = ISHFT(pack_tmp, -12)
   15320      444496 :          idata = idata + 1
   15321      444496 :          data_tmp = full_data(idata)
   15322      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15323      444496 :          data_tmp = IAND(data_tmp, mask_left(12))
   15324      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15325      444496 :          ipack = ipack + 1
   15326      444496 :          packed_data(ipack) = pack_tmp
   15327      444496 :          data_tmp = full_data(idata)
   15328      444496 :          pack_tmp = ISHFT(data_tmp, 54)
   15329      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15330      444496 :          idata = idata + 1
   15331      444496 :          data_tmp = full_data(idata)
   15332      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15333      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15334      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15335      444496 :          idata = idata + 1
   15336      444496 :          data_tmp = full_data(idata)
   15337      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15338      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15339      444496 :          pack_tmp = ISHFT(pack_tmp, -10)
   15340      444496 :          idata = idata + 1
   15341      444496 :          data_tmp = full_data(idata)
   15342      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15343      444496 :          data_tmp = IAND(data_tmp, mask_left(10))
   15344      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15345      444496 :          ipack = ipack + 1
   15346      444496 :          packed_data(ipack) = pack_tmp
   15347      444496 :          data_tmp = full_data(idata)
   15348      444496 :          pack_tmp = ISHFT(data_tmp, 52)
   15349      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15350      444496 :          idata = idata + 1
   15351      444496 :          data_tmp = full_data(idata)
   15352      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15353      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15354      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15355      444496 :          idata = idata + 1
   15356      444496 :          data_tmp = full_data(idata)
   15357      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15358      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15359      444496 :          pack_tmp = ISHFT(pack_tmp, -8)
   15360      444496 :          idata = idata + 1
   15361      444496 :          data_tmp = full_data(idata)
   15362      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15363      444496 :          data_tmp = IAND(data_tmp, mask_left(8))
   15364      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15365      444496 :          ipack = ipack + 1
   15366      444496 :          packed_data(ipack) = pack_tmp
   15367      444496 :          data_tmp = full_data(idata)
   15368      444496 :          pack_tmp = ISHFT(data_tmp, 50)
   15369      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15370      444496 :          idata = idata + 1
   15371      444496 :          data_tmp = full_data(idata)
   15372      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15373      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15374      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15375      444496 :          idata = idata + 1
   15376      444496 :          data_tmp = full_data(idata)
   15377      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15378      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15379      444496 :          pack_tmp = ISHFT(pack_tmp, -6)
   15380      444496 :          idata = idata + 1
   15381      444496 :          data_tmp = full_data(idata)
   15382      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15383      444496 :          data_tmp = IAND(data_tmp, mask_left(6))
   15384      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15385      444496 :          ipack = ipack + 1
   15386      444496 :          packed_data(ipack) = pack_tmp
   15387      444496 :          data_tmp = full_data(idata)
   15388      444496 :          pack_tmp = ISHFT(data_tmp, 48)
   15389      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15390      444496 :          idata = idata + 1
   15391      444496 :          data_tmp = full_data(idata)
   15392      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15393      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15394      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15395      444496 :          idata = idata + 1
   15396      444496 :          data_tmp = full_data(idata)
   15397      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15398      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15399      444496 :          pack_tmp = ISHFT(pack_tmp, -4)
   15400      444496 :          idata = idata + 1
   15401      444496 :          data_tmp = full_data(idata)
   15402      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15403      444496 :          data_tmp = IAND(data_tmp, mask_left(4))
   15404      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15405      444496 :          ipack = ipack + 1
   15406      444496 :          packed_data(ipack) = pack_tmp
   15407      444496 :          data_tmp = full_data(idata)
   15408      444496 :          pack_tmp = ISHFT(data_tmp, 46)
   15409      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15410      444496 :          idata = idata + 1
   15411      444496 :          data_tmp = full_data(idata)
   15412      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15413      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15414      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15415      444496 :          idata = idata + 1
   15416      444496 :          data_tmp = full_data(idata)
   15417      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15418      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15419      444496 :          pack_tmp = ISHFT(pack_tmp, -2)
   15420      444496 :          idata = idata + 1
   15421      444496 :          data_tmp = full_data(idata)
   15422      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15423      444496 :          data_tmp = IAND(data_tmp, mask_left(2))
   15424      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15425      444496 :          ipack = ipack + 1
   15426      444496 :          packed_data(ipack) = pack_tmp
   15427      444496 :          data_tmp = full_data(idata)
   15428      444496 :          pack_tmp = ISHFT(data_tmp, 44)
   15429      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15430      444496 :          idata = idata + 1
   15431      444496 :          data_tmp = full_data(idata)
   15432      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15433      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15434      444496 :          pack_tmp = ISHFT(pack_tmp, -22)
   15435      444496 :          idata = idata + 1
   15436      444496 :          data_tmp = full_data(idata)
   15437      444496 :          data_tmp = ISHFT(data_tmp, 42)
   15438      444496 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15439             :          pack_tmp = ISHFT(pack_tmp, 0)
   15440      444496 :          pack_tmp = ISHFT(pack_tmp, 0)
   15441      444496 :          ipack = ipack + 1
   15442      444603 :          packed_data(ipack) = pack_tmp
   15443             :       END DO
   15444       29277 :       IF (Ndata_rep < Ndata) THEN
   15445        2816 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   15446             :       END IF
   15447       29277 :    END SUBROUTINE ints2bits_22
   15448             : 
   15449             : ! **************************************************************************************************
   15450             : !> \brief ...
   15451             : !> \param Ndata ...
   15452             : !> \param packed_data ...
   15453             : !> \param full_data ...
   15454             : ! **************************************************************************************************
   15455      150345 :    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      150345 :       ipack = 0
   15466      150345 :       idata = 0
   15467      150345 :       pack_tmp = 0
   15468      150345 :       Ndata_rep = (Ndata/64)*64
   15469      150345 :       DO kdata = 1, Ndata_rep, 64
   15470     2177448 :          idata = idata + 1
   15471     2177448 :          data_tmp = ISHFT(pack_tmp, 22)
   15472     2177448 :          ipack = ipack + 1
   15473     2177448 :          pack_tmp = packed_data(ipack)
   15474     2177448 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   15475     2177448 :          pack_tmp = ISHFT(pack_tmp, -22)
   15476     2177448 :          idata = idata + 1
   15477     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15478     2177448 :          full_data(idata) = data_tmp
   15479     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15480     2177448 :          idata = idata + 1
   15481     2177448 :          data_tmp = ISHFT(pack_tmp, 2)
   15482     2177448 :          ipack = ipack + 1
   15483     2177448 :          pack_tmp = packed_data(ipack)
   15484     2177448 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   15485     2177448 :          pack_tmp = ISHFT(pack_tmp, -2)
   15486     2177448 :          idata = idata + 1
   15487     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15488     2177448 :          full_data(idata) = data_tmp
   15489     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15490     2177448 :          idata = idata + 1
   15491     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15492     2177448 :          full_data(idata) = data_tmp
   15493     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15494     2177448 :          idata = idata + 1
   15495     2177448 :          data_tmp = ISHFT(pack_tmp, 4)
   15496     2177448 :          ipack = ipack + 1
   15497     2177448 :          pack_tmp = packed_data(ipack)
   15498     2177448 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   15499     2177448 :          pack_tmp = ISHFT(pack_tmp, -4)
   15500     2177448 :          idata = idata + 1
   15501     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15502     2177448 :          full_data(idata) = data_tmp
   15503     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15504     2177448 :          idata = idata + 1
   15505     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15506     2177448 :          full_data(idata) = data_tmp
   15507     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15508     2177448 :          idata = idata + 1
   15509     2177448 :          data_tmp = ISHFT(pack_tmp, 6)
   15510     2177448 :          ipack = ipack + 1
   15511     2177448 :          pack_tmp = packed_data(ipack)
   15512     2177448 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   15513     2177448 :          pack_tmp = ISHFT(pack_tmp, -6)
   15514     2177448 :          idata = idata + 1
   15515     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15516     2177448 :          full_data(idata) = data_tmp
   15517     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15518     2177448 :          idata = idata + 1
   15519     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15520     2177448 :          full_data(idata) = data_tmp
   15521     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15522     2177448 :          idata = idata + 1
   15523     2177448 :          data_tmp = ISHFT(pack_tmp, 8)
   15524     2177448 :          ipack = ipack + 1
   15525     2177448 :          pack_tmp = packed_data(ipack)
   15526     2177448 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   15527     2177448 :          pack_tmp = ISHFT(pack_tmp, -8)
   15528     2177448 :          idata = idata + 1
   15529     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15530     2177448 :          full_data(idata) = data_tmp
   15531     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15532     2177448 :          idata = idata + 1
   15533     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15534     2177448 :          full_data(idata) = data_tmp
   15535     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15536     2177448 :          idata = idata + 1
   15537     2177448 :          data_tmp = ISHFT(pack_tmp, 10)
   15538     2177448 :          ipack = ipack + 1
   15539     2177448 :          pack_tmp = packed_data(ipack)
   15540     2177448 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   15541     2177448 :          pack_tmp = ISHFT(pack_tmp, -10)
   15542     2177448 :          idata = idata + 1
   15543     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15544     2177448 :          full_data(idata) = data_tmp
   15545     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15546     2177448 :          idata = idata + 1
   15547     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15548     2177448 :          full_data(idata) = data_tmp
   15549     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15550     2177448 :          idata = idata + 1
   15551     2177448 :          data_tmp = ISHFT(pack_tmp, 12)
   15552     2177448 :          ipack = ipack + 1
   15553     2177448 :          pack_tmp = packed_data(ipack)
   15554     2177448 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   15555     2177448 :          pack_tmp = ISHFT(pack_tmp, -12)
   15556     2177448 :          idata = idata + 1
   15557     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15558     2177448 :          full_data(idata) = data_tmp
   15559     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15560     2177448 :          idata = idata + 1
   15561     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15562     2177448 :          full_data(idata) = data_tmp
   15563     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15564     2177448 :          idata = idata + 1
   15565     2177448 :          data_tmp = ISHFT(pack_tmp, 14)
   15566     2177448 :          ipack = ipack + 1
   15567     2177448 :          pack_tmp = packed_data(ipack)
   15568     2177448 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   15569     2177448 :          pack_tmp = ISHFT(pack_tmp, -14)
   15570     2177448 :          idata = idata + 1
   15571     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15572     2177448 :          full_data(idata) = data_tmp
   15573     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15574     2177448 :          idata = idata + 1
   15575     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15576     2177448 :          full_data(idata) = data_tmp
   15577     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15578     2177448 :          idata = idata + 1
   15579     2177448 :          data_tmp = ISHFT(pack_tmp, 16)
   15580     2177448 :          ipack = ipack + 1
   15581     2177448 :          pack_tmp = packed_data(ipack)
   15582     2177448 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   15583     2177448 :          pack_tmp = ISHFT(pack_tmp, -16)
   15584     2177448 :          idata = idata + 1
   15585     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15586     2177448 :          full_data(idata) = data_tmp
   15587     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15588     2177448 :          idata = idata + 1
   15589     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15590     2177448 :          full_data(idata) = data_tmp
   15591     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15592     2177448 :          idata = idata + 1
   15593     2177448 :          data_tmp = ISHFT(pack_tmp, 18)
   15594     2177448 :          ipack = ipack + 1
   15595     2177448 :          pack_tmp = packed_data(ipack)
   15596     2177448 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   15597     2177448 :          pack_tmp = ISHFT(pack_tmp, -18)
   15598     2177448 :          idata = idata + 1
   15599     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15600     2177448 :          full_data(idata) = data_tmp
   15601     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15602     2177448 :          idata = idata + 1
   15603     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15604     2177448 :          full_data(idata) = data_tmp
   15605     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15606     2177448 :          idata = idata + 1
   15607     2177448 :          data_tmp = ISHFT(pack_tmp, 20)
   15608     2177448 :          ipack = ipack + 1
   15609     2177448 :          pack_tmp = packed_data(ipack)
   15610     2177448 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   15611     2177448 :          pack_tmp = ISHFT(pack_tmp, -20)
   15612     2177448 :          idata = idata + 1
   15613     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15614     2177448 :          full_data(idata) = data_tmp
   15615     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15616     2177448 :          idata = idata + 1
   15617     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15618     2177448 :          full_data(idata) = data_tmp
   15619     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15620     2177448 :          idata = idata + 1
   15621     2177448 :          data_tmp = ISHFT(pack_tmp, 22)
   15622     2177448 :          ipack = ipack + 1
   15623     2177448 :          pack_tmp = packed_data(ipack)
   15624     2177448 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   15625     2177448 :          pack_tmp = ISHFT(pack_tmp, -22)
   15626     2177448 :          idata = idata + 1
   15627     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15628     2177448 :          full_data(idata) = data_tmp
   15629     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15630     2177448 :          idata = idata + 1
   15631     2177448 :          data_tmp = ISHFT(pack_tmp, 2)
   15632     2177448 :          ipack = ipack + 1
   15633     2177448 :          pack_tmp = packed_data(ipack)
   15634     2177448 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   15635     2177448 :          pack_tmp = ISHFT(pack_tmp, -2)
   15636     2177448 :          idata = idata + 1
   15637     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15638     2177448 :          full_data(idata) = data_tmp
   15639     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15640     2177448 :          idata = idata + 1
   15641     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15642     2177448 :          full_data(idata) = data_tmp
   15643     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15644     2177448 :          idata = idata + 1
   15645     2177448 :          data_tmp = ISHFT(pack_tmp, 4)
   15646     2177448 :          ipack = ipack + 1
   15647     2177448 :          pack_tmp = packed_data(ipack)
   15648     2177448 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   15649     2177448 :          pack_tmp = ISHFT(pack_tmp, -4)
   15650     2177448 :          idata = idata + 1
   15651     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15652     2177448 :          full_data(idata) = data_tmp
   15653     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15654     2177448 :          idata = idata + 1
   15655     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15656     2177448 :          full_data(idata) = data_tmp
   15657     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15658     2177448 :          idata = idata + 1
   15659     2177448 :          data_tmp = ISHFT(pack_tmp, 6)
   15660     2177448 :          ipack = ipack + 1
   15661     2177448 :          pack_tmp = packed_data(ipack)
   15662     2177448 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   15663     2177448 :          pack_tmp = ISHFT(pack_tmp, -6)
   15664     2177448 :          idata = idata + 1
   15665     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15666     2177448 :          full_data(idata) = data_tmp
   15667     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15668     2177448 :          idata = idata + 1
   15669     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15670     2177448 :          full_data(idata) = data_tmp
   15671     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15672     2177448 :          idata = idata + 1
   15673     2177448 :          data_tmp = ISHFT(pack_tmp, 8)
   15674     2177448 :          ipack = ipack + 1
   15675     2177448 :          pack_tmp = packed_data(ipack)
   15676     2177448 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   15677     2177448 :          pack_tmp = ISHFT(pack_tmp, -8)
   15678     2177448 :          idata = idata + 1
   15679     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15680     2177448 :          full_data(idata) = data_tmp
   15681     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15682     2177448 :          idata = idata + 1
   15683     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15684     2177448 :          full_data(idata) = data_tmp
   15685     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15686     2177448 :          idata = idata + 1
   15687     2177448 :          data_tmp = ISHFT(pack_tmp, 10)
   15688     2177448 :          ipack = ipack + 1
   15689     2177448 :          pack_tmp = packed_data(ipack)
   15690     2177448 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   15691     2177448 :          pack_tmp = ISHFT(pack_tmp, -10)
   15692     2177448 :          idata = idata + 1
   15693     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15694     2177448 :          full_data(idata) = data_tmp
   15695     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15696     2177448 :          idata = idata + 1
   15697     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15698     2177448 :          full_data(idata) = data_tmp
   15699     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15700     2177448 :          idata = idata + 1
   15701     2177448 :          data_tmp = ISHFT(pack_tmp, 12)
   15702     2177448 :          ipack = ipack + 1
   15703     2177448 :          pack_tmp = packed_data(ipack)
   15704     2177448 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   15705     2177448 :          pack_tmp = ISHFT(pack_tmp, -12)
   15706     2177448 :          idata = idata + 1
   15707     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15708     2177448 :          full_data(idata) = data_tmp
   15709     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15710     2177448 :          idata = idata + 1
   15711     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15712     2177448 :          full_data(idata) = data_tmp
   15713     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15714     2177448 :          idata = idata + 1
   15715     2177448 :          data_tmp = ISHFT(pack_tmp, 14)
   15716     2177448 :          ipack = ipack + 1
   15717     2177448 :          pack_tmp = packed_data(ipack)
   15718     2177448 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   15719     2177448 :          pack_tmp = ISHFT(pack_tmp, -14)
   15720     2177448 :          idata = idata + 1
   15721     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15722     2177448 :          full_data(idata) = data_tmp
   15723     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15724     2177448 :          idata = idata + 1
   15725     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15726     2177448 :          full_data(idata) = data_tmp
   15727     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15728     2177448 :          idata = idata + 1
   15729     2177448 :          data_tmp = ISHFT(pack_tmp, 16)
   15730     2177448 :          ipack = ipack + 1
   15731     2177448 :          pack_tmp = packed_data(ipack)
   15732     2177448 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   15733     2177448 :          pack_tmp = ISHFT(pack_tmp, -16)
   15734     2177448 :          idata = idata + 1
   15735     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15736     2177448 :          full_data(idata) = data_tmp
   15737     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15738     2177448 :          idata = idata + 1
   15739     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15740     2177448 :          full_data(idata) = data_tmp
   15741     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15742     2177448 :          idata = idata + 1
   15743     2177448 :          data_tmp = ISHFT(pack_tmp, 18)
   15744     2177448 :          ipack = ipack + 1
   15745     2177448 :          pack_tmp = packed_data(ipack)
   15746     2177448 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   15747     2177448 :          pack_tmp = ISHFT(pack_tmp, -18)
   15748     2177448 :          idata = idata + 1
   15749     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15750     2177448 :          full_data(idata) = data_tmp
   15751     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15752     2177448 :          idata = idata + 1
   15753     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15754     2177448 :          full_data(idata) = data_tmp
   15755     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15756     2177448 :          idata = idata + 1
   15757     2177448 :          data_tmp = ISHFT(pack_tmp, 20)
   15758     2177448 :          ipack = ipack + 1
   15759     2177448 :          pack_tmp = packed_data(ipack)
   15760     2177448 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   15761     2177448 :          pack_tmp = ISHFT(pack_tmp, -20)
   15762     2177448 :          idata = idata + 1
   15763     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15764     2177448 :          full_data(idata) = data_tmp
   15765     2177448 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15766     2177448 :          idata = idata + 1
   15767     2177448 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15768     2177448 :          full_data(idata) = data_tmp
   15769     2178177 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15770             :       END DO
   15771      150345 :       IF (Ndata_rep < Ndata) THEN
   15772       26832 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   15773             :       END IF
   15774      150345 :    END SUBROUTINE bits2ints_22
   15775             : 
   15776             : ! **************************************************************************************************
   15777             : !> \brief ...
   15778             : !> \param Ndata ...
   15779             : !> \param packed_data ...
   15780             : !> \param full_data ...
   15781             : ! **************************************************************************************************
   15782       73601 :    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       73601 :       idata = 0
   15793       73601 :       ipack = 0
   15794       73601 :       Ndata_rep = (Ndata/64)*64
   15795       73601 :       DO kdata = 1, Ndata_rep, 64
   15796      961675 :          pack_tmp = 0
   15797      961675 :          idata = idata + 1
   15798      961675 :          data_tmp = full_data(idata)
   15799      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15800      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15801      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   15802      961675 :          idata = idata + 1
   15803      961675 :          data_tmp = full_data(idata)
   15804      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15805      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15806      961675 :          pack_tmp = ISHFT(pack_tmp, -18)
   15807      961675 :          idata = idata + 1
   15808      961675 :          data_tmp = full_data(idata)
   15809      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15810      961675 :          data_tmp = IAND(data_tmp, mask_left(18))
   15811      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15812      961675 :          ipack = ipack + 1
   15813      961675 :          packed_data(ipack) = pack_tmp
   15814      961675 :          data_tmp = full_data(idata)
   15815      961675 :          pack_tmp = ISHFT(data_tmp, 59)
   15816      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   15817      961675 :          idata = idata + 1
   15818      961675 :          data_tmp = full_data(idata)
   15819      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15820      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15821      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   15822      961675 :          idata = idata + 1
   15823      961675 :          data_tmp = full_data(idata)
   15824      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15825      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15826      961675 :          pack_tmp = ISHFT(pack_tmp, -13)
   15827      961675 :          idata = idata + 1
   15828      961675 :          data_tmp = full_data(idata)
   15829      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15830      961675 :          data_tmp = IAND(data_tmp, mask_left(13))
   15831      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15832      961675 :          ipack = ipack + 1
   15833      961675 :          packed_data(ipack) = pack_tmp
   15834      961675 :          data_tmp = full_data(idata)
   15835      961675 :          pack_tmp = ISHFT(data_tmp, 54)
   15836      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   15837      961675 :          idata = idata + 1
   15838      961675 :          data_tmp = full_data(idata)
   15839      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15840      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15841      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   15842      961675 :          idata = idata + 1
   15843      961675 :          data_tmp = full_data(idata)
   15844      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15845      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15846      961675 :          pack_tmp = ISHFT(pack_tmp, -8)
   15847      961675 :          idata = idata + 1
   15848      961675 :          data_tmp = full_data(idata)
   15849      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15850      961675 :          data_tmp = IAND(data_tmp, mask_left(8))
   15851      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15852      961675 :          ipack = ipack + 1
   15853      961675 :          packed_data(ipack) = pack_tmp
   15854      961675 :          data_tmp = full_data(idata)
   15855      961675 :          pack_tmp = ISHFT(data_tmp, 49)
   15856      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   15857      961675 :          idata = idata + 1
   15858      961675 :          data_tmp = full_data(idata)
   15859      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15860      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15861      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   15862      961675 :          idata = idata + 1
   15863      961675 :          data_tmp = full_data(idata)
   15864      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15865      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15866      961675 :          pack_tmp = ISHFT(pack_tmp, -3)
   15867      961675 :          idata = idata + 1
   15868      961675 :          data_tmp = full_data(idata)
   15869      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15870      961675 :          data_tmp = IAND(data_tmp, mask_left(3))
   15871      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15872      961675 :          ipack = ipack + 1
   15873      961675 :          packed_data(ipack) = pack_tmp
   15874      961675 :          data_tmp = full_data(idata)
   15875      961675 :          pack_tmp = ISHFT(data_tmp, 44)
   15876      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   15877      961675 :          idata = idata + 1
   15878      961675 :          data_tmp = full_data(idata)
   15879      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15880      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15881      961675 :          pack_tmp = ISHFT(pack_tmp, -21)
   15882      961675 :          idata = idata + 1
   15883      961675 :          data_tmp = full_data(idata)
   15884      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15885      961675 :          data_tmp = IAND(data_tmp, mask_left(21))
   15886      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15887      961675 :          ipack = ipack + 1
   15888      961675 :          packed_data(ipack) = pack_tmp
   15889      961675 :          data_tmp = full_data(idata)
   15890      961675 :          pack_tmp = ISHFT(data_tmp, 62)
   15891      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   15892      961675 :          idata = idata + 1
   15893      961675 :          data_tmp = full_data(idata)
   15894      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15895      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15896      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   15897      961675 :          idata = idata + 1
   15898      961675 :          data_tmp = full_data(idata)
   15899      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15900      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15901      961675 :          pack_tmp = ISHFT(pack_tmp, -16)
   15902      961675 :          idata = idata + 1
   15903      961675 :          data_tmp = full_data(idata)
   15904      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15905      961675 :          data_tmp = IAND(data_tmp, mask_left(16))
   15906      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15907      961675 :          ipack = ipack + 1
   15908      961675 :          packed_data(ipack) = pack_tmp
   15909      961675 :          data_tmp = full_data(idata)
   15910      961675 :          pack_tmp = ISHFT(data_tmp, 57)
   15911      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   15912      961675 :          idata = idata + 1
   15913      961675 :          data_tmp = full_data(idata)
   15914      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15915      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15916      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   15917      961675 :          idata = idata + 1
   15918      961675 :          data_tmp = full_data(idata)
   15919      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15920      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15921      961675 :          pack_tmp = ISHFT(pack_tmp, -11)
   15922      961675 :          idata = idata + 1
   15923      961675 :          data_tmp = full_data(idata)
   15924      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15925      961675 :          data_tmp = IAND(data_tmp, mask_left(11))
   15926      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15927      961675 :          ipack = ipack + 1
   15928      961675 :          packed_data(ipack) = pack_tmp
   15929      961675 :          data_tmp = full_data(idata)
   15930      961675 :          pack_tmp = ISHFT(data_tmp, 52)
   15931      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   15932      961675 :          idata = idata + 1
   15933      961675 :          data_tmp = full_data(idata)
   15934      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15935      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15936      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   15937      961675 :          idata = idata + 1
   15938      961675 :          data_tmp = full_data(idata)
   15939      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15940      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15941      961675 :          pack_tmp = ISHFT(pack_tmp, -6)
   15942      961675 :          idata = idata + 1
   15943      961675 :          data_tmp = full_data(idata)
   15944      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15945      961675 :          data_tmp = IAND(data_tmp, mask_left(6))
   15946      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15947      961675 :          ipack = ipack + 1
   15948      961675 :          packed_data(ipack) = pack_tmp
   15949      961675 :          data_tmp = full_data(idata)
   15950      961675 :          pack_tmp = ISHFT(data_tmp, 47)
   15951      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   15952      961675 :          idata = idata + 1
   15953      961675 :          data_tmp = full_data(idata)
   15954      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15955      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15956      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   15957      961675 :          idata = idata + 1
   15958      961675 :          data_tmp = full_data(idata)
   15959      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15960      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15961      961675 :          pack_tmp = ISHFT(pack_tmp, -1)
   15962      961675 :          idata = idata + 1
   15963      961675 :          data_tmp = full_data(idata)
   15964      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15965      961675 :          data_tmp = IAND(data_tmp, mask_left(1))
   15966      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15967      961675 :          ipack = ipack + 1
   15968      961675 :          packed_data(ipack) = pack_tmp
   15969      961675 :          data_tmp = full_data(idata)
   15970      961675 :          pack_tmp = ISHFT(data_tmp, 42)
   15971      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   15972      961675 :          idata = idata + 1
   15973      961675 :          data_tmp = full_data(idata)
   15974      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15975      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15976      961675 :          pack_tmp = ISHFT(pack_tmp, -19)
   15977      961675 :          idata = idata + 1
   15978      961675 :          data_tmp = full_data(idata)
   15979      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15980      961675 :          data_tmp = IAND(data_tmp, mask_left(19))
   15981      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15982      961675 :          ipack = ipack + 1
   15983      961675 :          packed_data(ipack) = pack_tmp
   15984      961675 :          data_tmp = full_data(idata)
   15985      961675 :          pack_tmp = ISHFT(data_tmp, 60)
   15986      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   15987      961675 :          idata = idata + 1
   15988      961675 :          data_tmp = full_data(idata)
   15989      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15990      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15991      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   15992      961675 :          idata = idata + 1
   15993      961675 :          data_tmp = full_data(idata)
   15994      961675 :          data_tmp = ISHFT(data_tmp, 41)
   15995      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15996      961675 :          pack_tmp = ISHFT(pack_tmp, -14)
   15997      961675 :          idata = idata + 1
   15998      961675 :          data_tmp = full_data(idata)
   15999      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16000      961675 :          data_tmp = IAND(data_tmp, mask_left(14))
   16001      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16002      961675 :          ipack = ipack + 1
   16003      961675 :          packed_data(ipack) = pack_tmp
   16004      961675 :          data_tmp = full_data(idata)
   16005      961675 :          pack_tmp = ISHFT(data_tmp, 55)
   16006      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   16007      961675 :          idata = idata + 1
   16008      961675 :          data_tmp = full_data(idata)
   16009      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16010      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16011      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   16012      961675 :          idata = idata + 1
   16013      961675 :          data_tmp = full_data(idata)
   16014      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16015      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16016      961675 :          pack_tmp = ISHFT(pack_tmp, -9)
   16017      961675 :          idata = idata + 1
   16018      961675 :          data_tmp = full_data(idata)
   16019      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16020      961675 :          data_tmp = IAND(data_tmp, mask_left(9))
   16021      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16022      961675 :          ipack = ipack + 1
   16023      961675 :          packed_data(ipack) = pack_tmp
   16024      961675 :          data_tmp = full_data(idata)
   16025      961675 :          pack_tmp = ISHFT(data_tmp, 50)
   16026      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   16027      961675 :          idata = idata + 1
   16028      961675 :          data_tmp = full_data(idata)
   16029      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16030      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16031      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   16032      961675 :          idata = idata + 1
   16033      961675 :          data_tmp = full_data(idata)
   16034      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16035      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16036      961675 :          pack_tmp = ISHFT(pack_tmp, -4)
   16037      961675 :          idata = idata + 1
   16038      961675 :          data_tmp = full_data(idata)
   16039      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16040      961675 :          data_tmp = IAND(data_tmp, mask_left(4))
   16041      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16042      961675 :          ipack = ipack + 1
   16043      961675 :          packed_data(ipack) = pack_tmp
   16044      961675 :          data_tmp = full_data(idata)
   16045      961675 :          pack_tmp = ISHFT(data_tmp, 45)
   16046      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   16047      961675 :          idata = idata + 1
   16048      961675 :          data_tmp = full_data(idata)
   16049      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16050      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16051      961675 :          pack_tmp = ISHFT(pack_tmp, -22)
   16052      961675 :          idata = idata + 1
   16053      961675 :          data_tmp = full_data(idata)
   16054      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16055      961675 :          data_tmp = IAND(data_tmp, mask_left(22))
   16056      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16057      961675 :          ipack = ipack + 1
   16058      961675 :          packed_data(ipack) = pack_tmp
   16059      961675 :          data_tmp = full_data(idata)
   16060      961675 :          pack_tmp = ISHFT(data_tmp, 63)
   16061      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   16062      961675 :          idata = idata + 1
   16063      961675 :          data_tmp = full_data(idata)
   16064      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16065      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16066      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   16067      961675 :          idata = idata + 1
   16068      961675 :          data_tmp = full_data(idata)
   16069      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16070      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16071      961675 :          pack_tmp = ISHFT(pack_tmp, -17)
   16072      961675 :          idata = idata + 1
   16073      961675 :          data_tmp = full_data(idata)
   16074      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16075      961675 :          data_tmp = IAND(data_tmp, mask_left(17))
   16076      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16077      961675 :          ipack = ipack + 1
   16078      961675 :          packed_data(ipack) = pack_tmp
   16079      961675 :          data_tmp = full_data(idata)
   16080      961675 :          pack_tmp = ISHFT(data_tmp, 58)
   16081      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   16082      961675 :          idata = idata + 1
   16083      961675 :          data_tmp = full_data(idata)
   16084      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16085      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16086      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   16087      961675 :          idata = idata + 1
   16088      961675 :          data_tmp = full_data(idata)
   16089      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16090      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16091      961675 :          pack_tmp = ISHFT(pack_tmp, -12)
   16092      961675 :          idata = idata + 1
   16093      961675 :          data_tmp = full_data(idata)
   16094      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16095      961675 :          data_tmp = IAND(data_tmp, mask_left(12))
   16096      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16097      961675 :          ipack = ipack + 1
   16098      961675 :          packed_data(ipack) = pack_tmp
   16099      961675 :          data_tmp = full_data(idata)
   16100      961675 :          pack_tmp = ISHFT(data_tmp, 53)
   16101      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   16102      961675 :          idata = idata + 1
   16103      961675 :          data_tmp = full_data(idata)
   16104      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16105      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16106      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   16107      961675 :          idata = idata + 1
   16108      961675 :          data_tmp = full_data(idata)
   16109      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16110      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16111      961675 :          pack_tmp = ISHFT(pack_tmp, -7)
   16112      961675 :          idata = idata + 1
   16113      961675 :          data_tmp = full_data(idata)
   16114      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16115      961675 :          data_tmp = IAND(data_tmp, mask_left(7))
   16116      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16117      961675 :          ipack = ipack + 1
   16118      961675 :          packed_data(ipack) = pack_tmp
   16119      961675 :          data_tmp = full_data(idata)
   16120      961675 :          pack_tmp = ISHFT(data_tmp, 48)
   16121      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   16122      961675 :          idata = idata + 1
   16123      961675 :          data_tmp = full_data(idata)
   16124      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16125      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16126      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   16127      961675 :          idata = idata + 1
   16128      961675 :          data_tmp = full_data(idata)
   16129      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16130      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16131      961675 :          pack_tmp = ISHFT(pack_tmp, -2)
   16132      961675 :          idata = idata + 1
   16133      961675 :          data_tmp = full_data(idata)
   16134      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16135      961675 :          data_tmp = IAND(data_tmp, mask_left(2))
   16136      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16137      961675 :          ipack = ipack + 1
   16138      961675 :          packed_data(ipack) = pack_tmp
   16139      961675 :          data_tmp = full_data(idata)
   16140      961675 :          pack_tmp = ISHFT(data_tmp, 43)
   16141      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   16142      961675 :          idata = idata + 1
   16143      961675 :          data_tmp = full_data(idata)
   16144      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16145      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16146      961675 :          pack_tmp = ISHFT(pack_tmp, -20)
   16147      961675 :          idata = idata + 1
   16148      961675 :          data_tmp = full_data(idata)
   16149      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16150      961675 :          data_tmp = IAND(data_tmp, mask_left(20))
   16151      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16152      961675 :          ipack = ipack + 1
   16153      961675 :          packed_data(ipack) = pack_tmp
   16154      961675 :          data_tmp = full_data(idata)
   16155      961675 :          pack_tmp = ISHFT(data_tmp, 61)
   16156      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   16157      961675 :          idata = idata + 1
   16158      961675 :          data_tmp = full_data(idata)
   16159      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16160      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16161      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   16162      961675 :          idata = idata + 1
   16163      961675 :          data_tmp = full_data(idata)
   16164      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16165      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16166      961675 :          pack_tmp = ISHFT(pack_tmp, -15)
   16167      961675 :          idata = idata + 1
   16168      961675 :          data_tmp = full_data(idata)
   16169      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16170      961675 :          data_tmp = IAND(data_tmp, mask_left(15))
   16171      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16172      961675 :          ipack = ipack + 1
   16173      961675 :          packed_data(ipack) = pack_tmp
   16174      961675 :          data_tmp = full_data(idata)
   16175      961675 :          pack_tmp = ISHFT(data_tmp, 56)
   16176      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   16177      961675 :          idata = idata + 1
   16178      961675 :          data_tmp = full_data(idata)
   16179      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16180      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16181      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   16182      961675 :          idata = idata + 1
   16183      961675 :          data_tmp = full_data(idata)
   16184      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16185      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16186      961675 :          pack_tmp = ISHFT(pack_tmp, -10)
   16187      961675 :          idata = idata + 1
   16188      961675 :          data_tmp = full_data(idata)
   16189      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16190      961675 :          data_tmp = IAND(data_tmp, mask_left(10))
   16191      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16192      961675 :          ipack = ipack + 1
   16193      961675 :          packed_data(ipack) = pack_tmp
   16194      961675 :          data_tmp = full_data(idata)
   16195      961675 :          pack_tmp = ISHFT(data_tmp, 51)
   16196      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   16197      961675 :          idata = idata + 1
   16198      961675 :          data_tmp = full_data(idata)
   16199      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16200      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16201      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   16202      961675 :          idata = idata + 1
   16203      961675 :          data_tmp = full_data(idata)
   16204      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16205      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16206      961675 :          pack_tmp = ISHFT(pack_tmp, -5)
   16207      961675 :          idata = idata + 1
   16208      961675 :          data_tmp = full_data(idata)
   16209      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16210      961675 :          data_tmp = IAND(data_tmp, mask_left(5))
   16211      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16212      961675 :          ipack = ipack + 1
   16213      961675 :          packed_data(ipack) = pack_tmp
   16214      961675 :          data_tmp = full_data(idata)
   16215      961675 :          pack_tmp = ISHFT(data_tmp, 46)
   16216      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   16217      961675 :          idata = idata + 1
   16218      961675 :          data_tmp = full_data(idata)
   16219      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16220      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16221      961675 :          pack_tmp = ISHFT(pack_tmp, -23)
   16222      961675 :          idata = idata + 1
   16223      961675 :          data_tmp = full_data(idata)
   16224      961675 :          data_tmp = ISHFT(data_tmp, 41)
   16225      961675 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16226             :          pack_tmp = ISHFT(pack_tmp, 0)
   16227      961675 :          pack_tmp = ISHFT(pack_tmp, 0)
   16228      961675 :          ipack = ipack + 1
   16229      962329 :          packed_data(ipack) = pack_tmp
   16230             :       END DO
   16231       73601 :       IF (Ndata_rep < Ndata) THEN
   16232       13930 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   16233             :       END IF
   16234       73601 :    END SUBROUTINE ints2bits_23
   16235             : 
   16236             : ! **************************************************************************************************
   16237             : !> \brief ...
   16238             : !> \param Ndata ...
   16239             : !> \param packed_data ...
   16240             : !> \param full_data ...
   16241             : ! **************************************************************************************************
   16242      228100 :    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      228100 :       ipack = 0
   16253      228100 :       idata = 0
   16254      228100 :       pack_tmp = 0
   16255      228100 :       Ndata_rep = (Ndata/64)*64
   16256      228100 :       DO kdata = 1, Ndata_rep, 64
   16257     3081680 :          idata = idata + 1
   16258     3081680 :          data_tmp = ISHFT(pack_tmp, 23)
   16259     3081680 :          ipack = ipack + 1
   16260     3081680 :          pack_tmp = packed_data(ipack)
   16261     3081680 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   16262     3081680 :          pack_tmp = ISHFT(pack_tmp, -23)
   16263     3081680 :          idata = idata + 1
   16264     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16265     3081680 :          full_data(idata) = data_tmp
   16266     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16267     3081680 :          idata = idata + 1
   16268     3081680 :          data_tmp = ISHFT(pack_tmp, 5)
   16269     3081680 :          ipack = ipack + 1
   16270     3081680 :          pack_tmp = packed_data(ipack)
   16271     3081680 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   16272     3081680 :          pack_tmp = ISHFT(pack_tmp, -5)
   16273     3081680 :          idata = idata + 1
   16274     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16275     3081680 :          full_data(idata) = data_tmp
   16276     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16277     3081680 :          idata = idata + 1
   16278     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16279     3081680 :          full_data(idata) = data_tmp
   16280     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16281     3081680 :          idata = idata + 1
   16282     3081680 :          data_tmp = ISHFT(pack_tmp, 10)
   16283     3081680 :          ipack = ipack + 1
   16284     3081680 :          pack_tmp = packed_data(ipack)
   16285     3081680 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   16286     3081680 :          pack_tmp = ISHFT(pack_tmp, -10)
   16287     3081680 :          idata = idata + 1
   16288     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16289     3081680 :          full_data(idata) = data_tmp
   16290     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16291     3081680 :          idata = idata + 1
   16292     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16293     3081680 :          full_data(idata) = data_tmp
   16294     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16295     3081680 :          idata = idata + 1
   16296     3081680 :          data_tmp = ISHFT(pack_tmp, 15)
   16297     3081680 :          ipack = ipack + 1
   16298     3081680 :          pack_tmp = packed_data(ipack)
   16299     3081680 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   16300     3081680 :          pack_tmp = ISHFT(pack_tmp, -15)
   16301     3081680 :          idata = idata + 1
   16302     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16303     3081680 :          full_data(idata) = data_tmp
   16304     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16305     3081680 :          idata = idata + 1
   16306     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16307     3081680 :          full_data(idata) = data_tmp
   16308     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16309     3081680 :          idata = idata + 1
   16310     3081680 :          data_tmp = ISHFT(pack_tmp, 20)
   16311     3081680 :          ipack = ipack + 1
   16312     3081680 :          pack_tmp = packed_data(ipack)
   16313     3081680 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   16314     3081680 :          pack_tmp = ISHFT(pack_tmp, -20)
   16315     3081680 :          idata = idata + 1
   16316     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16317     3081680 :          full_data(idata) = data_tmp
   16318     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16319     3081680 :          idata = idata + 1
   16320     3081680 :          data_tmp = ISHFT(pack_tmp, 2)
   16321     3081680 :          ipack = ipack + 1
   16322     3081680 :          pack_tmp = packed_data(ipack)
   16323     3081680 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   16324     3081680 :          pack_tmp = ISHFT(pack_tmp, -2)
   16325     3081680 :          idata = idata + 1
   16326     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16327     3081680 :          full_data(idata) = data_tmp
   16328     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16329     3081680 :          idata = idata + 1
   16330     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16331     3081680 :          full_data(idata) = data_tmp
   16332     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16333     3081680 :          idata = idata + 1
   16334     3081680 :          data_tmp = ISHFT(pack_tmp, 7)
   16335     3081680 :          ipack = ipack + 1
   16336     3081680 :          pack_tmp = packed_data(ipack)
   16337     3081680 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   16338     3081680 :          pack_tmp = ISHFT(pack_tmp, -7)
   16339     3081680 :          idata = idata + 1
   16340     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16341     3081680 :          full_data(idata) = data_tmp
   16342     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16343     3081680 :          idata = idata + 1
   16344     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16345     3081680 :          full_data(idata) = data_tmp
   16346     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16347     3081680 :          idata = idata + 1
   16348     3081680 :          data_tmp = ISHFT(pack_tmp, 12)
   16349     3081680 :          ipack = ipack + 1
   16350     3081680 :          pack_tmp = packed_data(ipack)
   16351     3081680 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   16352     3081680 :          pack_tmp = ISHFT(pack_tmp, -12)
   16353     3081680 :          idata = idata + 1
   16354     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16355     3081680 :          full_data(idata) = data_tmp
   16356     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16357     3081680 :          idata = idata + 1
   16358     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16359     3081680 :          full_data(idata) = data_tmp
   16360     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16361     3081680 :          idata = idata + 1
   16362     3081680 :          data_tmp = ISHFT(pack_tmp, 17)
   16363     3081680 :          ipack = ipack + 1
   16364     3081680 :          pack_tmp = packed_data(ipack)
   16365     3081680 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   16366     3081680 :          pack_tmp = ISHFT(pack_tmp, -17)
   16367     3081680 :          idata = idata + 1
   16368     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16369     3081680 :          full_data(idata) = data_tmp
   16370     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16371     3081680 :          idata = idata + 1
   16372     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16373     3081680 :          full_data(idata) = data_tmp
   16374     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16375     3081680 :          idata = idata + 1
   16376     3081680 :          data_tmp = ISHFT(pack_tmp, 22)
   16377     3081680 :          ipack = ipack + 1
   16378     3081680 :          pack_tmp = packed_data(ipack)
   16379     3081680 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   16380     3081680 :          pack_tmp = ISHFT(pack_tmp, -22)
   16381     3081680 :          idata = idata + 1
   16382     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16383     3081680 :          full_data(idata) = data_tmp
   16384     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16385     3081680 :          idata = idata + 1
   16386     3081680 :          data_tmp = ISHFT(pack_tmp, 4)
   16387     3081680 :          ipack = ipack + 1
   16388     3081680 :          pack_tmp = packed_data(ipack)
   16389     3081680 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   16390     3081680 :          pack_tmp = ISHFT(pack_tmp, -4)
   16391     3081680 :          idata = idata + 1
   16392     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16393     3081680 :          full_data(idata) = data_tmp
   16394     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16395     3081680 :          idata = idata + 1
   16396     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16397     3081680 :          full_data(idata) = data_tmp
   16398     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16399     3081680 :          idata = idata + 1
   16400     3081680 :          data_tmp = ISHFT(pack_tmp, 9)
   16401     3081680 :          ipack = ipack + 1
   16402     3081680 :          pack_tmp = packed_data(ipack)
   16403     3081680 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   16404     3081680 :          pack_tmp = ISHFT(pack_tmp, -9)
   16405     3081680 :          idata = idata + 1
   16406     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16407     3081680 :          full_data(idata) = data_tmp
   16408     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16409     3081680 :          idata = idata + 1
   16410     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16411     3081680 :          full_data(idata) = data_tmp
   16412     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16413     3081680 :          idata = idata + 1
   16414     3081680 :          data_tmp = ISHFT(pack_tmp, 14)
   16415     3081680 :          ipack = ipack + 1
   16416     3081680 :          pack_tmp = packed_data(ipack)
   16417     3081680 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   16418     3081680 :          pack_tmp = ISHFT(pack_tmp, -14)
   16419     3081680 :          idata = idata + 1
   16420     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16421     3081680 :          full_data(idata) = data_tmp
   16422     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16423     3081680 :          idata = idata + 1
   16424     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16425     3081680 :          full_data(idata) = data_tmp
   16426     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16427     3081680 :          idata = idata + 1
   16428     3081680 :          data_tmp = ISHFT(pack_tmp, 19)
   16429     3081680 :          ipack = ipack + 1
   16430     3081680 :          pack_tmp = packed_data(ipack)
   16431     3081680 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   16432     3081680 :          pack_tmp = ISHFT(pack_tmp, -19)
   16433     3081680 :          idata = idata + 1
   16434     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16435     3081680 :          full_data(idata) = data_tmp
   16436     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16437     3081680 :          idata = idata + 1
   16438     3081680 :          data_tmp = ISHFT(pack_tmp, 1)
   16439     3081680 :          ipack = ipack + 1
   16440     3081680 :          pack_tmp = packed_data(ipack)
   16441     3081680 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   16442     3081680 :          pack_tmp = ISHFT(pack_tmp, -1)
   16443     3081680 :          idata = idata + 1
   16444     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16445     3081680 :          full_data(idata) = data_tmp
   16446     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16447     3081680 :          idata = idata + 1
   16448     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16449     3081680 :          full_data(idata) = data_tmp
   16450     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16451     3081680 :          idata = idata + 1
   16452     3081680 :          data_tmp = ISHFT(pack_tmp, 6)
   16453     3081680 :          ipack = ipack + 1
   16454     3081680 :          pack_tmp = packed_data(ipack)
   16455     3081680 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   16456     3081680 :          pack_tmp = ISHFT(pack_tmp, -6)
   16457     3081680 :          idata = idata + 1
   16458     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16459     3081680 :          full_data(idata) = data_tmp
   16460     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16461     3081680 :          idata = idata + 1
   16462     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16463     3081680 :          full_data(idata) = data_tmp
   16464     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16465     3081680 :          idata = idata + 1
   16466     3081680 :          data_tmp = ISHFT(pack_tmp, 11)
   16467     3081680 :          ipack = ipack + 1
   16468     3081680 :          pack_tmp = packed_data(ipack)
   16469     3081680 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   16470     3081680 :          pack_tmp = ISHFT(pack_tmp, -11)
   16471     3081680 :          idata = idata + 1
   16472     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16473     3081680 :          full_data(idata) = data_tmp
   16474     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16475     3081680 :          idata = idata + 1
   16476     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16477     3081680 :          full_data(idata) = data_tmp
   16478     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16479     3081680 :          idata = idata + 1
   16480     3081680 :          data_tmp = ISHFT(pack_tmp, 16)
   16481     3081680 :          ipack = ipack + 1
   16482     3081680 :          pack_tmp = packed_data(ipack)
   16483     3081680 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   16484     3081680 :          pack_tmp = ISHFT(pack_tmp, -16)
   16485     3081680 :          idata = idata + 1
   16486     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16487     3081680 :          full_data(idata) = data_tmp
   16488     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16489     3081680 :          idata = idata + 1
   16490     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16491     3081680 :          full_data(idata) = data_tmp
   16492     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16493     3081680 :          idata = idata + 1
   16494     3081680 :          data_tmp = ISHFT(pack_tmp, 21)
   16495     3081680 :          ipack = ipack + 1
   16496     3081680 :          pack_tmp = packed_data(ipack)
   16497     3081680 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   16498     3081680 :          pack_tmp = ISHFT(pack_tmp, -21)
   16499     3081680 :          idata = idata + 1
   16500     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16501     3081680 :          full_data(idata) = data_tmp
   16502     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16503     3081680 :          idata = idata + 1
   16504     3081680 :          data_tmp = ISHFT(pack_tmp, 3)
   16505     3081680 :          ipack = ipack + 1
   16506     3081680 :          pack_tmp = packed_data(ipack)
   16507     3081680 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   16508     3081680 :          pack_tmp = ISHFT(pack_tmp, -3)
   16509     3081680 :          idata = idata + 1
   16510     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16511     3081680 :          full_data(idata) = data_tmp
   16512     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16513     3081680 :          idata = idata + 1
   16514     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16515     3081680 :          full_data(idata) = data_tmp
   16516     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16517     3081680 :          idata = idata + 1
   16518     3081680 :          data_tmp = ISHFT(pack_tmp, 8)
   16519     3081680 :          ipack = ipack + 1
   16520     3081680 :          pack_tmp = packed_data(ipack)
   16521     3081680 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   16522     3081680 :          pack_tmp = ISHFT(pack_tmp, -8)
   16523     3081680 :          idata = idata + 1
   16524     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16525     3081680 :          full_data(idata) = data_tmp
   16526     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16527     3081680 :          idata = idata + 1
   16528     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16529     3081680 :          full_data(idata) = data_tmp
   16530     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16531     3081680 :          idata = idata + 1
   16532     3081680 :          data_tmp = ISHFT(pack_tmp, 13)
   16533     3081680 :          ipack = ipack + 1
   16534     3081680 :          pack_tmp = packed_data(ipack)
   16535     3081680 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   16536     3081680 :          pack_tmp = ISHFT(pack_tmp, -13)
   16537     3081680 :          idata = idata + 1
   16538     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16539     3081680 :          full_data(idata) = data_tmp
   16540     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16541     3081680 :          idata = idata + 1
   16542     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16543     3081680 :          full_data(idata) = data_tmp
   16544     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16545     3081680 :          idata = idata + 1
   16546     3081680 :          data_tmp = ISHFT(pack_tmp, 18)
   16547     3081680 :          ipack = ipack + 1
   16548     3081680 :          pack_tmp = packed_data(ipack)
   16549     3081680 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   16550     3081680 :          pack_tmp = ISHFT(pack_tmp, -18)
   16551     3081680 :          idata = idata + 1
   16552     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16553     3081680 :          full_data(idata) = data_tmp
   16554     3081680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16555     3081680 :          idata = idata + 1
   16556     3081680 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16557     3081680 :          full_data(idata) = data_tmp
   16558     3083272 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16559             :       END DO
   16560      228100 :       IF (Ndata_rep < Ndata) THEN
   16561       37920 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   16562             :       END IF
   16563      228100 :    END SUBROUTINE bits2ints_23
   16564             : 
   16565             : ! **************************************************************************************************
   16566             : !> \brief ...
   16567             : !> \param Ndata ...
   16568             : !> \param packed_data ...
   16569             : !> \param full_data ...
   16570             : ! **************************************************************************************************
   16571       36159 :    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       36159 :       idata = 0
   16582       36159 :       ipack = 0
   16583       36159 :       Ndata_rep = (Ndata/64)*64
   16584       36159 :       DO kdata = 1, Ndata_rep, 64
   16585      522767 :          pack_tmp = 0
   16586      522767 :          idata = idata + 1
   16587      522767 :          data_tmp = full_data(idata)
   16588      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16589      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16590      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16591      522767 :          idata = idata + 1
   16592      522767 :          data_tmp = full_data(idata)
   16593      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16594      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16595      522767 :          pack_tmp = ISHFT(pack_tmp, -16)
   16596      522767 :          idata = idata + 1
   16597      522767 :          data_tmp = full_data(idata)
   16598      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16599      522767 :          data_tmp = IAND(data_tmp, mask_left(16))
   16600      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16601      522767 :          ipack = ipack + 1
   16602      522767 :          packed_data(ipack) = pack_tmp
   16603      522767 :          data_tmp = full_data(idata)
   16604      522767 :          pack_tmp = ISHFT(data_tmp, 56)
   16605      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16606      522767 :          idata = idata + 1
   16607      522767 :          data_tmp = full_data(idata)
   16608      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16609      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16610      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16611      522767 :          idata = idata + 1
   16612      522767 :          data_tmp = full_data(idata)
   16613      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16614      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16615      522767 :          pack_tmp = ISHFT(pack_tmp, -8)
   16616      522767 :          idata = idata + 1
   16617      522767 :          data_tmp = full_data(idata)
   16618      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16619      522767 :          data_tmp = IAND(data_tmp, mask_left(8))
   16620      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16621      522767 :          ipack = ipack + 1
   16622      522767 :          packed_data(ipack) = pack_tmp
   16623      522767 :          data_tmp = full_data(idata)
   16624      522767 :          pack_tmp = ISHFT(data_tmp, 48)
   16625      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16626      522767 :          idata = idata + 1
   16627      522767 :          data_tmp = full_data(idata)
   16628      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16629      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16630      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16631      522767 :          idata = idata + 1
   16632      522767 :          data_tmp = full_data(idata)
   16633      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16634      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16635      522767 :          pack_tmp = ISHFT(pack_tmp, 0)
   16636      522767 :          idata = idata + 1
   16637      522767 :          data_tmp = full_data(idata)
   16638             :          data_tmp = ISHFT(data_tmp, 40)
   16639      522767 :          data_tmp = IAND(data_tmp, mask_left(0))
   16640      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16641      522767 :          ipack = ipack + 1
   16642      522767 :          packed_data(ipack) = pack_tmp
   16643      522767 :          data_tmp = full_data(idata)
   16644      522767 :          pack_tmp = ISHFT(data_tmp, 40)
   16645      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16646      522767 :          idata = idata + 1
   16647      522767 :          data_tmp = full_data(idata)
   16648      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16649      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16650      522767 :          pack_tmp = ISHFT(pack_tmp, -16)
   16651      522767 :          idata = idata + 1
   16652      522767 :          data_tmp = full_data(idata)
   16653      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16654      522767 :          data_tmp = IAND(data_tmp, mask_left(16))
   16655      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16656      522767 :          ipack = ipack + 1
   16657      522767 :          packed_data(ipack) = pack_tmp
   16658      522767 :          data_tmp = full_data(idata)
   16659      522767 :          pack_tmp = ISHFT(data_tmp, 56)
   16660      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16661      522767 :          idata = idata + 1
   16662      522767 :          data_tmp = full_data(idata)
   16663      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16664      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16665      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16666      522767 :          idata = idata + 1
   16667      522767 :          data_tmp = full_data(idata)
   16668      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16669      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16670      522767 :          pack_tmp = ISHFT(pack_tmp, -8)
   16671      522767 :          idata = idata + 1
   16672      522767 :          data_tmp = full_data(idata)
   16673      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16674      522767 :          data_tmp = IAND(data_tmp, mask_left(8))
   16675      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16676      522767 :          ipack = ipack + 1
   16677      522767 :          packed_data(ipack) = pack_tmp
   16678      522767 :          data_tmp = full_data(idata)
   16679      522767 :          pack_tmp = ISHFT(data_tmp, 48)
   16680      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16681      522767 :          idata = idata + 1
   16682      522767 :          data_tmp = full_data(idata)
   16683      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16684      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16685      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16686      522767 :          idata = idata + 1
   16687      522767 :          data_tmp = full_data(idata)
   16688      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16689      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16690      522767 :          pack_tmp = ISHFT(pack_tmp, 0)
   16691      522767 :          idata = idata + 1
   16692      522767 :          data_tmp = full_data(idata)
   16693             :          data_tmp = ISHFT(data_tmp, 40)
   16694      522767 :          data_tmp = IAND(data_tmp, mask_left(0))
   16695      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16696      522767 :          ipack = ipack + 1
   16697      522767 :          packed_data(ipack) = pack_tmp
   16698      522767 :          data_tmp = full_data(idata)
   16699      522767 :          pack_tmp = ISHFT(data_tmp, 40)
   16700      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16701      522767 :          idata = idata + 1
   16702      522767 :          data_tmp = full_data(idata)
   16703      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16704      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16705      522767 :          pack_tmp = ISHFT(pack_tmp, -16)
   16706      522767 :          idata = idata + 1
   16707      522767 :          data_tmp = full_data(idata)
   16708      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16709      522767 :          data_tmp = IAND(data_tmp, mask_left(16))
   16710      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16711      522767 :          ipack = ipack + 1
   16712      522767 :          packed_data(ipack) = pack_tmp
   16713      522767 :          data_tmp = full_data(idata)
   16714      522767 :          pack_tmp = ISHFT(data_tmp, 56)
   16715      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16716      522767 :          idata = idata + 1
   16717      522767 :          data_tmp = full_data(idata)
   16718      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16719      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16720      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16721      522767 :          idata = idata + 1
   16722      522767 :          data_tmp = full_data(idata)
   16723      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16724      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16725      522767 :          pack_tmp = ISHFT(pack_tmp, -8)
   16726      522767 :          idata = idata + 1
   16727      522767 :          data_tmp = full_data(idata)
   16728      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16729      522767 :          data_tmp = IAND(data_tmp, mask_left(8))
   16730      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16731      522767 :          ipack = ipack + 1
   16732      522767 :          packed_data(ipack) = pack_tmp
   16733      522767 :          data_tmp = full_data(idata)
   16734      522767 :          pack_tmp = ISHFT(data_tmp, 48)
   16735      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16736      522767 :          idata = idata + 1
   16737      522767 :          data_tmp = full_data(idata)
   16738      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16739      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16740      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16741      522767 :          idata = idata + 1
   16742      522767 :          data_tmp = full_data(idata)
   16743      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16744      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16745      522767 :          pack_tmp = ISHFT(pack_tmp, 0)
   16746      522767 :          idata = idata + 1
   16747      522767 :          data_tmp = full_data(idata)
   16748             :          data_tmp = ISHFT(data_tmp, 40)
   16749      522767 :          data_tmp = IAND(data_tmp, mask_left(0))
   16750      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16751      522767 :          ipack = ipack + 1
   16752      522767 :          packed_data(ipack) = pack_tmp
   16753      522767 :          data_tmp = full_data(idata)
   16754      522767 :          pack_tmp = ISHFT(data_tmp, 40)
   16755      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16756      522767 :          idata = idata + 1
   16757      522767 :          data_tmp = full_data(idata)
   16758      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16759      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16760      522767 :          pack_tmp = ISHFT(pack_tmp, -16)
   16761      522767 :          idata = idata + 1
   16762      522767 :          data_tmp = full_data(idata)
   16763      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16764      522767 :          data_tmp = IAND(data_tmp, mask_left(16))
   16765      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16766      522767 :          ipack = ipack + 1
   16767      522767 :          packed_data(ipack) = pack_tmp
   16768      522767 :          data_tmp = full_data(idata)
   16769      522767 :          pack_tmp = ISHFT(data_tmp, 56)
   16770      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16771      522767 :          idata = idata + 1
   16772      522767 :          data_tmp = full_data(idata)
   16773      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16774      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16775      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16776      522767 :          idata = idata + 1
   16777      522767 :          data_tmp = full_data(idata)
   16778      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16779      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16780      522767 :          pack_tmp = ISHFT(pack_tmp, -8)
   16781      522767 :          idata = idata + 1
   16782      522767 :          data_tmp = full_data(idata)
   16783      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16784      522767 :          data_tmp = IAND(data_tmp, mask_left(8))
   16785      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16786      522767 :          ipack = ipack + 1
   16787      522767 :          packed_data(ipack) = pack_tmp
   16788      522767 :          data_tmp = full_data(idata)
   16789      522767 :          pack_tmp = ISHFT(data_tmp, 48)
   16790      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16791      522767 :          idata = idata + 1
   16792      522767 :          data_tmp = full_data(idata)
   16793      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16794      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16795      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16796      522767 :          idata = idata + 1
   16797      522767 :          data_tmp = full_data(idata)
   16798      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16799      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16800      522767 :          pack_tmp = ISHFT(pack_tmp, 0)
   16801      522767 :          idata = idata + 1
   16802      522767 :          data_tmp = full_data(idata)
   16803             :          data_tmp = ISHFT(data_tmp, 40)
   16804      522767 :          data_tmp = IAND(data_tmp, mask_left(0))
   16805      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16806      522767 :          ipack = ipack + 1
   16807      522767 :          packed_data(ipack) = pack_tmp
   16808      522767 :          data_tmp = full_data(idata)
   16809      522767 :          pack_tmp = ISHFT(data_tmp, 40)
   16810      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16811      522767 :          idata = idata + 1
   16812      522767 :          data_tmp = full_data(idata)
   16813      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16814      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16815      522767 :          pack_tmp = ISHFT(pack_tmp, -16)
   16816      522767 :          idata = idata + 1
   16817      522767 :          data_tmp = full_data(idata)
   16818      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16819      522767 :          data_tmp = IAND(data_tmp, mask_left(16))
   16820      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16821      522767 :          ipack = ipack + 1
   16822      522767 :          packed_data(ipack) = pack_tmp
   16823      522767 :          data_tmp = full_data(idata)
   16824      522767 :          pack_tmp = ISHFT(data_tmp, 56)
   16825      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16826      522767 :          idata = idata + 1
   16827      522767 :          data_tmp = full_data(idata)
   16828      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16829      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16830      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16831      522767 :          idata = idata + 1
   16832      522767 :          data_tmp = full_data(idata)
   16833      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16834      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16835      522767 :          pack_tmp = ISHFT(pack_tmp, -8)
   16836      522767 :          idata = idata + 1
   16837      522767 :          data_tmp = full_data(idata)
   16838      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16839      522767 :          data_tmp = IAND(data_tmp, mask_left(8))
   16840      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16841      522767 :          ipack = ipack + 1
   16842      522767 :          packed_data(ipack) = pack_tmp
   16843      522767 :          data_tmp = full_data(idata)
   16844      522767 :          pack_tmp = ISHFT(data_tmp, 48)
   16845      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16846      522767 :          idata = idata + 1
   16847      522767 :          data_tmp = full_data(idata)
   16848      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16849      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16850      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16851      522767 :          idata = idata + 1
   16852      522767 :          data_tmp = full_data(idata)
   16853      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16854      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16855      522767 :          pack_tmp = ISHFT(pack_tmp, 0)
   16856      522767 :          idata = idata + 1
   16857      522767 :          data_tmp = full_data(idata)
   16858             :          data_tmp = ISHFT(data_tmp, 40)
   16859      522767 :          data_tmp = IAND(data_tmp, mask_left(0))
   16860      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16861      522767 :          ipack = ipack + 1
   16862      522767 :          packed_data(ipack) = pack_tmp
   16863      522767 :          data_tmp = full_data(idata)
   16864      522767 :          pack_tmp = ISHFT(data_tmp, 40)
   16865      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16866      522767 :          idata = idata + 1
   16867      522767 :          data_tmp = full_data(idata)
   16868      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16869      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16870      522767 :          pack_tmp = ISHFT(pack_tmp, -16)
   16871      522767 :          idata = idata + 1
   16872      522767 :          data_tmp = full_data(idata)
   16873      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16874      522767 :          data_tmp = IAND(data_tmp, mask_left(16))
   16875      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16876      522767 :          ipack = ipack + 1
   16877      522767 :          packed_data(ipack) = pack_tmp
   16878      522767 :          data_tmp = full_data(idata)
   16879      522767 :          pack_tmp = ISHFT(data_tmp, 56)
   16880      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16881      522767 :          idata = idata + 1
   16882      522767 :          data_tmp = full_data(idata)
   16883      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16884      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16885      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16886      522767 :          idata = idata + 1
   16887      522767 :          data_tmp = full_data(idata)
   16888      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16889      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16890      522767 :          pack_tmp = ISHFT(pack_tmp, -8)
   16891      522767 :          idata = idata + 1
   16892      522767 :          data_tmp = full_data(idata)
   16893      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16894      522767 :          data_tmp = IAND(data_tmp, mask_left(8))
   16895      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16896      522767 :          ipack = ipack + 1
   16897      522767 :          packed_data(ipack) = pack_tmp
   16898      522767 :          data_tmp = full_data(idata)
   16899      522767 :          pack_tmp = ISHFT(data_tmp, 48)
   16900      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16901      522767 :          idata = idata + 1
   16902      522767 :          data_tmp = full_data(idata)
   16903      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16904      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16905      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16906      522767 :          idata = idata + 1
   16907      522767 :          data_tmp = full_data(idata)
   16908      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16909      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16910      522767 :          pack_tmp = ISHFT(pack_tmp, 0)
   16911      522767 :          idata = idata + 1
   16912      522767 :          data_tmp = full_data(idata)
   16913             :          data_tmp = ISHFT(data_tmp, 40)
   16914      522767 :          data_tmp = IAND(data_tmp, mask_left(0))
   16915      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16916      522767 :          ipack = ipack + 1
   16917      522767 :          packed_data(ipack) = pack_tmp
   16918      522767 :          data_tmp = full_data(idata)
   16919      522767 :          pack_tmp = ISHFT(data_tmp, 40)
   16920      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16921      522767 :          idata = idata + 1
   16922      522767 :          data_tmp = full_data(idata)
   16923      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16924      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16925      522767 :          pack_tmp = ISHFT(pack_tmp, -16)
   16926      522767 :          idata = idata + 1
   16927      522767 :          data_tmp = full_data(idata)
   16928      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16929      522767 :          data_tmp = IAND(data_tmp, mask_left(16))
   16930      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16931      522767 :          ipack = ipack + 1
   16932      522767 :          packed_data(ipack) = pack_tmp
   16933      522767 :          data_tmp = full_data(idata)
   16934      522767 :          pack_tmp = ISHFT(data_tmp, 56)
   16935      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16936      522767 :          idata = idata + 1
   16937      522767 :          data_tmp = full_data(idata)
   16938      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16939      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16940      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16941      522767 :          idata = idata + 1
   16942      522767 :          data_tmp = full_data(idata)
   16943      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16944      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16945      522767 :          pack_tmp = ISHFT(pack_tmp, -8)
   16946      522767 :          idata = idata + 1
   16947      522767 :          data_tmp = full_data(idata)
   16948      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16949      522767 :          data_tmp = IAND(data_tmp, mask_left(8))
   16950      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16951      522767 :          ipack = ipack + 1
   16952      522767 :          packed_data(ipack) = pack_tmp
   16953      522767 :          data_tmp = full_data(idata)
   16954      522767 :          pack_tmp = ISHFT(data_tmp, 48)
   16955      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16956      522767 :          idata = idata + 1
   16957      522767 :          data_tmp = full_data(idata)
   16958      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16959      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16960      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16961      522767 :          idata = idata + 1
   16962      522767 :          data_tmp = full_data(idata)
   16963      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16964      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16965      522767 :          pack_tmp = ISHFT(pack_tmp, 0)
   16966      522767 :          idata = idata + 1
   16967      522767 :          data_tmp = full_data(idata)
   16968             :          data_tmp = ISHFT(data_tmp, 40)
   16969      522767 :          data_tmp = IAND(data_tmp, mask_left(0))
   16970      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16971      522767 :          ipack = ipack + 1
   16972      522767 :          packed_data(ipack) = pack_tmp
   16973      522767 :          data_tmp = full_data(idata)
   16974      522767 :          pack_tmp = ISHFT(data_tmp, 40)
   16975      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16976      522767 :          idata = idata + 1
   16977      522767 :          data_tmp = full_data(idata)
   16978      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16979      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16980      522767 :          pack_tmp = ISHFT(pack_tmp, -16)
   16981      522767 :          idata = idata + 1
   16982      522767 :          data_tmp = full_data(idata)
   16983      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16984      522767 :          data_tmp = IAND(data_tmp, mask_left(16))
   16985      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16986      522767 :          ipack = ipack + 1
   16987      522767 :          packed_data(ipack) = pack_tmp
   16988      522767 :          data_tmp = full_data(idata)
   16989      522767 :          pack_tmp = ISHFT(data_tmp, 56)
   16990      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16991      522767 :          idata = idata + 1
   16992      522767 :          data_tmp = full_data(idata)
   16993      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16994      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16995      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   16996      522767 :          idata = idata + 1
   16997      522767 :          data_tmp = full_data(idata)
   16998      522767 :          data_tmp = ISHFT(data_tmp, 40)
   16999      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17000      522767 :          pack_tmp = ISHFT(pack_tmp, -8)
   17001      522767 :          idata = idata + 1
   17002      522767 :          data_tmp = full_data(idata)
   17003      522767 :          data_tmp = ISHFT(data_tmp, 40)
   17004      522767 :          data_tmp = IAND(data_tmp, mask_left(8))
   17005      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17006      522767 :          ipack = ipack + 1
   17007      522767 :          packed_data(ipack) = pack_tmp
   17008      522767 :          data_tmp = full_data(idata)
   17009      522767 :          pack_tmp = ISHFT(data_tmp, 48)
   17010      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   17011      522767 :          idata = idata + 1
   17012      522767 :          data_tmp = full_data(idata)
   17013      522767 :          data_tmp = ISHFT(data_tmp, 40)
   17014      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17015      522767 :          pack_tmp = ISHFT(pack_tmp, -24)
   17016      522767 :          idata = idata + 1
   17017      522767 :          data_tmp = full_data(idata)
   17018      522767 :          data_tmp = ISHFT(data_tmp, 40)
   17019      522767 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17020             :          pack_tmp = ISHFT(pack_tmp, 0)
   17021      522767 :          pack_tmp = ISHFT(pack_tmp, 0)
   17022      522767 :          ipack = ipack + 1
   17023      523447 :          packed_data(ipack) = pack_tmp
   17024             :       END DO
   17025       36159 :       IF (Ndata_rep < Ndata) THEN
   17026        6562 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   17027             :       END IF
   17028       36159 :    END SUBROUTINE ints2bits_24
   17029             : 
   17030             : ! **************************************************************************************************
   17031             : !> \brief ...
   17032             : !> \param Ndata ...
   17033             : !> \param packed_data ...
   17034             : !> \param full_data ...
   17035             : ! **************************************************************************************************
   17036      160664 :    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      160664 :       ipack = 0
   17047      160664 :       idata = 0
   17048      160664 :       pack_tmp = 0
   17049      160664 :       Ndata_rep = (Ndata/64)*64
   17050      160664 :       DO kdata = 1, Ndata_rep, 64
   17051     2271730 :          idata = idata + 1
   17052     2271730 :          data_tmp = ISHFT(pack_tmp, 24)
   17053     2271730 :          ipack = ipack + 1
   17054     2271730 :          pack_tmp = packed_data(ipack)
   17055     2271730 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17056     2271730 :          pack_tmp = ISHFT(pack_tmp, -24)
   17057     2271730 :          idata = idata + 1
   17058     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17059     2271730 :          full_data(idata) = data_tmp
   17060     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17061     2271730 :          idata = idata + 1
   17062     2271730 :          data_tmp = ISHFT(pack_tmp, 8)
   17063     2271730 :          ipack = ipack + 1
   17064     2271730 :          pack_tmp = packed_data(ipack)
   17065     2271730 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17066     2271730 :          pack_tmp = ISHFT(pack_tmp, -8)
   17067     2271730 :          idata = idata + 1
   17068     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17069     2271730 :          full_data(idata) = data_tmp
   17070     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17071     2271730 :          idata = idata + 1
   17072     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17073     2271730 :          full_data(idata) = data_tmp
   17074     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17075     2271730 :          idata = idata + 1
   17076     2271730 :          data_tmp = ISHFT(pack_tmp, 16)
   17077     2271730 :          ipack = ipack + 1
   17078     2271730 :          pack_tmp = packed_data(ipack)
   17079     2271730 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17080     2271730 :          pack_tmp = ISHFT(pack_tmp, -16)
   17081     2271730 :          idata = idata + 1
   17082     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17083     2271730 :          full_data(idata) = data_tmp
   17084     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17085     2271730 :          idata = idata + 1
   17086     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17087     2271730 :          full_data(idata) = data_tmp
   17088     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17089     2271730 :          idata = idata + 1
   17090     2271730 :          data_tmp = ISHFT(pack_tmp, 24)
   17091     2271730 :          ipack = ipack + 1
   17092     2271730 :          pack_tmp = packed_data(ipack)
   17093     2271730 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17094     2271730 :          pack_tmp = ISHFT(pack_tmp, -24)
   17095     2271730 :          idata = idata + 1
   17096     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17097     2271730 :          full_data(idata) = data_tmp
   17098     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17099     2271730 :          idata = idata + 1
   17100     2271730 :          data_tmp = ISHFT(pack_tmp, 8)
   17101     2271730 :          ipack = ipack + 1
   17102     2271730 :          pack_tmp = packed_data(ipack)
   17103     2271730 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17104     2271730 :          pack_tmp = ISHFT(pack_tmp, -8)
   17105     2271730 :          idata = idata + 1
   17106     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17107     2271730 :          full_data(idata) = data_tmp
   17108     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17109     2271730 :          idata = idata + 1
   17110     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17111     2271730 :          full_data(idata) = data_tmp
   17112     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17113     2271730 :          idata = idata + 1
   17114     2271730 :          data_tmp = ISHFT(pack_tmp, 16)
   17115     2271730 :          ipack = ipack + 1
   17116     2271730 :          pack_tmp = packed_data(ipack)
   17117     2271730 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17118     2271730 :          pack_tmp = ISHFT(pack_tmp, -16)
   17119     2271730 :          idata = idata + 1
   17120     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17121     2271730 :          full_data(idata) = data_tmp
   17122     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17123     2271730 :          idata = idata + 1
   17124     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17125     2271730 :          full_data(idata) = data_tmp
   17126     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17127     2271730 :          idata = idata + 1
   17128     2271730 :          data_tmp = ISHFT(pack_tmp, 24)
   17129     2271730 :          ipack = ipack + 1
   17130     2271730 :          pack_tmp = packed_data(ipack)
   17131     2271730 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17132     2271730 :          pack_tmp = ISHFT(pack_tmp, -24)
   17133     2271730 :          idata = idata + 1
   17134     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17135     2271730 :          full_data(idata) = data_tmp
   17136     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17137     2271730 :          idata = idata + 1
   17138     2271730 :          data_tmp = ISHFT(pack_tmp, 8)
   17139     2271730 :          ipack = ipack + 1
   17140     2271730 :          pack_tmp = packed_data(ipack)
   17141     2271730 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17142     2271730 :          pack_tmp = ISHFT(pack_tmp, -8)
   17143     2271730 :          idata = idata + 1
   17144     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17145     2271730 :          full_data(idata) = data_tmp
   17146     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17147     2271730 :          idata = idata + 1
   17148     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17149     2271730 :          full_data(idata) = data_tmp
   17150     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17151     2271730 :          idata = idata + 1
   17152     2271730 :          data_tmp = ISHFT(pack_tmp, 16)
   17153     2271730 :          ipack = ipack + 1
   17154     2271730 :          pack_tmp = packed_data(ipack)
   17155     2271730 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17156     2271730 :          pack_tmp = ISHFT(pack_tmp, -16)
   17157     2271730 :          idata = idata + 1
   17158     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17159     2271730 :          full_data(idata) = data_tmp
   17160     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17161     2271730 :          idata = idata + 1
   17162     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17163     2271730 :          full_data(idata) = data_tmp
   17164     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17165     2271730 :          idata = idata + 1
   17166     2271730 :          data_tmp = ISHFT(pack_tmp, 24)
   17167     2271730 :          ipack = ipack + 1
   17168     2271730 :          pack_tmp = packed_data(ipack)
   17169     2271730 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17170     2271730 :          pack_tmp = ISHFT(pack_tmp, -24)
   17171     2271730 :          idata = idata + 1
   17172     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17173     2271730 :          full_data(idata) = data_tmp
   17174     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17175     2271730 :          idata = idata + 1
   17176     2271730 :          data_tmp = ISHFT(pack_tmp, 8)
   17177     2271730 :          ipack = ipack + 1
   17178     2271730 :          pack_tmp = packed_data(ipack)
   17179     2271730 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17180     2271730 :          pack_tmp = ISHFT(pack_tmp, -8)
   17181     2271730 :          idata = idata + 1
   17182     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17183     2271730 :          full_data(idata) = data_tmp
   17184     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17185     2271730 :          idata = idata + 1
   17186     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17187     2271730 :          full_data(idata) = data_tmp
   17188     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17189     2271730 :          idata = idata + 1
   17190     2271730 :          data_tmp = ISHFT(pack_tmp, 16)
   17191     2271730 :          ipack = ipack + 1
   17192     2271730 :          pack_tmp = packed_data(ipack)
   17193     2271730 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17194     2271730 :          pack_tmp = ISHFT(pack_tmp, -16)
   17195     2271730 :          idata = idata + 1
   17196     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17197     2271730 :          full_data(idata) = data_tmp
   17198     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17199     2271730 :          idata = idata + 1
   17200     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17201     2271730 :          full_data(idata) = data_tmp
   17202     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17203     2271730 :          idata = idata + 1
   17204     2271730 :          data_tmp = ISHFT(pack_tmp, 24)
   17205     2271730 :          ipack = ipack + 1
   17206     2271730 :          pack_tmp = packed_data(ipack)
   17207     2271730 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17208     2271730 :          pack_tmp = ISHFT(pack_tmp, -24)
   17209     2271730 :          idata = idata + 1
   17210     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17211     2271730 :          full_data(idata) = data_tmp
   17212     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17213     2271730 :          idata = idata + 1
   17214     2271730 :          data_tmp = ISHFT(pack_tmp, 8)
   17215     2271730 :          ipack = ipack + 1
   17216     2271730 :          pack_tmp = packed_data(ipack)
   17217     2271730 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17218     2271730 :          pack_tmp = ISHFT(pack_tmp, -8)
   17219     2271730 :          idata = idata + 1
   17220     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17221     2271730 :          full_data(idata) = data_tmp
   17222     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17223     2271730 :          idata = idata + 1
   17224     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17225     2271730 :          full_data(idata) = data_tmp
   17226     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17227     2271730 :          idata = idata + 1
   17228     2271730 :          data_tmp = ISHFT(pack_tmp, 16)
   17229     2271730 :          ipack = ipack + 1
   17230     2271730 :          pack_tmp = packed_data(ipack)
   17231     2271730 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17232     2271730 :          pack_tmp = ISHFT(pack_tmp, -16)
   17233     2271730 :          idata = idata + 1
   17234     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17235     2271730 :          full_data(idata) = data_tmp
   17236     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17237     2271730 :          idata = idata + 1
   17238     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17239     2271730 :          full_data(idata) = data_tmp
   17240     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17241     2271730 :          idata = idata + 1
   17242     2271730 :          data_tmp = ISHFT(pack_tmp, 24)
   17243     2271730 :          ipack = ipack + 1
   17244     2271730 :          pack_tmp = packed_data(ipack)
   17245     2271730 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17246     2271730 :          pack_tmp = ISHFT(pack_tmp, -24)
   17247     2271730 :          idata = idata + 1
   17248     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17249     2271730 :          full_data(idata) = data_tmp
   17250     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17251     2271730 :          idata = idata + 1
   17252     2271730 :          data_tmp = ISHFT(pack_tmp, 8)
   17253     2271730 :          ipack = ipack + 1
   17254     2271730 :          pack_tmp = packed_data(ipack)
   17255     2271730 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17256     2271730 :          pack_tmp = ISHFT(pack_tmp, -8)
   17257     2271730 :          idata = idata + 1
   17258     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17259     2271730 :          full_data(idata) = data_tmp
   17260     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17261     2271730 :          idata = idata + 1
   17262     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17263     2271730 :          full_data(idata) = data_tmp
   17264     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17265     2271730 :          idata = idata + 1
   17266     2271730 :          data_tmp = ISHFT(pack_tmp, 16)
   17267     2271730 :          ipack = ipack + 1
   17268     2271730 :          pack_tmp = packed_data(ipack)
   17269     2271730 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17270     2271730 :          pack_tmp = ISHFT(pack_tmp, -16)
   17271     2271730 :          idata = idata + 1
   17272     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17273     2271730 :          full_data(idata) = data_tmp
   17274     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17275     2271730 :          idata = idata + 1
   17276     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17277     2271730 :          full_data(idata) = data_tmp
   17278     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17279     2271730 :          idata = idata + 1
   17280     2271730 :          data_tmp = ISHFT(pack_tmp, 24)
   17281     2271730 :          ipack = ipack + 1
   17282     2271730 :          pack_tmp = packed_data(ipack)
   17283     2271730 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17284     2271730 :          pack_tmp = ISHFT(pack_tmp, -24)
   17285     2271730 :          idata = idata + 1
   17286     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17287     2271730 :          full_data(idata) = data_tmp
   17288     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17289     2271730 :          idata = idata + 1
   17290     2271730 :          data_tmp = ISHFT(pack_tmp, 8)
   17291     2271730 :          ipack = ipack + 1
   17292     2271730 :          pack_tmp = packed_data(ipack)
   17293     2271730 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17294     2271730 :          pack_tmp = ISHFT(pack_tmp, -8)
   17295     2271730 :          idata = idata + 1
   17296     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17297     2271730 :          full_data(idata) = data_tmp
   17298     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17299     2271730 :          idata = idata + 1
   17300     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17301     2271730 :          full_data(idata) = data_tmp
   17302     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17303     2271730 :          idata = idata + 1
   17304     2271730 :          data_tmp = ISHFT(pack_tmp, 16)
   17305     2271730 :          ipack = ipack + 1
   17306     2271730 :          pack_tmp = packed_data(ipack)
   17307     2271730 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17308     2271730 :          pack_tmp = ISHFT(pack_tmp, -16)
   17309     2271730 :          idata = idata + 1
   17310     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17311     2271730 :          full_data(idata) = data_tmp
   17312     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17313     2271730 :          idata = idata + 1
   17314     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17315     2271730 :          full_data(idata) = data_tmp
   17316     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17317     2271730 :          idata = idata + 1
   17318     2271730 :          data_tmp = ISHFT(pack_tmp, 24)
   17319     2271730 :          ipack = ipack + 1
   17320     2271730 :          pack_tmp = packed_data(ipack)
   17321     2271730 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17322     2271730 :          pack_tmp = ISHFT(pack_tmp, -24)
   17323     2271730 :          idata = idata + 1
   17324     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17325     2271730 :          full_data(idata) = data_tmp
   17326     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17327     2271730 :          idata = idata + 1
   17328     2271730 :          data_tmp = ISHFT(pack_tmp, 8)
   17329     2271730 :          ipack = ipack + 1
   17330     2271730 :          pack_tmp = packed_data(ipack)
   17331     2271730 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17332     2271730 :          pack_tmp = ISHFT(pack_tmp, -8)
   17333     2271730 :          idata = idata + 1
   17334     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17335     2271730 :          full_data(idata) = data_tmp
   17336     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17337     2271730 :          idata = idata + 1
   17338     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17339     2271730 :          full_data(idata) = data_tmp
   17340     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17341     2271730 :          idata = idata + 1
   17342     2271730 :          data_tmp = ISHFT(pack_tmp, 16)
   17343     2271730 :          ipack = ipack + 1
   17344     2271730 :          pack_tmp = packed_data(ipack)
   17345     2271730 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17346     2271730 :          pack_tmp = ISHFT(pack_tmp, -16)
   17347     2271730 :          idata = idata + 1
   17348     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17349     2271730 :          full_data(idata) = data_tmp
   17350     2271730 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17351     2271730 :          idata = idata + 1
   17352     2271730 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17353     2271730 :          full_data(idata) = data_tmp
   17354     2275527 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17355             :       END DO
   17356      160664 :       IF (Ndata_rep < Ndata) THEN
   17357       35164 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   17358             :       END IF
   17359      160664 :    END SUBROUTINE bits2ints_24
   17360             : 
   17361             : ! **************************************************************************************************
   17362             : !> \brief ...
   17363             : !> \param Ndata ...
   17364             : !> \param packed_data ...
   17365             : !> \param full_data ...
   17366             : ! **************************************************************************************************
   17367       37326 :    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       37326 :       idata = 0
   17378       37326 :       ipack = 0
   17379       37326 :       Ndata_rep = (Ndata/64)*64
   17380       37326 :       DO kdata = 1, Ndata_rep, 64
   17381      533245 :          pack_tmp = 0
   17382      533245 :          idata = idata + 1
   17383      533245 :          data_tmp = full_data(idata)
   17384      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17385      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17386      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17387      533245 :          idata = idata + 1
   17388      533245 :          data_tmp = full_data(idata)
   17389      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17390      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17391      533245 :          pack_tmp = ISHFT(pack_tmp, -14)
   17392      533245 :          idata = idata + 1
   17393      533245 :          data_tmp = full_data(idata)
   17394      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17395      533245 :          data_tmp = IAND(data_tmp, mask_left(14))
   17396      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17397      533245 :          ipack = ipack + 1
   17398      533245 :          packed_data(ipack) = pack_tmp
   17399      533245 :          data_tmp = full_data(idata)
   17400      533245 :          pack_tmp = ISHFT(data_tmp, 53)
   17401      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17402      533245 :          idata = idata + 1
   17403      533245 :          data_tmp = full_data(idata)
   17404      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17405      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17406      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17407      533245 :          idata = idata + 1
   17408      533245 :          data_tmp = full_data(idata)
   17409      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17410      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17411      533245 :          pack_tmp = ISHFT(pack_tmp, -3)
   17412      533245 :          idata = idata + 1
   17413      533245 :          data_tmp = full_data(idata)
   17414      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17415      533245 :          data_tmp = IAND(data_tmp, mask_left(3))
   17416      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17417      533245 :          ipack = ipack + 1
   17418      533245 :          packed_data(ipack) = pack_tmp
   17419      533245 :          data_tmp = full_data(idata)
   17420      533245 :          pack_tmp = ISHFT(data_tmp, 42)
   17421      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17422      533245 :          idata = idata + 1
   17423      533245 :          data_tmp = full_data(idata)
   17424      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17425      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17426      533245 :          pack_tmp = ISHFT(pack_tmp, -17)
   17427      533245 :          idata = idata + 1
   17428      533245 :          data_tmp = full_data(idata)
   17429      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17430      533245 :          data_tmp = IAND(data_tmp, mask_left(17))
   17431      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17432      533245 :          ipack = ipack + 1
   17433      533245 :          packed_data(ipack) = pack_tmp
   17434      533245 :          data_tmp = full_data(idata)
   17435      533245 :          pack_tmp = ISHFT(data_tmp, 56)
   17436      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17437      533245 :          idata = idata + 1
   17438      533245 :          data_tmp = full_data(idata)
   17439      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17440      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17441      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17442      533245 :          idata = idata + 1
   17443      533245 :          data_tmp = full_data(idata)
   17444      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17445      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17446      533245 :          pack_tmp = ISHFT(pack_tmp, -6)
   17447      533245 :          idata = idata + 1
   17448      533245 :          data_tmp = full_data(idata)
   17449      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17450      533245 :          data_tmp = IAND(data_tmp, mask_left(6))
   17451      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17452      533245 :          ipack = ipack + 1
   17453      533245 :          packed_data(ipack) = pack_tmp
   17454      533245 :          data_tmp = full_data(idata)
   17455      533245 :          pack_tmp = ISHFT(data_tmp, 45)
   17456      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17457      533245 :          idata = idata + 1
   17458      533245 :          data_tmp = full_data(idata)
   17459      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17460      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17461      533245 :          pack_tmp = ISHFT(pack_tmp, -20)
   17462      533245 :          idata = idata + 1
   17463      533245 :          data_tmp = full_data(idata)
   17464      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17465      533245 :          data_tmp = IAND(data_tmp, mask_left(20))
   17466      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17467      533245 :          ipack = ipack + 1
   17468      533245 :          packed_data(ipack) = pack_tmp
   17469      533245 :          data_tmp = full_data(idata)
   17470      533245 :          pack_tmp = ISHFT(data_tmp, 59)
   17471      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17472      533245 :          idata = idata + 1
   17473      533245 :          data_tmp = full_data(idata)
   17474      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17475      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17476      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17477      533245 :          idata = idata + 1
   17478      533245 :          data_tmp = full_data(idata)
   17479      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17480      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17481      533245 :          pack_tmp = ISHFT(pack_tmp, -9)
   17482      533245 :          idata = idata + 1
   17483      533245 :          data_tmp = full_data(idata)
   17484      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17485      533245 :          data_tmp = IAND(data_tmp, mask_left(9))
   17486      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17487      533245 :          ipack = ipack + 1
   17488      533245 :          packed_data(ipack) = pack_tmp
   17489      533245 :          data_tmp = full_data(idata)
   17490      533245 :          pack_tmp = ISHFT(data_tmp, 48)
   17491      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17492      533245 :          idata = idata + 1
   17493      533245 :          data_tmp = full_data(idata)
   17494      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17495      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17496      533245 :          pack_tmp = ISHFT(pack_tmp, -23)
   17497      533245 :          idata = idata + 1
   17498      533245 :          data_tmp = full_data(idata)
   17499      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17500      533245 :          data_tmp = IAND(data_tmp, mask_left(23))
   17501      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17502      533245 :          ipack = ipack + 1
   17503      533245 :          packed_data(ipack) = pack_tmp
   17504      533245 :          data_tmp = full_data(idata)
   17505      533245 :          pack_tmp = ISHFT(data_tmp, 62)
   17506      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17507      533245 :          idata = idata + 1
   17508      533245 :          data_tmp = full_data(idata)
   17509      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17510      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17511      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17512      533245 :          idata = idata + 1
   17513      533245 :          data_tmp = full_data(idata)
   17514      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17515      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17516      533245 :          pack_tmp = ISHFT(pack_tmp, -12)
   17517      533245 :          idata = idata + 1
   17518      533245 :          data_tmp = full_data(idata)
   17519      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17520      533245 :          data_tmp = IAND(data_tmp, mask_left(12))
   17521      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17522      533245 :          ipack = ipack + 1
   17523      533245 :          packed_data(ipack) = pack_tmp
   17524      533245 :          data_tmp = full_data(idata)
   17525      533245 :          pack_tmp = ISHFT(data_tmp, 51)
   17526      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17527      533245 :          idata = idata + 1
   17528      533245 :          data_tmp = full_data(idata)
   17529      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17530      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17531      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17532      533245 :          idata = idata + 1
   17533      533245 :          data_tmp = full_data(idata)
   17534      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17535      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17536      533245 :          pack_tmp = ISHFT(pack_tmp, -1)
   17537      533245 :          idata = idata + 1
   17538      533245 :          data_tmp = full_data(idata)
   17539      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17540      533245 :          data_tmp = IAND(data_tmp, mask_left(1))
   17541      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17542      533245 :          ipack = ipack + 1
   17543      533245 :          packed_data(ipack) = pack_tmp
   17544      533245 :          data_tmp = full_data(idata)
   17545      533245 :          pack_tmp = ISHFT(data_tmp, 40)
   17546      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17547      533245 :          idata = idata + 1
   17548      533245 :          data_tmp = full_data(idata)
   17549      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17550      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17551      533245 :          pack_tmp = ISHFT(pack_tmp, -15)
   17552      533245 :          idata = idata + 1
   17553      533245 :          data_tmp = full_data(idata)
   17554      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17555      533245 :          data_tmp = IAND(data_tmp, mask_left(15))
   17556      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17557      533245 :          ipack = ipack + 1
   17558      533245 :          packed_data(ipack) = pack_tmp
   17559      533245 :          data_tmp = full_data(idata)
   17560      533245 :          pack_tmp = ISHFT(data_tmp, 54)
   17561      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17562      533245 :          idata = idata + 1
   17563      533245 :          data_tmp = full_data(idata)
   17564      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17565      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17566      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17567      533245 :          idata = idata + 1
   17568      533245 :          data_tmp = full_data(idata)
   17569      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17570      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17571      533245 :          pack_tmp = ISHFT(pack_tmp, -4)
   17572      533245 :          idata = idata + 1
   17573      533245 :          data_tmp = full_data(idata)
   17574      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17575      533245 :          data_tmp = IAND(data_tmp, mask_left(4))
   17576      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17577      533245 :          ipack = ipack + 1
   17578      533245 :          packed_data(ipack) = pack_tmp
   17579      533245 :          data_tmp = full_data(idata)
   17580      533245 :          pack_tmp = ISHFT(data_tmp, 43)
   17581      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17582      533245 :          idata = idata + 1
   17583      533245 :          data_tmp = full_data(idata)
   17584      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17585      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17586      533245 :          pack_tmp = ISHFT(pack_tmp, -18)
   17587      533245 :          idata = idata + 1
   17588      533245 :          data_tmp = full_data(idata)
   17589      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17590      533245 :          data_tmp = IAND(data_tmp, mask_left(18))
   17591      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17592      533245 :          ipack = ipack + 1
   17593      533245 :          packed_data(ipack) = pack_tmp
   17594      533245 :          data_tmp = full_data(idata)
   17595      533245 :          pack_tmp = ISHFT(data_tmp, 57)
   17596      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17597      533245 :          idata = idata + 1
   17598      533245 :          data_tmp = full_data(idata)
   17599      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17600      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17601      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17602      533245 :          idata = idata + 1
   17603      533245 :          data_tmp = full_data(idata)
   17604      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17605      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17606      533245 :          pack_tmp = ISHFT(pack_tmp, -7)
   17607      533245 :          idata = idata + 1
   17608      533245 :          data_tmp = full_data(idata)
   17609      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17610      533245 :          data_tmp = IAND(data_tmp, mask_left(7))
   17611      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17612      533245 :          ipack = ipack + 1
   17613      533245 :          packed_data(ipack) = pack_tmp
   17614      533245 :          data_tmp = full_data(idata)
   17615      533245 :          pack_tmp = ISHFT(data_tmp, 46)
   17616      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17617      533245 :          idata = idata + 1
   17618      533245 :          data_tmp = full_data(idata)
   17619      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17620      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17621      533245 :          pack_tmp = ISHFT(pack_tmp, -21)
   17622      533245 :          idata = idata + 1
   17623      533245 :          data_tmp = full_data(idata)
   17624      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17625      533245 :          data_tmp = IAND(data_tmp, mask_left(21))
   17626      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17627      533245 :          ipack = ipack + 1
   17628      533245 :          packed_data(ipack) = pack_tmp
   17629      533245 :          data_tmp = full_data(idata)
   17630      533245 :          pack_tmp = ISHFT(data_tmp, 60)
   17631      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17632      533245 :          idata = idata + 1
   17633      533245 :          data_tmp = full_data(idata)
   17634      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17635      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17636      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17637      533245 :          idata = idata + 1
   17638      533245 :          data_tmp = full_data(idata)
   17639      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17640      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17641      533245 :          pack_tmp = ISHFT(pack_tmp, -10)
   17642      533245 :          idata = idata + 1
   17643      533245 :          data_tmp = full_data(idata)
   17644      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17645      533245 :          data_tmp = IAND(data_tmp, mask_left(10))
   17646      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17647      533245 :          ipack = ipack + 1
   17648      533245 :          packed_data(ipack) = pack_tmp
   17649      533245 :          data_tmp = full_data(idata)
   17650      533245 :          pack_tmp = ISHFT(data_tmp, 49)
   17651      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17652      533245 :          idata = idata + 1
   17653      533245 :          data_tmp = full_data(idata)
   17654      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17655      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17656      533245 :          pack_tmp = ISHFT(pack_tmp, -24)
   17657      533245 :          idata = idata + 1
   17658      533245 :          data_tmp = full_data(idata)
   17659      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17660      533245 :          data_tmp = IAND(data_tmp, mask_left(24))
   17661      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17662      533245 :          ipack = ipack + 1
   17663      533245 :          packed_data(ipack) = pack_tmp
   17664      533245 :          data_tmp = full_data(idata)
   17665      533245 :          pack_tmp = ISHFT(data_tmp, 63)
   17666      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17667      533245 :          idata = idata + 1
   17668      533245 :          data_tmp = full_data(idata)
   17669      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17670      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17671      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17672      533245 :          idata = idata + 1
   17673      533245 :          data_tmp = full_data(idata)
   17674      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17675      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17676      533245 :          pack_tmp = ISHFT(pack_tmp, -13)
   17677      533245 :          idata = idata + 1
   17678      533245 :          data_tmp = full_data(idata)
   17679      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17680      533245 :          data_tmp = IAND(data_tmp, mask_left(13))
   17681      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17682      533245 :          ipack = ipack + 1
   17683      533245 :          packed_data(ipack) = pack_tmp
   17684      533245 :          data_tmp = full_data(idata)
   17685      533245 :          pack_tmp = ISHFT(data_tmp, 52)
   17686      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17687      533245 :          idata = idata + 1
   17688      533245 :          data_tmp = full_data(idata)
   17689      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17690      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17691      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17692      533245 :          idata = idata + 1
   17693      533245 :          data_tmp = full_data(idata)
   17694      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17695      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17696      533245 :          pack_tmp = ISHFT(pack_tmp, -2)
   17697      533245 :          idata = idata + 1
   17698      533245 :          data_tmp = full_data(idata)
   17699      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17700      533245 :          data_tmp = IAND(data_tmp, mask_left(2))
   17701      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17702      533245 :          ipack = ipack + 1
   17703      533245 :          packed_data(ipack) = pack_tmp
   17704      533245 :          data_tmp = full_data(idata)
   17705      533245 :          pack_tmp = ISHFT(data_tmp, 41)
   17706      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17707      533245 :          idata = idata + 1
   17708      533245 :          data_tmp = full_data(idata)
   17709      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17710      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17711      533245 :          pack_tmp = ISHFT(pack_tmp, -16)
   17712      533245 :          idata = idata + 1
   17713      533245 :          data_tmp = full_data(idata)
   17714      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17715      533245 :          data_tmp = IAND(data_tmp, mask_left(16))
   17716      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17717      533245 :          ipack = ipack + 1
   17718      533245 :          packed_data(ipack) = pack_tmp
   17719      533245 :          data_tmp = full_data(idata)
   17720      533245 :          pack_tmp = ISHFT(data_tmp, 55)
   17721      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17722      533245 :          idata = idata + 1
   17723      533245 :          data_tmp = full_data(idata)
   17724      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17725      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17726      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17727      533245 :          idata = idata + 1
   17728      533245 :          data_tmp = full_data(idata)
   17729      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17730      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17731      533245 :          pack_tmp = ISHFT(pack_tmp, -5)
   17732      533245 :          idata = idata + 1
   17733      533245 :          data_tmp = full_data(idata)
   17734      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17735      533245 :          data_tmp = IAND(data_tmp, mask_left(5))
   17736      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17737      533245 :          ipack = ipack + 1
   17738      533245 :          packed_data(ipack) = pack_tmp
   17739      533245 :          data_tmp = full_data(idata)
   17740      533245 :          pack_tmp = ISHFT(data_tmp, 44)
   17741      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17742      533245 :          idata = idata + 1
   17743      533245 :          data_tmp = full_data(idata)
   17744      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17745      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17746      533245 :          pack_tmp = ISHFT(pack_tmp, -19)
   17747      533245 :          idata = idata + 1
   17748      533245 :          data_tmp = full_data(idata)
   17749      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17750      533245 :          data_tmp = IAND(data_tmp, mask_left(19))
   17751      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17752      533245 :          ipack = ipack + 1
   17753      533245 :          packed_data(ipack) = pack_tmp
   17754      533245 :          data_tmp = full_data(idata)
   17755      533245 :          pack_tmp = ISHFT(data_tmp, 58)
   17756      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17757      533245 :          idata = idata + 1
   17758      533245 :          data_tmp = full_data(idata)
   17759      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17760      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17761      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17762      533245 :          idata = idata + 1
   17763      533245 :          data_tmp = full_data(idata)
   17764      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17765      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17766      533245 :          pack_tmp = ISHFT(pack_tmp, -8)
   17767      533245 :          idata = idata + 1
   17768      533245 :          data_tmp = full_data(idata)
   17769      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17770      533245 :          data_tmp = IAND(data_tmp, mask_left(8))
   17771      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17772      533245 :          ipack = ipack + 1
   17773      533245 :          packed_data(ipack) = pack_tmp
   17774      533245 :          data_tmp = full_data(idata)
   17775      533245 :          pack_tmp = ISHFT(data_tmp, 47)
   17776      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17777      533245 :          idata = idata + 1
   17778      533245 :          data_tmp = full_data(idata)
   17779      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17780      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17781      533245 :          pack_tmp = ISHFT(pack_tmp, -22)
   17782      533245 :          idata = idata + 1
   17783      533245 :          data_tmp = full_data(idata)
   17784      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17785      533245 :          data_tmp = IAND(data_tmp, mask_left(22))
   17786      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17787      533245 :          ipack = ipack + 1
   17788      533245 :          packed_data(ipack) = pack_tmp
   17789      533245 :          data_tmp = full_data(idata)
   17790      533245 :          pack_tmp = ISHFT(data_tmp, 61)
   17791      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17792      533245 :          idata = idata + 1
   17793      533245 :          data_tmp = full_data(idata)
   17794      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17795      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17796      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17797      533245 :          idata = idata + 1
   17798      533245 :          data_tmp = full_data(idata)
   17799      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17800      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17801      533245 :          pack_tmp = ISHFT(pack_tmp, -11)
   17802      533245 :          idata = idata + 1
   17803      533245 :          data_tmp = full_data(idata)
   17804      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17805      533245 :          data_tmp = IAND(data_tmp, mask_left(11))
   17806      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17807      533245 :          ipack = ipack + 1
   17808      533245 :          packed_data(ipack) = pack_tmp
   17809      533245 :          data_tmp = full_data(idata)
   17810      533245 :          pack_tmp = ISHFT(data_tmp, 50)
   17811      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17812      533245 :          idata = idata + 1
   17813      533245 :          data_tmp = full_data(idata)
   17814      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17815      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17816      533245 :          pack_tmp = ISHFT(pack_tmp, -25)
   17817      533245 :          idata = idata + 1
   17818      533245 :          data_tmp = full_data(idata)
   17819      533245 :          data_tmp = ISHFT(data_tmp, 39)
   17820      533245 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17821             :          pack_tmp = ISHFT(pack_tmp, 0)
   17822      533245 :          pack_tmp = ISHFT(pack_tmp, 0)
   17823      533245 :          ipack = ipack + 1
   17824      533369 :          packed_data(ipack) = pack_tmp
   17825             :       END DO
   17826       37326 :       IF (Ndata_rep < Ndata) THEN
   17827        7398 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   17828             :       END IF
   17829       37326 :    END SUBROUTINE ints2bits_25
   17830             : 
   17831             : ! **************************************************************************************************
   17832             : !> \brief ...
   17833             : !> \param Ndata ...
   17834             : !> \param packed_data ...
   17835             : !> \param full_data ...
   17836             : ! **************************************************************************************************
   17837      161571 :    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      161571 :       ipack = 0
   17848      161571 :       idata = 0
   17849      161571 :       pack_tmp = 0
   17850      161571 :       Ndata_rep = (Ndata/64)*64
   17851      161571 :       DO kdata = 1, Ndata_rep, 64
   17852     2276559 :          idata = idata + 1
   17853     2276559 :          data_tmp = ISHFT(pack_tmp, 25)
   17854     2276559 :          ipack = ipack + 1
   17855     2276559 :          pack_tmp = packed_data(ipack)
   17856     2276559 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   17857     2276559 :          pack_tmp = ISHFT(pack_tmp, -25)
   17858     2276559 :          idata = idata + 1
   17859     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17860     2276559 :          full_data(idata) = data_tmp
   17861     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17862     2276559 :          idata = idata + 1
   17863     2276559 :          data_tmp = ISHFT(pack_tmp, 11)
   17864     2276559 :          ipack = ipack + 1
   17865     2276559 :          pack_tmp = packed_data(ipack)
   17866     2276559 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   17867     2276559 :          pack_tmp = ISHFT(pack_tmp, -11)
   17868     2276559 :          idata = idata + 1
   17869     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17870     2276559 :          full_data(idata) = data_tmp
   17871     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17872     2276559 :          idata = idata + 1
   17873     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17874     2276559 :          full_data(idata) = data_tmp
   17875     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17876     2276559 :          idata = idata + 1
   17877     2276559 :          data_tmp = ISHFT(pack_tmp, 22)
   17878     2276559 :          ipack = ipack + 1
   17879     2276559 :          pack_tmp = packed_data(ipack)
   17880     2276559 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   17881     2276559 :          pack_tmp = ISHFT(pack_tmp, -22)
   17882     2276559 :          idata = idata + 1
   17883     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17884     2276559 :          full_data(idata) = data_tmp
   17885     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17886     2276559 :          idata = idata + 1
   17887     2276559 :          data_tmp = ISHFT(pack_tmp, 8)
   17888     2276559 :          ipack = ipack + 1
   17889     2276559 :          pack_tmp = packed_data(ipack)
   17890     2276559 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17891     2276559 :          pack_tmp = ISHFT(pack_tmp, -8)
   17892     2276559 :          idata = idata + 1
   17893     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17894     2276559 :          full_data(idata) = data_tmp
   17895     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17896     2276559 :          idata = idata + 1
   17897     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17898     2276559 :          full_data(idata) = data_tmp
   17899     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17900     2276559 :          idata = idata + 1
   17901     2276559 :          data_tmp = ISHFT(pack_tmp, 19)
   17902     2276559 :          ipack = ipack + 1
   17903     2276559 :          pack_tmp = packed_data(ipack)
   17904     2276559 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   17905     2276559 :          pack_tmp = ISHFT(pack_tmp, -19)
   17906     2276559 :          idata = idata + 1
   17907     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17908     2276559 :          full_data(idata) = data_tmp
   17909     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17910     2276559 :          idata = idata + 1
   17911     2276559 :          data_tmp = ISHFT(pack_tmp, 5)
   17912     2276559 :          ipack = ipack + 1
   17913     2276559 :          pack_tmp = packed_data(ipack)
   17914     2276559 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   17915     2276559 :          pack_tmp = ISHFT(pack_tmp, -5)
   17916     2276559 :          idata = idata + 1
   17917     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17918     2276559 :          full_data(idata) = data_tmp
   17919     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17920     2276559 :          idata = idata + 1
   17921     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17922     2276559 :          full_data(idata) = data_tmp
   17923     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17924     2276559 :          idata = idata + 1
   17925     2276559 :          data_tmp = ISHFT(pack_tmp, 16)
   17926     2276559 :          ipack = ipack + 1
   17927     2276559 :          pack_tmp = packed_data(ipack)
   17928     2276559 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17929     2276559 :          pack_tmp = ISHFT(pack_tmp, -16)
   17930     2276559 :          idata = idata + 1
   17931     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17932     2276559 :          full_data(idata) = data_tmp
   17933     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17934     2276559 :          idata = idata + 1
   17935     2276559 :          data_tmp = ISHFT(pack_tmp, 2)
   17936     2276559 :          ipack = ipack + 1
   17937     2276559 :          pack_tmp = packed_data(ipack)
   17938     2276559 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   17939     2276559 :          pack_tmp = ISHFT(pack_tmp, -2)
   17940     2276559 :          idata = idata + 1
   17941     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17942     2276559 :          full_data(idata) = data_tmp
   17943     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17944     2276559 :          idata = idata + 1
   17945     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17946     2276559 :          full_data(idata) = data_tmp
   17947     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17948     2276559 :          idata = idata + 1
   17949     2276559 :          data_tmp = ISHFT(pack_tmp, 13)
   17950     2276559 :          ipack = ipack + 1
   17951     2276559 :          pack_tmp = packed_data(ipack)
   17952     2276559 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   17953     2276559 :          pack_tmp = ISHFT(pack_tmp, -13)
   17954     2276559 :          idata = idata + 1
   17955     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17956     2276559 :          full_data(idata) = data_tmp
   17957     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17958     2276559 :          idata = idata + 1
   17959     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17960     2276559 :          full_data(idata) = data_tmp
   17961     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17962     2276559 :          idata = idata + 1
   17963     2276559 :          data_tmp = ISHFT(pack_tmp, 24)
   17964     2276559 :          ipack = ipack + 1
   17965     2276559 :          pack_tmp = packed_data(ipack)
   17966     2276559 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17967     2276559 :          pack_tmp = ISHFT(pack_tmp, -24)
   17968     2276559 :          idata = idata + 1
   17969     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17970     2276559 :          full_data(idata) = data_tmp
   17971     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17972     2276559 :          idata = idata + 1
   17973     2276559 :          data_tmp = ISHFT(pack_tmp, 10)
   17974     2276559 :          ipack = ipack + 1
   17975     2276559 :          pack_tmp = packed_data(ipack)
   17976     2276559 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   17977     2276559 :          pack_tmp = ISHFT(pack_tmp, -10)
   17978     2276559 :          idata = idata + 1
   17979     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17980     2276559 :          full_data(idata) = data_tmp
   17981     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17982     2276559 :          idata = idata + 1
   17983     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17984     2276559 :          full_data(idata) = data_tmp
   17985     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17986     2276559 :          idata = idata + 1
   17987     2276559 :          data_tmp = ISHFT(pack_tmp, 21)
   17988     2276559 :          ipack = ipack + 1
   17989     2276559 :          pack_tmp = packed_data(ipack)
   17990     2276559 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   17991     2276559 :          pack_tmp = ISHFT(pack_tmp, -21)
   17992     2276559 :          idata = idata + 1
   17993     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17994     2276559 :          full_data(idata) = data_tmp
   17995     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17996     2276559 :          idata = idata + 1
   17997     2276559 :          data_tmp = ISHFT(pack_tmp, 7)
   17998     2276559 :          ipack = ipack + 1
   17999     2276559 :          pack_tmp = packed_data(ipack)
   18000     2276559 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   18001     2276559 :          pack_tmp = ISHFT(pack_tmp, -7)
   18002     2276559 :          idata = idata + 1
   18003     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18004     2276559 :          full_data(idata) = data_tmp
   18005     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18006     2276559 :          idata = idata + 1
   18007     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18008     2276559 :          full_data(idata) = data_tmp
   18009     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18010     2276559 :          idata = idata + 1
   18011     2276559 :          data_tmp = ISHFT(pack_tmp, 18)
   18012     2276559 :          ipack = ipack + 1
   18013     2276559 :          pack_tmp = packed_data(ipack)
   18014     2276559 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   18015     2276559 :          pack_tmp = ISHFT(pack_tmp, -18)
   18016     2276559 :          idata = idata + 1
   18017     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18018     2276559 :          full_data(idata) = data_tmp
   18019     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18020     2276559 :          idata = idata + 1
   18021     2276559 :          data_tmp = ISHFT(pack_tmp, 4)
   18022     2276559 :          ipack = ipack + 1
   18023     2276559 :          pack_tmp = packed_data(ipack)
   18024     2276559 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   18025     2276559 :          pack_tmp = ISHFT(pack_tmp, -4)
   18026     2276559 :          idata = idata + 1
   18027     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18028     2276559 :          full_data(idata) = data_tmp
   18029     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18030     2276559 :          idata = idata + 1
   18031     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18032     2276559 :          full_data(idata) = data_tmp
   18033     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18034     2276559 :          idata = idata + 1
   18035     2276559 :          data_tmp = ISHFT(pack_tmp, 15)
   18036     2276559 :          ipack = ipack + 1
   18037     2276559 :          pack_tmp = packed_data(ipack)
   18038     2276559 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   18039     2276559 :          pack_tmp = ISHFT(pack_tmp, -15)
   18040     2276559 :          idata = idata + 1
   18041     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18042     2276559 :          full_data(idata) = data_tmp
   18043     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18044     2276559 :          idata = idata + 1
   18045     2276559 :          data_tmp = ISHFT(pack_tmp, 1)
   18046     2276559 :          ipack = ipack + 1
   18047     2276559 :          pack_tmp = packed_data(ipack)
   18048     2276559 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   18049     2276559 :          pack_tmp = ISHFT(pack_tmp, -1)
   18050     2276559 :          idata = idata + 1
   18051     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18052     2276559 :          full_data(idata) = data_tmp
   18053     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18054     2276559 :          idata = idata + 1
   18055     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18056     2276559 :          full_data(idata) = data_tmp
   18057     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18058     2276559 :          idata = idata + 1
   18059     2276559 :          data_tmp = ISHFT(pack_tmp, 12)
   18060     2276559 :          ipack = ipack + 1
   18061     2276559 :          pack_tmp = packed_data(ipack)
   18062     2276559 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   18063     2276559 :          pack_tmp = ISHFT(pack_tmp, -12)
   18064     2276559 :          idata = idata + 1
   18065     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18066     2276559 :          full_data(idata) = data_tmp
   18067     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18068     2276559 :          idata = idata + 1
   18069     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18070     2276559 :          full_data(idata) = data_tmp
   18071     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18072     2276559 :          idata = idata + 1
   18073     2276559 :          data_tmp = ISHFT(pack_tmp, 23)
   18074     2276559 :          ipack = ipack + 1
   18075     2276559 :          pack_tmp = packed_data(ipack)
   18076     2276559 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   18077     2276559 :          pack_tmp = ISHFT(pack_tmp, -23)
   18078     2276559 :          idata = idata + 1
   18079     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18080     2276559 :          full_data(idata) = data_tmp
   18081     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18082     2276559 :          idata = idata + 1
   18083     2276559 :          data_tmp = ISHFT(pack_tmp, 9)
   18084     2276559 :          ipack = ipack + 1
   18085     2276559 :          pack_tmp = packed_data(ipack)
   18086     2276559 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   18087     2276559 :          pack_tmp = ISHFT(pack_tmp, -9)
   18088     2276559 :          idata = idata + 1
   18089     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18090     2276559 :          full_data(idata) = data_tmp
   18091     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18092     2276559 :          idata = idata + 1
   18093     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18094     2276559 :          full_data(idata) = data_tmp
   18095     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18096     2276559 :          idata = idata + 1
   18097     2276559 :          data_tmp = ISHFT(pack_tmp, 20)
   18098     2276559 :          ipack = ipack + 1
   18099     2276559 :          pack_tmp = packed_data(ipack)
   18100     2276559 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   18101     2276559 :          pack_tmp = ISHFT(pack_tmp, -20)
   18102     2276559 :          idata = idata + 1
   18103     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18104     2276559 :          full_data(idata) = data_tmp
   18105     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18106     2276559 :          idata = idata + 1
   18107     2276559 :          data_tmp = ISHFT(pack_tmp, 6)
   18108     2276559 :          ipack = ipack + 1
   18109     2276559 :          pack_tmp = packed_data(ipack)
   18110     2276559 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   18111     2276559 :          pack_tmp = ISHFT(pack_tmp, -6)
   18112     2276559 :          idata = idata + 1
   18113     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18114     2276559 :          full_data(idata) = data_tmp
   18115     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18116     2276559 :          idata = idata + 1
   18117     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18118     2276559 :          full_data(idata) = data_tmp
   18119     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18120     2276559 :          idata = idata + 1
   18121     2276559 :          data_tmp = ISHFT(pack_tmp, 17)
   18122     2276559 :          ipack = ipack + 1
   18123     2276559 :          pack_tmp = packed_data(ipack)
   18124     2276559 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   18125     2276559 :          pack_tmp = ISHFT(pack_tmp, -17)
   18126     2276559 :          idata = idata + 1
   18127     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18128     2276559 :          full_data(idata) = data_tmp
   18129     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18130     2276559 :          idata = idata + 1
   18131     2276559 :          data_tmp = ISHFT(pack_tmp, 3)
   18132     2276559 :          ipack = ipack + 1
   18133     2276559 :          pack_tmp = packed_data(ipack)
   18134     2276559 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   18135     2276559 :          pack_tmp = ISHFT(pack_tmp, -3)
   18136     2276559 :          idata = idata + 1
   18137     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18138     2276559 :          full_data(idata) = data_tmp
   18139     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18140     2276559 :          idata = idata + 1
   18141     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18142     2276559 :          full_data(idata) = data_tmp
   18143     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18144     2276559 :          idata = idata + 1
   18145     2276559 :          data_tmp = ISHFT(pack_tmp, 14)
   18146     2276559 :          ipack = ipack + 1
   18147     2276559 :          pack_tmp = packed_data(ipack)
   18148     2276559 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   18149     2276559 :          pack_tmp = ISHFT(pack_tmp, -14)
   18150     2276559 :          idata = idata + 1
   18151     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18152     2276559 :          full_data(idata) = data_tmp
   18153     2276559 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18154     2276559 :          idata = idata + 1
   18155     2276559 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18156     2276559 :          full_data(idata) = data_tmp
   18157     2277142 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18158             :       END DO
   18159      161571 :       IF (Ndata_rep < Ndata) THEN
   18160       35746 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   18161             :       END IF
   18162      161571 :    END SUBROUTINE bits2ints_25
   18163             : 
   18164             : ! **************************************************************************************************
   18165             : !> \brief ...
   18166             : !> \param Ndata ...
   18167             : !> \param packed_data ...
   18168             : !> \param full_data ...
   18169             : ! **************************************************************************************************
   18170       30075 :    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       30075 :       idata = 0
   18181       30075 :       ipack = 0
   18182       30075 :       Ndata_rep = (Ndata/64)*64
   18183       30075 :       DO kdata = 1, Ndata_rep, 64
   18184      451537 :          pack_tmp = 0
   18185      451537 :          idata = idata + 1
   18186      451537 :          data_tmp = full_data(idata)
   18187      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18188      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18189      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18190      451537 :          idata = idata + 1
   18191      451537 :          data_tmp = full_data(idata)
   18192      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18193      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18194      451537 :          pack_tmp = ISHFT(pack_tmp, -12)
   18195      451537 :          idata = idata + 1
   18196      451537 :          data_tmp = full_data(idata)
   18197      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18198      451537 :          data_tmp = IAND(data_tmp, mask_left(12))
   18199      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18200      451537 :          ipack = ipack + 1
   18201      451537 :          packed_data(ipack) = pack_tmp
   18202      451537 :          data_tmp = full_data(idata)
   18203      451537 :          pack_tmp = ISHFT(data_tmp, 50)
   18204      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18205      451537 :          idata = idata + 1
   18206      451537 :          data_tmp = full_data(idata)
   18207      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18208      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18209      451537 :          pack_tmp = ISHFT(pack_tmp, -24)
   18210      451537 :          idata = idata + 1
   18211      451537 :          data_tmp = full_data(idata)
   18212      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18213      451537 :          data_tmp = IAND(data_tmp, mask_left(24))
   18214      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18215      451537 :          ipack = ipack + 1
   18216      451537 :          packed_data(ipack) = pack_tmp
   18217      451537 :          data_tmp = full_data(idata)
   18218      451537 :          pack_tmp = ISHFT(data_tmp, 62)
   18219      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18220      451537 :          idata = idata + 1
   18221      451537 :          data_tmp = full_data(idata)
   18222      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18223      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18224      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18225      451537 :          idata = idata + 1
   18226      451537 :          data_tmp = full_data(idata)
   18227      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18228      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18229      451537 :          pack_tmp = ISHFT(pack_tmp, -10)
   18230      451537 :          idata = idata + 1
   18231      451537 :          data_tmp = full_data(idata)
   18232      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18233      451537 :          data_tmp = IAND(data_tmp, mask_left(10))
   18234      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18235      451537 :          ipack = ipack + 1
   18236      451537 :          packed_data(ipack) = pack_tmp
   18237      451537 :          data_tmp = full_data(idata)
   18238      451537 :          pack_tmp = ISHFT(data_tmp, 48)
   18239      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18240      451537 :          idata = idata + 1
   18241      451537 :          data_tmp = full_data(idata)
   18242      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18243      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18244      451537 :          pack_tmp = ISHFT(pack_tmp, -22)
   18245      451537 :          idata = idata + 1
   18246      451537 :          data_tmp = full_data(idata)
   18247      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18248      451537 :          data_tmp = IAND(data_tmp, mask_left(22))
   18249      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18250      451537 :          ipack = ipack + 1
   18251      451537 :          packed_data(ipack) = pack_tmp
   18252      451537 :          data_tmp = full_data(idata)
   18253      451537 :          pack_tmp = ISHFT(data_tmp, 60)
   18254      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18255      451537 :          idata = idata + 1
   18256      451537 :          data_tmp = full_data(idata)
   18257      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18258      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18259      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18260      451537 :          idata = idata + 1
   18261      451537 :          data_tmp = full_data(idata)
   18262      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18263      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18264      451537 :          pack_tmp = ISHFT(pack_tmp, -8)
   18265      451537 :          idata = idata + 1
   18266      451537 :          data_tmp = full_data(idata)
   18267      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18268      451537 :          data_tmp = IAND(data_tmp, mask_left(8))
   18269      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18270      451537 :          ipack = ipack + 1
   18271      451537 :          packed_data(ipack) = pack_tmp
   18272      451537 :          data_tmp = full_data(idata)
   18273      451537 :          pack_tmp = ISHFT(data_tmp, 46)
   18274      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18275      451537 :          idata = idata + 1
   18276      451537 :          data_tmp = full_data(idata)
   18277      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18278      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18279      451537 :          pack_tmp = ISHFT(pack_tmp, -20)
   18280      451537 :          idata = idata + 1
   18281      451537 :          data_tmp = full_data(idata)
   18282      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18283      451537 :          data_tmp = IAND(data_tmp, mask_left(20))
   18284      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18285      451537 :          ipack = ipack + 1
   18286      451537 :          packed_data(ipack) = pack_tmp
   18287      451537 :          data_tmp = full_data(idata)
   18288      451537 :          pack_tmp = ISHFT(data_tmp, 58)
   18289      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18290      451537 :          idata = idata + 1
   18291      451537 :          data_tmp = full_data(idata)
   18292      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18293      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18294      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18295      451537 :          idata = idata + 1
   18296      451537 :          data_tmp = full_data(idata)
   18297      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18298      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18299      451537 :          pack_tmp = ISHFT(pack_tmp, -6)
   18300      451537 :          idata = idata + 1
   18301      451537 :          data_tmp = full_data(idata)
   18302      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18303      451537 :          data_tmp = IAND(data_tmp, mask_left(6))
   18304      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18305      451537 :          ipack = ipack + 1
   18306      451537 :          packed_data(ipack) = pack_tmp
   18307      451537 :          data_tmp = full_data(idata)
   18308      451537 :          pack_tmp = ISHFT(data_tmp, 44)
   18309      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18310      451537 :          idata = idata + 1
   18311      451537 :          data_tmp = full_data(idata)
   18312      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18313      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18314      451537 :          pack_tmp = ISHFT(pack_tmp, -18)
   18315      451537 :          idata = idata + 1
   18316      451537 :          data_tmp = full_data(idata)
   18317      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18318      451537 :          data_tmp = IAND(data_tmp, mask_left(18))
   18319      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18320      451537 :          ipack = ipack + 1
   18321      451537 :          packed_data(ipack) = pack_tmp
   18322      451537 :          data_tmp = full_data(idata)
   18323      451537 :          pack_tmp = ISHFT(data_tmp, 56)
   18324      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18325      451537 :          idata = idata + 1
   18326      451537 :          data_tmp = full_data(idata)
   18327      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18328      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18329      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18330      451537 :          idata = idata + 1
   18331      451537 :          data_tmp = full_data(idata)
   18332      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18333      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18334      451537 :          pack_tmp = ISHFT(pack_tmp, -4)
   18335      451537 :          idata = idata + 1
   18336      451537 :          data_tmp = full_data(idata)
   18337      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18338      451537 :          data_tmp = IAND(data_tmp, mask_left(4))
   18339      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18340      451537 :          ipack = ipack + 1
   18341      451537 :          packed_data(ipack) = pack_tmp
   18342      451537 :          data_tmp = full_data(idata)
   18343      451537 :          pack_tmp = ISHFT(data_tmp, 42)
   18344      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18345      451537 :          idata = idata + 1
   18346      451537 :          data_tmp = full_data(idata)
   18347      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18348      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18349      451537 :          pack_tmp = ISHFT(pack_tmp, -16)
   18350      451537 :          idata = idata + 1
   18351      451537 :          data_tmp = full_data(idata)
   18352      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18353      451537 :          data_tmp = IAND(data_tmp, mask_left(16))
   18354      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18355      451537 :          ipack = ipack + 1
   18356      451537 :          packed_data(ipack) = pack_tmp
   18357      451537 :          data_tmp = full_data(idata)
   18358      451537 :          pack_tmp = ISHFT(data_tmp, 54)
   18359      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18360      451537 :          idata = idata + 1
   18361      451537 :          data_tmp = full_data(idata)
   18362      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18363      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18364      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18365      451537 :          idata = idata + 1
   18366      451537 :          data_tmp = full_data(idata)
   18367      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18368      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18369      451537 :          pack_tmp = ISHFT(pack_tmp, -2)
   18370      451537 :          idata = idata + 1
   18371      451537 :          data_tmp = full_data(idata)
   18372      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18373      451537 :          data_tmp = IAND(data_tmp, mask_left(2))
   18374      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18375      451537 :          ipack = ipack + 1
   18376      451537 :          packed_data(ipack) = pack_tmp
   18377      451537 :          data_tmp = full_data(idata)
   18378      451537 :          pack_tmp = ISHFT(data_tmp, 40)
   18379      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18380      451537 :          idata = idata + 1
   18381      451537 :          data_tmp = full_data(idata)
   18382      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18383      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18384      451537 :          pack_tmp = ISHFT(pack_tmp, -14)
   18385      451537 :          idata = idata + 1
   18386      451537 :          data_tmp = full_data(idata)
   18387      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18388      451537 :          data_tmp = IAND(data_tmp, mask_left(14))
   18389      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18390      451537 :          ipack = ipack + 1
   18391      451537 :          packed_data(ipack) = pack_tmp
   18392      451537 :          data_tmp = full_data(idata)
   18393      451537 :          pack_tmp = ISHFT(data_tmp, 52)
   18394      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18395      451537 :          idata = idata + 1
   18396      451537 :          data_tmp = full_data(idata)
   18397      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18398      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18399      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18400      451537 :          idata = idata + 1
   18401      451537 :          data_tmp = full_data(idata)
   18402      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18403      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18404      451537 :          pack_tmp = ISHFT(pack_tmp, 0)
   18405      451537 :          idata = idata + 1
   18406      451537 :          data_tmp = full_data(idata)
   18407             :          data_tmp = ISHFT(data_tmp, 38)
   18408      451537 :          data_tmp = IAND(data_tmp, mask_left(0))
   18409      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18410      451537 :          ipack = ipack + 1
   18411      451537 :          packed_data(ipack) = pack_tmp
   18412      451537 :          data_tmp = full_data(idata)
   18413      451537 :          pack_tmp = ISHFT(data_tmp, 38)
   18414      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18415      451537 :          idata = idata + 1
   18416      451537 :          data_tmp = full_data(idata)
   18417      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18418      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18419      451537 :          pack_tmp = ISHFT(pack_tmp, -12)
   18420      451537 :          idata = idata + 1
   18421      451537 :          data_tmp = full_data(idata)
   18422      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18423      451537 :          data_tmp = IAND(data_tmp, mask_left(12))
   18424      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18425      451537 :          ipack = ipack + 1
   18426      451537 :          packed_data(ipack) = pack_tmp
   18427      451537 :          data_tmp = full_data(idata)
   18428      451537 :          pack_tmp = ISHFT(data_tmp, 50)
   18429      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18430      451537 :          idata = idata + 1
   18431      451537 :          data_tmp = full_data(idata)
   18432      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18433      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18434      451537 :          pack_tmp = ISHFT(pack_tmp, -24)
   18435      451537 :          idata = idata + 1
   18436      451537 :          data_tmp = full_data(idata)
   18437      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18438      451537 :          data_tmp = IAND(data_tmp, mask_left(24))
   18439      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18440      451537 :          ipack = ipack + 1
   18441      451537 :          packed_data(ipack) = pack_tmp
   18442      451537 :          data_tmp = full_data(idata)
   18443      451537 :          pack_tmp = ISHFT(data_tmp, 62)
   18444      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18445      451537 :          idata = idata + 1
   18446      451537 :          data_tmp = full_data(idata)
   18447      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18448      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18449      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18450      451537 :          idata = idata + 1
   18451      451537 :          data_tmp = full_data(idata)
   18452      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18453      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18454      451537 :          pack_tmp = ISHFT(pack_tmp, -10)
   18455      451537 :          idata = idata + 1
   18456      451537 :          data_tmp = full_data(idata)
   18457      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18458      451537 :          data_tmp = IAND(data_tmp, mask_left(10))
   18459      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18460      451537 :          ipack = ipack + 1
   18461      451537 :          packed_data(ipack) = pack_tmp
   18462      451537 :          data_tmp = full_data(idata)
   18463      451537 :          pack_tmp = ISHFT(data_tmp, 48)
   18464      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18465      451537 :          idata = idata + 1
   18466      451537 :          data_tmp = full_data(idata)
   18467      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18468      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18469      451537 :          pack_tmp = ISHFT(pack_tmp, -22)
   18470      451537 :          idata = idata + 1
   18471      451537 :          data_tmp = full_data(idata)
   18472      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18473      451537 :          data_tmp = IAND(data_tmp, mask_left(22))
   18474      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18475      451537 :          ipack = ipack + 1
   18476      451537 :          packed_data(ipack) = pack_tmp
   18477      451537 :          data_tmp = full_data(idata)
   18478      451537 :          pack_tmp = ISHFT(data_tmp, 60)
   18479      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18480      451537 :          idata = idata + 1
   18481      451537 :          data_tmp = full_data(idata)
   18482      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18483      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18484      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18485      451537 :          idata = idata + 1
   18486      451537 :          data_tmp = full_data(idata)
   18487      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18488      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18489      451537 :          pack_tmp = ISHFT(pack_tmp, -8)
   18490      451537 :          idata = idata + 1
   18491      451537 :          data_tmp = full_data(idata)
   18492      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18493      451537 :          data_tmp = IAND(data_tmp, mask_left(8))
   18494      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18495      451537 :          ipack = ipack + 1
   18496      451537 :          packed_data(ipack) = pack_tmp
   18497      451537 :          data_tmp = full_data(idata)
   18498      451537 :          pack_tmp = ISHFT(data_tmp, 46)
   18499      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18500      451537 :          idata = idata + 1
   18501      451537 :          data_tmp = full_data(idata)
   18502      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18503      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18504      451537 :          pack_tmp = ISHFT(pack_tmp, -20)
   18505      451537 :          idata = idata + 1
   18506      451537 :          data_tmp = full_data(idata)
   18507      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18508      451537 :          data_tmp = IAND(data_tmp, mask_left(20))
   18509      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18510      451537 :          ipack = ipack + 1
   18511      451537 :          packed_data(ipack) = pack_tmp
   18512      451537 :          data_tmp = full_data(idata)
   18513      451537 :          pack_tmp = ISHFT(data_tmp, 58)
   18514      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18515      451537 :          idata = idata + 1
   18516      451537 :          data_tmp = full_data(idata)
   18517      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18518      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18519      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18520      451537 :          idata = idata + 1
   18521      451537 :          data_tmp = full_data(idata)
   18522      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18523      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18524      451537 :          pack_tmp = ISHFT(pack_tmp, -6)
   18525      451537 :          idata = idata + 1
   18526      451537 :          data_tmp = full_data(idata)
   18527      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18528      451537 :          data_tmp = IAND(data_tmp, mask_left(6))
   18529      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18530      451537 :          ipack = ipack + 1
   18531      451537 :          packed_data(ipack) = pack_tmp
   18532      451537 :          data_tmp = full_data(idata)
   18533      451537 :          pack_tmp = ISHFT(data_tmp, 44)
   18534      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18535      451537 :          idata = idata + 1
   18536      451537 :          data_tmp = full_data(idata)
   18537      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18538      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18539      451537 :          pack_tmp = ISHFT(pack_tmp, -18)
   18540      451537 :          idata = idata + 1
   18541      451537 :          data_tmp = full_data(idata)
   18542      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18543      451537 :          data_tmp = IAND(data_tmp, mask_left(18))
   18544      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18545      451537 :          ipack = ipack + 1
   18546      451537 :          packed_data(ipack) = pack_tmp
   18547      451537 :          data_tmp = full_data(idata)
   18548      451537 :          pack_tmp = ISHFT(data_tmp, 56)
   18549      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18550      451537 :          idata = idata + 1
   18551      451537 :          data_tmp = full_data(idata)
   18552      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18553      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18554      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18555      451537 :          idata = idata + 1
   18556      451537 :          data_tmp = full_data(idata)
   18557      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18558      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18559      451537 :          pack_tmp = ISHFT(pack_tmp, -4)
   18560      451537 :          idata = idata + 1
   18561      451537 :          data_tmp = full_data(idata)
   18562      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18563      451537 :          data_tmp = IAND(data_tmp, mask_left(4))
   18564      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18565      451537 :          ipack = ipack + 1
   18566      451537 :          packed_data(ipack) = pack_tmp
   18567      451537 :          data_tmp = full_data(idata)
   18568      451537 :          pack_tmp = ISHFT(data_tmp, 42)
   18569      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18570      451537 :          idata = idata + 1
   18571      451537 :          data_tmp = full_data(idata)
   18572      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18573      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18574      451537 :          pack_tmp = ISHFT(pack_tmp, -16)
   18575      451537 :          idata = idata + 1
   18576      451537 :          data_tmp = full_data(idata)
   18577      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18578      451537 :          data_tmp = IAND(data_tmp, mask_left(16))
   18579      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18580      451537 :          ipack = ipack + 1
   18581      451537 :          packed_data(ipack) = pack_tmp
   18582      451537 :          data_tmp = full_data(idata)
   18583      451537 :          pack_tmp = ISHFT(data_tmp, 54)
   18584      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18585      451537 :          idata = idata + 1
   18586      451537 :          data_tmp = full_data(idata)
   18587      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18588      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18589      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18590      451537 :          idata = idata + 1
   18591      451537 :          data_tmp = full_data(idata)
   18592      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18593      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18594      451537 :          pack_tmp = ISHFT(pack_tmp, -2)
   18595      451537 :          idata = idata + 1
   18596      451537 :          data_tmp = full_data(idata)
   18597      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18598      451537 :          data_tmp = IAND(data_tmp, mask_left(2))
   18599      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18600      451537 :          ipack = ipack + 1
   18601      451537 :          packed_data(ipack) = pack_tmp
   18602      451537 :          data_tmp = full_data(idata)
   18603      451537 :          pack_tmp = ISHFT(data_tmp, 40)
   18604      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18605      451537 :          idata = idata + 1
   18606      451537 :          data_tmp = full_data(idata)
   18607      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18608      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18609      451537 :          pack_tmp = ISHFT(pack_tmp, -14)
   18610      451537 :          idata = idata + 1
   18611      451537 :          data_tmp = full_data(idata)
   18612      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18613      451537 :          data_tmp = IAND(data_tmp, mask_left(14))
   18614      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18615      451537 :          ipack = ipack + 1
   18616      451537 :          packed_data(ipack) = pack_tmp
   18617      451537 :          data_tmp = full_data(idata)
   18618      451537 :          pack_tmp = ISHFT(data_tmp, 52)
   18619      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18620      451537 :          idata = idata + 1
   18621      451537 :          data_tmp = full_data(idata)
   18622      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18623      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18624      451537 :          pack_tmp = ISHFT(pack_tmp, -26)
   18625      451537 :          idata = idata + 1
   18626      451537 :          data_tmp = full_data(idata)
   18627      451537 :          data_tmp = ISHFT(data_tmp, 38)
   18628      451537 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18629             :          pack_tmp = ISHFT(pack_tmp, 0)
   18630      451537 :          pack_tmp = ISHFT(pack_tmp, 0)
   18631      451537 :          ipack = ipack + 1
   18632      451663 :          packed_data(ipack) = pack_tmp
   18633             :       END DO
   18634       30075 :       IF (Ndata_rep < Ndata) THEN
   18635        3422 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   18636             :       END IF
   18637       30075 :    END SUBROUTINE ints2bits_26
   18638             : 
   18639             : ! **************************************************************************************************
   18640             : !> \brief ...
   18641             : !> \param Ndata ...
   18642             : !> \param packed_data ...
   18643             : !> \param full_data ...
   18644             : ! **************************************************************************************************
   18645      133483 :    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      133483 :       ipack = 0
   18656      133483 :       idata = 0
   18657      133483 :       pack_tmp = 0
   18658      133483 :       Ndata_rep = (Ndata/64)*64
   18659      133483 :       DO kdata = 1, Ndata_rep, 64
   18660     1955879 :          idata = idata + 1
   18661     1955879 :          data_tmp = ISHFT(pack_tmp, 26)
   18662     1955879 :          ipack = ipack + 1
   18663     1955879 :          pack_tmp = packed_data(ipack)
   18664     1955879 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   18665     1955879 :          pack_tmp = ISHFT(pack_tmp, -26)
   18666     1955879 :          idata = idata + 1
   18667     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18668     1955879 :          full_data(idata) = data_tmp
   18669     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18670     1955879 :          idata = idata + 1
   18671     1955879 :          data_tmp = ISHFT(pack_tmp, 14)
   18672     1955879 :          ipack = ipack + 1
   18673     1955879 :          pack_tmp = packed_data(ipack)
   18674     1955879 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   18675     1955879 :          pack_tmp = ISHFT(pack_tmp, -14)
   18676     1955879 :          idata = idata + 1
   18677     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18678     1955879 :          full_data(idata) = data_tmp
   18679     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18680     1955879 :          idata = idata + 1
   18681     1955879 :          data_tmp = ISHFT(pack_tmp, 2)
   18682     1955879 :          ipack = ipack + 1
   18683     1955879 :          pack_tmp = packed_data(ipack)
   18684     1955879 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   18685     1955879 :          pack_tmp = ISHFT(pack_tmp, -2)
   18686     1955879 :          idata = idata + 1
   18687     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18688     1955879 :          full_data(idata) = data_tmp
   18689     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18690     1955879 :          idata = idata + 1
   18691     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18692     1955879 :          full_data(idata) = data_tmp
   18693     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18694     1955879 :          idata = idata + 1
   18695     1955879 :          data_tmp = ISHFT(pack_tmp, 16)
   18696     1955879 :          ipack = ipack + 1
   18697     1955879 :          pack_tmp = packed_data(ipack)
   18698     1955879 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   18699     1955879 :          pack_tmp = ISHFT(pack_tmp, -16)
   18700     1955879 :          idata = idata + 1
   18701     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18702     1955879 :          full_data(idata) = data_tmp
   18703     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18704     1955879 :          idata = idata + 1
   18705     1955879 :          data_tmp = ISHFT(pack_tmp, 4)
   18706     1955879 :          ipack = ipack + 1
   18707     1955879 :          pack_tmp = packed_data(ipack)
   18708     1955879 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   18709     1955879 :          pack_tmp = ISHFT(pack_tmp, -4)
   18710     1955879 :          idata = idata + 1
   18711     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18712     1955879 :          full_data(idata) = data_tmp
   18713     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18714     1955879 :          idata = idata + 1
   18715     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18716     1955879 :          full_data(idata) = data_tmp
   18717     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18718     1955879 :          idata = idata + 1
   18719     1955879 :          data_tmp = ISHFT(pack_tmp, 18)
   18720     1955879 :          ipack = ipack + 1
   18721     1955879 :          pack_tmp = packed_data(ipack)
   18722     1955879 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   18723     1955879 :          pack_tmp = ISHFT(pack_tmp, -18)
   18724     1955879 :          idata = idata + 1
   18725     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18726     1955879 :          full_data(idata) = data_tmp
   18727     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18728     1955879 :          idata = idata + 1
   18729     1955879 :          data_tmp = ISHFT(pack_tmp, 6)
   18730     1955879 :          ipack = ipack + 1
   18731     1955879 :          pack_tmp = packed_data(ipack)
   18732     1955879 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   18733     1955879 :          pack_tmp = ISHFT(pack_tmp, -6)
   18734     1955879 :          idata = idata + 1
   18735     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18736     1955879 :          full_data(idata) = data_tmp
   18737     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18738     1955879 :          idata = idata + 1
   18739     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18740     1955879 :          full_data(idata) = data_tmp
   18741     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18742     1955879 :          idata = idata + 1
   18743     1955879 :          data_tmp = ISHFT(pack_tmp, 20)
   18744     1955879 :          ipack = ipack + 1
   18745     1955879 :          pack_tmp = packed_data(ipack)
   18746     1955879 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   18747     1955879 :          pack_tmp = ISHFT(pack_tmp, -20)
   18748     1955879 :          idata = idata + 1
   18749     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18750     1955879 :          full_data(idata) = data_tmp
   18751     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18752     1955879 :          idata = idata + 1
   18753     1955879 :          data_tmp = ISHFT(pack_tmp, 8)
   18754     1955879 :          ipack = ipack + 1
   18755     1955879 :          pack_tmp = packed_data(ipack)
   18756     1955879 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   18757     1955879 :          pack_tmp = ISHFT(pack_tmp, -8)
   18758     1955879 :          idata = idata + 1
   18759     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18760     1955879 :          full_data(idata) = data_tmp
   18761     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18762     1955879 :          idata = idata + 1
   18763     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18764     1955879 :          full_data(idata) = data_tmp
   18765     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18766     1955879 :          idata = idata + 1
   18767     1955879 :          data_tmp = ISHFT(pack_tmp, 22)
   18768     1955879 :          ipack = ipack + 1
   18769     1955879 :          pack_tmp = packed_data(ipack)
   18770     1955879 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   18771     1955879 :          pack_tmp = ISHFT(pack_tmp, -22)
   18772     1955879 :          idata = idata + 1
   18773     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18774     1955879 :          full_data(idata) = data_tmp
   18775     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18776     1955879 :          idata = idata + 1
   18777     1955879 :          data_tmp = ISHFT(pack_tmp, 10)
   18778     1955879 :          ipack = ipack + 1
   18779     1955879 :          pack_tmp = packed_data(ipack)
   18780     1955879 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   18781     1955879 :          pack_tmp = ISHFT(pack_tmp, -10)
   18782     1955879 :          idata = idata + 1
   18783     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18784     1955879 :          full_data(idata) = data_tmp
   18785     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18786     1955879 :          idata = idata + 1
   18787     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18788     1955879 :          full_data(idata) = data_tmp
   18789     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18790     1955879 :          idata = idata + 1
   18791     1955879 :          data_tmp = ISHFT(pack_tmp, 24)
   18792     1955879 :          ipack = ipack + 1
   18793     1955879 :          pack_tmp = packed_data(ipack)
   18794     1955879 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   18795     1955879 :          pack_tmp = ISHFT(pack_tmp, -24)
   18796     1955879 :          idata = idata + 1
   18797     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18798     1955879 :          full_data(idata) = data_tmp
   18799     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18800     1955879 :          idata = idata + 1
   18801     1955879 :          data_tmp = ISHFT(pack_tmp, 12)
   18802     1955879 :          ipack = ipack + 1
   18803     1955879 :          pack_tmp = packed_data(ipack)
   18804     1955879 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   18805     1955879 :          pack_tmp = ISHFT(pack_tmp, -12)
   18806     1955879 :          idata = idata + 1
   18807     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18808     1955879 :          full_data(idata) = data_tmp
   18809     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18810     1955879 :          idata = idata + 1
   18811     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18812     1955879 :          full_data(idata) = data_tmp
   18813     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18814     1955879 :          idata = idata + 1
   18815     1955879 :          data_tmp = ISHFT(pack_tmp, 26)
   18816     1955879 :          ipack = ipack + 1
   18817     1955879 :          pack_tmp = packed_data(ipack)
   18818     1955879 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   18819     1955879 :          pack_tmp = ISHFT(pack_tmp, -26)
   18820     1955879 :          idata = idata + 1
   18821     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18822     1955879 :          full_data(idata) = data_tmp
   18823     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18824     1955879 :          idata = idata + 1
   18825     1955879 :          data_tmp = ISHFT(pack_tmp, 14)
   18826     1955879 :          ipack = ipack + 1
   18827     1955879 :          pack_tmp = packed_data(ipack)
   18828     1955879 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   18829     1955879 :          pack_tmp = ISHFT(pack_tmp, -14)
   18830     1955879 :          idata = idata + 1
   18831     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18832     1955879 :          full_data(idata) = data_tmp
   18833     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18834     1955879 :          idata = idata + 1
   18835     1955879 :          data_tmp = ISHFT(pack_tmp, 2)
   18836     1955879 :          ipack = ipack + 1
   18837     1955879 :          pack_tmp = packed_data(ipack)
   18838     1955879 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   18839     1955879 :          pack_tmp = ISHFT(pack_tmp, -2)
   18840     1955879 :          idata = idata + 1
   18841     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18842     1955879 :          full_data(idata) = data_tmp
   18843     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18844     1955879 :          idata = idata + 1
   18845     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18846     1955879 :          full_data(idata) = data_tmp
   18847     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18848     1955879 :          idata = idata + 1
   18849     1955879 :          data_tmp = ISHFT(pack_tmp, 16)
   18850     1955879 :          ipack = ipack + 1
   18851     1955879 :          pack_tmp = packed_data(ipack)
   18852     1955879 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   18853     1955879 :          pack_tmp = ISHFT(pack_tmp, -16)
   18854     1955879 :          idata = idata + 1
   18855     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18856     1955879 :          full_data(idata) = data_tmp
   18857     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18858     1955879 :          idata = idata + 1
   18859     1955879 :          data_tmp = ISHFT(pack_tmp, 4)
   18860     1955879 :          ipack = ipack + 1
   18861     1955879 :          pack_tmp = packed_data(ipack)
   18862     1955879 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   18863     1955879 :          pack_tmp = ISHFT(pack_tmp, -4)
   18864     1955879 :          idata = idata + 1
   18865     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18866     1955879 :          full_data(idata) = data_tmp
   18867     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18868     1955879 :          idata = idata + 1
   18869     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18870     1955879 :          full_data(idata) = data_tmp
   18871     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18872     1955879 :          idata = idata + 1
   18873     1955879 :          data_tmp = ISHFT(pack_tmp, 18)
   18874     1955879 :          ipack = ipack + 1
   18875     1955879 :          pack_tmp = packed_data(ipack)
   18876     1955879 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   18877     1955879 :          pack_tmp = ISHFT(pack_tmp, -18)
   18878     1955879 :          idata = idata + 1
   18879     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18880     1955879 :          full_data(idata) = data_tmp
   18881     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18882     1955879 :          idata = idata + 1
   18883     1955879 :          data_tmp = ISHFT(pack_tmp, 6)
   18884     1955879 :          ipack = ipack + 1
   18885     1955879 :          pack_tmp = packed_data(ipack)
   18886     1955879 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   18887     1955879 :          pack_tmp = ISHFT(pack_tmp, -6)
   18888     1955879 :          idata = idata + 1
   18889     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18890     1955879 :          full_data(idata) = data_tmp
   18891     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18892     1955879 :          idata = idata + 1
   18893     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18894     1955879 :          full_data(idata) = data_tmp
   18895     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18896     1955879 :          idata = idata + 1
   18897     1955879 :          data_tmp = ISHFT(pack_tmp, 20)
   18898     1955879 :          ipack = ipack + 1
   18899     1955879 :          pack_tmp = packed_data(ipack)
   18900     1955879 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   18901     1955879 :          pack_tmp = ISHFT(pack_tmp, -20)
   18902     1955879 :          idata = idata + 1
   18903     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18904     1955879 :          full_data(idata) = data_tmp
   18905     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18906     1955879 :          idata = idata + 1
   18907     1955879 :          data_tmp = ISHFT(pack_tmp, 8)
   18908     1955879 :          ipack = ipack + 1
   18909     1955879 :          pack_tmp = packed_data(ipack)
   18910     1955879 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   18911     1955879 :          pack_tmp = ISHFT(pack_tmp, -8)
   18912     1955879 :          idata = idata + 1
   18913     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18914     1955879 :          full_data(idata) = data_tmp
   18915     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18916     1955879 :          idata = idata + 1
   18917     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18918     1955879 :          full_data(idata) = data_tmp
   18919     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18920     1955879 :          idata = idata + 1
   18921     1955879 :          data_tmp = ISHFT(pack_tmp, 22)
   18922     1955879 :          ipack = ipack + 1
   18923     1955879 :          pack_tmp = packed_data(ipack)
   18924     1955879 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   18925     1955879 :          pack_tmp = ISHFT(pack_tmp, -22)
   18926     1955879 :          idata = idata + 1
   18927     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18928     1955879 :          full_data(idata) = data_tmp
   18929     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18930     1955879 :          idata = idata + 1
   18931     1955879 :          data_tmp = ISHFT(pack_tmp, 10)
   18932     1955879 :          ipack = ipack + 1
   18933     1955879 :          pack_tmp = packed_data(ipack)
   18934     1955879 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   18935     1955879 :          pack_tmp = ISHFT(pack_tmp, -10)
   18936     1955879 :          idata = idata + 1
   18937     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18938     1955879 :          full_data(idata) = data_tmp
   18939     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18940     1955879 :          idata = idata + 1
   18941     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18942     1955879 :          full_data(idata) = data_tmp
   18943     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18944     1955879 :          idata = idata + 1
   18945     1955879 :          data_tmp = ISHFT(pack_tmp, 24)
   18946     1955879 :          ipack = ipack + 1
   18947     1955879 :          pack_tmp = packed_data(ipack)
   18948     1955879 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   18949     1955879 :          pack_tmp = ISHFT(pack_tmp, -24)
   18950     1955879 :          idata = idata + 1
   18951     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18952     1955879 :          full_data(idata) = data_tmp
   18953     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18954     1955879 :          idata = idata + 1
   18955     1955879 :          data_tmp = ISHFT(pack_tmp, 12)
   18956     1955879 :          ipack = ipack + 1
   18957     1955879 :          pack_tmp = packed_data(ipack)
   18958     1955879 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   18959     1955879 :          pack_tmp = ISHFT(pack_tmp, -12)
   18960     1955879 :          idata = idata + 1
   18961     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18962     1955879 :          full_data(idata) = data_tmp
   18963     1955879 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18964     1955879 :          idata = idata + 1
   18965     1955879 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18966     1955879 :          full_data(idata) = data_tmp
   18967     1956402 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18968             :       END DO
   18969      133483 :       IF (Ndata_rep < Ndata) THEN
   18970       20914 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   18971             :       END IF
   18972      133483 :    END SUBROUTINE bits2ints_26
   18973             : 
   18974             : ! **************************************************************************************************
   18975             : !> \brief ...
   18976             : !> \param Ndata ...
   18977             : !> \param packed_data ...
   18978             : !> \param full_data ...
   18979             : ! **************************************************************************************************
   18980       29614 :    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       29614 :       idata = 0
   18991       29614 :       ipack = 0
   18992       29614 :       Ndata_rep = (Ndata/64)*64
   18993       29614 :       DO kdata = 1, Ndata_rep, 64
   18994      446845 :          pack_tmp = 0
   18995      446845 :          idata = idata + 1
   18996      446845 :          data_tmp = full_data(idata)
   18997      446845 :          data_tmp = ISHFT(data_tmp, 37)
   18998      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18999      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19000      446845 :          idata = idata + 1
   19001      446845 :          data_tmp = full_data(idata)
   19002      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19003      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19004      446845 :          pack_tmp = ISHFT(pack_tmp, -10)
   19005      446845 :          idata = idata + 1
   19006      446845 :          data_tmp = full_data(idata)
   19007      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19008      446845 :          data_tmp = IAND(data_tmp, mask_left(10))
   19009      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19010      446845 :          ipack = ipack + 1
   19011      446845 :          packed_data(ipack) = pack_tmp
   19012      446845 :          data_tmp = full_data(idata)
   19013      446845 :          pack_tmp = ISHFT(data_tmp, 47)
   19014      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19015      446845 :          idata = idata + 1
   19016      446845 :          data_tmp = full_data(idata)
   19017      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19018      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19019      446845 :          pack_tmp = ISHFT(pack_tmp, -20)
   19020      446845 :          idata = idata + 1
   19021      446845 :          data_tmp = full_data(idata)
   19022      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19023      446845 :          data_tmp = IAND(data_tmp, mask_left(20))
   19024      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19025      446845 :          ipack = ipack + 1
   19026      446845 :          packed_data(ipack) = pack_tmp
   19027      446845 :          data_tmp = full_data(idata)
   19028      446845 :          pack_tmp = ISHFT(data_tmp, 57)
   19029      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19030      446845 :          idata = idata + 1
   19031      446845 :          data_tmp = full_data(idata)
   19032      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19033      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19034      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19035      446845 :          idata = idata + 1
   19036      446845 :          data_tmp = full_data(idata)
   19037      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19038      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19039      446845 :          pack_tmp = ISHFT(pack_tmp, -3)
   19040      446845 :          idata = idata + 1
   19041      446845 :          data_tmp = full_data(idata)
   19042      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19043      446845 :          data_tmp = IAND(data_tmp, mask_left(3))
   19044      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19045      446845 :          ipack = ipack + 1
   19046      446845 :          packed_data(ipack) = pack_tmp
   19047      446845 :          data_tmp = full_data(idata)
   19048      446845 :          pack_tmp = ISHFT(data_tmp, 40)
   19049      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19050      446845 :          idata = idata + 1
   19051      446845 :          data_tmp = full_data(idata)
   19052      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19053      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19054      446845 :          pack_tmp = ISHFT(pack_tmp, -13)
   19055      446845 :          idata = idata + 1
   19056      446845 :          data_tmp = full_data(idata)
   19057      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19058      446845 :          data_tmp = IAND(data_tmp, mask_left(13))
   19059      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19060      446845 :          ipack = ipack + 1
   19061      446845 :          packed_data(ipack) = pack_tmp
   19062      446845 :          data_tmp = full_data(idata)
   19063      446845 :          pack_tmp = ISHFT(data_tmp, 50)
   19064      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19065      446845 :          idata = idata + 1
   19066      446845 :          data_tmp = full_data(idata)
   19067      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19068      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19069      446845 :          pack_tmp = ISHFT(pack_tmp, -23)
   19070      446845 :          idata = idata + 1
   19071      446845 :          data_tmp = full_data(idata)
   19072      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19073      446845 :          data_tmp = IAND(data_tmp, mask_left(23))
   19074      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19075      446845 :          ipack = ipack + 1
   19076      446845 :          packed_data(ipack) = pack_tmp
   19077      446845 :          data_tmp = full_data(idata)
   19078      446845 :          pack_tmp = ISHFT(data_tmp, 60)
   19079      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19080      446845 :          idata = idata + 1
   19081      446845 :          data_tmp = full_data(idata)
   19082      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19083      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19084      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19085      446845 :          idata = idata + 1
   19086      446845 :          data_tmp = full_data(idata)
   19087      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19088      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19089      446845 :          pack_tmp = ISHFT(pack_tmp, -6)
   19090      446845 :          idata = idata + 1
   19091      446845 :          data_tmp = full_data(idata)
   19092      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19093      446845 :          data_tmp = IAND(data_tmp, mask_left(6))
   19094      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19095      446845 :          ipack = ipack + 1
   19096      446845 :          packed_data(ipack) = pack_tmp
   19097      446845 :          data_tmp = full_data(idata)
   19098      446845 :          pack_tmp = ISHFT(data_tmp, 43)
   19099      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19100      446845 :          idata = idata + 1
   19101      446845 :          data_tmp = full_data(idata)
   19102      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19103      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19104      446845 :          pack_tmp = ISHFT(pack_tmp, -16)
   19105      446845 :          idata = idata + 1
   19106      446845 :          data_tmp = full_data(idata)
   19107      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19108      446845 :          data_tmp = IAND(data_tmp, mask_left(16))
   19109      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19110      446845 :          ipack = ipack + 1
   19111      446845 :          packed_data(ipack) = pack_tmp
   19112      446845 :          data_tmp = full_data(idata)
   19113      446845 :          pack_tmp = ISHFT(data_tmp, 53)
   19114      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19115      446845 :          idata = idata + 1
   19116      446845 :          data_tmp = full_data(idata)
   19117      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19118      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19119      446845 :          pack_tmp = ISHFT(pack_tmp, -26)
   19120      446845 :          idata = idata + 1
   19121      446845 :          data_tmp = full_data(idata)
   19122      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19123      446845 :          data_tmp = IAND(data_tmp, mask_left(26))
   19124      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19125      446845 :          ipack = ipack + 1
   19126      446845 :          packed_data(ipack) = pack_tmp
   19127      446845 :          data_tmp = full_data(idata)
   19128      446845 :          pack_tmp = ISHFT(data_tmp, 63)
   19129      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19130      446845 :          idata = idata + 1
   19131      446845 :          data_tmp = full_data(idata)
   19132      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19133      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19134      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19135      446845 :          idata = idata + 1
   19136      446845 :          data_tmp = full_data(idata)
   19137      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19138      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19139      446845 :          pack_tmp = ISHFT(pack_tmp, -9)
   19140      446845 :          idata = idata + 1
   19141      446845 :          data_tmp = full_data(idata)
   19142      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19143      446845 :          data_tmp = IAND(data_tmp, mask_left(9))
   19144      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19145      446845 :          ipack = ipack + 1
   19146      446845 :          packed_data(ipack) = pack_tmp
   19147      446845 :          data_tmp = full_data(idata)
   19148      446845 :          pack_tmp = ISHFT(data_tmp, 46)
   19149      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19150      446845 :          idata = idata + 1
   19151      446845 :          data_tmp = full_data(idata)
   19152      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19153      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19154      446845 :          pack_tmp = ISHFT(pack_tmp, -19)
   19155      446845 :          idata = idata + 1
   19156      446845 :          data_tmp = full_data(idata)
   19157      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19158      446845 :          data_tmp = IAND(data_tmp, mask_left(19))
   19159      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19160      446845 :          ipack = ipack + 1
   19161      446845 :          packed_data(ipack) = pack_tmp
   19162      446845 :          data_tmp = full_data(idata)
   19163      446845 :          pack_tmp = ISHFT(data_tmp, 56)
   19164      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19165      446845 :          idata = idata + 1
   19166      446845 :          data_tmp = full_data(idata)
   19167      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19168      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19169      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19170      446845 :          idata = idata + 1
   19171      446845 :          data_tmp = full_data(idata)
   19172      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19173      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19174      446845 :          pack_tmp = ISHFT(pack_tmp, -2)
   19175      446845 :          idata = idata + 1
   19176      446845 :          data_tmp = full_data(idata)
   19177      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19178      446845 :          data_tmp = IAND(data_tmp, mask_left(2))
   19179      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19180      446845 :          ipack = ipack + 1
   19181      446845 :          packed_data(ipack) = pack_tmp
   19182      446845 :          data_tmp = full_data(idata)
   19183      446845 :          pack_tmp = ISHFT(data_tmp, 39)
   19184      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19185      446845 :          idata = idata + 1
   19186      446845 :          data_tmp = full_data(idata)
   19187      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19188      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19189      446845 :          pack_tmp = ISHFT(pack_tmp, -12)
   19190      446845 :          idata = idata + 1
   19191      446845 :          data_tmp = full_data(idata)
   19192      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19193      446845 :          data_tmp = IAND(data_tmp, mask_left(12))
   19194      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19195      446845 :          ipack = ipack + 1
   19196      446845 :          packed_data(ipack) = pack_tmp
   19197      446845 :          data_tmp = full_data(idata)
   19198      446845 :          pack_tmp = ISHFT(data_tmp, 49)
   19199      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19200      446845 :          idata = idata + 1
   19201      446845 :          data_tmp = full_data(idata)
   19202      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19203      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19204      446845 :          pack_tmp = ISHFT(pack_tmp, -22)
   19205      446845 :          idata = idata + 1
   19206      446845 :          data_tmp = full_data(idata)
   19207      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19208      446845 :          data_tmp = IAND(data_tmp, mask_left(22))
   19209      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19210      446845 :          ipack = ipack + 1
   19211      446845 :          packed_data(ipack) = pack_tmp
   19212      446845 :          data_tmp = full_data(idata)
   19213      446845 :          pack_tmp = ISHFT(data_tmp, 59)
   19214      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19215      446845 :          idata = idata + 1
   19216      446845 :          data_tmp = full_data(idata)
   19217      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19218      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19219      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19220      446845 :          idata = idata + 1
   19221      446845 :          data_tmp = full_data(idata)
   19222      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19223      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19224      446845 :          pack_tmp = ISHFT(pack_tmp, -5)
   19225      446845 :          idata = idata + 1
   19226      446845 :          data_tmp = full_data(idata)
   19227      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19228      446845 :          data_tmp = IAND(data_tmp, mask_left(5))
   19229      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19230      446845 :          ipack = ipack + 1
   19231      446845 :          packed_data(ipack) = pack_tmp
   19232      446845 :          data_tmp = full_data(idata)
   19233      446845 :          pack_tmp = ISHFT(data_tmp, 42)
   19234      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19235      446845 :          idata = idata + 1
   19236      446845 :          data_tmp = full_data(idata)
   19237      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19238      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19239      446845 :          pack_tmp = ISHFT(pack_tmp, -15)
   19240      446845 :          idata = idata + 1
   19241      446845 :          data_tmp = full_data(idata)
   19242      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19243      446845 :          data_tmp = IAND(data_tmp, mask_left(15))
   19244      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19245      446845 :          ipack = ipack + 1
   19246      446845 :          packed_data(ipack) = pack_tmp
   19247      446845 :          data_tmp = full_data(idata)
   19248      446845 :          pack_tmp = ISHFT(data_tmp, 52)
   19249      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19250      446845 :          idata = idata + 1
   19251      446845 :          data_tmp = full_data(idata)
   19252      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19253      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19254      446845 :          pack_tmp = ISHFT(pack_tmp, -25)
   19255      446845 :          idata = idata + 1
   19256      446845 :          data_tmp = full_data(idata)
   19257      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19258      446845 :          data_tmp = IAND(data_tmp, mask_left(25))
   19259      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19260      446845 :          ipack = ipack + 1
   19261      446845 :          packed_data(ipack) = pack_tmp
   19262      446845 :          data_tmp = full_data(idata)
   19263      446845 :          pack_tmp = ISHFT(data_tmp, 62)
   19264      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19265      446845 :          idata = idata + 1
   19266      446845 :          data_tmp = full_data(idata)
   19267      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19268      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19269      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19270      446845 :          idata = idata + 1
   19271      446845 :          data_tmp = full_data(idata)
   19272      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19273      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19274      446845 :          pack_tmp = ISHFT(pack_tmp, -8)
   19275      446845 :          idata = idata + 1
   19276      446845 :          data_tmp = full_data(idata)
   19277      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19278      446845 :          data_tmp = IAND(data_tmp, mask_left(8))
   19279      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19280      446845 :          ipack = ipack + 1
   19281      446845 :          packed_data(ipack) = pack_tmp
   19282      446845 :          data_tmp = full_data(idata)
   19283      446845 :          pack_tmp = ISHFT(data_tmp, 45)
   19284      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19285      446845 :          idata = idata + 1
   19286      446845 :          data_tmp = full_data(idata)
   19287      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19288      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19289      446845 :          pack_tmp = ISHFT(pack_tmp, -18)
   19290      446845 :          idata = idata + 1
   19291      446845 :          data_tmp = full_data(idata)
   19292      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19293      446845 :          data_tmp = IAND(data_tmp, mask_left(18))
   19294      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19295      446845 :          ipack = ipack + 1
   19296      446845 :          packed_data(ipack) = pack_tmp
   19297      446845 :          data_tmp = full_data(idata)
   19298      446845 :          pack_tmp = ISHFT(data_tmp, 55)
   19299      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19300      446845 :          idata = idata + 1
   19301      446845 :          data_tmp = full_data(idata)
   19302      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19303      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19304      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19305      446845 :          idata = idata + 1
   19306      446845 :          data_tmp = full_data(idata)
   19307      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19308      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19309      446845 :          pack_tmp = ISHFT(pack_tmp, -1)
   19310      446845 :          idata = idata + 1
   19311      446845 :          data_tmp = full_data(idata)
   19312      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19313      446845 :          data_tmp = IAND(data_tmp, mask_left(1))
   19314      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19315      446845 :          ipack = ipack + 1
   19316      446845 :          packed_data(ipack) = pack_tmp
   19317      446845 :          data_tmp = full_data(idata)
   19318      446845 :          pack_tmp = ISHFT(data_tmp, 38)
   19319      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19320      446845 :          idata = idata + 1
   19321      446845 :          data_tmp = full_data(idata)
   19322      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19323      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19324      446845 :          pack_tmp = ISHFT(pack_tmp, -11)
   19325      446845 :          idata = idata + 1
   19326      446845 :          data_tmp = full_data(idata)
   19327      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19328      446845 :          data_tmp = IAND(data_tmp, mask_left(11))
   19329      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19330      446845 :          ipack = ipack + 1
   19331      446845 :          packed_data(ipack) = pack_tmp
   19332      446845 :          data_tmp = full_data(idata)
   19333      446845 :          pack_tmp = ISHFT(data_tmp, 48)
   19334      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19335      446845 :          idata = idata + 1
   19336      446845 :          data_tmp = full_data(idata)
   19337      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19338      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19339      446845 :          pack_tmp = ISHFT(pack_tmp, -21)
   19340      446845 :          idata = idata + 1
   19341      446845 :          data_tmp = full_data(idata)
   19342      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19343      446845 :          data_tmp = IAND(data_tmp, mask_left(21))
   19344      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19345      446845 :          ipack = ipack + 1
   19346      446845 :          packed_data(ipack) = pack_tmp
   19347      446845 :          data_tmp = full_data(idata)
   19348      446845 :          pack_tmp = ISHFT(data_tmp, 58)
   19349      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19350      446845 :          idata = idata + 1
   19351      446845 :          data_tmp = full_data(idata)
   19352      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19353      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19354      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19355      446845 :          idata = idata + 1
   19356      446845 :          data_tmp = full_data(idata)
   19357      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19358      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19359      446845 :          pack_tmp = ISHFT(pack_tmp, -4)
   19360      446845 :          idata = idata + 1
   19361      446845 :          data_tmp = full_data(idata)
   19362      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19363      446845 :          data_tmp = IAND(data_tmp, mask_left(4))
   19364      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19365      446845 :          ipack = ipack + 1
   19366      446845 :          packed_data(ipack) = pack_tmp
   19367      446845 :          data_tmp = full_data(idata)
   19368      446845 :          pack_tmp = ISHFT(data_tmp, 41)
   19369      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19370      446845 :          idata = idata + 1
   19371      446845 :          data_tmp = full_data(idata)
   19372      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19373      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19374      446845 :          pack_tmp = ISHFT(pack_tmp, -14)
   19375      446845 :          idata = idata + 1
   19376      446845 :          data_tmp = full_data(idata)
   19377      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19378      446845 :          data_tmp = IAND(data_tmp, mask_left(14))
   19379      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19380      446845 :          ipack = ipack + 1
   19381      446845 :          packed_data(ipack) = pack_tmp
   19382      446845 :          data_tmp = full_data(idata)
   19383      446845 :          pack_tmp = ISHFT(data_tmp, 51)
   19384      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19385      446845 :          idata = idata + 1
   19386      446845 :          data_tmp = full_data(idata)
   19387      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19388      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19389      446845 :          pack_tmp = ISHFT(pack_tmp, -24)
   19390      446845 :          idata = idata + 1
   19391      446845 :          data_tmp = full_data(idata)
   19392      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19393      446845 :          data_tmp = IAND(data_tmp, mask_left(24))
   19394      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19395      446845 :          ipack = ipack + 1
   19396      446845 :          packed_data(ipack) = pack_tmp
   19397      446845 :          data_tmp = full_data(idata)
   19398      446845 :          pack_tmp = ISHFT(data_tmp, 61)
   19399      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19400      446845 :          idata = idata + 1
   19401      446845 :          data_tmp = full_data(idata)
   19402      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19403      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19404      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19405      446845 :          idata = idata + 1
   19406      446845 :          data_tmp = full_data(idata)
   19407      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19408      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19409      446845 :          pack_tmp = ISHFT(pack_tmp, -7)
   19410      446845 :          idata = idata + 1
   19411      446845 :          data_tmp = full_data(idata)
   19412      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19413      446845 :          data_tmp = IAND(data_tmp, mask_left(7))
   19414      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19415      446845 :          ipack = ipack + 1
   19416      446845 :          packed_data(ipack) = pack_tmp
   19417      446845 :          data_tmp = full_data(idata)
   19418      446845 :          pack_tmp = ISHFT(data_tmp, 44)
   19419      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19420      446845 :          idata = idata + 1
   19421      446845 :          data_tmp = full_data(idata)
   19422      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19423      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19424      446845 :          pack_tmp = ISHFT(pack_tmp, -17)
   19425      446845 :          idata = idata + 1
   19426      446845 :          data_tmp = full_data(idata)
   19427      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19428      446845 :          data_tmp = IAND(data_tmp, mask_left(17))
   19429      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19430      446845 :          ipack = ipack + 1
   19431      446845 :          packed_data(ipack) = pack_tmp
   19432      446845 :          data_tmp = full_data(idata)
   19433      446845 :          pack_tmp = ISHFT(data_tmp, 54)
   19434      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19435      446845 :          idata = idata + 1
   19436      446845 :          data_tmp = full_data(idata)
   19437      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19438      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19439      446845 :          pack_tmp = ISHFT(pack_tmp, -27)
   19440      446845 :          idata = idata + 1
   19441      446845 :          data_tmp = full_data(idata)
   19442      446845 :          data_tmp = ISHFT(data_tmp, 37)
   19443      446845 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19444             :          pack_tmp = ISHFT(pack_tmp, 0)
   19445      446845 :          pack_tmp = ISHFT(pack_tmp, 0)
   19446      446845 :          ipack = ipack + 1
   19447      446926 :          packed_data(ipack) = pack_tmp
   19448             :       END DO
   19449       29614 :       IF (Ndata_rep < Ndata) THEN
   19450        3174 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   19451             :       END IF
   19452       29614 :    END SUBROUTINE ints2bits_27
   19453             : 
   19454             : ! **************************************************************************************************
   19455             : !> \brief ...
   19456             : !> \param Ndata ...
   19457             : !> \param packed_data ...
   19458             : !> \param full_data ...
   19459             : ! **************************************************************************************************
   19460      133749 :    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      133749 :       ipack = 0
   19471      133749 :       idata = 0
   19472      133749 :       pack_tmp = 0
   19473      133749 :       Ndata_rep = (Ndata/64)*64
   19474      133749 :       DO kdata = 1, Ndata_rep, 64
   19475     1958373 :          idata = idata + 1
   19476     1958373 :          data_tmp = ISHFT(pack_tmp, 27)
   19477     1958373 :          ipack = ipack + 1
   19478     1958373 :          pack_tmp = packed_data(ipack)
   19479     1958373 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   19480     1958373 :          pack_tmp = ISHFT(pack_tmp, -27)
   19481     1958373 :          idata = idata + 1
   19482     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19483     1958373 :          full_data(idata) = data_tmp
   19484     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19485     1958373 :          idata = idata + 1
   19486     1958373 :          data_tmp = ISHFT(pack_tmp, 17)
   19487     1958373 :          ipack = ipack + 1
   19488     1958373 :          pack_tmp = packed_data(ipack)
   19489     1958373 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   19490     1958373 :          pack_tmp = ISHFT(pack_tmp, -17)
   19491     1958373 :          idata = idata + 1
   19492     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19493     1958373 :          full_data(idata) = data_tmp
   19494     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19495     1958373 :          idata = idata + 1
   19496     1958373 :          data_tmp = ISHFT(pack_tmp, 7)
   19497     1958373 :          ipack = ipack + 1
   19498     1958373 :          pack_tmp = packed_data(ipack)
   19499     1958373 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   19500     1958373 :          pack_tmp = ISHFT(pack_tmp, -7)
   19501     1958373 :          idata = idata + 1
   19502     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19503     1958373 :          full_data(idata) = data_tmp
   19504     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19505     1958373 :          idata = idata + 1
   19506     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19507     1958373 :          full_data(idata) = data_tmp
   19508     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19509     1958373 :          idata = idata + 1
   19510     1958373 :          data_tmp = ISHFT(pack_tmp, 24)
   19511     1958373 :          ipack = ipack + 1
   19512     1958373 :          pack_tmp = packed_data(ipack)
   19513     1958373 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   19514     1958373 :          pack_tmp = ISHFT(pack_tmp, -24)
   19515     1958373 :          idata = idata + 1
   19516     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19517     1958373 :          full_data(idata) = data_tmp
   19518     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19519     1958373 :          idata = idata + 1
   19520     1958373 :          data_tmp = ISHFT(pack_tmp, 14)
   19521     1958373 :          ipack = ipack + 1
   19522     1958373 :          pack_tmp = packed_data(ipack)
   19523     1958373 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   19524     1958373 :          pack_tmp = ISHFT(pack_tmp, -14)
   19525     1958373 :          idata = idata + 1
   19526     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19527     1958373 :          full_data(idata) = data_tmp
   19528     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19529     1958373 :          idata = idata + 1
   19530     1958373 :          data_tmp = ISHFT(pack_tmp, 4)
   19531     1958373 :          ipack = ipack + 1
   19532     1958373 :          pack_tmp = packed_data(ipack)
   19533     1958373 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   19534     1958373 :          pack_tmp = ISHFT(pack_tmp, -4)
   19535     1958373 :          idata = idata + 1
   19536     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19537     1958373 :          full_data(idata) = data_tmp
   19538     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19539     1958373 :          idata = idata + 1
   19540     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19541     1958373 :          full_data(idata) = data_tmp
   19542     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19543     1958373 :          idata = idata + 1
   19544     1958373 :          data_tmp = ISHFT(pack_tmp, 21)
   19545     1958373 :          ipack = ipack + 1
   19546     1958373 :          pack_tmp = packed_data(ipack)
   19547     1958373 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   19548     1958373 :          pack_tmp = ISHFT(pack_tmp, -21)
   19549     1958373 :          idata = idata + 1
   19550     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19551     1958373 :          full_data(idata) = data_tmp
   19552     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19553     1958373 :          idata = idata + 1
   19554     1958373 :          data_tmp = ISHFT(pack_tmp, 11)
   19555     1958373 :          ipack = ipack + 1
   19556     1958373 :          pack_tmp = packed_data(ipack)
   19557     1958373 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   19558     1958373 :          pack_tmp = ISHFT(pack_tmp, -11)
   19559     1958373 :          idata = idata + 1
   19560     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19561     1958373 :          full_data(idata) = data_tmp
   19562     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19563     1958373 :          idata = idata + 1
   19564     1958373 :          data_tmp = ISHFT(pack_tmp, 1)
   19565     1958373 :          ipack = ipack + 1
   19566     1958373 :          pack_tmp = packed_data(ipack)
   19567     1958373 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   19568     1958373 :          pack_tmp = ISHFT(pack_tmp, -1)
   19569     1958373 :          idata = idata + 1
   19570     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19571     1958373 :          full_data(idata) = data_tmp
   19572     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19573     1958373 :          idata = idata + 1
   19574     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19575     1958373 :          full_data(idata) = data_tmp
   19576     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19577     1958373 :          idata = idata + 1
   19578     1958373 :          data_tmp = ISHFT(pack_tmp, 18)
   19579     1958373 :          ipack = ipack + 1
   19580     1958373 :          pack_tmp = packed_data(ipack)
   19581     1958373 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   19582     1958373 :          pack_tmp = ISHFT(pack_tmp, -18)
   19583     1958373 :          idata = idata + 1
   19584     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19585     1958373 :          full_data(idata) = data_tmp
   19586     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19587     1958373 :          idata = idata + 1
   19588     1958373 :          data_tmp = ISHFT(pack_tmp, 8)
   19589     1958373 :          ipack = ipack + 1
   19590     1958373 :          pack_tmp = packed_data(ipack)
   19591     1958373 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   19592     1958373 :          pack_tmp = ISHFT(pack_tmp, -8)
   19593     1958373 :          idata = idata + 1
   19594     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19595     1958373 :          full_data(idata) = data_tmp
   19596     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19597     1958373 :          idata = idata + 1
   19598     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19599     1958373 :          full_data(idata) = data_tmp
   19600     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19601     1958373 :          idata = idata + 1
   19602     1958373 :          data_tmp = ISHFT(pack_tmp, 25)
   19603     1958373 :          ipack = ipack + 1
   19604     1958373 :          pack_tmp = packed_data(ipack)
   19605     1958373 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   19606     1958373 :          pack_tmp = ISHFT(pack_tmp, -25)
   19607     1958373 :          idata = idata + 1
   19608     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19609     1958373 :          full_data(idata) = data_tmp
   19610     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19611     1958373 :          idata = idata + 1
   19612     1958373 :          data_tmp = ISHFT(pack_tmp, 15)
   19613     1958373 :          ipack = ipack + 1
   19614     1958373 :          pack_tmp = packed_data(ipack)
   19615     1958373 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   19616     1958373 :          pack_tmp = ISHFT(pack_tmp, -15)
   19617     1958373 :          idata = idata + 1
   19618     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19619     1958373 :          full_data(idata) = data_tmp
   19620     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19621     1958373 :          idata = idata + 1
   19622     1958373 :          data_tmp = ISHFT(pack_tmp, 5)
   19623     1958373 :          ipack = ipack + 1
   19624     1958373 :          pack_tmp = packed_data(ipack)
   19625     1958373 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   19626     1958373 :          pack_tmp = ISHFT(pack_tmp, -5)
   19627     1958373 :          idata = idata + 1
   19628     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19629     1958373 :          full_data(idata) = data_tmp
   19630     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19631     1958373 :          idata = idata + 1
   19632     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19633     1958373 :          full_data(idata) = data_tmp
   19634     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19635     1958373 :          idata = idata + 1
   19636     1958373 :          data_tmp = ISHFT(pack_tmp, 22)
   19637     1958373 :          ipack = ipack + 1
   19638     1958373 :          pack_tmp = packed_data(ipack)
   19639     1958373 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   19640     1958373 :          pack_tmp = ISHFT(pack_tmp, -22)
   19641     1958373 :          idata = idata + 1
   19642     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19643     1958373 :          full_data(idata) = data_tmp
   19644     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19645     1958373 :          idata = idata + 1
   19646     1958373 :          data_tmp = ISHFT(pack_tmp, 12)
   19647     1958373 :          ipack = ipack + 1
   19648     1958373 :          pack_tmp = packed_data(ipack)
   19649     1958373 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   19650     1958373 :          pack_tmp = ISHFT(pack_tmp, -12)
   19651     1958373 :          idata = idata + 1
   19652     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19653     1958373 :          full_data(idata) = data_tmp
   19654     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19655     1958373 :          idata = idata + 1
   19656     1958373 :          data_tmp = ISHFT(pack_tmp, 2)
   19657     1958373 :          ipack = ipack + 1
   19658     1958373 :          pack_tmp = packed_data(ipack)
   19659     1958373 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   19660     1958373 :          pack_tmp = ISHFT(pack_tmp, -2)
   19661     1958373 :          idata = idata + 1
   19662     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19663     1958373 :          full_data(idata) = data_tmp
   19664     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19665     1958373 :          idata = idata + 1
   19666     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19667     1958373 :          full_data(idata) = data_tmp
   19668     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19669     1958373 :          idata = idata + 1
   19670     1958373 :          data_tmp = ISHFT(pack_tmp, 19)
   19671     1958373 :          ipack = ipack + 1
   19672     1958373 :          pack_tmp = packed_data(ipack)
   19673     1958373 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   19674     1958373 :          pack_tmp = ISHFT(pack_tmp, -19)
   19675     1958373 :          idata = idata + 1
   19676     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19677     1958373 :          full_data(idata) = data_tmp
   19678     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19679     1958373 :          idata = idata + 1
   19680     1958373 :          data_tmp = ISHFT(pack_tmp, 9)
   19681     1958373 :          ipack = ipack + 1
   19682     1958373 :          pack_tmp = packed_data(ipack)
   19683     1958373 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   19684     1958373 :          pack_tmp = ISHFT(pack_tmp, -9)
   19685     1958373 :          idata = idata + 1
   19686     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19687     1958373 :          full_data(idata) = data_tmp
   19688     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19689     1958373 :          idata = idata + 1
   19690     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19691     1958373 :          full_data(idata) = data_tmp
   19692     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19693     1958373 :          idata = idata + 1
   19694     1958373 :          data_tmp = ISHFT(pack_tmp, 26)
   19695     1958373 :          ipack = ipack + 1
   19696     1958373 :          pack_tmp = packed_data(ipack)
   19697     1958373 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   19698     1958373 :          pack_tmp = ISHFT(pack_tmp, -26)
   19699     1958373 :          idata = idata + 1
   19700     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19701     1958373 :          full_data(idata) = data_tmp
   19702     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19703     1958373 :          idata = idata + 1
   19704     1958373 :          data_tmp = ISHFT(pack_tmp, 16)
   19705     1958373 :          ipack = ipack + 1
   19706     1958373 :          pack_tmp = packed_data(ipack)
   19707     1958373 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   19708     1958373 :          pack_tmp = ISHFT(pack_tmp, -16)
   19709     1958373 :          idata = idata + 1
   19710     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19711     1958373 :          full_data(idata) = data_tmp
   19712     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19713     1958373 :          idata = idata + 1
   19714     1958373 :          data_tmp = ISHFT(pack_tmp, 6)
   19715     1958373 :          ipack = ipack + 1
   19716     1958373 :          pack_tmp = packed_data(ipack)
   19717     1958373 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   19718     1958373 :          pack_tmp = ISHFT(pack_tmp, -6)
   19719     1958373 :          idata = idata + 1
   19720     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19721     1958373 :          full_data(idata) = data_tmp
   19722     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19723     1958373 :          idata = idata + 1
   19724     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19725     1958373 :          full_data(idata) = data_tmp
   19726     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19727     1958373 :          idata = idata + 1
   19728     1958373 :          data_tmp = ISHFT(pack_tmp, 23)
   19729     1958373 :          ipack = ipack + 1
   19730     1958373 :          pack_tmp = packed_data(ipack)
   19731     1958373 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   19732     1958373 :          pack_tmp = ISHFT(pack_tmp, -23)
   19733     1958373 :          idata = idata + 1
   19734     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19735     1958373 :          full_data(idata) = data_tmp
   19736     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19737     1958373 :          idata = idata + 1
   19738     1958373 :          data_tmp = ISHFT(pack_tmp, 13)
   19739     1958373 :          ipack = ipack + 1
   19740     1958373 :          pack_tmp = packed_data(ipack)
   19741     1958373 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   19742     1958373 :          pack_tmp = ISHFT(pack_tmp, -13)
   19743     1958373 :          idata = idata + 1
   19744     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19745     1958373 :          full_data(idata) = data_tmp
   19746     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19747     1958373 :          idata = idata + 1
   19748     1958373 :          data_tmp = ISHFT(pack_tmp, 3)
   19749     1958373 :          ipack = ipack + 1
   19750     1958373 :          pack_tmp = packed_data(ipack)
   19751     1958373 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   19752     1958373 :          pack_tmp = ISHFT(pack_tmp, -3)
   19753     1958373 :          idata = idata + 1
   19754     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19755     1958373 :          full_data(idata) = data_tmp
   19756     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19757     1958373 :          idata = idata + 1
   19758     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19759     1958373 :          full_data(idata) = data_tmp
   19760     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19761     1958373 :          idata = idata + 1
   19762     1958373 :          data_tmp = ISHFT(pack_tmp, 20)
   19763     1958373 :          ipack = ipack + 1
   19764     1958373 :          pack_tmp = packed_data(ipack)
   19765     1958373 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   19766     1958373 :          pack_tmp = ISHFT(pack_tmp, -20)
   19767     1958373 :          idata = idata + 1
   19768     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19769     1958373 :          full_data(idata) = data_tmp
   19770     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19771     1958373 :          idata = idata + 1
   19772     1958373 :          data_tmp = ISHFT(pack_tmp, 10)
   19773     1958373 :          ipack = ipack + 1
   19774     1958373 :          pack_tmp = packed_data(ipack)
   19775     1958373 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   19776     1958373 :          pack_tmp = ISHFT(pack_tmp, -10)
   19777     1958373 :          idata = idata + 1
   19778     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19779     1958373 :          full_data(idata) = data_tmp
   19780     1958373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19781     1958373 :          idata = idata + 1
   19782     1958373 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19783     1958373 :          full_data(idata) = data_tmp
   19784     1958945 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19785             :       END DO
   19786      133749 :       IF (Ndata_rep < Ndata) THEN
   19787       21366 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   19788             :       END IF
   19789      133749 :    END SUBROUTINE bits2ints_27
   19790             : 
   19791             : ! **************************************************************************************************
   19792             : !> \brief ...
   19793             : !> \param Ndata ...
   19794             : !> \param packed_data ...
   19795             : !> \param full_data ...
   19796             : ! **************************************************************************************************
   19797       33876 :    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       33876 :       idata = 0
   19808       33876 :       ipack = 0
   19809       33876 :       Ndata_rep = (Ndata/64)*64
   19810       33876 :       DO kdata = 1, Ndata_rep, 64
   19811      489466 :          pack_tmp = 0
   19812      489466 :          idata = idata + 1
   19813      489466 :          data_tmp = full_data(idata)
   19814      489466 :          data_tmp = ISHFT(data_tmp, 36)
   19815      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19816      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   19817      489466 :          idata = idata + 1
   19818      489466 :          data_tmp = full_data(idata)
   19819      489466 :          data_tmp = ISHFT(data_tmp, 36)
   19820      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19821      489466 :          pack_tmp = ISHFT(pack_tmp, -8)
   19822      489466 :          idata = idata + 1
   19823      489466 :          data_tmp = full_data(idata)
   19824      489466 :          data_tmp = ISHFT(data_tmp, 36)
   19825      489466 :          data_tmp = IAND(data_tmp, mask_left(8))
   19826      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19827      489466 :          ipack = ipack + 1
   19828      489466 :          packed_data(ipack) = pack_tmp
   19829      489466 :          data_tmp = full_data(idata)
   19830      489466 :          pack_tmp = ISHFT(data_tmp, 44)
   19831      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   19832      489466 :          idata = idata + 1
   19833      489466 :          data_tmp = full_data(idata)
   19834      489466 :          data_tmp = ISHFT(data_tmp, 36)
   19835      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19836      489466 :          pack_tmp = ISHFT(pack_tmp, -16)
   19837      489466 :          idata = idata + 1
   19838      489466 :          data_tmp = full_data(idata)
   19839      489466 :          data_tmp = ISHFT(data_tmp, 36)
   19840      489466 :          data_tmp = IAND(data_tmp, mask_left(16))
   19841      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19842      489466 :          ipack = ipack + 1
   19843      489466 :          packed_data(ipack) = pack_tmp
   19844      489466 :          data_tmp = full_data(idata)
   19845      489466 :          pack_tmp = ISHFT(data_tmp, 52)
   19846      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   19847      489466 :          idata = idata + 1
   19848      489466 :          data_tmp = full_data(idata)
   19849      489466 :          data_tmp = ISHFT(data_tmp, 36)
   19850      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19851      489466 :          pack_tmp = ISHFT(pack_tmp, -24)
   19852      489466 :          idata = idata + 1
   19853      489466 :          data_tmp = full_data(idata)
   19854      489466 :          data_tmp = ISHFT(data_tmp, 36)
   19855      489466 :          data_tmp = IAND(data_tmp, mask_left(24))
   19856      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19857      489466 :          ipack = ipack + 1
   19858      489466 :          packed_data(ipack) = pack_tmp
   19859      489466 :          data_tmp = full_data(idata)
   19860      489466 :          pack_tmp = ISHFT(data_tmp, 60)
   19861      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   19862      489466 :          idata = idata + 1
   19863      489466 :          data_tmp = full_data(idata)
   19864      489466 :          data_tmp = ISHFT(data_tmp, 36)
   19865      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19866      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   19867      489466 :          idata = idata + 1
   19868      489466 :          data_tmp = full_data(idata)
   19869      489466 :          data_tmp = ISHFT(data_tmp, 36)
   19870      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19871      489466 :          pack_tmp = ISHFT(pack_tmp, -4)
   19872      489466 :          idata = idata + 1
   19873      489466 :          data_tmp = full_data(idata)
   19874      489466 :          data_tmp = ISHFT(data_tmp, 36)
   19875      489466 :          data_tmp = IAND(data_tmp, mask_left(4))
   19876      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19877      489466 :          ipack = ipack + 1
   19878      489466 :          packed_data(ipack) = pack_tmp
   19879      489466 :          data_tmp = full_data(idata)
   19880      489466 :          pack_tmp = ISHFT(data_tmp, 40)
   19881      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   19882      489466 :          idata = idata + 1
   19883      489466 :          data_tmp = full_data(idata)
   19884      489466 :          data_tmp = ISHFT(data_tmp, 36)
   19885      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19886      489466 :          pack_tmp = ISHFT(pack_tmp, -12)
   19887      489466 :          idata = idata + 1
   19888      489466 :          data_tmp = full_data(idata)
   19889      489466 :          data_tmp = ISHFT(data_tmp, 36)
   19890      489466 :          data_tmp = IAND(data_tmp, mask_left(12))
   19891      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19892      489466 :          ipack = ipack + 1
   19893      489466 :          packed_data(ipack) = pack_tmp
   19894      489466 :          data_tmp = full_data(idata)
   19895      489466 :          pack_tmp = ISHFT(data_tmp, 48)
   19896      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   19897      489466 :          idata = idata + 1
   19898      489466 :          data_tmp = full_data(idata)
   19899      489466 :          data_tmp = ISHFT(data_tmp, 36)
   19900      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19901      489466 :          pack_tmp = ISHFT(pack_tmp, -20)
   19902      489466 :          idata = idata + 1
   19903      489466 :          data_tmp = full_data(idata)
   19904      489466 :          data_tmp = ISHFT(data_tmp, 36)
   19905      489466 :          data_tmp = IAND(data_tmp, mask_left(20))
   19906      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19907      489466 :          ipack = ipack + 1
   19908      489466 :          packed_data(ipack) = pack_tmp
   19909      489466 :          data_tmp = full_data(idata)
   19910      489466 :          pack_tmp = ISHFT(data_tmp, 56)
   19911      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   19912      489466 :          idata = idata + 1
   19913      489466 :          data_tmp = full_data(idata)
   19914      489466 :          data_tmp = ISHFT(data_tmp, 36)
   19915      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19916      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   19917      489466 :          idata = idata + 1
   19918      489466 :          data_tmp = full_data(idata)
   19919      489466 :          data_tmp = ISHFT(data_tmp, 36)
   19920      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19921      489466 :          pack_tmp = ISHFT(pack_tmp, 0)
   19922      489466 :          idata = idata + 1
   19923      489466 :          data_tmp = full_data(idata)
   19924             :          data_tmp = ISHFT(data_tmp, 36)
   19925      489466 :          data_tmp = IAND(data_tmp, mask_left(0))
   19926      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19927      489466 :          ipack = ipack + 1
   19928      489466 :          packed_data(ipack) = pack_tmp
   19929      489466 :          data_tmp = full_data(idata)
   19930      489466 :          pack_tmp = ISHFT(data_tmp, 36)
   19931      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   19932      489466 :          idata = idata + 1
   19933      489466 :          data_tmp = full_data(idata)
   19934      489466 :          data_tmp = ISHFT(data_tmp, 36)
   19935      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19936      489466 :          pack_tmp = ISHFT(pack_tmp, -8)
   19937      489466 :          idata = idata + 1
   19938      489466 :          data_tmp = full_data(idata)
   19939      489466 :          data_tmp = ISHFT(data_tmp, 36)
   19940      489466 :          data_tmp = IAND(data_tmp, mask_left(8))
   19941      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19942      489466 :          ipack = ipack + 1
   19943      489466 :          packed_data(ipack) = pack_tmp
   19944      489466 :          data_tmp = full_data(idata)
   19945      489466 :          pack_tmp = ISHFT(data_tmp, 44)
   19946      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   19947      489466 :          idata = idata + 1
   19948      489466 :          data_tmp = full_data(idata)
   19949      489466 :          data_tmp = ISHFT(data_tmp, 36)
   19950      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19951      489466 :          pack_tmp = ISHFT(pack_tmp, -16)
   19952      489466 :          idata = idata + 1
   19953      489466 :          data_tmp = full_data(idata)
   19954      489466 :          data_tmp = ISHFT(data_tmp, 36)
   19955      489466 :          data_tmp = IAND(data_tmp, mask_left(16))
   19956      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19957      489466 :          ipack = ipack + 1
   19958      489466 :          packed_data(ipack) = pack_tmp
   19959      489466 :          data_tmp = full_data(idata)
   19960      489466 :          pack_tmp = ISHFT(data_tmp, 52)
   19961      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   19962      489466 :          idata = idata + 1
   19963      489466 :          data_tmp = full_data(idata)
   19964      489466 :          data_tmp = ISHFT(data_tmp, 36)
   19965      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19966      489466 :          pack_tmp = ISHFT(pack_tmp, -24)
   19967      489466 :          idata = idata + 1
   19968      489466 :          data_tmp = full_data(idata)
   19969      489466 :          data_tmp = ISHFT(data_tmp, 36)
   19970      489466 :          data_tmp = IAND(data_tmp, mask_left(24))
   19971      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19972      489466 :          ipack = ipack + 1
   19973      489466 :          packed_data(ipack) = pack_tmp
   19974      489466 :          data_tmp = full_data(idata)
   19975      489466 :          pack_tmp = ISHFT(data_tmp, 60)
   19976      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   19977      489466 :          idata = idata + 1
   19978      489466 :          data_tmp = full_data(idata)
   19979      489466 :          data_tmp = ISHFT(data_tmp, 36)
   19980      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19981      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   19982      489466 :          idata = idata + 1
   19983      489466 :          data_tmp = full_data(idata)
   19984      489466 :          data_tmp = ISHFT(data_tmp, 36)
   19985      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19986      489466 :          pack_tmp = ISHFT(pack_tmp, -4)
   19987      489466 :          idata = idata + 1
   19988      489466 :          data_tmp = full_data(idata)
   19989      489466 :          data_tmp = ISHFT(data_tmp, 36)
   19990      489466 :          data_tmp = IAND(data_tmp, mask_left(4))
   19991      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19992      489466 :          ipack = ipack + 1
   19993      489466 :          packed_data(ipack) = pack_tmp
   19994      489466 :          data_tmp = full_data(idata)
   19995      489466 :          pack_tmp = ISHFT(data_tmp, 40)
   19996      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   19997      489466 :          idata = idata + 1
   19998      489466 :          data_tmp = full_data(idata)
   19999      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20000      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20001      489466 :          pack_tmp = ISHFT(pack_tmp, -12)
   20002      489466 :          idata = idata + 1
   20003      489466 :          data_tmp = full_data(idata)
   20004      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20005      489466 :          data_tmp = IAND(data_tmp, mask_left(12))
   20006      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20007      489466 :          ipack = ipack + 1
   20008      489466 :          packed_data(ipack) = pack_tmp
   20009      489466 :          data_tmp = full_data(idata)
   20010      489466 :          pack_tmp = ISHFT(data_tmp, 48)
   20011      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   20012      489466 :          idata = idata + 1
   20013      489466 :          data_tmp = full_data(idata)
   20014      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20015      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20016      489466 :          pack_tmp = ISHFT(pack_tmp, -20)
   20017      489466 :          idata = idata + 1
   20018      489466 :          data_tmp = full_data(idata)
   20019      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20020      489466 :          data_tmp = IAND(data_tmp, mask_left(20))
   20021      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20022      489466 :          ipack = ipack + 1
   20023      489466 :          packed_data(ipack) = pack_tmp
   20024      489466 :          data_tmp = full_data(idata)
   20025      489466 :          pack_tmp = ISHFT(data_tmp, 56)
   20026      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   20027      489466 :          idata = idata + 1
   20028      489466 :          data_tmp = full_data(idata)
   20029      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20030      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20031      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   20032      489466 :          idata = idata + 1
   20033      489466 :          data_tmp = full_data(idata)
   20034      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20035      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20036      489466 :          pack_tmp = ISHFT(pack_tmp, 0)
   20037      489466 :          idata = idata + 1
   20038      489466 :          data_tmp = full_data(idata)
   20039             :          data_tmp = ISHFT(data_tmp, 36)
   20040      489466 :          data_tmp = IAND(data_tmp, mask_left(0))
   20041      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20042      489466 :          ipack = ipack + 1
   20043      489466 :          packed_data(ipack) = pack_tmp
   20044      489466 :          data_tmp = full_data(idata)
   20045      489466 :          pack_tmp = ISHFT(data_tmp, 36)
   20046      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   20047      489466 :          idata = idata + 1
   20048      489466 :          data_tmp = full_data(idata)
   20049      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20050      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20051      489466 :          pack_tmp = ISHFT(pack_tmp, -8)
   20052      489466 :          idata = idata + 1
   20053      489466 :          data_tmp = full_data(idata)
   20054      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20055      489466 :          data_tmp = IAND(data_tmp, mask_left(8))
   20056      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20057      489466 :          ipack = ipack + 1
   20058      489466 :          packed_data(ipack) = pack_tmp
   20059      489466 :          data_tmp = full_data(idata)
   20060      489466 :          pack_tmp = ISHFT(data_tmp, 44)
   20061      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   20062      489466 :          idata = idata + 1
   20063      489466 :          data_tmp = full_data(idata)
   20064      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20065      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20066      489466 :          pack_tmp = ISHFT(pack_tmp, -16)
   20067      489466 :          idata = idata + 1
   20068      489466 :          data_tmp = full_data(idata)
   20069      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20070      489466 :          data_tmp = IAND(data_tmp, mask_left(16))
   20071      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20072      489466 :          ipack = ipack + 1
   20073      489466 :          packed_data(ipack) = pack_tmp
   20074      489466 :          data_tmp = full_data(idata)
   20075      489466 :          pack_tmp = ISHFT(data_tmp, 52)
   20076      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   20077      489466 :          idata = idata + 1
   20078      489466 :          data_tmp = full_data(idata)
   20079      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20080      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20081      489466 :          pack_tmp = ISHFT(pack_tmp, -24)
   20082      489466 :          idata = idata + 1
   20083      489466 :          data_tmp = full_data(idata)
   20084      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20085      489466 :          data_tmp = IAND(data_tmp, mask_left(24))
   20086      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20087      489466 :          ipack = ipack + 1
   20088      489466 :          packed_data(ipack) = pack_tmp
   20089      489466 :          data_tmp = full_data(idata)
   20090      489466 :          pack_tmp = ISHFT(data_tmp, 60)
   20091      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   20092      489466 :          idata = idata + 1
   20093      489466 :          data_tmp = full_data(idata)
   20094      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20095      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20096      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   20097      489466 :          idata = idata + 1
   20098      489466 :          data_tmp = full_data(idata)
   20099      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20100      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20101      489466 :          pack_tmp = ISHFT(pack_tmp, -4)
   20102      489466 :          idata = idata + 1
   20103      489466 :          data_tmp = full_data(idata)
   20104      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20105      489466 :          data_tmp = IAND(data_tmp, mask_left(4))
   20106      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20107      489466 :          ipack = ipack + 1
   20108      489466 :          packed_data(ipack) = pack_tmp
   20109      489466 :          data_tmp = full_data(idata)
   20110      489466 :          pack_tmp = ISHFT(data_tmp, 40)
   20111      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   20112      489466 :          idata = idata + 1
   20113      489466 :          data_tmp = full_data(idata)
   20114      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20115      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20116      489466 :          pack_tmp = ISHFT(pack_tmp, -12)
   20117      489466 :          idata = idata + 1
   20118      489466 :          data_tmp = full_data(idata)
   20119      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20120      489466 :          data_tmp = IAND(data_tmp, mask_left(12))
   20121      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20122      489466 :          ipack = ipack + 1
   20123      489466 :          packed_data(ipack) = pack_tmp
   20124      489466 :          data_tmp = full_data(idata)
   20125      489466 :          pack_tmp = ISHFT(data_tmp, 48)
   20126      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   20127      489466 :          idata = idata + 1
   20128      489466 :          data_tmp = full_data(idata)
   20129      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20130      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20131      489466 :          pack_tmp = ISHFT(pack_tmp, -20)
   20132      489466 :          idata = idata + 1
   20133      489466 :          data_tmp = full_data(idata)
   20134      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20135      489466 :          data_tmp = IAND(data_tmp, mask_left(20))
   20136      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20137      489466 :          ipack = ipack + 1
   20138      489466 :          packed_data(ipack) = pack_tmp
   20139      489466 :          data_tmp = full_data(idata)
   20140      489466 :          pack_tmp = ISHFT(data_tmp, 56)
   20141      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   20142      489466 :          idata = idata + 1
   20143      489466 :          data_tmp = full_data(idata)
   20144      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20145      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20146      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   20147      489466 :          idata = idata + 1
   20148      489466 :          data_tmp = full_data(idata)
   20149      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20150      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20151      489466 :          pack_tmp = ISHFT(pack_tmp, 0)
   20152      489466 :          idata = idata + 1
   20153      489466 :          data_tmp = full_data(idata)
   20154             :          data_tmp = ISHFT(data_tmp, 36)
   20155      489466 :          data_tmp = IAND(data_tmp, mask_left(0))
   20156      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20157      489466 :          ipack = ipack + 1
   20158      489466 :          packed_data(ipack) = pack_tmp
   20159      489466 :          data_tmp = full_data(idata)
   20160      489466 :          pack_tmp = ISHFT(data_tmp, 36)
   20161      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   20162      489466 :          idata = idata + 1
   20163      489466 :          data_tmp = full_data(idata)
   20164      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20165      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20166      489466 :          pack_tmp = ISHFT(pack_tmp, -8)
   20167      489466 :          idata = idata + 1
   20168      489466 :          data_tmp = full_data(idata)
   20169      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20170      489466 :          data_tmp = IAND(data_tmp, mask_left(8))
   20171      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20172      489466 :          ipack = ipack + 1
   20173      489466 :          packed_data(ipack) = pack_tmp
   20174      489466 :          data_tmp = full_data(idata)
   20175      489466 :          pack_tmp = ISHFT(data_tmp, 44)
   20176      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   20177      489466 :          idata = idata + 1
   20178      489466 :          data_tmp = full_data(idata)
   20179      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20180      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20181      489466 :          pack_tmp = ISHFT(pack_tmp, -16)
   20182      489466 :          idata = idata + 1
   20183      489466 :          data_tmp = full_data(idata)
   20184      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20185      489466 :          data_tmp = IAND(data_tmp, mask_left(16))
   20186      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20187      489466 :          ipack = ipack + 1
   20188      489466 :          packed_data(ipack) = pack_tmp
   20189      489466 :          data_tmp = full_data(idata)
   20190      489466 :          pack_tmp = ISHFT(data_tmp, 52)
   20191      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   20192      489466 :          idata = idata + 1
   20193      489466 :          data_tmp = full_data(idata)
   20194      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20195      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20196      489466 :          pack_tmp = ISHFT(pack_tmp, -24)
   20197      489466 :          idata = idata + 1
   20198      489466 :          data_tmp = full_data(idata)
   20199      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20200      489466 :          data_tmp = IAND(data_tmp, mask_left(24))
   20201      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20202      489466 :          ipack = ipack + 1
   20203      489466 :          packed_data(ipack) = pack_tmp
   20204      489466 :          data_tmp = full_data(idata)
   20205      489466 :          pack_tmp = ISHFT(data_tmp, 60)
   20206      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   20207      489466 :          idata = idata + 1
   20208      489466 :          data_tmp = full_data(idata)
   20209      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20210      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20211      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   20212      489466 :          idata = idata + 1
   20213      489466 :          data_tmp = full_data(idata)
   20214      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20215      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20216      489466 :          pack_tmp = ISHFT(pack_tmp, -4)
   20217      489466 :          idata = idata + 1
   20218      489466 :          data_tmp = full_data(idata)
   20219      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20220      489466 :          data_tmp = IAND(data_tmp, mask_left(4))
   20221      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20222      489466 :          ipack = ipack + 1
   20223      489466 :          packed_data(ipack) = pack_tmp
   20224      489466 :          data_tmp = full_data(idata)
   20225      489466 :          pack_tmp = ISHFT(data_tmp, 40)
   20226      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   20227      489466 :          idata = idata + 1
   20228      489466 :          data_tmp = full_data(idata)
   20229      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20230      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20231      489466 :          pack_tmp = ISHFT(pack_tmp, -12)
   20232      489466 :          idata = idata + 1
   20233      489466 :          data_tmp = full_data(idata)
   20234      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20235      489466 :          data_tmp = IAND(data_tmp, mask_left(12))
   20236      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20237      489466 :          ipack = ipack + 1
   20238      489466 :          packed_data(ipack) = pack_tmp
   20239      489466 :          data_tmp = full_data(idata)
   20240      489466 :          pack_tmp = ISHFT(data_tmp, 48)
   20241      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   20242      489466 :          idata = idata + 1
   20243      489466 :          data_tmp = full_data(idata)
   20244      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20245      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20246      489466 :          pack_tmp = ISHFT(pack_tmp, -20)
   20247      489466 :          idata = idata + 1
   20248      489466 :          data_tmp = full_data(idata)
   20249      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20250      489466 :          data_tmp = IAND(data_tmp, mask_left(20))
   20251      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20252      489466 :          ipack = ipack + 1
   20253      489466 :          packed_data(ipack) = pack_tmp
   20254      489466 :          data_tmp = full_data(idata)
   20255      489466 :          pack_tmp = ISHFT(data_tmp, 56)
   20256      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   20257      489466 :          idata = idata + 1
   20258      489466 :          data_tmp = full_data(idata)
   20259      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20260      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20261      489466 :          pack_tmp = ISHFT(pack_tmp, -28)
   20262      489466 :          idata = idata + 1
   20263      489466 :          data_tmp = full_data(idata)
   20264      489466 :          data_tmp = ISHFT(data_tmp, 36)
   20265      489466 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20266             :          pack_tmp = ISHFT(pack_tmp, 0)
   20267      489466 :          pack_tmp = ISHFT(pack_tmp, 0)
   20268      489466 :          ipack = ipack + 1
   20269      489577 :          packed_data(ipack) = pack_tmp
   20270             :       END DO
   20271       33876 :       IF (Ndata_rep < Ndata) THEN
   20272        6156 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   20273             :       END IF
   20274       33876 :    END SUBROUTINE ints2bits_28
   20275             : 
   20276             : ! **************************************************************************************************
   20277             : !> \brief ...
   20278             : !> \param Ndata ...
   20279             : !> \param packed_data ...
   20280             : !> \param full_data ...
   20281             : ! **************************************************************************************************
   20282      156972 :    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      156972 :       ipack = 0
   20293      156972 :       idata = 0
   20294      156972 :       pack_tmp = 0
   20295      156972 :       Ndata_rep = (Ndata/64)*64
   20296      156972 :       DO kdata = 1, Ndata_rep, 64
   20297     2203136 :          idata = idata + 1
   20298     2203136 :          data_tmp = ISHFT(pack_tmp, 28)
   20299     2203136 :          ipack = ipack + 1
   20300     2203136 :          pack_tmp = packed_data(ipack)
   20301     2203136 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   20302     2203136 :          pack_tmp = ISHFT(pack_tmp, -28)
   20303     2203136 :          idata = idata + 1
   20304     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20305     2203136 :          full_data(idata) = data_tmp
   20306     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20307     2203136 :          idata = idata + 1
   20308     2203136 :          data_tmp = ISHFT(pack_tmp, 20)
   20309     2203136 :          ipack = ipack + 1
   20310     2203136 :          pack_tmp = packed_data(ipack)
   20311     2203136 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   20312     2203136 :          pack_tmp = ISHFT(pack_tmp, -20)
   20313     2203136 :          idata = idata + 1
   20314     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20315     2203136 :          full_data(idata) = data_tmp
   20316     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20317     2203136 :          idata = idata + 1
   20318     2203136 :          data_tmp = ISHFT(pack_tmp, 12)
   20319     2203136 :          ipack = ipack + 1
   20320     2203136 :          pack_tmp = packed_data(ipack)
   20321     2203136 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   20322     2203136 :          pack_tmp = ISHFT(pack_tmp, -12)
   20323     2203136 :          idata = idata + 1
   20324     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20325     2203136 :          full_data(idata) = data_tmp
   20326     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20327     2203136 :          idata = idata + 1
   20328     2203136 :          data_tmp = ISHFT(pack_tmp, 4)
   20329     2203136 :          ipack = ipack + 1
   20330     2203136 :          pack_tmp = packed_data(ipack)
   20331     2203136 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   20332     2203136 :          pack_tmp = ISHFT(pack_tmp, -4)
   20333     2203136 :          idata = idata + 1
   20334     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20335     2203136 :          full_data(idata) = data_tmp
   20336     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20337     2203136 :          idata = idata + 1
   20338     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20339     2203136 :          full_data(idata) = data_tmp
   20340     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20341     2203136 :          idata = idata + 1
   20342     2203136 :          data_tmp = ISHFT(pack_tmp, 24)
   20343     2203136 :          ipack = ipack + 1
   20344     2203136 :          pack_tmp = packed_data(ipack)
   20345     2203136 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   20346     2203136 :          pack_tmp = ISHFT(pack_tmp, -24)
   20347     2203136 :          idata = idata + 1
   20348     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20349     2203136 :          full_data(idata) = data_tmp
   20350     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20351     2203136 :          idata = idata + 1
   20352     2203136 :          data_tmp = ISHFT(pack_tmp, 16)
   20353     2203136 :          ipack = ipack + 1
   20354     2203136 :          pack_tmp = packed_data(ipack)
   20355     2203136 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   20356     2203136 :          pack_tmp = ISHFT(pack_tmp, -16)
   20357     2203136 :          idata = idata + 1
   20358     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20359     2203136 :          full_data(idata) = data_tmp
   20360     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20361     2203136 :          idata = idata + 1
   20362     2203136 :          data_tmp = ISHFT(pack_tmp, 8)
   20363     2203136 :          ipack = ipack + 1
   20364     2203136 :          pack_tmp = packed_data(ipack)
   20365     2203136 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   20366     2203136 :          pack_tmp = ISHFT(pack_tmp, -8)
   20367     2203136 :          idata = idata + 1
   20368     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20369     2203136 :          full_data(idata) = data_tmp
   20370     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20371     2203136 :          idata = idata + 1
   20372     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20373     2203136 :          full_data(idata) = data_tmp
   20374     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20375     2203136 :          idata = idata + 1
   20376     2203136 :          data_tmp = ISHFT(pack_tmp, 28)
   20377     2203136 :          ipack = ipack + 1
   20378     2203136 :          pack_tmp = packed_data(ipack)
   20379     2203136 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   20380     2203136 :          pack_tmp = ISHFT(pack_tmp, -28)
   20381     2203136 :          idata = idata + 1
   20382     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20383     2203136 :          full_data(idata) = data_tmp
   20384     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20385     2203136 :          idata = idata + 1
   20386     2203136 :          data_tmp = ISHFT(pack_tmp, 20)
   20387     2203136 :          ipack = ipack + 1
   20388     2203136 :          pack_tmp = packed_data(ipack)
   20389     2203136 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   20390     2203136 :          pack_tmp = ISHFT(pack_tmp, -20)
   20391     2203136 :          idata = idata + 1
   20392     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20393     2203136 :          full_data(idata) = data_tmp
   20394     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20395     2203136 :          idata = idata + 1
   20396     2203136 :          data_tmp = ISHFT(pack_tmp, 12)
   20397     2203136 :          ipack = ipack + 1
   20398     2203136 :          pack_tmp = packed_data(ipack)
   20399     2203136 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   20400     2203136 :          pack_tmp = ISHFT(pack_tmp, -12)
   20401     2203136 :          idata = idata + 1
   20402     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20403     2203136 :          full_data(idata) = data_tmp
   20404     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20405     2203136 :          idata = idata + 1
   20406     2203136 :          data_tmp = ISHFT(pack_tmp, 4)
   20407     2203136 :          ipack = ipack + 1
   20408     2203136 :          pack_tmp = packed_data(ipack)
   20409     2203136 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   20410     2203136 :          pack_tmp = ISHFT(pack_tmp, -4)
   20411     2203136 :          idata = idata + 1
   20412     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20413     2203136 :          full_data(idata) = data_tmp
   20414     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20415     2203136 :          idata = idata + 1
   20416     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20417     2203136 :          full_data(idata) = data_tmp
   20418     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20419     2203136 :          idata = idata + 1
   20420     2203136 :          data_tmp = ISHFT(pack_tmp, 24)
   20421     2203136 :          ipack = ipack + 1
   20422     2203136 :          pack_tmp = packed_data(ipack)
   20423     2203136 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   20424     2203136 :          pack_tmp = ISHFT(pack_tmp, -24)
   20425     2203136 :          idata = idata + 1
   20426     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20427     2203136 :          full_data(idata) = data_tmp
   20428     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20429     2203136 :          idata = idata + 1
   20430     2203136 :          data_tmp = ISHFT(pack_tmp, 16)
   20431     2203136 :          ipack = ipack + 1
   20432     2203136 :          pack_tmp = packed_data(ipack)
   20433     2203136 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   20434     2203136 :          pack_tmp = ISHFT(pack_tmp, -16)
   20435     2203136 :          idata = idata + 1
   20436     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20437     2203136 :          full_data(idata) = data_tmp
   20438     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20439     2203136 :          idata = idata + 1
   20440     2203136 :          data_tmp = ISHFT(pack_tmp, 8)
   20441     2203136 :          ipack = ipack + 1
   20442     2203136 :          pack_tmp = packed_data(ipack)
   20443     2203136 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   20444     2203136 :          pack_tmp = ISHFT(pack_tmp, -8)
   20445     2203136 :          idata = idata + 1
   20446     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20447     2203136 :          full_data(idata) = data_tmp
   20448     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20449     2203136 :          idata = idata + 1
   20450     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20451     2203136 :          full_data(idata) = data_tmp
   20452     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20453     2203136 :          idata = idata + 1
   20454     2203136 :          data_tmp = ISHFT(pack_tmp, 28)
   20455     2203136 :          ipack = ipack + 1
   20456     2203136 :          pack_tmp = packed_data(ipack)
   20457     2203136 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   20458     2203136 :          pack_tmp = ISHFT(pack_tmp, -28)
   20459     2203136 :          idata = idata + 1
   20460     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20461     2203136 :          full_data(idata) = data_tmp
   20462     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20463     2203136 :          idata = idata + 1
   20464     2203136 :          data_tmp = ISHFT(pack_tmp, 20)
   20465     2203136 :          ipack = ipack + 1
   20466     2203136 :          pack_tmp = packed_data(ipack)
   20467     2203136 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   20468     2203136 :          pack_tmp = ISHFT(pack_tmp, -20)
   20469     2203136 :          idata = idata + 1
   20470     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20471     2203136 :          full_data(idata) = data_tmp
   20472     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20473     2203136 :          idata = idata + 1
   20474     2203136 :          data_tmp = ISHFT(pack_tmp, 12)
   20475     2203136 :          ipack = ipack + 1
   20476     2203136 :          pack_tmp = packed_data(ipack)
   20477     2203136 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   20478     2203136 :          pack_tmp = ISHFT(pack_tmp, -12)
   20479     2203136 :          idata = idata + 1
   20480     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20481     2203136 :          full_data(idata) = data_tmp
   20482     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20483     2203136 :          idata = idata + 1
   20484     2203136 :          data_tmp = ISHFT(pack_tmp, 4)
   20485     2203136 :          ipack = ipack + 1
   20486     2203136 :          pack_tmp = packed_data(ipack)
   20487     2203136 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   20488     2203136 :          pack_tmp = ISHFT(pack_tmp, -4)
   20489     2203136 :          idata = idata + 1
   20490     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20491     2203136 :          full_data(idata) = data_tmp
   20492     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20493     2203136 :          idata = idata + 1
   20494     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20495     2203136 :          full_data(idata) = data_tmp
   20496     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20497     2203136 :          idata = idata + 1
   20498     2203136 :          data_tmp = ISHFT(pack_tmp, 24)
   20499     2203136 :          ipack = ipack + 1
   20500     2203136 :          pack_tmp = packed_data(ipack)
   20501     2203136 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   20502     2203136 :          pack_tmp = ISHFT(pack_tmp, -24)
   20503     2203136 :          idata = idata + 1
   20504     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20505     2203136 :          full_data(idata) = data_tmp
   20506     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20507     2203136 :          idata = idata + 1
   20508     2203136 :          data_tmp = ISHFT(pack_tmp, 16)
   20509     2203136 :          ipack = ipack + 1
   20510     2203136 :          pack_tmp = packed_data(ipack)
   20511     2203136 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   20512     2203136 :          pack_tmp = ISHFT(pack_tmp, -16)
   20513     2203136 :          idata = idata + 1
   20514     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20515     2203136 :          full_data(idata) = data_tmp
   20516     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20517     2203136 :          idata = idata + 1
   20518     2203136 :          data_tmp = ISHFT(pack_tmp, 8)
   20519     2203136 :          ipack = ipack + 1
   20520     2203136 :          pack_tmp = packed_data(ipack)
   20521     2203136 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   20522     2203136 :          pack_tmp = ISHFT(pack_tmp, -8)
   20523     2203136 :          idata = idata + 1
   20524     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20525     2203136 :          full_data(idata) = data_tmp
   20526     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20527     2203136 :          idata = idata + 1
   20528     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20529     2203136 :          full_data(idata) = data_tmp
   20530     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20531     2203136 :          idata = idata + 1
   20532     2203136 :          data_tmp = ISHFT(pack_tmp, 28)
   20533     2203136 :          ipack = ipack + 1
   20534     2203136 :          pack_tmp = packed_data(ipack)
   20535     2203136 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   20536     2203136 :          pack_tmp = ISHFT(pack_tmp, -28)
   20537     2203136 :          idata = idata + 1
   20538     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20539     2203136 :          full_data(idata) = data_tmp
   20540     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20541     2203136 :          idata = idata + 1
   20542     2203136 :          data_tmp = ISHFT(pack_tmp, 20)
   20543     2203136 :          ipack = ipack + 1
   20544     2203136 :          pack_tmp = packed_data(ipack)
   20545     2203136 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   20546     2203136 :          pack_tmp = ISHFT(pack_tmp, -20)
   20547     2203136 :          idata = idata + 1
   20548     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20549     2203136 :          full_data(idata) = data_tmp
   20550     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20551     2203136 :          idata = idata + 1
   20552     2203136 :          data_tmp = ISHFT(pack_tmp, 12)
   20553     2203136 :          ipack = ipack + 1
   20554     2203136 :          pack_tmp = packed_data(ipack)
   20555     2203136 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   20556     2203136 :          pack_tmp = ISHFT(pack_tmp, -12)
   20557     2203136 :          idata = idata + 1
   20558     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20559     2203136 :          full_data(idata) = data_tmp
   20560     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20561     2203136 :          idata = idata + 1
   20562     2203136 :          data_tmp = ISHFT(pack_tmp, 4)
   20563     2203136 :          ipack = ipack + 1
   20564     2203136 :          pack_tmp = packed_data(ipack)
   20565     2203136 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   20566     2203136 :          pack_tmp = ISHFT(pack_tmp, -4)
   20567     2203136 :          idata = idata + 1
   20568     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20569     2203136 :          full_data(idata) = data_tmp
   20570     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20571     2203136 :          idata = idata + 1
   20572     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20573     2203136 :          full_data(idata) = data_tmp
   20574     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20575     2203136 :          idata = idata + 1
   20576     2203136 :          data_tmp = ISHFT(pack_tmp, 24)
   20577     2203136 :          ipack = ipack + 1
   20578     2203136 :          pack_tmp = packed_data(ipack)
   20579     2203136 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   20580     2203136 :          pack_tmp = ISHFT(pack_tmp, -24)
   20581     2203136 :          idata = idata + 1
   20582     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20583     2203136 :          full_data(idata) = data_tmp
   20584     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20585     2203136 :          idata = idata + 1
   20586     2203136 :          data_tmp = ISHFT(pack_tmp, 16)
   20587     2203136 :          ipack = ipack + 1
   20588     2203136 :          pack_tmp = packed_data(ipack)
   20589     2203136 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   20590     2203136 :          pack_tmp = ISHFT(pack_tmp, -16)
   20591     2203136 :          idata = idata + 1
   20592     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20593     2203136 :          full_data(idata) = data_tmp
   20594     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20595     2203136 :          idata = idata + 1
   20596     2203136 :          data_tmp = ISHFT(pack_tmp, 8)
   20597     2203136 :          ipack = ipack + 1
   20598     2203136 :          pack_tmp = packed_data(ipack)
   20599     2203136 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   20600     2203136 :          pack_tmp = ISHFT(pack_tmp, -8)
   20601     2203136 :          idata = idata + 1
   20602     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20603     2203136 :          full_data(idata) = data_tmp
   20604     2203136 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20605     2203136 :          idata = idata + 1
   20606     2203136 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20607     2203136 :          full_data(idata) = data_tmp
   20608     2204145 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20609             :       END DO
   20610      156972 :       IF (Ndata_rep < Ndata) THEN
   20611       36032 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   20612             :       END IF
   20613      156972 :    END SUBROUTINE bits2ints_28
   20614             : 
   20615             : ! **************************************************************************************************
   20616             : !> \brief ...
   20617             : !> \param Ndata ...
   20618             : !> \param packed_data ...
   20619             : !> \param full_data ...
   20620             : ! **************************************************************************************************
   20621       36880 :    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       36880 :       idata = 0
   20632       36880 :       ipack = 0
   20633       36880 :       Ndata_rep = (Ndata/64)*64
   20634       36880 :       DO kdata = 1, Ndata_rep, 64
   20635      522193 :          pack_tmp = 0
   20636      522193 :          idata = idata + 1
   20637      522193 :          data_tmp = full_data(idata)
   20638      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20639      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20640      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   20641      522193 :          idata = idata + 1
   20642      522193 :          data_tmp = full_data(idata)
   20643      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20644      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20645      522193 :          pack_tmp = ISHFT(pack_tmp, -6)
   20646      522193 :          idata = idata + 1
   20647      522193 :          data_tmp = full_data(idata)
   20648      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20649      522193 :          data_tmp = IAND(data_tmp, mask_left(6))
   20650      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20651      522193 :          ipack = ipack + 1
   20652      522193 :          packed_data(ipack) = pack_tmp
   20653      522193 :          data_tmp = full_data(idata)
   20654      522193 :          pack_tmp = ISHFT(data_tmp, 41)
   20655      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   20656      522193 :          idata = idata + 1
   20657      522193 :          data_tmp = full_data(idata)
   20658      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20659      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20660      522193 :          pack_tmp = ISHFT(pack_tmp, -12)
   20661      522193 :          idata = idata + 1
   20662      522193 :          data_tmp = full_data(idata)
   20663      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20664      522193 :          data_tmp = IAND(data_tmp, mask_left(12))
   20665      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20666      522193 :          ipack = ipack + 1
   20667      522193 :          packed_data(ipack) = pack_tmp
   20668      522193 :          data_tmp = full_data(idata)
   20669      522193 :          pack_tmp = ISHFT(data_tmp, 47)
   20670      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   20671      522193 :          idata = idata + 1
   20672      522193 :          data_tmp = full_data(idata)
   20673      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20674      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20675      522193 :          pack_tmp = ISHFT(pack_tmp, -18)
   20676      522193 :          idata = idata + 1
   20677      522193 :          data_tmp = full_data(idata)
   20678      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20679      522193 :          data_tmp = IAND(data_tmp, mask_left(18))
   20680      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20681      522193 :          ipack = ipack + 1
   20682      522193 :          packed_data(ipack) = pack_tmp
   20683      522193 :          data_tmp = full_data(idata)
   20684      522193 :          pack_tmp = ISHFT(data_tmp, 53)
   20685      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   20686      522193 :          idata = idata + 1
   20687      522193 :          data_tmp = full_data(idata)
   20688      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20689      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20690      522193 :          pack_tmp = ISHFT(pack_tmp, -24)
   20691      522193 :          idata = idata + 1
   20692      522193 :          data_tmp = full_data(idata)
   20693      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20694      522193 :          data_tmp = IAND(data_tmp, mask_left(24))
   20695      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20696      522193 :          ipack = ipack + 1
   20697      522193 :          packed_data(ipack) = pack_tmp
   20698      522193 :          data_tmp = full_data(idata)
   20699      522193 :          pack_tmp = ISHFT(data_tmp, 59)
   20700      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   20701      522193 :          idata = idata + 1
   20702      522193 :          data_tmp = full_data(idata)
   20703      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20704      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20705      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   20706      522193 :          idata = idata + 1
   20707      522193 :          data_tmp = full_data(idata)
   20708      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20709      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20710      522193 :          pack_tmp = ISHFT(pack_tmp, -1)
   20711      522193 :          idata = idata + 1
   20712      522193 :          data_tmp = full_data(idata)
   20713      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20714      522193 :          data_tmp = IAND(data_tmp, mask_left(1))
   20715      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20716      522193 :          ipack = ipack + 1
   20717      522193 :          packed_data(ipack) = pack_tmp
   20718      522193 :          data_tmp = full_data(idata)
   20719      522193 :          pack_tmp = ISHFT(data_tmp, 36)
   20720      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   20721      522193 :          idata = idata + 1
   20722      522193 :          data_tmp = full_data(idata)
   20723      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20724      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20725      522193 :          pack_tmp = ISHFT(pack_tmp, -7)
   20726      522193 :          idata = idata + 1
   20727      522193 :          data_tmp = full_data(idata)
   20728      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20729      522193 :          data_tmp = IAND(data_tmp, mask_left(7))
   20730      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20731      522193 :          ipack = ipack + 1
   20732      522193 :          packed_data(ipack) = pack_tmp
   20733      522193 :          data_tmp = full_data(idata)
   20734      522193 :          pack_tmp = ISHFT(data_tmp, 42)
   20735      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   20736      522193 :          idata = idata + 1
   20737      522193 :          data_tmp = full_data(idata)
   20738      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20739      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20740      522193 :          pack_tmp = ISHFT(pack_tmp, -13)
   20741      522193 :          idata = idata + 1
   20742      522193 :          data_tmp = full_data(idata)
   20743      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20744      522193 :          data_tmp = IAND(data_tmp, mask_left(13))
   20745      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20746      522193 :          ipack = ipack + 1
   20747      522193 :          packed_data(ipack) = pack_tmp
   20748      522193 :          data_tmp = full_data(idata)
   20749      522193 :          pack_tmp = ISHFT(data_tmp, 48)
   20750      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   20751      522193 :          idata = idata + 1
   20752      522193 :          data_tmp = full_data(idata)
   20753      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20754      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20755      522193 :          pack_tmp = ISHFT(pack_tmp, -19)
   20756      522193 :          idata = idata + 1
   20757      522193 :          data_tmp = full_data(idata)
   20758      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20759      522193 :          data_tmp = IAND(data_tmp, mask_left(19))
   20760      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20761      522193 :          ipack = ipack + 1
   20762      522193 :          packed_data(ipack) = pack_tmp
   20763      522193 :          data_tmp = full_data(idata)
   20764      522193 :          pack_tmp = ISHFT(data_tmp, 54)
   20765      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   20766      522193 :          idata = idata + 1
   20767      522193 :          data_tmp = full_data(idata)
   20768      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20769      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20770      522193 :          pack_tmp = ISHFT(pack_tmp, -25)
   20771      522193 :          idata = idata + 1
   20772      522193 :          data_tmp = full_data(idata)
   20773      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20774      522193 :          data_tmp = IAND(data_tmp, mask_left(25))
   20775      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20776      522193 :          ipack = ipack + 1
   20777      522193 :          packed_data(ipack) = pack_tmp
   20778      522193 :          data_tmp = full_data(idata)
   20779      522193 :          pack_tmp = ISHFT(data_tmp, 60)
   20780      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   20781      522193 :          idata = idata + 1
   20782      522193 :          data_tmp = full_data(idata)
   20783      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20784      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20785      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   20786      522193 :          idata = idata + 1
   20787      522193 :          data_tmp = full_data(idata)
   20788      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20789      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20790      522193 :          pack_tmp = ISHFT(pack_tmp, -2)
   20791      522193 :          idata = idata + 1
   20792      522193 :          data_tmp = full_data(idata)
   20793      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20794      522193 :          data_tmp = IAND(data_tmp, mask_left(2))
   20795      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20796      522193 :          ipack = ipack + 1
   20797      522193 :          packed_data(ipack) = pack_tmp
   20798      522193 :          data_tmp = full_data(idata)
   20799      522193 :          pack_tmp = ISHFT(data_tmp, 37)
   20800      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   20801      522193 :          idata = idata + 1
   20802      522193 :          data_tmp = full_data(idata)
   20803      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20804      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20805      522193 :          pack_tmp = ISHFT(pack_tmp, -8)
   20806      522193 :          idata = idata + 1
   20807      522193 :          data_tmp = full_data(idata)
   20808      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20809      522193 :          data_tmp = IAND(data_tmp, mask_left(8))
   20810      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20811      522193 :          ipack = ipack + 1
   20812      522193 :          packed_data(ipack) = pack_tmp
   20813      522193 :          data_tmp = full_data(idata)
   20814      522193 :          pack_tmp = ISHFT(data_tmp, 43)
   20815      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   20816      522193 :          idata = idata + 1
   20817      522193 :          data_tmp = full_data(idata)
   20818      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20819      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20820      522193 :          pack_tmp = ISHFT(pack_tmp, -14)
   20821      522193 :          idata = idata + 1
   20822      522193 :          data_tmp = full_data(idata)
   20823      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20824      522193 :          data_tmp = IAND(data_tmp, mask_left(14))
   20825      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20826      522193 :          ipack = ipack + 1
   20827      522193 :          packed_data(ipack) = pack_tmp
   20828      522193 :          data_tmp = full_data(idata)
   20829      522193 :          pack_tmp = ISHFT(data_tmp, 49)
   20830      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   20831      522193 :          idata = idata + 1
   20832      522193 :          data_tmp = full_data(idata)
   20833      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20834      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20835      522193 :          pack_tmp = ISHFT(pack_tmp, -20)
   20836      522193 :          idata = idata + 1
   20837      522193 :          data_tmp = full_data(idata)
   20838      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20839      522193 :          data_tmp = IAND(data_tmp, mask_left(20))
   20840      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20841      522193 :          ipack = ipack + 1
   20842      522193 :          packed_data(ipack) = pack_tmp
   20843      522193 :          data_tmp = full_data(idata)
   20844      522193 :          pack_tmp = ISHFT(data_tmp, 55)
   20845      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   20846      522193 :          idata = idata + 1
   20847      522193 :          data_tmp = full_data(idata)
   20848      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20849      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20850      522193 :          pack_tmp = ISHFT(pack_tmp, -26)
   20851      522193 :          idata = idata + 1
   20852      522193 :          data_tmp = full_data(idata)
   20853      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20854      522193 :          data_tmp = IAND(data_tmp, mask_left(26))
   20855      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20856      522193 :          ipack = ipack + 1
   20857      522193 :          packed_data(ipack) = pack_tmp
   20858      522193 :          data_tmp = full_data(idata)
   20859      522193 :          pack_tmp = ISHFT(data_tmp, 61)
   20860      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   20861      522193 :          idata = idata + 1
   20862      522193 :          data_tmp = full_data(idata)
   20863      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20864      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20865      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   20866      522193 :          idata = idata + 1
   20867      522193 :          data_tmp = full_data(idata)
   20868      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20869      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20870      522193 :          pack_tmp = ISHFT(pack_tmp, -3)
   20871      522193 :          idata = idata + 1
   20872      522193 :          data_tmp = full_data(idata)
   20873      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20874      522193 :          data_tmp = IAND(data_tmp, mask_left(3))
   20875      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20876      522193 :          ipack = ipack + 1
   20877      522193 :          packed_data(ipack) = pack_tmp
   20878      522193 :          data_tmp = full_data(idata)
   20879      522193 :          pack_tmp = ISHFT(data_tmp, 38)
   20880      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   20881      522193 :          idata = idata + 1
   20882      522193 :          data_tmp = full_data(idata)
   20883      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20884      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20885      522193 :          pack_tmp = ISHFT(pack_tmp, -9)
   20886      522193 :          idata = idata + 1
   20887      522193 :          data_tmp = full_data(idata)
   20888      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20889      522193 :          data_tmp = IAND(data_tmp, mask_left(9))
   20890      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20891      522193 :          ipack = ipack + 1
   20892      522193 :          packed_data(ipack) = pack_tmp
   20893      522193 :          data_tmp = full_data(idata)
   20894      522193 :          pack_tmp = ISHFT(data_tmp, 44)
   20895      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   20896      522193 :          idata = idata + 1
   20897      522193 :          data_tmp = full_data(idata)
   20898      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20899      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20900      522193 :          pack_tmp = ISHFT(pack_tmp, -15)
   20901      522193 :          idata = idata + 1
   20902      522193 :          data_tmp = full_data(idata)
   20903      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20904      522193 :          data_tmp = IAND(data_tmp, mask_left(15))
   20905      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20906      522193 :          ipack = ipack + 1
   20907      522193 :          packed_data(ipack) = pack_tmp
   20908      522193 :          data_tmp = full_data(idata)
   20909      522193 :          pack_tmp = ISHFT(data_tmp, 50)
   20910      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   20911      522193 :          idata = idata + 1
   20912      522193 :          data_tmp = full_data(idata)
   20913      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20914      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20915      522193 :          pack_tmp = ISHFT(pack_tmp, -21)
   20916      522193 :          idata = idata + 1
   20917      522193 :          data_tmp = full_data(idata)
   20918      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20919      522193 :          data_tmp = IAND(data_tmp, mask_left(21))
   20920      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20921      522193 :          ipack = ipack + 1
   20922      522193 :          packed_data(ipack) = pack_tmp
   20923      522193 :          data_tmp = full_data(idata)
   20924      522193 :          pack_tmp = ISHFT(data_tmp, 56)
   20925      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   20926      522193 :          idata = idata + 1
   20927      522193 :          data_tmp = full_data(idata)
   20928      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20929      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20930      522193 :          pack_tmp = ISHFT(pack_tmp, -27)
   20931      522193 :          idata = idata + 1
   20932      522193 :          data_tmp = full_data(idata)
   20933      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20934      522193 :          data_tmp = IAND(data_tmp, mask_left(27))
   20935      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20936      522193 :          ipack = ipack + 1
   20937      522193 :          packed_data(ipack) = pack_tmp
   20938      522193 :          data_tmp = full_data(idata)
   20939      522193 :          pack_tmp = ISHFT(data_tmp, 62)
   20940      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   20941      522193 :          idata = idata + 1
   20942      522193 :          data_tmp = full_data(idata)
   20943      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20944      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20945      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   20946      522193 :          idata = idata + 1
   20947      522193 :          data_tmp = full_data(idata)
   20948      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20949      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20950      522193 :          pack_tmp = ISHFT(pack_tmp, -4)
   20951      522193 :          idata = idata + 1
   20952      522193 :          data_tmp = full_data(idata)
   20953      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20954      522193 :          data_tmp = IAND(data_tmp, mask_left(4))
   20955      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20956      522193 :          ipack = ipack + 1
   20957      522193 :          packed_data(ipack) = pack_tmp
   20958      522193 :          data_tmp = full_data(idata)
   20959      522193 :          pack_tmp = ISHFT(data_tmp, 39)
   20960      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   20961      522193 :          idata = idata + 1
   20962      522193 :          data_tmp = full_data(idata)
   20963      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20964      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20965      522193 :          pack_tmp = ISHFT(pack_tmp, -10)
   20966      522193 :          idata = idata + 1
   20967      522193 :          data_tmp = full_data(idata)
   20968      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20969      522193 :          data_tmp = IAND(data_tmp, mask_left(10))
   20970      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20971      522193 :          ipack = ipack + 1
   20972      522193 :          packed_data(ipack) = pack_tmp
   20973      522193 :          data_tmp = full_data(idata)
   20974      522193 :          pack_tmp = ISHFT(data_tmp, 45)
   20975      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   20976      522193 :          idata = idata + 1
   20977      522193 :          data_tmp = full_data(idata)
   20978      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20979      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20980      522193 :          pack_tmp = ISHFT(pack_tmp, -16)
   20981      522193 :          idata = idata + 1
   20982      522193 :          data_tmp = full_data(idata)
   20983      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20984      522193 :          data_tmp = IAND(data_tmp, mask_left(16))
   20985      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20986      522193 :          ipack = ipack + 1
   20987      522193 :          packed_data(ipack) = pack_tmp
   20988      522193 :          data_tmp = full_data(idata)
   20989      522193 :          pack_tmp = ISHFT(data_tmp, 51)
   20990      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   20991      522193 :          idata = idata + 1
   20992      522193 :          data_tmp = full_data(idata)
   20993      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20994      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20995      522193 :          pack_tmp = ISHFT(pack_tmp, -22)
   20996      522193 :          idata = idata + 1
   20997      522193 :          data_tmp = full_data(idata)
   20998      522193 :          data_tmp = ISHFT(data_tmp, 35)
   20999      522193 :          data_tmp = IAND(data_tmp, mask_left(22))
   21000      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21001      522193 :          ipack = ipack + 1
   21002      522193 :          packed_data(ipack) = pack_tmp
   21003      522193 :          data_tmp = full_data(idata)
   21004      522193 :          pack_tmp = ISHFT(data_tmp, 57)
   21005      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   21006      522193 :          idata = idata + 1
   21007      522193 :          data_tmp = full_data(idata)
   21008      522193 :          data_tmp = ISHFT(data_tmp, 35)
   21009      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21010      522193 :          pack_tmp = ISHFT(pack_tmp, -28)
   21011      522193 :          idata = idata + 1
   21012      522193 :          data_tmp = full_data(idata)
   21013      522193 :          data_tmp = ISHFT(data_tmp, 35)
   21014      522193 :          data_tmp = IAND(data_tmp, mask_left(28))
   21015      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21016      522193 :          ipack = ipack + 1
   21017      522193 :          packed_data(ipack) = pack_tmp
   21018      522193 :          data_tmp = full_data(idata)
   21019      522193 :          pack_tmp = ISHFT(data_tmp, 63)
   21020      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   21021      522193 :          idata = idata + 1
   21022      522193 :          data_tmp = full_data(idata)
   21023      522193 :          data_tmp = ISHFT(data_tmp, 35)
   21024      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21025      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   21026      522193 :          idata = idata + 1
   21027      522193 :          data_tmp = full_data(idata)
   21028      522193 :          data_tmp = ISHFT(data_tmp, 35)
   21029      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21030      522193 :          pack_tmp = ISHFT(pack_tmp, -5)
   21031      522193 :          idata = idata + 1
   21032      522193 :          data_tmp = full_data(idata)
   21033      522193 :          data_tmp = ISHFT(data_tmp, 35)
   21034      522193 :          data_tmp = IAND(data_tmp, mask_left(5))
   21035      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21036      522193 :          ipack = ipack + 1
   21037      522193 :          packed_data(ipack) = pack_tmp
   21038      522193 :          data_tmp = full_data(idata)
   21039      522193 :          pack_tmp = ISHFT(data_tmp, 40)
   21040      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   21041      522193 :          idata = idata + 1
   21042      522193 :          data_tmp = full_data(idata)
   21043      522193 :          data_tmp = ISHFT(data_tmp, 35)
   21044      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21045      522193 :          pack_tmp = ISHFT(pack_tmp, -11)
   21046      522193 :          idata = idata + 1
   21047      522193 :          data_tmp = full_data(idata)
   21048      522193 :          data_tmp = ISHFT(data_tmp, 35)
   21049      522193 :          data_tmp = IAND(data_tmp, mask_left(11))
   21050      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21051      522193 :          ipack = ipack + 1
   21052      522193 :          packed_data(ipack) = pack_tmp
   21053      522193 :          data_tmp = full_data(idata)
   21054      522193 :          pack_tmp = ISHFT(data_tmp, 46)
   21055      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   21056      522193 :          idata = idata + 1
   21057      522193 :          data_tmp = full_data(idata)
   21058      522193 :          data_tmp = ISHFT(data_tmp, 35)
   21059      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21060      522193 :          pack_tmp = ISHFT(pack_tmp, -17)
   21061      522193 :          idata = idata + 1
   21062      522193 :          data_tmp = full_data(idata)
   21063      522193 :          data_tmp = ISHFT(data_tmp, 35)
   21064      522193 :          data_tmp = IAND(data_tmp, mask_left(17))
   21065      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21066      522193 :          ipack = ipack + 1
   21067      522193 :          packed_data(ipack) = pack_tmp
   21068      522193 :          data_tmp = full_data(idata)
   21069      522193 :          pack_tmp = ISHFT(data_tmp, 52)
   21070      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   21071      522193 :          idata = idata + 1
   21072      522193 :          data_tmp = full_data(idata)
   21073      522193 :          data_tmp = ISHFT(data_tmp, 35)
   21074      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21075      522193 :          pack_tmp = ISHFT(pack_tmp, -23)
   21076      522193 :          idata = idata + 1
   21077      522193 :          data_tmp = full_data(idata)
   21078      522193 :          data_tmp = ISHFT(data_tmp, 35)
   21079      522193 :          data_tmp = IAND(data_tmp, mask_left(23))
   21080      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21081      522193 :          ipack = ipack + 1
   21082      522193 :          packed_data(ipack) = pack_tmp
   21083      522193 :          data_tmp = full_data(idata)
   21084      522193 :          pack_tmp = ISHFT(data_tmp, 58)
   21085      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   21086      522193 :          idata = idata + 1
   21087      522193 :          data_tmp = full_data(idata)
   21088      522193 :          data_tmp = ISHFT(data_tmp, 35)
   21089      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21090      522193 :          pack_tmp = ISHFT(pack_tmp, -29)
   21091      522193 :          idata = idata + 1
   21092      522193 :          data_tmp = full_data(idata)
   21093      522193 :          data_tmp = ISHFT(data_tmp, 35)
   21094      522193 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21095             :          pack_tmp = ISHFT(pack_tmp, 0)
   21096      522193 :          pack_tmp = ISHFT(pack_tmp, 0)
   21097      522193 :          ipack = ipack + 1
   21098      522597 :          packed_data(ipack) = pack_tmp
   21099             :       END DO
   21100       36880 :       IF (Ndata_rep < Ndata) THEN
   21101        7902 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   21102             :       END IF
   21103       36880 :    END SUBROUTINE ints2bits_29
   21104             : 
   21105             : ! **************************************************************************************************
   21106             : !> \brief ...
   21107             : !> \param Ndata ...
   21108             : !> \param packed_data ...
   21109             : !> \param full_data ...
   21110             : ! **************************************************************************************************
   21111      177246 :    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      177246 :       ipack = 0
   21122      177246 :       idata = 0
   21123      177246 :       pack_tmp = 0
   21124      177246 :       Ndata_rep = (Ndata/64)*64
   21125      177246 :       DO kdata = 1, Ndata_rep, 64
   21126     2423710 :          idata = idata + 1
   21127     2423710 :          data_tmp = ISHFT(pack_tmp, 29)
   21128     2423710 :          ipack = ipack + 1
   21129     2423710 :          pack_tmp = packed_data(ipack)
   21130     2423710 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   21131     2423710 :          pack_tmp = ISHFT(pack_tmp, -29)
   21132     2423710 :          idata = idata + 1
   21133     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21134     2423710 :          full_data(idata) = data_tmp
   21135     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21136     2423710 :          idata = idata + 1
   21137     2423710 :          data_tmp = ISHFT(pack_tmp, 23)
   21138     2423710 :          ipack = ipack + 1
   21139     2423710 :          pack_tmp = packed_data(ipack)
   21140     2423710 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   21141     2423710 :          pack_tmp = ISHFT(pack_tmp, -23)
   21142     2423710 :          idata = idata + 1
   21143     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21144     2423710 :          full_data(idata) = data_tmp
   21145     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21146     2423710 :          idata = idata + 1
   21147     2423710 :          data_tmp = ISHFT(pack_tmp, 17)
   21148     2423710 :          ipack = ipack + 1
   21149     2423710 :          pack_tmp = packed_data(ipack)
   21150     2423710 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   21151     2423710 :          pack_tmp = ISHFT(pack_tmp, -17)
   21152     2423710 :          idata = idata + 1
   21153     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21154     2423710 :          full_data(idata) = data_tmp
   21155     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21156     2423710 :          idata = idata + 1
   21157     2423710 :          data_tmp = ISHFT(pack_tmp, 11)
   21158     2423710 :          ipack = ipack + 1
   21159     2423710 :          pack_tmp = packed_data(ipack)
   21160     2423710 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   21161     2423710 :          pack_tmp = ISHFT(pack_tmp, -11)
   21162     2423710 :          idata = idata + 1
   21163     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21164     2423710 :          full_data(idata) = data_tmp
   21165     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21166     2423710 :          idata = idata + 1
   21167     2423710 :          data_tmp = ISHFT(pack_tmp, 5)
   21168     2423710 :          ipack = ipack + 1
   21169     2423710 :          pack_tmp = packed_data(ipack)
   21170     2423710 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   21171     2423710 :          pack_tmp = ISHFT(pack_tmp, -5)
   21172     2423710 :          idata = idata + 1
   21173     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21174     2423710 :          full_data(idata) = data_tmp
   21175     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21176     2423710 :          idata = idata + 1
   21177     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21178     2423710 :          full_data(idata) = data_tmp
   21179     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21180     2423710 :          idata = idata + 1
   21181     2423710 :          data_tmp = ISHFT(pack_tmp, 28)
   21182     2423710 :          ipack = ipack + 1
   21183     2423710 :          pack_tmp = packed_data(ipack)
   21184     2423710 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   21185     2423710 :          pack_tmp = ISHFT(pack_tmp, -28)
   21186     2423710 :          idata = idata + 1
   21187     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21188     2423710 :          full_data(idata) = data_tmp
   21189     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21190     2423710 :          idata = idata + 1
   21191     2423710 :          data_tmp = ISHFT(pack_tmp, 22)
   21192     2423710 :          ipack = ipack + 1
   21193     2423710 :          pack_tmp = packed_data(ipack)
   21194     2423710 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   21195     2423710 :          pack_tmp = ISHFT(pack_tmp, -22)
   21196     2423710 :          idata = idata + 1
   21197     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21198     2423710 :          full_data(idata) = data_tmp
   21199     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21200     2423710 :          idata = idata + 1
   21201     2423710 :          data_tmp = ISHFT(pack_tmp, 16)
   21202     2423710 :          ipack = ipack + 1
   21203     2423710 :          pack_tmp = packed_data(ipack)
   21204     2423710 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   21205     2423710 :          pack_tmp = ISHFT(pack_tmp, -16)
   21206     2423710 :          idata = idata + 1
   21207     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21208     2423710 :          full_data(idata) = data_tmp
   21209     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21210     2423710 :          idata = idata + 1
   21211     2423710 :          data_tmp = ISHFT(pack_tmp, 10)
   21212     2423710 :          ipack = ipack + 1
   21213     2423710 :          pack_tmp = packed_data(ipack)
   21214     2423710 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   21215     2423710 :          pack_tmp = ISHFT(pack_tmp, -10)
   21216     2423710 :          idata = idata + 1
   21217     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21218     2423710 :          full_data(idata) = data_tmp
   21219     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21220     2423710 :          idata = idata + 1
   21221     2423710 :          data_tmp = ISHFT(pack_tmp, 4)
   21222     2423710 :          ipack = ipack + 1
   21223     2423710 :          pack_tmp = packed_data(ipack)
   21224     2423710 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   21225     2423710 :          pack_tmp = ISHFT(pack_tmp, -4)
   21226     2423710 :          idata = idata + 1
   21227     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21228     2423710 :          full_data(idata) = data_tmp
   21229     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21230     2423710 :          idata = idata + 1
   21231     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21232     2423710 :          full_data(idata) = data_tmp
   21233     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21234     2423710 :          idata = idata + 1
   21235     2423710 :          data_tmp = ISHFT(pack_tmp, 27)
   21236     2423710 :          ipack = ipack + 1
   21237     2423710 :          pack_tmp = packed_data(ipack)
   21238     2423710 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   21239     2423710 :          pack_tmp = ISHFT(pack_tmp, -27)
   21240     2423710 :          idata = idata + 1
   21241     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21242     2423710 :          full_data(idata) = data_tmp
   21243     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21244     2423710 :          idata = idata + 1
   21245     2423710 :          data_tmp = ISHFT(pack_tmp, 21)
   21246     2423710 :          ipack = ipack + 1
   21247     2423710 :          pack_tmp = packed_data(ipack)
   21248     2423710 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   21249     2423710 :          pack_tmp = ISHFT(pack_tmp, -21)
   21250     2423710 :          idata = idata + 1
   21251     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21252     2423710 :          full_data(idata) = data_tmp
   21253     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21254     2423710 :          idata = idata + 1
   21255     2423710 :          data_tmp = ISHFT(pack_tmp, 15)
   21256     2423710 :          ipack = ipack + 1
   21257     2423710 :          pack_tmp = packed_data(ipack)
   21258     2423710 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   21259     2423710 :          pack_tmp = ISHFT(pack_tmp, -15)
   21260     2423710 :          idata = idata + 1
   21261     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21262     2423710 :          full_data(idata) = data_tmp
   21263     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21264     2423710 :          idata = idata + 1
   21265     2423710 :          data_tmp = ISHFT(pack_tmp, 9)
   21266     2423710 :          ipack = ipack + 1
   21267     2423710 :          pack_tmp = packed_data(ipack)
   21268     2423710 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   21269     2423710 :          pack_tmp = ISHFT(pack_tmp, -9)
   21270     2423710 :          idata = idata + 1
   21271     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21272     2423710 :          full_data(idata) = data_tmp
   21273     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21274     2423710 :          idata = idata + 1
   21275     2423710 :          data_tmp = ISHFT(pack_tmp, 3)
   21276     2423710 :          ipack = ipack + 1
   21277     2423710 :          pack_tmp = packed_data(ipack)
   21278     2423710 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   21279     2423710 :          pack_tmp = ISHFT(pack_tmp, -3)
   21280     2423710 :          idata = idata + 1
   21281     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21282     2423710 :          full_data(idata) = data_tmp
   21283     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21284     2423710 :          idata = idata + 1
   21285     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21286     2423710 :          full_data(idata) = data_tmp
   21287     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21288     2423710 :          idata = idata + 1
   21289     2423710 :          data_tmp = ISHFT(pack_tmp, 26)
   21290     2423710 :          ipack = ipack + 1
   21291     2423710 :          pack_tmp = packed_data(ipack)
   21292     2423710 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   21293     2423710 :          pack_tmp = ISHFT(pack_tmp, -26)
   21294     2423710 :          idata = idata + 1
   21295     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21296     2423710 :          full_data(idata) = data_tmp
   21297     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21298     2423710 :          idata = idata + 1
   21299     2423710 :          data_tmp = ISHFT(pack_tmp, 20)
   21300     2423710 :          ipack = ipack + 1
   21301     2423710 :          pack_tmp = packed_data(ipack)
   21302     2423710 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   21303     2423710 :          pack_tmp = ISHFT(pack_tmp, -20)
   21304     2423710 :          idata = idata + 1
   21305     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21306     2423710 :          full_data(idata) = data_tmp
   21307     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21308     2423710 :          idata = idata + 1
   21309     2423710 :          data_tmp = ISHFT(pack_tmp, 14)
   21310     2423710 :          ipack = ipack + 1
   21311     2423710 :          pack_tmp = packed_data(ipack)
   21312     2423710 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   21313     2423710 :          pack_tmp = ISHFT(pack_tmp, -14)
   21314     2423710 :          idata = idata + 1
   21315     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21316     2423710 :          full_data(idata) = data_tmp
   21317     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21318     2423710 :          idata = idata + 1
   21319     2423710 :          data_tmp = ISHFT(pack_tmp, 8)
   21320     2423710 :          ipack = ipack + 1
   21321     2423710 :          pack_tmp = packed_data(ipack)
   21322     2423710 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   21323     2423710 :          pack_tmp = ISHFT(pack_tmp, -8)
   21324     2423710 :          idata = idata + 1
   21325     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21326     2423710 :          full_data(idata) = data_tmp
   21327     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21328     2423710 :          idata = idata + 1
   21329     2423710 :          data_tmp = ISHFT(pack_tmp, 2)
   21330     2423710 :          ipack = ipack + 1
   21331     2423710 :          pack_tmp = packed_data(ipack)
   21332     2423710 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   21333     2423710 :          pack_tmp = ISHFT(pack_tmp, -2)
   21334     2423710 :          idata = idata + 1
   21335     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21336     2423710 :          full_data(idata) = data_tmp
   21337     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21338     2423710 :          idata = idata + 1
   21339     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21340     2423710 :          full_data(idata) = data_tmp
   21341     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21342     2423710 :          idata = idata + 1
   21343     2423710 :          data_tmp = ISHFT(pack_tmp, 25)
   21344     2423710 :          ipack = ipack + 1
   21345     2423710 :          pack_tmp = packed_data(ipack)
   21346     2423710 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   21347     2423710 :          pack_tmp = ISHFT(pack_tmp, -25)
   21348     2423710 :          idata = idata + 1
   21349     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21350     2423710 :          full_data(idata) = data_tmp
   21351     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21352     2423710 :          idata = idata + 1
   21353     2423710 :          data_tmp = ISHFT(pack_tmp, 19)
   21354     2423710 :          ipack = ipack + 1
   21355     2423710 :          pack_tmp = packed_data(ipack)
   21356     2423710 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   21357     2423710 :          pack_tmp = ISHFT(pack_tmp, -19)
   21358     2423710 :          idata = idata + 1
   21359     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21360     2423710 :          full_data(idata) = data_tmp
   21361     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21362     2423710 :          idata = idata + 1
   21363     2423710 :          data_tmp = ISHFT(pack_tmp, 13)
   21364     2423710 :          ipack = ipack + 1
   21365     2423710 :          pack_tmp = packed_data(ipack)
   21366     2423710 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   21367     2423710 :          pack_tmp = ISHFT(pack_tmp, -13)
   21368     2423710 :          idata = idata + 1
   21369     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21370     2423710 :          full_data(idata) = data_tmp
   21371     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21372     2423710 :          idata = idata + 1
   21373     2423710 :          data_tmp = ISHFT(pack_tmp, 7)
   21374     2423710 :          ipack = ipack + 1
   21375     2423710 :          pack_tmp = packed_data(ipack)
   21376     2423710 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   21377     2423710 :          pack_tmp = ISHFT(pack_tmp, -7)
   21378     2423710 :          idata = idata + 1
   21379     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21380     2423710 :          full_data(idata) = data_tmp
   21381     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21382     2423710 :          idata = idata + 1
   21383     2423710 :          data_tmp = ISHFT(pack_tmp, 1)
   21384     2423710 :          ipack = ipack + 1
   21385     2423710 :          pack_tmp = packed_data(ipack)
   21386     2423710 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   21387     2423710 :          pack_tmp = ISHFT(pack_tmp, -1)
   21388     2423710 :          idata = idata + 1
   21389     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21390     2423710 :          full_data(idata) = data_tmp
   21391     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21392     2423710 :          idata = idata + 1
   21393     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21394     2423710 :          full_data(idata) = data_tmp
   21395     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21396     2423710 :          idata = idata + 1
   21397     2423710 :          data_tmp = ISHFT(pack_tmp, 24)
   21398     2423710 :          ipack = ipack + 1
   21399     2423710 :          pack_tmp = packed_data(ipack)
   21400     2423710 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   21401     2423710 :          pack_tmp = ISHFT(pack_tmp, -24)
   21402     2423710 :          idata = idata + 1
   21403     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21404     2423710 :          full_data(idata) = data_tmp
   21405     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21406     2423710 :          idata = idata + 1
   21407     2423710 :          data_tmp = ISHFT(pack_tmp, 18)
   21408     2423710 :          ipack = ipack + 1
   21409     2423710 :          pack_tmp = packed_data(ipack)
   21410     2423710 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   21411     2423710 :          pack_tmp = ISHFT(pack_tmp, -18)
   21412     2423710 :          idata = idata + 1
   21413     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21414     2423710 :          full_data(idata) = data_tmp
   21415     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21416     2423710 :          idata = idata + 1
   21417     2423710 :          data_tmp = ISHFT(pack_tmp, 12)
   21418     2423710 :          ipack = ipack + 1
   21419     2423710 :          pack_tmp = packed_data(ipack)
   21420     2423710 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   21421     2423710 :          pack_tmp = ISHFT(pack_tmp, -12)
   21422     2423710 :          idata = idata + 1
   21423     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21424     2423710 :          full_data(idata) = data_tmp
   21425     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21426     2423710 :          idata = idata + 1
   21427     2423710 :          data_tmp = ISHFT(pack_tmp, 6)
   21428     2423710 :          ipack = ipack + 1
   21429     2423710 :          pack_tmp = packed_data(ipack)
   21430     2423710 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   21431     2423710 :          pack_tmp = ISHFT(pack_tmp, -6)
   21432     2423710 :          idata = idata + 1
   21433     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21434     2423710 :          full_data(idata) = data_tmp
   21435     2423710 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21436     2423710 :          idata = idata + 1
   21437     2423710 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21438     2423710 :          full_data(idata) = data_tmp
   21439     2426117 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21440             :       END DO
   21441      177246 :       IF (Ndata_rep < Ndata) THEN
   21442       47716 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   21443             :       END IF
   21444      177246 :    END SUBROUTINE bits2ints_29
   21445             : 
   21446             : ! **************************************************************************************************
   21447             : !> \brief ...
   21448             : !> \param Ndata ...
   21449             : !> \param packed_data ...
   21450             : !> \param full_data ...
   21451             : ! **************************************************************************************************
   21452       43669 :    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       43669 :       idata = 0
   21463       43669 :       ipack = 0
   21464       43669 :       Ndata_rep = (Ndata/64)*64
   21465       43669 :       DO kdata = 1, Ndata_rep, 64
   21466      592046 :          pack_tmp = 0
   21467      592046 :          idata = idata + 1
   21468      592046 :          data_tmp = full_data(idata)
   21469      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21470      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21471      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21472      592046 :          idata = idata + 1
   21473      592046 :          data_tmp = full_data(idata)
   21474      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21475      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21476      592046 :          pack_tmp = ISHFT(pack_tmp, -4)
   21477      592046 :          idata = idata + 1
   21478      592046 :          data_tmp = full_data(idata)
   21479      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21480      592046 :          data_tmp = IAND(data_tmp, mask_left(4))
   21481      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21482      592046 :          ipack = ipack + 1
   21483      592046 :          packed_data(ipack) = pack_tmp
   21484      592046 :          data_tmp = full_data(idata)
   21485      592046 :          pack_tmp = ISHFT(data_tmp, 38)
   21486      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21487      592046 :          idata = idata + 1
   21488      592046 :          data_tmp = full_data(idata)
   21489      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21490      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21491      592046 :          pack_tmp = ISHFT(pack_tmp, -8)
   21492      592046 :          idata = idata + 1
   21493      592046 :          data_tmp = full_data(idata)
   21494      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21495      592046 :          data_tmp = IAND(data_tmp, mask_left(8))
   21496      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21497      592046 :          ipack = ipack + 1
   21498      592046 :          packed_data(ipack) = pack_tmp
   21499      592046 :          data_tmp = full_data(idata)
   21500      592046 :          pack_tmp = ISHFT(data_tmp, 42)
   21501      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21502      592046 :          idata = idata + 1
   21503      592046 :          data_tmp = full_data(idata)
   21504      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21505      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21506      592046 :          pack_tmp = ISHFT(pack_tmp, -12)
   21507      592046 :          idata = idata + 1
   21508      592046 :          data_tmp = full_data(idata)
   21509      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21510      592046 :          data_tmp = IAND(data_tmp, mask_left(12))
   21511      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21512      592046 :          ipack = ipack + 1
   21513      592046 :          packed_data(ipack) = pack_tmp
   21514      592046 :          data_tmp = full_data(idata)
   21515      592046 :          pack_tmp = ISHFT(data_tmp, 46)
   21516      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21517      592046 :          idata = idata + 1
   21518      592046 :          data_tmp = full_data(idata)
   21519      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21520      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21521      592046 :          pack_tmp = ISHFT(pack_tmp, -16)
   21522      592046 :          idata = idata + 1
   21523      592046 :          data_tmp = full_data(idata)
   21524      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21525      592046 :          data_tmp = IAND(data_tmp, mask_left(16))
   21526      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21527      592046 :          ipack = ipack + 1
   21528      592046 :          packed_data(ipack) = pack_tmp
   21529      592046 :          data_tmp = full_data(idata)
   21530      592046 :          pack_tmp = ISHFT(data_tmp, 50)
   21531      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21532      592046 :          idata = idata + 1
   21533      592046 :          data_tmp = full_data(idata)
   21534      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21535      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21536      592046 :          pack_tmp = ISHFT(pack_tmp, -20)
   21537      592046 :          idata = idata + 1
   21538      592046 :          data_tmp = full_data(idata)
   21539      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21540      592046 :          data_tmp = IAND(data_tmp, mask_left(20))
   21541      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21542      592046 :          ipack = ipack + 1
   21543      592046 :          packed_data(ipack) = pack_tmp
   21544      592046 :          data_tmp = full_data(idata)
   21545      592046 :          pack_tmp = ISHFT(data_tmp, 54)
   21546      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21547      592046 :          idata = idata + 1
   21548      592046 :          data_tmp = full_data(idata)
   21549      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21550      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21551      592046 :          pack_tmp = ISHFT(pack_tmp, -24)
   21552      592046 :          idata = idata + 1
   21553      592046 :          data_tmp = full_data(idata)
   21554      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21555      592046 :          data_tmp = IAND(data_tmp, mask_left(24))
   21556      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21557      592046 :          ipack = ipack + 1
   21558      592046 :          packed_data(ipack) = pack_tmp
   21559      592046 :          data_tmp = full_data(idata)
   21560      592046 :          pack_tmp = ISHFT(data_tmp, 58)
   21561      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21562      592046 :          idata = idata + 1
   21563      592046 :          data_tmp = full_data(idata)
   21564      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21565      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21566      592046 :          pack_tmp = ISHFT(pack_tmp, -28)
   21567      592046 :          idata = idata + 1
   21568      592046 :          data_tmp = full_data(idata)
   21569      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21570      592046 :          data_tmp = IAND(data_tmp, mask_left(28))
   21571      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21572      592046 :          ipack = ipack + 1
   21573      592046 :          packed_data(ipack) = pack_tmp
   21574      592046 :          data_tmp = full_data(idata)
   21575      592046 :          pack_tmp = ISHFT(data_tmp, 62)
   21576      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21577      592046 :          idata = idata + 1
   21578      592046 :          data_tmp = full_data(idata)
   21579      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21580      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21581      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21582      592046 :          idata = idata + 1
   21583      592046 :          data_tmp = full_data(idata)
   21584      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21585      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21586      592046 :          pack_tmp = ISHFT(pack_tmp, -2)
   21587      592046 :          idata = idata + 1
   21588      592046 :          data_tmp = full_data(idata)
   21589      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21590      592046 :          data_tmp = IAND(data_tmp, mask_left(2))
   21591      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21592      592046 :          ipack = ipack + 1
   21593      592046 :          packed_data(ipack) = pack_tmp
   21594      592046 :          data_tmp = full_data(idata)
   21595      592046 :          pack_tmp = ISHFT(data_tmp, 36)
   21596      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21597      592046 :          idata = idata + 1
   21598      592046 :          data_tmp = full_data(idata)
   21599      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21600      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21601      592046 :          pack_tmp = ISHFT(pack_tmp, -6)
   21602      592046 :          idata = idata + 1
   21603      592046 :          data_tmp = full_data(idata)
   21604      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21605      592046 :          data_tmp = IAND(data_tmp, mask_left(6))
   21606      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21607      592046 :          ipack = ipack + 1
   21608      592046 :          packed_data(ipack) = pack_tmp
   21609      592046 :          data_tmp = full_data(idata)
   21610      592046 :          pack_tmp = ISHFT(data_tmp, 40)
   21611      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21612      592046 :          idata = idata + 1
   21613      592046 :          data_tmp = full_data(idata)
   21614      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21615      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21616      592046 :          pack_tmp = ISHFT(pack_tmp, -10)
   21617      592046 :          idata = idata + 1
   21618      592046 :          data_tmp = full_data(idata)
   21619      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21620      592046 :          data_tmp = IAND(data_tmp, mask_left(10))
   21621      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21622      592046 :          ipack = ipack + 1
   21623      592046 :          packed_data(ipack) = pack_tmp
   21624      592046 :          data_tmp = full_data(idata)
   21625      592046 :          pack_tmp = ISHFT(data_tmp, 44)
   21626      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21627      592046 :          idata = idata + 1
   21628      592046 :          data_tmp = full_data(idata)
   21629      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21630      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21631      592046 :          pack_tmp = ISHFT(pack_tmp, -14)
   21632      592046 :          idata = idata + 1
   21633      592046 :          data_tmp = full_data(idata)
   21634      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21635      592046 :          data_tmp = IAND(data_tmp, mask_left(14))
   21636      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21637      592046 :          ipack = ipack + 1
   21638      592046 :          packed_data(ipack) = pack_tmp
   21639      592046 :          data_tmp = full_data(idata)
   21640      592046 :          pack_tmp = ISHFT(data_tmp, 48)
   21641      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21642      592046 :          idata = idata + 1
   21643      592046 :          data_tmp = full_data(idata)
   21644      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21645      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21646      592046 :          pack_tmp = ISHFT(pack_tmp, -18)
   21647      592046 :          idata = idata + 1
   21648      592046 :          data_tmp = full_data(idata)
   21649      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21650      592046 :          data_tmp = IAND(data_tmp, mask_left(18))
   21651      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21652      592046 :          ipack = ipack + 1
   21653      592046 :          packed_data(ipack) = pack_tmp
   21654      592046 :          data_tmp = full_data(idata)
   21655      592046 :          pack_tmp = ISHFT(data_tmp, 52)
   21656      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21657      592046 :          idata = idata + 1
   21658      592046 :          data_tmp = full_data(idata)
   21659      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21660      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21661      592046 :          pack_tmp = ISHFT(pack_tmp, -22)
   21662      592046 :          idata = idata + 1
   21663      592046 :          data_tmp = full_data(idata)
   21664      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21665      592046 :          data_tmp = IAND(data_tmp, mask_left(22))
   21666      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21667      592046 :          ipack = ipack + 1
   21668      592046 :          packed_data(ipack) = pack_tmp
   21669      592046 :          data_tmp = full_data(idata)
   21670      592046 :          pack_tmp = ISHFT(data_tmp, 56)
   21671      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21672      592046 :          idata = idata + 1
   21673      592046 :          data_tmp = full_data(idata)
   21674      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21675      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21676      592046 :          pack_tmp = ISHFT(pack_tmp, -26)
   21677      592046 :          idata = idata + 1
   21678      592046 :          data_tmp = full_data(idata)
   21679      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21680      592046 :          data_tmp = IAND(data_tmp, mask_left(26))
   21681      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21682      592046 :          ipack = ipack + 1
   21683      592046 :          packed_data(ipack) = pack_tmp
   21684      592046 :          data_tmp = full_data(idata)
   21685      592046 :          pack_tmp = ISHFT(data_tmp, 60)
   21686      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21687      592046 :          idata = idata + 1
   21688      592046 :          data_tmp = full_data(idata)
   21689      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21690      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21691      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21692      592046 :          idata = idata + 1
   21693      592046 :          data_tmp = full_data(idata)
   21694      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21695      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21696      592046 :          pack_tmp = ISHFT(pack_tmp, 0)
   21697      592046 :          idata = idata + 1
   21698      592046 :          data_tmp = full_data(idata)
   21699             :          data_tmp = ISHFT(data_tmp, 34)
   21700      592046 :          data_tmp = IAND(data_tmp, mask_left(0))
   21701      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21702      592046 :          ipack = ipack + 1
   21703      592046 :          packed_data(ipack) = pack_tmp
   21704      592046 :          data_tmp = full_data(idata)
   21705      592046 :          pack_tmp = ISHFT(data_tmp, 34)
   21706      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21707      592046 :          idata = idata + 1
   21708      592046 :          data_tmp = full_data(idata)
   21709      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21710      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21711      592046 :          pack_tmp = ISHFT(pack_tmp, -4)
   21712      592046 :          idata = idata + 1
   21713      592046 :          data_tmp = full_data(idata)
   21714      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21715      592046 :          data_tmp = IAND(data_tmp, mask_left(4))
   21716      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21717      592046 :          ipack = ipack + 1
   21718      592046 :          packed_data(ipack) = pack_tmp
   21719      592046 :          data_tmp = full_data(idata)
   21720      592046 :          pack_tmp = ISHFT(data_tmp, 38)
   21721      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21722      592046 :          idata = idata + 1
   21723      592046 :          data_tmp = full_data(idata)
   21724      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21725      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21726      592046 :          pack_tmp = ISHFT(pack_tmp, -8)
   21727      592046 :          idata = idata + 1
   21728      592046 :          data_tmp = full_data(idata)
   21729      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21730      592046 :          data_tmp = IAND(data_tmp, mask_left(8))
   21731      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21732      592046 :          ipack = ipack + 1
   21733      592046 :          packed_data(ipack) = pack_tmp
   21734      592046 :          data_tmp = full_data(idata)
   21735      592046 :          pack_tmp = ISHFT(data_tmp, 42)
   21736      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21737      592046 :          idata = idata + 1
   21738      592046 :          data_tmp = full_data(idata)
   21739      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21740      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21741      592046 :          pack_tmp = ISHFT(pack_tmp, -12)
   21742      592046 :          idata = idata + 1
   21743      592046 :          data_tmp = full_data(idata)
   21744      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21745      592046 :          data_tmp = IAND(data_tmp, mask_left(12))
   21746      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21747      592046 :          ipack = ipack + 1
   21748      592046 :          packed_data(ipack) = pack_tmp
   21749      592046 :          data_tmp = full_data(idata)
   21750      592046 :          pack_tmp = ISHFT(data_tmp, 46)
   21751      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21752      592046 :          idata = idata + 1
   21753      592046 :          data_tmp = full_data(idata)
   21754      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21755      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21756      592046 :          pack_tmp = ISHFT(pack_tmp, -16)
   21757      592046 :          idata = idata + 1
   21758      592046 :          data_tmp = full_data(idata)
   21759      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21760      592046 :          data_tmp = IAND(data_tmp, mask_left(16))
   21761      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21762      592046 :          ipack = ipack + 1
   21763      592046 :          packed_data(ipack) = pack_tmp
   21764      592046 :          data_tmp = full_data(idata)
   21765      592046 :          pack_tmp = ISHFT(data_tmp, 50)
   21766      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21767      592046 :          idata = idata + 1
   21768      592046 :          data_tmp = full_data(idata)
   21769      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21770      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21771      592046 :          pack_tmp = ISHFT(pack_tmp, -20)
   21772      592046 :          idata = idata + 1
   21773      592046 :          data_tmp = full_data(idata)
   21774      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21775      592046 :          data_tmp = IAND(data_tmp, mask_left(20))
   21776      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21777      592046 :          ipack = ipack + 1
   21778      592046 :          packed_data(ipack) = pack_tmp
   21779      592046 :          data_tmp = full_data(idata)
   21780      592046 :          pack_tmp = ISHFT(data_tmp, 54)
   21781      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21782      592046 :          idata = idata + 1
   21783      592046 :          data_tmp = full_data(idata)
   21784      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21785      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21786      592046 :          pack_tmp = ISHFT(pack_tmp, -24)
   21787      592046 :          idata = idata + 1
   21788      592046 :          data_tmp = full_data(idata)
   21789      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21790      592046 :          data_tmp = IAND(data_tmp, mask_left(24))
   21791      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21792      592046 :          ipack = ipack + 1
   21793      592046 :          packed_data(ipack) = pack_tmp
   21794      592046 :          data_tmp = full_data(idata)
   21795      592046 :          pack_tmp = ISHFT(data_tmp, 58)
   21796      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21797      592046 :          idata = idata + 1
   21798      592046 :          data_tmp = full_data(idata)
   21799      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21800      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21801      592046 :          pack_tmp = ISHFT(pack_tmp, -28)
   21802      592046 :          idata = idata + 1
   21803      592046 :          data_tmp = full_data(idata)
   21804      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21805      592046 :          data_tmp = IAND(data_tmp, mask_left(28))
   21806      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21807      592046 :          ipack = ipack + 1
   21808      592046 :          packed_data(ipack) = pack_tmp
   21809      592046 :          data_tmp = full_data(idata)
   21810      592046 :          pack_tmp = ISHFT(data_tmp, 62)
   21811      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21812      592046 :          idata = idata + 1
   21813      592046 :          data_tmp = full_data(idata)
   21814      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21815      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21816      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21817      592046 :          idata = idata + 1
   21818      592046 :          data_tmp = full_data(idata)
   21819      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21820      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21821      592046 :          pack_tmp = ISHFT(pack_tmp, -2)
   21822      592046 :          idata = idata + 1
   21823      592046 :          data_tmp = full_data(idata)
   21824      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21825      592046 :          data_tmp = IAND(data_tmp, mask_left(2))
   21826      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21827      592046 :          ipack = ipack + 1
   21828      592046 :          packed_data(ipack) = pack_tmp
   21829      592046 :          data_tmp = full_data(idata)
   21830      592046 :          pack_tmp = ISHFT(data_tmp, 36)
   21831      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21832      592046 :          idata = idata + 1
   21833      592046 :          data_tmp = full_data(idata)
   21834      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21835      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21836      592046 :          pack_tmp = ISHFT(pack_tmp, -6)
   21837      592046 :          idata = idata + 1
   21838      592046 :          data_tmp = full_data(idata)
   21839      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21840      592046 :          data_tmp = IAND(data_tmp, mask_left(6))
   21841      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21842      592046 :          ipack = ipack + 1
   21843      592046 :          packed_data(ipack) = pack_tmp
   21844      592046 :          data_tmp = full_data(idata)
   21845      592046 :          pack_tmp = ISHFT(data_tmp, 40)
   21846      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21847      592046 :          idata = idata + 1
   21848      592046 :          data_tmp = full_data(idata)
   21849      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21850      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21851      592046 :          pack_tmp = ISHFT(pack_tmp, -10)
   21852      592046 :          idata = idata + 1
   21853      592046 :          data_tmp = full_data(idata)
   21854      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21855      592046 :          data_tmp = IAND(data_tmp, mask_left(10))
   21856      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21857      592046 :          ipack = ipack + 1
   21858      592046 :          packed_data(ipack) = pack_tmp
   21859      592046 :          data_tmp = full_data(idata)
   21860      592046 :          pack_tmp = ISHFT(data_tmp, 44)
   21861      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21862      592046 :          idata = idata + 1
   21863      592046 :          data_tmp = full_data(idata)
   21864      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21865      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21866      592046 :          pack_tmp = ISHFT(pack_tmp, -14)
   21867      592046 :          idata = idata + 1
   21868      592046 :          data_tmp = full_data(idata)
   21869      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21870      592046 :          data_tmp = IAND(data_tmp, mask_left(14))
   21871      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21872      592046 :          ipack = ipack + 1
   21873      592046 :          packed_data(ipack) = pack_tmp
   21874      592046 :          data_tmp = full_data(idata)
   21875      592046 :          pack_tmp = ISHFT(data_tmp, 48)
   21876      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21877      592046 :          idata = idata + 1
   21878      592046 :          data_tmp = full_data(idata)
   21879      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21880      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21881      592046 :          pack_tmp = ISHFT(pack_tmp, -18)
   21882      592046 :          idata = idata + 1
   21883      592046 :          data_tmp = full_data(idata)
   21884      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21885      592046 :          data_tmp = IAND(data_tmp, mask_left(18))
   21886      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21887      592046 :          ipack = ipack + 1
   21888      592046 :          packed_data(ipack) = pack_tmp
   21889      592046 :          data_tmp = full_data(idata)
   21890      592046 :          pack_tmp = ISHFT(data_tmp, 52)
   21891      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21892      592046 :          idata = idata + 1
   21893      592046 :          data_tmp = full_data(idata)
   21894      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21895      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21896      592046 :          pack_tmp = ISHFT(pack_tmp, -22)
   21897      592046 :          idata = idata + 1
   21898      592046 :          data_tmp = full_data(idata)
   21899      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21900      592046 :          data_tmp = IAND(data_tmp, mask_left(22))
   21901      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21902      592046 :          ipack = ipack + 1
   21903      592046 :          packed_data(ipack) = pack_tmp
   21904      592046 :          data_tmp = full_data(idata)
   21905      592046 :          pack_tmp = ISHFT(data_tmp, 56)
   21906      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21907      592046 :          idata = idata + 1
   21908      592046 :          data_tmp = full_data(idata)
   21909      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21910      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21911      592046 :          pack_tmp = ISHFT(pack_tmp, -26)
   21912      592046 :          idata = idata + 1
   21913      592046 :          data_tmp = full_data(idata)
   21914      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21915      592046 :          data_tmp = IAND(data_tmp, mask_left(26))
   21916      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21917      592046 :          ipack = ipack + 1
   21918      592046 :          packed_data(ipack) = pack_tmp
   21919      592046 :          data_tmp = full_data(idata)
   21920      592046 :          pack_tmp = ISHFT(data_tmp, 60)
   21921      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21922      592046 :          idata = idata + 1
   21923      592046 :          data_tmp = full_data(idata)
   21924      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21925      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21926      592046 :          pack_tmp = ISHFT(pack_tmp, -30)
   21927      592046 :          idata = idata + 1
   21928      592046 :          data_tmp = full_data(idata)
   21929      592046 :          data_tmp = ISHFT(data_tmp, 34)
   21930      592046 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21931             :          pack_tmp = ISHFT(pack_tmp, 0)
   21932      592046 :          pack_tmp = ISHFT(pack_tmp, 0)
   21933      592046 :          ipack = ipack + 1
   21934      592321 :          packed_data(ipack) = pack_tmp
   21935             :       END DO
   21936       43669 :       IF (Ndata_rep < Ndata) THEN
   21937       12548 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   21938             :       END IF
   21939       43669 :    END SUBROUTINE ints2bits_30
   21940             : 
   21941             : ! **************************************************************************************************
   21942             : !> \brief ...
   21943             : !> \param Ndata ...
   21944             : !> \param packed_data ...
   21945             : !> \param full_data ...
   21946             : ! **************************************************************************************************
   21947      226921 :    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      226921 :       ipack = 0
   21958      226921 :       idata = 0
   21959      226921 :       pack_tmp = 0
   21960      226921 :       Ndata_rep = (Ndata/64)*64
   21961      226921 :       DO kdata = 1, Ndata_rep, 64
   21962     2935249 :          idata = idata + 1
   21963     2935249 :          data_tmp = ISHFT(pack_tmp, 30)
   21964     2935249 :          ipack = ipack + 1
   21965     2935249 :          pack_tmp = packed_data(ipack)
   21966     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   21967     2935249 :          pack_tmp = ISHFT(pack_tmp, -30)
   21968     2935249 :          idata = idata + 1
   21969     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21970     2935249 :          full_data(idata) = data_tmp
   21971     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21972     2935249 :          idata = idata + 1
   21973     2935249 :          data_tmp = ISHFT(pack_tmp, 26)
   21974     2935249 :          ipack = ipack + 1
   21975     2935249 :          pack_tmp = packed_data(ipack)
   21976     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   21977     2935249 :          pack_tmp = ISHFT(pack_tmp, -26)
   21978     2935249 :          idata = idata + 1
   21979     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21980     2935249 :          full_data(idata) = data_tmp
   21981     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21982     2935249 :          idata = idata + 1
   21983     2935249 :          data_tmp = ISHFT(pack_tmp, 22)
   21984     2935249 :          ipack = ipack + 1
   21985     2935249 :          pack_tmp = packed_data(ipack)
   21986     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   21987     2935249 :          pack_tmp = ISHFT(pack_tmp, -22)
   21988     2935249 :          idata = idata + 1
   21989     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21990     2935249 :          full_data(idata) = data_tmp
   21991     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21992     2935249 :          idata = idata + 1
   21993     2935249 :          data_tmp = ISHFT(pack_tmp, 18)
   21994     2935249 :          ipack = ipack + 1
   21995     2935249 :          pack_tmp = packed_data(ipack)
   21996     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   21997     2935249 :          pack_tmp = ISHFT(pack_tmp, -18)
   21998     2935249 :          idata = idata + 1
   21999     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22000     2935249 :          full_data(idata) = data_tmp
   22001     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22002     2935249 :          idata = idata + 1
   22003     2935249 :          data_tmp = ISHFT(pack_tmp, 14)
   22004     2935249 :          ipack = ipack + 1
   22005     2935249 :          pack_tmp = packed_data(ipack)
   22006     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   22007     2935249 :          pack_tmp = ISHFT(pack_tmp, -14)
   22008     2935249 :          idata = idata + 1
   22009     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22010     2935249 :          full_data(idata) = data_tmp
   22011     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22012     2935249 :          idata = idata + 1
   22013     2935249 :          data_tmp = ISHFT(pack_tmp, 10)
   22014     2935249 :          ipack = ipack + 1
   22015     2935249 :          pack_tmp = packed_data(ipack)
   22016     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   22017     2935249 :          pack_tmp = ISHFT(pack_tmp, -10)
   22018     2935249 :          idata = idata + 1
   22019     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22020     2935249 :          full_data(idata) = data_tmp
   22021     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22022     2935249 :          idata = idata + 1
   22023     2935249 :          data_tmp = ISHFT(pack_tmp, 6)
   22024     2935249 :          ipack = ipack + 1
   22025     2935249 :          pack_tmp = packed_data(ipack)
   22026     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   22027     2935249 :          pack_tmp = ISHFT(pack_tmp, -6)
   22028     2935249 :          idata = idata + 1
   22029     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22030     2935249 :          full_data(idata) = data_tmp
   22031     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22032     2935249 :          idata = idata + 1
   22033     2935249 :          data_tmp = ISHFT(pack_tmp, 2)
   22034     2935249 :          ipack = ipack + 1
   22035     2935249 :          pack_tmp = packed_data(ipack)
   22036     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   22037     2935249 :          pack_tmp = ISHFT(pack_tmp, -2)
   22038     2935249 :          idata = idata + 1
   22039     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22040     2935249 :          full_data(idata) = data_tmp
   22041     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22042     2935249 :          idata = idata + 1
   22043     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22044     2935249 :          full_data(idata) = data_tmp
   22045     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22046     2935249 :          idata = idata + 1
   22047     2935249 :          data_tmp = ISHFT(pack_tmp, 28)
   22048     2935249 :          ipack = ipack + 1
   22049     2935249 :          pack_tmp = packed_data(ipack)
   22050     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   22051     2935249 :          pack_tmp = ISHFT(pack_tmp, -28)
   22052     2935249 :          idata = idata + 1
   22053     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22054     2935249 :          full_data(idata) = data_tmp
   22055     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22056     2935249 :          idata = idata + 1
   22057     2935249 :          data_tmp = ISHFT(pack_tmp, 24)
   22058     2935249 :          ipack = ipack + 1
   22059     2935249 :          pack_tmp = packed_data(ipack)
   22060     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   22061     2935249 :          pack_tmp = ISHFT(pack_tmp, -24)
   22062     2935249 :          idata = idata + 1
   22063     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22064     2935249 :          full_data(idata) = data_tmp
   22065     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22066     2935249 :          idata = idata + 1
   22067     2935249 :          data_tmp = ISHFT(pack_tmp, 20)
   22068     2935249 :          ipack = ipack + 1
   22069     2935249 :          pack_tmp = packed_data(ipack)
   22070     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   22071     2935249 :          pack_tmp = ISHFT(pack_tmp, -20)
   22072     2935249 :          idata = idata + 1
   22073     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22074     2935249 :          full_data(idata) = data_tmp
   22075     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22076     2935249 :          idata = idata + 1
   22077     2935249 :          data_tmp = ISHFT(pack_tmp, 16)
   22078     2935249 :          ipack = ipack + 1
   22079     2935249 :          pack_tmp = packed_data(ipack)
   22080     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   22081     2935249 :          pack_tmp = ISHFT(pack_tmp, -16)
   22082     2935249 :          idata = idata + 1
   22083     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22084     2935249 :          full_data(idata) = data_tmp
   22085     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22086     2935249 :          idata = idata + 1
   22087     2935249 :          data_tmp = ISHFT(pack_tmp, 12)
   22088     2935249 :          ipack = ipack + 1
   22089     2935249 :          pack_tmp = packed_data(ipack)
   22090     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   22091     2935249 :          pack_tmp = ISHFT(pack_tmp, -12)
   22092     2935249 :          idata = idata + 1
   22093     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22094     2935249 :          full_data(idata) = data_tmp
   22095     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22096     2935249 :          idata = idata + 1
   22097     2935249 :          data_tmp = ISHFT(pack_tmp, 8)
   22098     2935249 :          ipack = ipack + 1
   22099     2935249 :          pack_tmp = packed_data(ipack)
   22100     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   22101     2935249 :          pack_tmp = ISHFT(pack_tmp, -8)
   22102     2935249 :          idata = idata + 1
   22103     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22104     2935249 :          full_data(idata) = data_tmp
   22105     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22106     2935249 :          idata = idata + 1
   22107     2935249 :          data_tmp = ISHFT(pack_tmp, 4)
   22108     2935249 :          ipack = ipack + 1
   22109     2935249 :          pack_tmp = packed_data(ipack)
   22110     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   22111     2935249 :          pack_tmp = ISHFT(pack_tmp, -4)
   22112     2935249 :          idata = idata + 1
   22113     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22114     2935249 :          full_data(idata) = data_tmp
   22115     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22116     2935249 :          idata = idata + 1
   22117     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22118     2935249 :          full_data(idata) = data_tmp
   22119     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22120     2935249 :          idata = idata + 1
   22121     2935249 :          data_tmp = ISHFT(pack_tmp, 30)
   22122     2935249 :          ipack = ipack + 1
   22123     2935249 :          pack_tmp = packed_data(ipack)
   22124     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   22125     2935249 :          pack_tmp = ISHFT(pack_tmp, -30)
   22126     2935249 :          idata = idata + 1
   22127     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22128     2935249 :          full_data(idata) = data_tmp
   22129     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22130     2935249 :          idata = idata + 1
   22131     2935249 :          data_tmp = ISHFT(pack_tmp, 26)
   22132     2935249 :          ipack = ipack + 1
   22133     2935249 :          pack_tmp = packed_data(ipack)
   22134     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   22135     2935249 :          pack_tmp = ISHFT(pack_tmp, -26)
   22136     2935249 :          idata = idata + 1
   22137     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22138     2935249 :          full_data(idata) = data_tmp
   22139     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22140     2935249 :          idata = idata + 1
   22141     2935249 :          data_tmp = ISHFT(pack_tmp, 22)
   22142     2935249 :          ipack = ipack + 1
   22143     2935249 :          pack_tmp = packed_data(ipack)
   22144     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   22145     2935249 :          pack_tmp = ISHFT(pack_tmp, -22)
   22146     2935249 :          idata = idata + 1
   22147     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22148     2935249 :          full_data(idata) = data_tmp
   22149     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22150     2935249 :          idata = idata + 1
   22151     2935249 :          data_tmp = ISHFT(pack_tmp, 18)
   22152     2935249 :          ipack = ipack + 1
   22153     2935249 :          pack_tmp = packed_data(ipack)
   22154     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   22155     2935249 :          pack_tmp = ISHFT(pack_tmp, -18)
   22156     2935249 :          idata = idata + 1
   22157     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22158     2935249 :          full_data(idata) = data_tmp
   22159     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22160     2935249 :          idata = idata + 1
   22161     2935249 :          data_tmp = ISHFT(pack_tmp, 14)
   22162     2935249 :          ipack = ipack + 1
   22163     2935249 :          pack_tmp = packed_data(ipack)
   22164     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   22165     2935249 :          pack_tmp = ISHFT(pack_tmp, -14)
   22166     2935249 :          idata = idata + 1
   22167     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22168     2935249 :          full_data(idata) = data_tmp
   22169     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22170     2935249 :          idata = idata + 1
   22171     2935249 :          data_tmp = ISHFT(pack_tmp, 10)
   22172     2935249 :          ipack = ipack + 1
   22173     2935249 :          pack_tmp = packed_data(ipack)
   22174     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   22175     2935249 :          pack_tmp = ISHFT(pack_tmp, -10)
   22176     2935249 :          idata = idata + 1
   22177     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22178     2935249 :          full_data(idata) = data_tmp
   22179     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22180     2935249 :          idata = idata + 1
   22181     2935249 :          data_tmp = ISHFT(pack_tmp, 6)
   22182     2935249 :          ipack = ipack + 1
   22183     2935249 :          pack_tmp = packed_data(ipack)
   22184     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   22185     2935249 :          pack_tmp = ISHFT(pack_tmp, -6)
   22186     2935249 :          idata = idata + 1
   22187     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22188     2935249 :          full_data(idata) = data_tmp
   22189     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22190     2935249 :          idata = idata + 1
   22191     2935249 :          data_tmp = ISHFT(pack_tmp, 2)
   22192     2935249 :          ipack = ipack + 1
   22193     2935249 :          pack_tmp = packed_data(ipack)
   22194     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   22195     2935249 :          pack_tmp = ISHFT(pack_tmp, -2)
   22196     2935249 :          idata = idata + 1
   22197     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22198     2935249 :          full_data(idata) = data_tmp
   22199     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22200     2935249 :          idata = idata + 1
   22201     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22202     2935249 :          full_data(idata) = data_tmp
   22203     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22204     2935249 :          idata = idata + 1
   22205     2935249 :          data_tmp = ISHFT(pack_tmp, 28)
   22206     2935249 :          ipack = ipack + 1
   22207     2935249 :          pack_tmp = packed_data(ipack)
   22208     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   22209     2935249 :          pack_tmp = ISHFT(pack_tmp, -28)
   22210     2935249 :          idata = idata + 1
   22211     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22212     2935249 :          full_data(idata) = data_tmp
   22213     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22214     2935249 :          idata = idata + 1
   22215     2935249 :          data_tmp = ISHFT(pack_tmp, 24)
   22216     2935249 :          ipack = ipack + 1
   22217     2935249 :          pack_tmp = packed_data(ipack)
   22218     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   22219     2935249 :          pack_tmp = ISHFT(pack_tmp, -24)
   22220     2935249 :          idata = idata + 1
   22221     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22222     2935249 :          full_data(idata) = data_tmp
   22223     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22224     2935249 :          idata = idata + 1
   22225     2935249 :          data_tmp = ISHFT(pack_tmp, 20)
   22226     2935249 :          ipack = ipack + 1
   22227     2935249 :          pack_tmp = packed_data(ipack)
   22228     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   22229     2935249 :          pack_tmp = ISHFT(pack_tmp, -20)
   22230     2935249 :          idata = idata + 1
   22231     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22232     2935249 :          full_data(idata) = data_tmp
   22233     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22234     2935249 :          idata = idata + 1
   22235     2935249 :          data_tmp = ISHFT(pack_tmp, 16)
   22236     2935249 :          ipack = ipack + 1
   22237     2935249 :          pack_tmp = packed_data(ipack)
   22238     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   22239     2935249 :          pack_tmp = ISHFT(pack_tmp, -16)
   22240     2935249 :          idata = idata + 1
   22241     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22242     2935249 :          full_data(idata) = data_tmp
   22243     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22244     2935249 :          idata = idata + 1
   22245     2935249 :          data_tmp = ISHFT(pack_tmp, 12)
   22246     2935249 :          ipack = ipack + 1
   22247     2935249 :          pack_tmp = packed_data(ipack)
   22248     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   22249     2935249 :          pack_tmp = ISHFT(pack_tmp, -12)
   22250     2935249 :          idata = idata + 1
   22251     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22252     2935249 :          full_data(idata) = data_tmp
   22253     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22254     2935249 :          idata = idata + 1
   22255     2935249 :          data_tmp = ISHFT(pack_tmp, 8)
   22256     2935249 :          ipack = ipack + 1
   22257     2935249 :          pack_tmp = packed_data(ipack)
   22258     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   22259     2935249 :          pack_tmp = ISHFT(pack_tmp, -8)
   22260     2935249 :          idata = idata + 1
   22261     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22262     2935249 :          full_data(idata) = data_tmp
   22263     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22264     2935249 :          idata = idata + 1
   22265     2935249 :          data_tmp = ISHFT(pack_tmp, 4)
   22266     2935249 :          ipack = ipack + 1
   22267     2935249 :          pack_tmp = packed_data(ipack)
   22268     2935249 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   22269     2935249 :          pack_tmp = ISHFT(pack_tmp, -4)
   22270     2935249 :          idata = idata + 1
   22271     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22272     2935249 :          full_data(idata) = data_tmp
   22273     2935249 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22274     2935249 :          idata = idata + 1
   22275     2935249 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22276     2935249 :          full_data(idata) = data_tmp
   22277     2937623 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22278             :       END DO
   22279      226921 :       IF (Ndata_rep < Ndata) THEN
   22280       81822 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   22281             :       END IF
   22282      226921 :    END SUBROUTINE bits2ints_30
   22283             : 
   22284             : ! **************************************************************************************************
   22285             : !> \brief ...
   22286             : !> \param Ndata ...
   22287             : !> \param packed_data ...
   22288             : !> \param full_data ...
   22289             : ! **************************************************************************************************
   22290       43650 :    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       43650 :       idata = 0
   22301       43650 :       ipack = 0
   22302       43650 :       Ndata_rep = (Ndata/64)*64
   22303       43650 :       DO kdata = 1, Ndata_rep, 64
   22304      591691 :          pack_tmp = 0
   22305      591691 :          idata = idata + 1
   22306      591691 :          data_tmp = full_data(idata)
   22307      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22308      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22309      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22310      591691 :          idata = idata + 1
   22311      591691 :          data_tmp = full_data(idata)
   22312      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22313      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22314      591691 :          pack_tmp = ISHFT(pack_tmp, -2)
   22315      591691 :          idata = idata + 1
   22316      591691 :          data_tmp = full_data(idata)
   22317      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22318      591691 :          data_tmp = IAND(data_tmp, mask_left(2))
   22319      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22320      591691 :          ipack = ipack + 1
   22321      591691 :          packed_data(ipack) = pack_tmp
   22322      591691 :          data_tmp = full_data(idata)
   22323      591691 :          pack_tmp = ISHFT(data_tmp, 35)
   22324      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22325      591691 :          idata = idata + 1
   22326      591691 :          data_tmp = full_data(idata)
   22327      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22328      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22329      591691 :          pack_tmp = ISHFT(pack_tmp, -4)
   22330      591691 :          idata = idata + 1
   22331      591691 :          data_tmp = full_data(idata)
   22332      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22333      591691 :          data_tmp = IAND(data_tmp, mask_left(4))
   22334      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22335      591691 :          ipack = ipack + 1
   22336      591691 :          packed_data(ipack) = pack_tmp
   22337      591691 :          data_tmp = full_data(idata)
   22338      591691 :          pack_tmp = ISHFT(data_tmp, 37)
   22339      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22340      591691 :          idata = idata + 1
   22341      591691 :          data_tmp = full_data(idata)
   22342      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22343      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22344      591691 :          pack_tmp = ISHFT(pack_tmp, -6)
   22345      591691 :          idata = idata + 1
   22346      591691 :          data_tmp = full_data(idata)
   22347      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22348      591691 :          data_tmp = IAND(data_tmp, mask_left(6))
   22349      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22350      591691 :          ipack = ipack + 1
   22351      591691 :          packed_data(ipack) = pack_tmp
   22352      591691 :          data_tmp = full_data(idata)
   22353      591691 :          pack_tmp = ISHFT(data_tmp, 39)
   22354      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22355      591691 :          idata = idata + 1
   22356      591691 :          data_tmp = full_data(idata)
   22357      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22358      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22359      591691 :          pack_tmp = ISHFT(pack_tmp, -8)
   22360      591691 :          idata = idata + 1
   22361      591691 :          data_tmp = full_data(idata)
   22362      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22363      591691 :          data_tmp = IAND(data_tmp, mask_left(8))
   22364      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22365      591691 :          ipack = ipack + 1
   22366      591691 :          packed_data(ipack) = pack_tmp
   22367      591691 :          data_tmp = full_data(idata)
   22368      591691 :          pack_tmp = ISHFT(data_tmp, 41)
   22369      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22370      591691 :          idata = idata + 1
   22371      591691 :          data_tmp = full_data(idata)
   22372      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22373      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22374      591691 :          pack_tmp = ISHFT(pack_tmp, -10)
   22375      591691 :          idata = idata + 1
   22376      591691 :          data_tmp = full_data(idata)
   22377      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22378      591691 :          data_tmp = IAND(data_tmp, mask_left(10))
   22379      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22380      591691 :          ipack = ipack + 1
   22381      591691 :          packed_data(ipack) = pack_tmp
   22382      591691 :          data_tmp = full_data(idata)
   22383      591691 :          pack_tmp = ISHFT(data_tmp, 43)
   22384      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22385      591691 :          idata = idata + 1
   22386      591691 :          data_tmp = full_data(idata)
   22387      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22388      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22389      591691 :          pack_tmp = ISHFT(pack_tmp, -12)
   22390      591691 :          idata = idata + 1
   22391      591691 :          data_tmp = full_data(idata)
   22392      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22393      591691 :          data_tmp = IAND(data_tmp, mask_left(12))
   22394      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22395      591691 :          ipack = ipack + 1
   22396      591691 :          packed_data(ipack) = pack_tmp
   22397      591691 :          data_tmp = full_data(idata)
   22398      591691 :          pack_tmp = ISHFT(data_tmp, 45)
   22399      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22400      591691 :          idata = idata + 1
   22401      591691 :          data_tmp = full_data(idata)
   22402      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22403      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22404      591691 :          pack_tmp = ISHFT(pack_tmp, -14)
   22405      591691 :          idata = idata + 1
   22406      591691 :          data_tmp = full_data(idata)
   22407      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22408      591691 :          data_tmp = IAND(data_tmp, mask_left(14))
   22409      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22410      591691 :          ipack = ipack + 1
   22411      591691 :          packed_data(ipack) = pack_tmp
   22412      591691 :          data_tmp = full_data(idata)
   22413      591691 :          pack_tmp = ISHFT(data_tmp, 47)
   22414      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22415      591691 :          idata = idata + 1
   22416      591691 :          data_tmp = full_data(idata)
   22417      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22418      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22419      591691 :          pack_tmp = ISHFT(pack_tmp, -16)
   22420      591691 :          idata = idata + 1
   22421      591691 :          data_tmp = full_data(idata)
   22422      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22423      591691 :          data_tmp = IAND(data_tmp, mask_left(16))
   22424      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22425      591691 :          ipack = ipack + 1
   22426      591691 :          packed_data(ipack) = pack_tmp
   22427      591691 :          data_tmp = full_data(idata)
   22428      591691 :          pack_tmp = ISHFT(data_tmp, 49)
   22429      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22430      591691 :          idata = idata + 1
   22431      591691 :          data_tmp = full_data(idata)
   22432      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22433      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22434      591691 :          pack_tmp = ISHFT(pack_tmp, -18)
   22435      591691 :          idata = idata + 1
   22436      591691 :          data_tmp = full_data(idata)
   22437      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22438      591691 :          data_tmp = IAND(data_tmp, mask_left(18))
   22439      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22440      591691 :          ipack = ipack + 1
   22441      591691 :          packed_data(ipack) = pack_tmp
   22442      591691 :          data_tmp = full_data(idata)
   22443      591691 :          pack_tmp = ISHFT(data_tmp, 51)
   22444      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22445      591691 :          idata = idata + 1
   22446      591691 :          data_tmp = full_data(idata)
   22447      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22448      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22449      591691 :          pack_tmp = ISHFT(pack_tmp, -20)
   22450      591691 :          idata = idata + 1
   22451      591691 :          data_tmp = full_data(idata)
   22452      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22453      591691 :          data_tmp = IAND(data_tmp, mask_left(20))
   22454      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22455      591691 :          ipack = ipack + 1
   22456      591691 :          packed_data(ipack) = pack_tmp
   22457      591691 :          data_tmp = full_data(idata)
   22458      591691 :          pack_tmp = ISHFT(data_tmp, 53)
   22459      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22460      591691 :          idata = idata + 1
   22461      591691 :          data_tmp = full_data(idata)
   22462      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22463      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22464      591691 :          pack_tmp = ISHFT(pack_tmp, -22)
   22465      591691 :          idata = idata + 1
   22466      591691 :          data_tmp = full_data(idata)
   22467      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22468      591691 :          data_tmp = IAND(data_tmp, mask_left(22))
   22469      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22470      591691 :          ipack = ipack + 1
   22471      591691 :          packed_data(ipack) = pack_tmp
   22472      591691 :          data_tmp = full_data(idata)
   22473      591691 :          pack_tmp = ISHFT(data_tmp, 55)
   22474      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22475      591691 :          idata = idata + 1
   22476      591691 :          data_tmp = full_data(idata)
   22477      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22478      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22479      591691 :          pack_tmp = ISHFT(pack_tmp, -24)
   22480      591691 :          idata = idata + 1
   22481      591691 :          data_tmp = full_data(idata)
   22482      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22483      591691 :          data_tmp = IAND(data_tmp, mask_left(24))
   22484      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22485      591691 :          ipack = ipack + 1
   22486      591691 :          packed_data(ipack) = pack_tmp
   22487      591691 :          data_tmp = full_data(idata)
   22488      591691 :          pack_tmp = ISHFT(data_tmp, 57)
   22489      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22490      591691 :          idata = idata + 1
   22491      591691 :          data_tmp = full_data(idata)
   22492      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22493      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22494      591691 :          pack_tmp = ISHFT(pack_tmp, -26)
   22495      591691 :          idata = idata + 1
   22496      591691 :          data_tmp = full_data(idata)
   22497      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22498      591691 :          data_tmp = IAND(data_tmp, mask_left(26))
   22499      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22500      591691 :          ipack = ipack + 1
   22501      591691 :          packed_data(ipack) = pack_tmp
   22502      591691 :          data_tmp = full_data(idata)
   22503      591691 :          pack_tmp = ISHFT(data_tmp, 59)
   22504      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22505      591691 :          idata = idata + 1
   22506      591691 :          data_tmp = full_data(idata)
   22507      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22508      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22509      591691 :          pack_tmp = ISHFT(pack_tmp, -28)
   22510      591691 :          idata = idata + 1
   22511      591691 :          data_tmp = full_data(idata)
   22512      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22513      591691 :          data_tmp = IAND(data_tmp, mask_left(28))
   22514      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22515      591691 :          ipack = ipack + 1
   22516      591691 :          packed_data(ipack) = pack_tmp
   22517      591691 :          data_tmp = full_data(idata)
   22518      591691 :          pack_tmp = ISHFT(data_tmp, 61)
   22519      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22520      591691 :          idata = idata + 1
   22521      591691 :          data_tmp = full_data(idata)
   22522      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22523      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22524      591691 :          pack_tmp = ISHFT(pack_tmp, -30)
   22525      591691 :          idata = idata + 1
   22526      591691 :          data_tmp = full_data(idata)
   22527      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22528      591691 :          data_tmp = IAND(data_tmp, mask_left(30))
   22529      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22530      591691 :          ipack = ipack + 1
   22531      591691 :          packed_data(ipack) = pack_tmp
   22532      591691 :          data_tmp = full_data(idata)
   22533      591691 :          pack_tmp = ISHFT(data_tmp, 63)
   22534      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22535      591691 :          idata = idata + 1
   22536      591691 :          data_tmp = full_data(idata)
   22537      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22538      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22539      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22540      591691 :          idata = idata + 1
   22541      591691 :          data_tmp = full_data(idata)
   22542      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22543      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22544      591691 :          pack_tmp = ISHFT(pack_tmp, -1)
   22545      591691 :          idata = idata + 1
   22546      591691 :          data_tmp = full_data(idata)
   22547      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22548      591691 :          data_tmp = IAND(data_tmp, mask_left(1))
   22549      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22550      591691 :          ipack = ipack + 1
   22551      591691 :          packed_data(ipack) = pack_tmp
   22552      591691 :          data_tmp = full_data(idata)
   22553      591691 :          pack_tmp = ISHFT(data_tmp, 34)
   22554      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22555      591691 :          idata = idata + 1
   22556      591691 :          data_tmp = full_data(idata)
   22557      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22558      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22559      591691 :          pack_tmp = ISHFT(pack_tmp, -3)
   22560      591691 :          idata = idata + 1
   22561      591691 :          data_tmp = full_data(idata)
   22562      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22563      591691 :          data_tmp = IAND(data_tmp, mask_left(3))
   22564      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22565      591691 :          ipack = ipack + 1
   22566      591691 :          packed_data(ipack) = pack_tmp
   22567      591691 :          data_tmp = full_data(idata)
   22568      591691 :          pack_tmp = ISHFT(data_tmp, 36)
   22569      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22570      591691 :          idata = idata + 1
   22571      591691 :          data_tmp = full_data(idata)
   22572      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22573      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22574      591691 :          pack_tmp = ISHFT(pack_tmp, -5)
   22575      591691 :          idata = idata + 1
   22576      591691 :          data_tmp = full_data(idata)
   22577      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22578      591691 :          data_tmp = IAND(data_tmp, mask_left(5))
   22579      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22580      591691 :          ipack = ipack + 1
   22581      591691 :          packed_data(ipack) = pack_tmp
   22582      591691 :          data_tmp = full_data(idata)
   22583      591691 :          pack_tmp = ISHFT(data_tmp, 38)
   22584      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22585      591691 :          idata = idata + 1
   22586      591691 :          data_tmp = full_data(idata)
   22587      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22588      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22589      591691 :          pack_tmp = ISHFT(pack_tmp, -7)
   22590      591691 :          idata = idata + 1
   22591      591691 :          data_tmp = full_data(idata)
   22592      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22593      591691 :          data_tmp = IAND(data_tmp, mask_left(7))
   22594      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22595      591691 :          ipack = ipack + 1
   22596      591691 :          packed_data(ipack) = pack_tmp
   22597      591691 :          data_tmp = full_data(idata)
   22598      591691 :          pack_tmp = ISHFT(data_tmp, 40)
   22599      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22600      591691 :          idata = idata + 1
   22601      591691 :          data_tmp = full_data(idata)
   22602      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22603      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22604      591691 :          pack_tmp = ISHFT(pack_tmp, -9)
   22605      591691 :          idata = idata + 1
   22606      591691 :          data_tmp = full_data(idata)
   22607      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22608      591691 :          data_tmp = IAND(data_tmp, mask_left(9))
   22609      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22610      591691 :          ipack = ipack + 1
   22611      591691 :          packed_data(ipack) = pack_tmp
   22612      591691 :          data_tmp = full_data(idata)
   22613      591691 :          pack_tmp = ISHFT(data_tmp, 42)
   22614      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22615      591691 :          idata = idata + 1
   22616      591691 :          data_tmp = full_data(idata)
   22617      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22618      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22619      591691 :          pack_tmp = ISHFT(pack_tmp, -11)
   22620      591691 :          idata = idata + 1
   22621      591691 :          data_tmp = full_data(idata)
   22622      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22623      591691 :          data_tmp = IAND(data_tmp, mask_left(11))
   22624      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22625      591691 :          ipack = ipack + 1
   22626      591691 :          packed_data(ipack) = pack_tmp
   22627      591691 :          data_tmp = full_data(idata)
   22628      591691 :          pack_tmp = ISHFT(data_tmp, 44)
   22629      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22630      591691 :          idata = idata + 1
   22631      591691 :          data_tmp = full_data(idata)
   22632      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22633      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22634      591691 :          pack_tmp = ISHFT(pack_tmp, -13)
   22635      591691 :          idata = idata + 1
   22636      591691 :          data_tmp = full_data(idata)
   22637      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22638      591691 :          data_tmp = IAND(data_tmp, mask_left(13))
   22639      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22640      591691 :          ipack = ipack + 1
   22641      591691 :          packed_data(ipack) = pack_tmp
   22642      591691 :          data_tmp = full_data(idata)
   22643      591691 :          pack_tmp = ISHFT(data_tmp, 46)
   22644      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22645      591691 :          idata = idata + 1
   22646      591691 :          data_tmp = full_data(idata)
   22647      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22648      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22649      591691 :          pack_tmp = ISHFT(pack_tmp, -15)
   22650      591691 :          idata = idata + 1
   22651      591691 :          data_tmp = full_data(idata)
   22652      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22653      591691 :          data_tmp = IAND(data_tmp, mask_left(15))
   22654      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22655      591691 :          ipack = ipack + 1
   22656      591691 :          packed_data(ipack) = pack_tmp
   22657      591691 :          data_tmp = full_data(idata)
   22658      591691 :          pack_tmp = ISHFT(data_tmp, 48)
   22659      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22660      591691 :          idata = idata + 1
   22661      591691 :          data_tmp = full_data(idata)
   22662      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22663      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22664      591691 :          pack_tmp = ISHFT(pack_tmp, -17)
   22665      591691 :          idata = idata + 1
   22666      591691 :          data_tmp = full_data(idata)
   22667      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22668      591691 :          data_tmp = IAND(data_tmp, mask_left(17))
   22669      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22670      591691 :          ipack = ipack + 1
   22671      591691 :          packed_data(ipack) = pack_tmp
   22672      591691 :          data_tmp = full_data(idata)
   22673      591691 :          pack_tmp = ISHFT(data_tmp, 50)
   22674      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22675      591691 :          idata = idata + 1
   22676      591691 :          data_tmp = full_data(idata)
   22677      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22678      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22679      591691 :          pack_tmp = ISHFT(pack_tmp, -19)
   22680      591691 :          idata = idata + 1
   22681      591691 :          data_tmp = full_data(idata)
   22682      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22683      591691 :          data_tmp = IAND(data_tmp, mask_left(19))
   22684      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22685      591691 :          ipack = ipack + 1
   22686      591691 :          packed_data(ipack) = pack_tmp
   22687      591691 :          data_tmp = full_data(idata)
   22688      591691 :          pack_tmp = ISHFT(data_tmp, 52)
   22689      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22690      591691 :          idata = idata + 1
   22691      591691 :          data_tmp = full_data(idata)
   22692      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22693      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22694      591691 :          pack_tmp = ISHFT(pack_tmp, -21)
   22695      591691 :          idata = idata + 1
   22696      591691 :          data_tmp = full_data(idata)
   22697      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22698      591691 :          data_tmp = IAND(data_tmp, mask_left(21))
   22699      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22700      591691 :          ipack = ipack + 1
   22701      591691 :          packed_data(ipack) = pack_tmp
   22702      591691 :          data_tmp = full_data(idata)
   22703      591691 :          pack_tmp = ISHFT(data_tmp, 54)
   22704      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22705      591691 :          idata = idata + 1
   22706      591691 :          data_tmp = full_data(idata)
   22707      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22708      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22709      591691 :          pack_tmp = ISHFT(pack_tmp, -23)
   22710      591691 :          idata = idata + 1
   22711      591691 :          data_tmp = full_data(idata)
   22712      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22713      591691 :          data_tmp = IAND(data_tmp, mask_left(23))
   22714      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22715      591691 :          ipack = ipack + 1
   22716      591691 :          packed_data(ipack) = pack_tmp
   22717      591691 :          data_tmp = full_data(idata)
   22718      591691 :          pack_tmp = ISHFT(data_tmp, 56)
   22719      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22720      591691 :          idata = idata + 1
   22721      591691 :          data_tmp = full_data(idata)
   22722      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22723      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22724      591691 :          pack_tmp = ISHFT(pack_tmp, -25)
   22725      591691 :          idata = idata + 1
   22726      591691 :          data_tmp = full_data(idata)
   22727      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22728      591691 :          data_tmp = IAND(data_tmp, mask_left(25))
   22729      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22730      591691 :          ipack = ipack + 1
   22731      591691 :          packed_data(ipack) = pack_tmp
   22732      591691 :          data_tmp = full_data(idata)
   22733      591691 :          pack_tmp = ISHFT(data_tmp, 58)
   22734      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22735      591691 :          idata = idata + 1
   22736      591691 :          data_tmp = full_data(idata)
   22737      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22738      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22739      591691 :          pack_tmp = ISHFT(pack_tmp, -27)
   22740      591691 :          idata = idata + 1
   22741      591691 :          data_tmp = full_data(idata)
   22742      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22743      591691 :          data_tmp = IAND(data_tmp, mask_left(27))
   22744      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22745      591691 :          ipack = ipack + 1
   22746      591691 :          packed_data(ipack) = pack_tmp
   22747      591691 :          data_tmp = full_data(idata)
   22748      591691 :          pack_tmp = ISHFT(data_tmp, 60)
   22749      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22750      591691 :          idata = idata + 1
   22751      591691 :          data_tmp = full_data(idata)
   22752      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22753      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22754      591691 :          pack_tmp = ISHFT(pack_tmp, -29)
   22755      591691 :          idata = idata + 1
   22756      591691 :          data_tmp = full_data(idata)
   22757      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22758      591691 :          data_tmp = IAND(data_tmp, mask_left(29))
   22759      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22760      591691 :          ipack = ipack + 1
   22761      591691 :          packed_data(ipack) = pack_tmp
   22762      591691 :          data_tmp = full_data(idata)
   22763      591691 :          pack_tmp = ISHFT(data_tmp, 62)
   22764      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22765      591691 :          idata = idata + 1
   22766      591691 :          data_tmp = full_data(idata)
   22767      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22768      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22769      591691 :          pack_tmp = ISHFT(pack_tmp, -31)
   22770      591691 :          idata = idata + 1
   22771      591691 :          data_tmp = full_data(idata)
   22772      591691 :          data_tmp = ISHFT(data_tmp, 33)
   22773      591691 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22774             :          pack_tmp = ISHFT(pack_tmp, 0)
   22775      591691 :          pack_tmp = ISHFT(pack_tmp, 0)
   22776      591691 :          ipack = ipack + 1
   22777      591851 :          packed_data(ipack) = pack_tmp
   22778             :       END DO
   22779       43650 :       IF (Ndata_rep < Ndata) THEN
   22780       12554 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   22781             :       END IF
   22782       43650 :    END SUBROUTINE ints2bits_31
   22783             : 
   22784             : ! **************************************************************************************************
   22785             : !> \brief ...
   22786             : !> \param Ndata ...
   22787             : !> \param packed_data ...
   22788             : !> \param full_data ...
   22789             : ! **************************************************************************************************
   22790      273385 :    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      273385 :       ipack = 0
   22801      273385 :       idata = 0
   22802      273385 :       pack_tmp = 0
   22803      273385 :       Ndata_rep = (Ndata/64)*64
   22804      273385 :       DO kdata = 1, Ndata_rep, 64
   22805     3416312 :          idata = idata + 1
   22806     3416312 :          data_tmp = ISHFT(pack_tmp, 31)
   22807     3416312 :          ipack = ipack + 1
   22808     3416312 :          pack_tmp = packed_data(ipack)
   22809     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   22810     3416312 :          pack_tmp = ISHFT(pack_tmp, -31)
   22811     3416312 :          idata = idata + 1
   22812     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22813     3416312 :          full_data(idata) = data_tmp
   22814     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22815     3416312 :          idata = idata + 1
   22816     3416312 :          data_tmp = ISHFT(pack_tmp, 29)
   22817     3416312 :          ipack = ipack + 1
   22818     3416312 :          pack_tmp = packed_data(ipack)
   22819     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   22820     3416312 :          pack_tmp = ISHFT(pack_tmp, -29)
   22821     3416312 :          idata = idata + 1
   22822     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22823     3416312 :          full_data(idata) = data_tmp
   22824     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22825     3416312 :          idata = idata + 1
   22826     3416312 :          data_tmp = ISHFT(pack_tmp, 27)
   22827     3416312 :          ipack = ipack + 1
   22828     3416312 :          pack_tmp = packed_data(ipack)
   22829     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   22830     3416312 :          pack_tmp = ISHFT(pack_tmp, -27)
   22831     3416312 :          idata = idata + 1
   22832     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22833     3416312 :          full_data(idata) = data_tmp
   22834     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22835     3416312 :          idata = idata + 1
   22836     3416312 :          data_tmp = ISHFT(pack_tmp, 25)
   22837     3416312 :          ipack = ipack + 1
   22838     3416312 :          pack_tmp = packed_data(ipack)
   22839     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   22840     3416312 :          pack_tmp = ISHFT(pack_tmp, -25)
   22841     3416312 :          idata = idata + 1
   22842     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22843     3416312 :          full_data(idata) = data_tmp
   22844     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22845     3416312 :          idata = idata + 1
   22846     3416312 :          data_tmp = ISHFT(pack_tmp, 23)
   22847     3416312 :          ipack = ipack + 1
   22848     3416312 :          pack_tmp = packed_data(ipack)
   22849     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   22850     3416312 :          pack_tmp = ISHFT(pack_tmp, -23)
   22851     3416312 :          idata = idata + 1
   22852     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22853     3416312 :          full_data(idata) = data_tmp
   22854     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22855     3416312 :          idata = idata + 1
   22856     3416312 :          data_tmp = ISHFT(pack_tmp, 21)
   22857     3416312 :          ipack = ipack + 1
   22858     3416312 :          pack_tmp = packed_data(ipack)
   22859     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   22860     3416312 :          pack_tmp = ISHFT(pack_tmp, -21)
   22861     3416312 :          idata = idata + 1
   22862     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22863     3416312 :          full_data(idata) = data_tmp
   22864     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22865     3416312 :          idata = idata + 1
   22866     3416312 :          data_tmp = ISHFT(pack_tmp, 19)
   22867     3416312 :          ipack = ipack + 1
   22868     3416312 :          pack_tmp = packed_data(ipack)
   22869     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   22870     3416312 :          pack_tmp = ISHFT(pack_tmp, -19)
   22871     3416312 :          idata = idata + 1
   22872     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22873     3416312 :          full_data(idata) = data_tmp
   22874     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22875     3416312 :          idata = idata + 1
   22876     3416312 :          data_tmp = ISHFT(pack_tmp, 17)
   22877     3416312 :          ipack = ipack + 1
   22878     3416312 :          pack_tmp = packed_data(ipack)
   22879     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   22880     3416312 :          pack_tmp = ISHFT(pack_tmp, -17)
   22881     3416312 :          idata = idata + 1
   22882     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22883     3416312 :          full_data(idata) = data_tmp
   22884     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22885     3416312 :          idata = idata + 1
   22886     3416312 :          data_tmp = ISHFT(pack_tmp, 15)
   22887     3416312 :          ipack = ipack + 1
   22888     3416312 :          pack_tmp = packed_data(ipack)
   22889     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   22890     3416312 :          pack_tmp = ISHFT(pack_tmp, -15)
   22891     3416312 :          idata = idata + 1
   22892     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22893     3416312 :          full_data(idata) = data_tmp
   22894     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22895     3416312 :          idata = idata + 1
   22896     3416312 :          data_tmp = ISHFT(pack_tmp, 13)
   22897     3416312 :          ipack = ipack + 1
   22898     3416312 :          pack_tmp = packed_data(ipack)
   22899     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   22900     3416312 :          pack_tmp = ISHFT(pack_tmp, -13)
   22901     3416312 :          idata = idata + 1
   22902     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22903     3416312 :          full_data(idata) = data_tmp
   22904     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22905     3416312 :          idata = idata + 1
   22906     3416312 :          data_tmp = ISHFT(pack_tmp, 11)
   22907     3416312 :          ipack = ipack + 1
   22908     3416312 :          pack_tmp = packed_data(ipack)
   22909     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   22910     3416312 :          pack_tmp = ISHFT(pack_tmp, -11)
   22911     3416312 :          idata = idata + 1
   22912     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22913     3416312 :          full_data(idata) = data_tmp
   22914     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22915     3416312 :          idata = idata + 1
   22916     3416312 :          data_tmp = ISHFT(pack_tmp, 9)
   22917     3416312 :          ipack = ipack + 1
   22918     3416312 :          pack_tmp = packed_data(ipack)
   22919     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   22920     3416312 :          pack_tmp = ISHFT(pack_tmp, -9)
   22921     3416312 :          idata = idata + 1
   22922     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22923     3416312 :          full_data(idata) = data_tmp
   22924     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22925     3416312 :          idata = idata + 1
   22926     3416312 :          data_tmp = ISHFT(pack_tmp, 7)
   22927     3416312 :          ipack = ipack + 1
   22928     3416312 :          pack_tmp = packed_data(ipack)
   22929     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   22930     3416312 :          pack_tmp = ISHFT(pack_tmp, -7)
   22931     3416312 :          idata = idata + 1
   22932     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22933     3416312 :          full_data(idata) = data_tmp
   22934     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22935     3416312 :          idata = idata + 1
   22936     3416312 :          data_tmp = ISHFT(pack_tmp, 5)
   22937     3416312 :          ipack = ipack + 1
   22938     3416312 :          pack_tmp = packed_data(ipack)
   22939     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   22940     3416312 :          pack_tmp = ISHFT(pack_tmp, -5)
   22941     3416312 :          idata = idata + 1
   22942     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22943     3416312 :          full_data(idata) = data_tmp
   22944     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22945     3416312 :          idata = idata + 1
   22946     3416312 :          data_tmp = ISHFT(pack_tmp, 3)
   22947     3416312 :          ipack = ipack + 1
   22948     3416312 :          pack_tmp = packed_data(ipack)
   22949     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   22950     3416312 :          pack_tmp = ISHFT(pack_tmp, -3)
   22951     3416312 :          idata = idata + 1
   22952     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22953     3416312 :          full_data(idata) = data_tmp
   22954     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22955     3416312 :          idata = idata + 1
   22956     3416312 :          data_tmp = ISHFT(pack_tmp, 1)
   22957     3416312 :          ipack = ipack + 1
   22958     3416312 :          pack_tmp = packed_data(ipack)
   22959     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   22960     3416312 :          pack_tmp = ISHFT(pack_tmp, -1)
   22961     3416312 :          idata = idata + 1
   22962     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22963     3416312 :          full_data(idata) = data_tmp
   22964     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22965     3416312 :          idata = idata + 1
   22966     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22967     3416312 :          full_data(idata) = data_tmp
   22968     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22969     3416312 :          idata = idata + 1
   22970     3416312 :          data_tmp = ISHFT(pack_tmp, 30)
   22971     3416312 :          ipack = ipack + 1
   22972     3416312 :          pack_tmp = packed_data(ipack)
   22973     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   22974     3416312 :          pack_tmp = ISHFT(pack_tmp, -30)
   22975     3416312 :          idata = idata + 1
   22976     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22977     3416312 :          full_data(idata) = data_tmp
   22978     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22979     3416312 :          idata = idata + 1
   22980     3416312 :          data_tmp = ISHFT(pack_tmp, 28)
   22981     3416312 :          ipack = ipack + 1
   22982     3416312 :          pack_tmp = packed_data(ipack)
   22983     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   22984     3416312 :          pack_tmp = ISHFT(pack_tmp, -28)
   22985     3416312 :          idata = idata + 1
   22986     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22987     3416312 :          full_data(idata) = data_tmp
   22988     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22989     3416312 :          idata = idata + 1
   22990     3416312 :          data_tmp = ISHFT(pack_tmp, 26)
   22991     3416312 :          ipack = ipack + 1
   22992     3416312 :          pack_tmp = packed_data(ipack)
   22993     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   22994     3416312 :          pack_tmp = ISHFT(pack_tmp, -26)
   22995     3416312 :          idata = idata + 1
   22996     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22997     3416312 :          full_data(idata) = data_tmp
   22998     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22999     3416312 :          idata = idata + 1
   23000     3416312 :          data_tmp = ISHFT(pack_tmp, 24)
   23001     3416312 :          ipack = ipack + 1
   23002     3416312 :          pack_tmp = packed_data(ipack)
   23003     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   23004     3416312 :          pack_tmp = ISHFT(pack_tmp, -24)
   23005     3416312 :          idata = idata + 1
   23006     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23007     3416312 :          full_data(idata) = data_tmp
   23008     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23009     3416312 :          idata = idata + 1
   23010     3416312 :          data_tmp = ISHFT(pack_tmp, 22)
   23011     3416312 :          ipack = ipack + 1
   23012     3416312 :          pack_tmp = packed_data(ipack)
   23013     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   23014     3416312 :          pack_tmp = ISHFT(pack_tmp, -22)
   23015     3416312 :          idata = idata + 1
   23016     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23017     3416312 :          full_data(idata) = data_tmp
   23018     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23019     3416312 :          idata = idata + 1
   23020     3416312 :          data_tmp = ISHFT(pack_tmp, 20)
   23021     3416312 :          ipack = ipack + 1
   23022     3416312 :          pack_tmp = packed_data(ipack)
   23023     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   23024     3416312 :          pack_tmp = ISHFT(pack_tmp, -20)
   23025     3416312 :          idata = idata + 1
   23026     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23027     3416312 :          full_data(idata) = data_tmp
   23028     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23029     3416312 :          idata = idata + 1
   23030     3416312 :          data_tmp = ISHFT(pack_tmp, 18)
   23031     3416312 :          ipack = ipack + 1
   23032     3416312 :          pack_tmp = packed_data(ipack)
   23033     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   23034     3416312 :          pack_tmp = ISHFT(pack_tmp, -18)
   23035     3416312 :          idata = idata + 1
   23036     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23037     3416312 :          full_data(idata) = data_tmp
   23038     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23039     3416312 :          idata = idata + 1
   23040     3416312 :          data_tmp = ISHFT(pack_tmp, 16)
   23041     3416312 :          ipack = ipack + 1
   23042     3416312 :          pack_tmp = packed_data(ipack)
   23043     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   23044     3416312 :          pack_tmp = ISHFT(pack_tmp, -16)
   23045     3416312 :          idata = idata + 1
   23046     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23047     3416312 :          full_data(idata) = data_tmp
   23048     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23049     3416312 :          idata = idata + 1
   23050     3416312 :          data_tmp = ISHFT(pack_tmp, 14)
   23051     3416312 :          ipack = ipack + 1
   23052     3416312 :          pack_tmp = packed_data(ipack)
   23053     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   23054     3416312 :          pack_tmp = ISHFT(pack_tmp, -14)
   23055     3416312 :          idata = idata + 1
   23056     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23057     3416312 :          full_data(idata) = data_tmp
   23058     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23059     3416312 :          idata = idata + 1
   23060     3416312 :          data_tmp = ISHFT(pack_tmp, 12)
   23061     3416312 :          ipack = ipack + 1
   23062     3416312 :          pack_tmp = packed_data(ipack)
   23063     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   23064     3416312 :          pack_tmp = ISHFT(pack_tmp, -12)
   23065     3416312 :          idata = idata + 1
   23066     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23067     3416312 :          full_data(idata) = data_tmp
   23068     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23069     3416312 :          idata = idata + 1
   23070     3416312 :          data_tmp = ISHFT(pack_tmp, 10)
   23071     3416312 :          ipack = ipack + 1
   23072     3416312 :          pack_tmp = packed_data(ipack)
   23073     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   23074     3416312 :          pack_tmp = ISHFT(pack_tmp, -10)
   23075     3416312 :          idata = idata + 1
   23076     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23077     3416312 :          full_data(idata) = data_tmp
   23078     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23079     3416312 :          idata = idata + 1
   23080     3416312 :          data_tmp = ISHFT(pack_tmp, 8)
   23081     3416312 :          ipack = ipack + 1
   23082     3416312 :          pack_tmp = packed_data(ipack)
   23083     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   23084     3416312 :          pack_tmp = ISHFT(pack_tmp, -8)
   23085     3416312 :          idata = idata + 1
   23086     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23087     3416312 :          full_data(idata) = data_tmp
   23088     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23089     3416312 :          idata = idata + 1
   23090     3416312 :          data_tmp = ISHFT(pack_tmp, 6)
   23091     3416312 :          ipack = ipack + 1
   23092     3416312 :          pack_tmp = packed_data(ipack)
   23093     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   23094     3416312 :          pack_tmp = ISHFT(pack_tmp, -6)
   23095     3416312 :          idata = idata + 1
   23096     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23097     3416312 :          full_data(idata) = data_tmp
   23098     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23099     3416312 :          idata = idata + 1
   23100     3416312 :          data_tmp = ISHFT(pack_tmp, 4)
   23101     3416312 :          ipack = ipack + 1
   23102     3416312 :          pack_tmp = packed_data(ipack)
   23103     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   23104     3416312 :          pack_tmp = ISHFT(pack_tmp, -4)
   23105     3416312 :          idata = idata + 1
   23106     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23107     3416312 :          full_data(idata) = data_tmp
   23108     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23109     3416312 :          idata = idata + 1
   23110     3416312 :          data_tmp = ISHFT(pack_tmp, 2)
   23111     3416312 :          ipack = ipack + 1
   23112     3416312 :          pack_tmp = packed_data(ipack)
   23113     3416312 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   23114     3416312 :          pack_tmp = ISHFT(pack_tmp, -2)
   23115     3416312 :          idata = idata + 1
   23116     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23117     3416312 :          full_data(idata) = data_tmp
   23118     3416312 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23119     3416312 :          idata = idata + 1
   23120     3416312 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23121     3416312 :          full_data(idata) = data_tmp
   23122     3418442 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23123             :       END DO
   23124      273385 :       IF (Ndata_rep < Ndata) THEN
   23125      112688 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   23126             :       END IF
   23127      273385 :    END SUBROUTINE bits2ints_31
   23128             : 
   23129             : ! **************************************************************************************************
   23130             : !> \brief ...
   23131             : !> \param Ndata ...
   23132             : !> \param packed_data ...
   23133             : !> \param full_data ...
   23134             : ! **************************************************************************************************
   23135       52049 :    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       52049 :       idata = 0
   23146       52049 :       ipack = 0
   23147       52049 :       Ndata_rep = (Ndata/64)*64
   23148       52049 :       DO kdata = 1, Ndata_rep, 64
   23149      675584 :          pack_tmp = 0
   23150      675584 :          idata = idata + 1
   23151      675584 :          data_tmp = full_data(idata)
   23152      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23153      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23154      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23155      675584 :          idata = idata + 1
   23156      675584 :          data_tmp = full_data(idata)
   23157      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23158      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23159      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23160      675584 :          idata = idata + 1
   23161      675584 :          data_tmp = full_data(idata)
   23162             :          data_tmp = ISHFT(data_tmp, 32)
   23163      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23164      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23165      675584 :          ipack = ipack + 1
   23166      675584 :          packed_data(ipack) = pack_tmp
   23167      675584 :          data_tmp = full_data(idata)
   23168      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23169      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23170      675584 :          idata = idata + 1
   23171      675584 :          data_tmp = full_data(idata)
   23172      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23173      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23174      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23175      675584 :          idata = idata + 1
   23176      675584 :          data_tmp = full_data(idata)
   23177             :          data_tmp = ISHFT(data_tmp, 32)
   23178      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23179      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23180      675584 :          ipack = ipack + 1
   23181      675584 :          packed_data(ipack) = pack_tmp
   23182      675584 :          data_tmp = full_data(idata)
   23183      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23184      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23185      675584 :          idata = idata + 1
   23186      675584 :          data_tmp = full_data(idata)
   23187      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23188      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23189      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23190      675584 :          idata = idata + 1
   23191      675584 :          data_tmp = full_data(idata)
   23192             :          data_tmp = ISHFT(data_tmp, 32)
   23193      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23194      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23195      675584 :          ipack = ipack + 1
   23196      675584 :          packed_data(ipack) = pack_tmp
   23197      675584 :          data_tmp = full_data(idata)
   23198      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23199      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23200      675584 :          idata = idata + 1
   23201      675584 :          data_tmp = full_data(idata)
   23202      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23203      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23204      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23205      675584 :          idata = idata + 1
   23206      675584 :          data_tmp = full_data(idata)
   23207             :          data_tmp = ISHFT(data_tmp, 32)
   23208      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23209      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23210      675584 :          ipack = ipack + 1
   23211      675584 :          packed_data(ipack) = pack_tmp
   23212      675584 :          data_tmp = full_data(idata)
   23213      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23214      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23215      675584 :          idata = idata + 1
   23216      675584 :          data_tmp = full_data(idata)
   23217      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23218      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23219      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23220      675584 :          idata = idata + 1
   23221      675584 :          data_tmp = full_data(idata)
   23222             :          data_tmp = ISHFT(data_tmp, 32)
   23223      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23224      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23225      675584 :          ipack = ipack + 1
   23226      675584 :          packed_data(ipack) = pack_tmp
   23227      675584 :          data_tmp = full_data(idata)
   23228      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23229      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23230      675584 :          idata = idata + 1
   23231      675584 :          data_tmp = full_data(idata)
   23232      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23233      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23234      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23235      675584 :          idata = idata + 1
   23236      675584 :          data_tmp = full_data(idata)
   23237             :          data_tmp = ISHFT(data_tmp, 32)
   23238      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23239      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23240      675584 :          ipack = ipack + 1
   23241      675584 :          packed_data(ipack) = pack_tmp
   23242      675584 :          data_tmp = full_data(idata)
   23243      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23244      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23245      675584 :          idata = idata + 1
   23246      675584 :          data_tmp = full_data(idata)
   23247      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23248      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23249      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23250      675584 :          idata = idata + 1
   23251      675584 :          data_tmp = full_data(idata)
   23252             :          data_tmp = ISHFT(data_tmp, 32)
   23253      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23254      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23255      675584 :          ipack = ipack + 1
   23256      675584 :          packed_data(ipack) = pack_tmp
   23257      675584 :          data_tmp = full_data(idata)
   23258      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23259      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23260      675584 :          idata = idata + 1
   23261      675584 :          data_tmp = full_data(idata)
   23262      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23263      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23264      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23265      675584 :          idata = idata + 1
   23266      675584 :          data_tmp = full_data(idata)
   23267             :          data_tmp = ISHFT(data_tmp, 32)
   23268      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23269      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23270      675584 :          ipack = ipack + 1
   23271      675584 :          packed_data(ipack) = pack_tmp
   23272      675584 :          data_tmp = full_data(idata)
   23273      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23274      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23275      675584 :          idata = idata + 1
   23276      675584 :          data_tmp = full_data(idata)
   23277      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23278      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23279      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23280      675584 :          idata = idata + 1
   23281      675584 :          data_tmp = full_data(idata)
   23282             :          data_tmp = ISHFT(data_tmp, 32)
   23283      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23284      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23285      675584 :          ipack = ipack + 1
   23286      675584 :          packed_data(ipack) = pack_tmp
   23287      675584 :          data_tmp = full_data(idata)
   23288      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23289      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23290      675584 :          idata = idata + 1
   23291      675584 :          data_tmp = full_data(idata)
   23292      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23293      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23294      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23295      675584 :          idata = idata + 1
   23296      675584 :          data_tmp = full_data(idata)
   23297             :          data_tmp = ISHFT(data_tmp, 32)
   23298      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23299      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23300      675584 :          ipack = ipack + 1
   23301      675584 :          packed_data(ipack) = pack_tmp
   23302      675584 :          data_tmp = full_data(idata)
   23303      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23304      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23305      675584 :          idata = idata + 1
   23306      675584 :          data_tmp = full_data(idata)
   23307      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23308      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23309      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23310      675584 :          idata = idata + 1
   23311      675584 :          data_tmp = full_data(idata)
   23312             :          data_tmp = ISHFT(data_tmp, 32)
   23313      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23314      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23315      675584 :          ipack = ipack + 1
   23316      675584 :          packed_data(ipack) = pack_tmp
   23317      675584 :          data_tmp = full_data(idata)
   23318      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23319      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23320      675584 :          idata = idata + 1
   23321      675584 :          data_tmp = full_data(idata)
   23322      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23323      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23324      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23325      675584 :          idata = idata + 1
   23326      675584 :          data_tmp = full_data(idata)
   23327             :          data_tmp = ISHFT(data_tmp, 32)
   23328      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23329      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23330      675584 :          ipack = ipack + 1
   23331      675584 :          packed_data(ipack) = pack_tmp
   23332      675584 :          data_tmp = full_data(idata)
   23333      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23334      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23335      675584 :          idata = idata + 1
   23336      675584 :          data_tmp = full_data(idata)
   23337      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23338      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23339      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23340      675584 :          idata = idata + 1
   23341      675584 :          data_tmp = full_data(idata)
   23342             :          data_tmp = ISHFT(data_tmp, 32)
   23343      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23344      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23345      675584 :          ipack = ipack + 1
   23346      675584 :          packed_data(ipack) = pack_tmp
   23347      675584 :          data_tmp = full_data(idata)
   23348      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23349      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23350      675584 :          idata = idata + 1
   23351      675584 :          data_tmp = full_data(idata)
   23352      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23353      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23354      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23355      675584 :          idata = idata + 1
   23356      675584 :          data_tmp = full_data(idata)
   23357             :          data_tmp = ISHFT(data_tmp, 32)
   23358      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23359      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23360      675584 :          ipack = ipack + 1
   23361      675584 :          packed_data(ipack) = pack_tmp
   23362      675584 :          data_tmp = full_data(idata)
   23363      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23364      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23365      675584 :          idata = idata + 1
   23366      675584 :          data_tmp = full_data(idata)
   23367      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23368      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23369      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23370      675584 :          idata = idata + 1
   23371      675584 :          data_tmp = full_data(idata)
   23372             :          data_tmp = ISHFT(data_tmp, 32)
   23373      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23374      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23375      675584 :          ipack = ipack + 1
   23376      675584 :          packed_data(ipack) = pack_tmp
   23377      675584 :          data_tmp = full_data(idata)
   23378      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23379      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23380      675584 :          idata = idata + 1
   23381      675584 :          data_tmp = full_data(idata)
   23382      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23383      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23384      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23385      675584 :          idata = idata + 1
   23386      675584 :          data_tmp = full_data(idata)
   23387             :          data_tmp = ISHFT(data_tmp, 32)
   23388      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23389      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23390      675584 :          ipack = ipack + 1
   23391      675584 :          packed_data(ipack) = pack_tmp
   23392      675584 :          data_tmp = full_data(idata)
   23393      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23394      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23395      675584 :          idata = idata + 1
   23396      675584 :          data_tmp = full_data(idata)
   23397      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23398      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23399      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23400      675584 :          idata = idata + 1
   23401      675584 :          data_tmp = full_data(idata)
   23402             :          data_tmp = ISHFT(data_tmp, 32)
   23403      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23404      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23405      675584 :          ipack = ipack + 1
   23406      675584 :          packed_data(ipack) = pack_tmp
   23407      675584 :          data_tmp = full_data(idata)
   23408      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23409      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23410      675584 :          idata = idata + 1
   23411      675584 :          data_tmp = full_data(idata)
   23412      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23413      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23414      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23415      675584 :          idata = idata + 1
   23416      675584 :          data_tmp = full_data(idata)
   23417             :          data_tmp = ISHFT(data_tmp, 32)
   23418      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23419      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23420      675584 :          ipack = ipack + 1
   23421      675584 :          packed_data(ipack) = pack_tmp
   23422      675584 :          data_tmp = full_data(idata)
   23423      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23424      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23425      675584 :          idata = idata + 1
   23426      675584 :          data_tmp = full_data(idata)
   23427      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23428      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23429      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23430      675584 :          idata = idata + 1
   23431      675584 :          data_tmp = full_data(idata)
   23432             :          data_tmp = ISHFT(data_tmp, 32)
   23433      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23434      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23435      675584 :          ipack = ipack + 1
   23436      675584 :          packed_data(ipack) = pack_tmp
   23437      675584 :          data_tmp = full_data(idata)
   23438      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23439      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23440      675584 :          idata = idata + 1
   23441      675584 :          data_tmp = full_data(idata)
   23442      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23443      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23444      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23445      675584 :          idata = idata + 1
   23446      675584 :          data_tmp = full_data(idata)
   23447             :          data_tmp = ISHFT(data_tmp, 32)
   23448      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23449      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23450      675584 :          ipack = ipack + 1
   23451      675584 :          packed_data(ipack) = pack_tmp
   23452      675584 :          data_tmp = full_data(idata)
   23453      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23454      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23455      675584 :          idata = idata + 1
   23456      675584 :          data_tmp = full_data(idata)
   23457      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23458      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23459      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23460      675584 :          idata = idata + 1
   23461      675584 :          data_tmp = full_data(idata)
   23462             :          data_tmp = ISHFT(data_tmp, 32)
   23463      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23464      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23465      675584 :          ipack = ipack + 1
   23466      675584 :          packed_data(ipack) = pack_tmp
   23467      675584 :          data_tmp = full_data(idata)
   23468      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23469      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23470      675584 :          idata = idata + 1
   23471      675584 :          data_tmp = full_data(idata)
   23472      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23473      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23474      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23475      675584 :          idata = idata + 1
   23476      675584 :          data_tmp = full_data(idata)
   23477             :          data_tmp = ISHFT(data_tmp, 32)
   23478      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23479      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23480      675584 :          ipack = ipack + 1
   23481      675584 :          packed_data(ipack) = pack_tmp
   23482      675584 :          data_tmp = full_data(idata)
   23483      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23484      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23485      675584 :          idata = idata + 1
   23486      675584 :          data_tmp = full_data(idata)
   23487      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23488      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23489      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23490      675584 :          idata = idata + 1
   23491      675584 :          data_tmp = full_data(idata)
   23492             :          data_tmp = ISHFT(data_tmp, 32)
   23493      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23494      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23495      675584 :          ipack = ipack + 1
   23496      675584 :          packed_data(ipack) = pack_tmp
   23497      675584 :          data_tmp = full_data(idata)
   23498      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23499      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23500      675584 :          idata = idata + 1
   23501      675584 :          data_tmp = full_data(idata)
   23502      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23503      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23504      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23505      675584 :          idata = idata + 1
   23506      675584 :          data_tmp = full_data(idata)
   23507             :          data_tmp = ISHFT(data_tmp, 32)
   23508      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23509      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23510      675584 :          ipack = ipack + 1
   23511      675584 :          packed_data(ipack) = pack_tmp
   23512      675584 :          data_tmp = full_data(idata)
   23513      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23514      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23515      675584 :          idata = idata + 1
   23516      675584 :          data_tmp = full_data(idata)
   23517      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23518      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23519      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23520      675584 :          idata = idata + 1
   23521      675584 :          data_tmp = full_data(idata)
   23522             :          data_tmp = ISHFT(data_tmp, 32)
   23523      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23524      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23525      675584 :          ipack = ipack + 1
   23526      675584 :          packed_data(ipack) = pack_tmp
   23527      675584 :          data_tmp = full_data(idata)
   23528      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23529      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23530      675584 :          idata = idata + 1
   23531      675584 :          data_tmp = full_data(idata)
   23532      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23533      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23534      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23535      675584 :          idata = idata + 1
   23536      675584 :          data_tmp = full_data(idata)
   23537             :          data_tmp = ISHFT(data_tmp, 32)
   23538      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23539      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23540      675584 :          ipack = ipack + 1
   23541      675584 :          packed_data(ipack) = pack_tmp
   23542      675584 :          data_tmp = full_data(idata)
   23543      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23544      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23545      675584 :          idata = idata + 1
   23546      675584 :          data_tmp = full_data(idata)
   23547      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23548      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23549      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23550      675584 :          idata = idata + 1
   23551      675584 :          data_tmp = full_data(idata)
   23552             :          data_tmp = ISHFT(data_tmp, 32)
   23553      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23554      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23555      675584 :          ipack = ipack + 1
   23556      675584 :          packed_data(ipack) = pack_tmp
   23557      675584 :          data_tmp = full_data(idata)
   23558      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23559      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23560      675584 :          idata = idata + 1
   23561      675584 :          data_tmp = full_data(idata)
   23562      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23563      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23564      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23565      675584 :          idata = idata + 1
   23566      675584 :          data_tmp = full_data(idata)
   23567             :          data_tmp = ISHFT(data_tmp, 32)
   23568      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23569      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23570      675584 :          ipack = ipack + 1
   23571      675584 :          packed_data(ipack) = pack_tmp
   23572      675584 :          data_tmp = full_data(idata)
   23573      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23574      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23575      675584 :          idata = idata + 1
   23576      675584 :          data_tmp = full_data(idata)
   23577      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23578      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23579      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23580      675584 :          idata = idata + 1
   23581      675584 :          data_tmp = full_data(idata)
   23582             :          data_tmp = ISHFT(data_tmp, 32)
   23583      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23584      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23585      675584 :          ipack = ipack + 1
   23586      675584 :          packed_data(ipack) = pack_tmp
   23587      675584 :          data_tmp = full_data(idata)
   23588      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23589      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23590      675584 :          idata = idata + 1
   23591      675584 :          data_tmp = full_data(idata)
   23592      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23593      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23594      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23595      675584 :          idata = idata + 1
   23596      675584 :          data_tmp = full_data(idata)
   23597             :          data_tmp = ISHFT(data_tmp, 32)
   23598      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23599      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23600      675584 :          ipack = ipack + 1
   23601      675584 :          packed_data(ipack) = pack_tmp
   23602      675584 :          data_tmp = full_data(idata)
   23603      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23604      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23605      675584 :          idata = idata + 1
   23606      675584 :          data_tmp = full_data(idata)
   23607      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23608      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23609      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23610      675584 :          idata = idata + 1
   23611      675584 :          data_tmp = full_data(idata)
   23612             :          data_tmp = ISHFT(data_tmp, 32)
   23613      675584 :          data_tmp = IAND(data_tmp, mask_left(0))
   23614      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23615      675584 :          ipack = ipack + 1
   23616      675584 :          packed_data(ipack) = pack_tmp
   23617      675584 :          data_tmp = full_data(idata)
   23618      675584 :          pack_tmp = ISHFT(data_tmp, 32)
   23619      675584 :          pack_tmp = ISHFT(pack_tmp, -32)
   23620      675584 :          idata = idata + 1
   23621      675584 :          data_tmp = full_data(idata)
   23622      675584 :          data_tmp = ISHFT(data_tmp, 32)
   23623      675584 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23624             :          pack_tmp = ISHFT(pack_tmp, 0)
   23625      675584 :          pack_tmp = ISHFT(pack_tmp, 0)
   23626      675584 :          ipack = ipack + 1
   23627      685409 :          packed_data(ipack) = pack_tmp
   23628             :       END DO
   23629       52049 :       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       52049 :    END SUBROUTINE ints2bits_32
   23633             : 
   23634             : ! **************************************************************************************************
   23635             : !> \brief ...
   23636             : !> \param Ndata ...
   23637             : !> \param packed_data ...
   23638             : !> \param full_data ...
   23639             : ! **************************************************************************************************
   23640      351255 :    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      351255 :       ipack = 0
   23651      351255 :       idata = 0
   23652      351255 :       pack_tmp = 0
   23653      351255 :       Ndata_rep = (Ndata/64)*64
   23654      351255 :       DO kdata = 1, Ndata_rep, 64
   23655     4202560 :          idata = idata + 1
   23656     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23657     4202560 :          ipack = ipack + 1
   23658     4202560 :          pack_tmp = packed_data(ipack)
   23659     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23660     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23661     4202560 :          idata = idata + 1
   23662     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23663     4202560 :          full_data(idata) = data_tmp
   23664     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23665     4202560 :          idata = idata + 1
   23666     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23667     4202560 :          ipack = ipack + 1
   23668     4202560 :          pack_tmp = packed_data(ipack)
   23669     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23670     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23671     4202560 :          idata = idata + 1
   23672     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23673     4202560 :          full_data(idata) = data_tmp
   23674     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23675     4202560 :          idata = idata + 1
   23676     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23677     4202560 :          ipack = ipack + 1
   23678     4202560 :          pack_tmp = packed_data(ipack)
   23679     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23680     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23681     4202560 :          idata = idata + 1
   23682     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23683     4202560 :          full_data(idata) = data_tmp
   23684     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23685     4202560 :          idata = idata + 1
   23686     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23687     4202560 :          ipack = ipack + 1
   23688     4202560 :          pack_tmp = packed_data(ipack)
   23689     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23690     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23691     4202560 :          idata = idata + 1
   23692     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23693     4202560 :          full_data(idata) = data_tmp
   23694     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23695     4202560 :          idata = idata + 1
   23696     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23697     4202560 :          ipack = ipack + 1
   23698     4202560 :          pack_tmp = packed_data(ipack)
   23699     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23700     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23701     4202560 :          idata = idata + 1
   23702     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23703     4202560 :          full_data(idata) = data_tmp
   23704     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23705     4202560 :          idata = idata + 1
   23706     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23707     4202560 :          ipack = ipack + 1
   23708     4202560 :          pack_tmp = packed_data(ipack)
   23709     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23710     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23711     4202560 :          idata = idata + 1
   23712     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23713     4202560 :          full_data(idata) = data_tmp
   23714     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23715     4202560 :          idata = idata + 1
   23716     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23717     4202560 :          ipack = ipack + 1
   23718     4202560 :          pack_tmp = packed_data(ipack)
   23719     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23720     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23721     4202560 :          idata = idata + 1
   23722     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23723     4202560 :          full_data(idata) = data_tmp
   23724     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23725     4202560 :          idata = idata + 1
   23726     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23727     4202560 :          ipack = ipack + 1
   23728     4202560 :          pack_tmp = packed_data(ipack)
   23729     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23730     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23731     4202560 :          idata = idata + 1
   23732     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23733     4202560 :          full_data(idata) = data_tmp
   23734     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23735     4202560 :          idata = idata + 1
   23736     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23737     4202560 :          ipack = ipack + 1
   23738     4202560 :          pack_tmp = packed_data(ipack)
   23739     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23740     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23741     4202560 :          idata = idata + 1
   23742     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23743     4202560 :          full_data(idata) = data_tmp
   23744     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23745     4202560 :          idata = idata + 1
   23746     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23747     4202560 :          ipack = ipack + 1
   23748     4202560 :          pack_tmp = packed_data(ipack)
   23749     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23750     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23751     4202560 :          idata = idata + 1
   23752     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23753     4202560 :          full_data(idata) = data_tmp
   23754     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23755     4202560 :          idata = idata + 1
   23756     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23757     4202560 :          ipack = ipack + 1
   23758     4202560 :          pack_tmp = packed_data(ipack)
   23759     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23760     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23761     4202560 :          idata = idata + 1
   23762     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23763     4202560 :          full_data(idata) = data_tmp
   23764     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23765     4202560 :          idata = idata + 1
   23766     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23767     4202560 :          ipack = ipack + 1
   23768     4202560 :          pack_tmp = packed_data(ipack)
   23769     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23770     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23771     4202560 :          idata = idata + 1
   23772     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23773     4202560 :          full_data(idata) = data_tmp
   23774     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23775     4202560 :          idata = idata + 1
   23776     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23777     4202560 :          ipack = ipack + 1
   23778     4202560 :          pack_tmp = packed_data(ipack)
   23779     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23780     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23781     4202560 :          idata = idata + 1
   23782     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23783     4202560 :          full_data(idata) = data_tmp
   23784     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23785     4202560 :          idata = idata + 1
   23786     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23787     4202560 :          ipack = ipack + 1
   23788     4202560 :          pack_tmp = packed_data(ipack)
   23789     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23790     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23791     4202560 :          idata = idata + 1
   23792     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23793     4202560 :          full_data(idata) = data_tmp
   23794     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23795     4202560 :          idata = idata + 1
   23796     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23797     4202560 :          ipack = ipack + 1
   23798     4202560 :          pack_tmp = packed_data(ipack)
   23799     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23800     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23801     4202560 :          idata = idata + 1
   23802     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23803     4202560 :          full_data(idata) = data_tmp
   23804     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23805     4202560 :          idata = idata + 1
   23806     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23807     4202560 :          ipack = ipack + 1
   23808     4202560 :          pack_tmp = packed_data(ipack)
   23809     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23810     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23811     4202560 :          idata = idata + 1
   23812     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23813     4202560 :          full_data(idata) = data_tmp
   23814     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23815     4202560 :          idata = idata + 1
   23816     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23817     4202560 :          ipack = ipack + 1
   23818     4202560 :          pack_tmp = packed_data(ipack)
   23819     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23820     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23821     4202560 :          idata = idata + 1
   23822     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23823     4202560 :          full_data(idata) = data_tmp
   23824     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23825     4202560 :          idata = idata + 1
   23826     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23827     4202560 :          ipack = ipack + 1
   23828     4202560 :          pack_tmp = packed_data(ipack)
   23829     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23830     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23831     4202560 :          idata = idata + 1
   23832     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23833     4202560 :          full_data(idata) = data_tmp
   23834     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23835     4202560 :          idata = idata + 1
   23836     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23837     4202560 :          ipack = ipack + 1
   23838     4202560 :          pack_tmp = packed_data(ipack)
   23839     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23840     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23841     4202560 :          idata = idata + 1
   23842     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23843     4202560 :          full_data(idata) = data_tmp
   23844     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23845     4202560 :          idata = idata + 1
   23846     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23847     4202560 :          ipack = ipack + 1
   23848     4202560 :          pack_tmp = packed_data(ipack)
   23849     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23850     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23851     4202560 :          idata = idata + 1
   23852     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23853     4202560 :          full_data(idata) = data_tmp
   23854     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23855     4202560 :          idata = idata + 1
   23856     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23857     4202560 :          ipack = ipack + 1
   23858     4202560 :          pack_tmp = packed_data(ipack)
   23859     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23860     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23861     4202560 :          idata = idata + 1
   23862     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23863     4202560 :          full_data(idata) = data_tmp
   23864     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23865     4202560 :          idata = idata + 1
   23866     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23867     4202560 :          ipack = ipack + 1
   23868     4202560 :          pack_tmp = packed_data(ipack)
   23869     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23870     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23871     4202560 :          idata = idata + 1
   23872     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23873     4202560 :          full_data(idata) = data_tmp
   23874     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23875     4202560 :          idata = idata + 1
   23876     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23877     4202560 :          ipack = ipack + 1
   23878     4202560 :          pack_tmp = packed_data(ipack)
   23879     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23880     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23881     4202560 :          idata = idata + 1
   23882     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23883     4202560 :          full_data(idata) = data_tmp
   23884     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23885     4202560 :          idata = idata + 1
   23886     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23887     4202560 :          ipack = ipack + 1
   23888     4202560 :          pack_tmp = packed_data(ipack)
   23889     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23890     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23891     4202560 :          idata = idata + 1
   23892     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23893     4202560 :          full_data(idata) = data_tmp
   23894     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23895     4202560 :          idata = idata + 1
   23896     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23897     4202560 :          ipack = ipack + 1
   23898     4202560 :          pack_tmp = packed_data(ipack)
   23899     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23900     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23901     4202560 :          idata = idata + 1
   23902     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23903     4202560 :          full_data(idata) = data_tmp
   23904     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23905     4202560 :          idata = idata + 1
   23906     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23907     4202560 :          ipack = ipack + 1
   23908     4202560 :          pack_tmp = packed_data(ipack)
   23909     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23910     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23911     4202560 :          idata = idata + 1
   23912     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23913     4202560 :          full_data(idata) = data_tmp
   23914     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23915     4202560 :          idata = idata + 1
   23916     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23917     4202560 :          ipack = ipack + 1
   23918     4202560 :          pack_tmp = packed_data(ipack)
   23919     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23920     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23921     4202560 :          idata = idata + 1
   23922     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23923     4202560 :          full_data(idata) = data_tmp
   23924     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23925     4202560 :          idata = idata + 1
   23926     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23927     4202560 :          ipack = ipack + 1
   23928     4202560 :          pack_tmp = packed_data(ipack)
   23929     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23930     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23931     4202560 :          idata = idata + 1
   23932     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23933     4202560 :          full_data(idata) = data_tmp
   23934     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23935     4202560 :          idata = idata + 1
   23936     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23937     4202560 :          ipack = ipack + 1
   23938     4202560 :          pack_tmp = packed_data(ipack)
   23939     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23940     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23941     4202560 :          idata = idata + 1
   23942     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23943     4202560 :          full_data(idata) = data_tmp
   23944     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23945     4202560 :          idata = idata + 1
   23946     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23947     4202560 :          ipack = ipack + 1
   23948     4202560 :          pack_tmp = packed_data(ipack)
   23949     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23950     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23951     4202560 :          idata = idata + 1
   23952     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23953     4202560 :          full_data(idata) = data_tmp
   23954     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23955     4202560 :          idata = idata + 1
   23956     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23957     4202560 :          ipack = ipack + 1
   23958     4202560 :          pack_tmp = packed_data(ipack)
   23959     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23960     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23961     4202560 :          idata = idata + 1
   23962     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23963     4202560 :          full_data(idata) = data_tmp
   23964     4202560 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23965     4202560 :          idata = idata + 1
   23966     4202560 :          data_tmp = ISHFT(pack_tmp, 32)
   23967     4202560 :          ipack = ipack + 1
   23968     4202560 :          pack_tmp = packed_data(ipack)
   23969     4202560 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23970     4202560 :          pack_tmp = ISHFT(pack_tmp, -32)
   23971     4202560 :          idata = idata + 1
   23972     4202560 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23973     4202560 :          full_data(idata) = data_tmp
   23974     4291155 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23975             :       END DO
   23976      351255 :       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      351255 :    END SUBROUTINE bits2ints_32
   23980             : 
   23981             : ! **************************************************************************************************
   23982             : !> \brief ...
   23983             : !> \param Ndata ...
   23984             : !> \param packed_data ...
   23985             : !> \param full_data ...
   23986             : ! **************************************************************************************************
   23987       53526 :    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       53526 :       idata = 0
   23998       53526 :       ipack = 0
   23999       53526 :       Ndata_rep = (Ndata/64)*64
   24000       53526 :       DO kdata = 1, Ndata_rep, 64
   24001      678358 :          pack_tmp = 0
   24002      678358 :          idata = idata + 1
   24003      678358 :          data_tmp = full_data(idata)
   24004      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24005      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24006      678358 :          pack_tmp = ISHFT(pack_tmp, -31)
   24007      678358 :          idata = idata + 1
   24008      678358 :          data_tmp = full_data(idata)
   24009      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24010      678358 :          data_tmp = IAND(data_tmp, mask_left(31))
   24011      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24012      678358 :          ipack = ipack + 1
   24013      678358 :          packed_data(ipack) = pack_tmp
   24014      678358 :          data_tmp = full_data(idata)
   24015      678358 :          pack_tmp = ISHFT(data_tmp, 62)
   24016      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24017      678358 :          idata = idata + 1
   24018      678358 :          data_tmp = full_data(idata)
   24019      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24020      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24021      678358 :          pack_tmp = ISHFT(pack_tmp, -29)
   24022      678358 :          idata = idata + 1
   24023      678358 :          data_tmp = full_data(idata)
   24024      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24025      678358 :          data_tmp = IAND(data_tmp, mask_left(29))
   24026      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24027      678358 :          ipack = ipack + 1
   24028      678358 :          packed_data(ipack) = pack_tmp
   24029      678358 :          data_tmp = full_data(idata)
   24030      678358 :          pack_tmp = ISHFT(data_tmp, 60)
   24031      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24032      678358 :          idata = idata + 1
   24033      678358 :          data_tmp = full_data(idata)
   24034      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24035      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24036      678358 :          pack_tmp = ISHFT(pack_tmp, -27)
   24037      678358 :          idata = idata + 1
   24038      678358 :          data_tmp = full_data(idata)
   24039      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24040      678358 :          data_tmp = IAND(data_tmp, mask_left(27))
   24041      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24042      678358 :          ipack = ipack + 1
   24043      678358 :          packed_data(ipack) = pack_tmp
   24044      678358 :          data_tmp = full_data(idata)
   24045      678358 :          pack_tmp = ISHFT(data_tmp, 58)
   24046      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24047      678358 :          idata = idata + 1
   24048      678358 :          data_tmp = full_data(idata)
   24049      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24050      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24051      678358 :          pack_tmp = ISHFT(pack_tmp, -25)
   24052      678358 :          idata = idata + 1
   24053      678358 :          data_tmp = full_data(idata)
   24054      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24055      678358 :          data_tmp = IAND(data_tmp, mask_left(25))
   24056      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24057      678358 :          ipack = ipack + 1
   24058      678358 :          packed_data(ipack) = pack_tmp
   24059      678358 :          data_tmp = full_data(idata)
   24060      678358 :          pack_tmp = ISHFT(data_tmp, 56)
   24061      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24062      678358 :          idata = idata + 1
   24063      678358 :          data_tmp = full_data(idata)
   24064      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24065      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24066      678358 :          pack_tmp = ISHFT(pack_tmp, -23)
   24067      678358 :          idata = idata + 1
   24068      678358 :          data_tmp = full_data(idata)
   24069      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24070      678358 :          data_tmp = IAND(data_tmp, mask_left(23))
   24071      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24072      678358 :          ipack = ipack + 1
   24073      678358 :          packed_data(ipack) = pack_tmp
   24074      678358 :          data_tmp = full_data(idata)
   24075      678358 :          pack_tmp = ISHFT(data_tmp, 54)
   24076      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24077      678358 :          idata = idata + 1
   24078      678358 :          data_tmp = full_data(idata)
   24079      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24080      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24081      678358 :          pack_tmp = ISHFT(pack_tmp, -21)
   24082      678358 :          idata = idata + 1
   24083      678358 :          data_tmp = full_data(idata)
   24084      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24085      678358 :          data_tmp = IAND(data_tmp, mask_left(21))
   24086      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24087      678358 :          ipack = ipack + 1
   24088      678358 :          packed_data(ipack) = pack_tmp
   24089      678358 :          data_tmp = full_data(idata)
   24090      678358 :          pack_tmp = ISHFT(data_tmp, 52)
   24091      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24092      678358 :          idata = idata + 1
   24093      678358 :          data_tmp = full_data(idata)
   24094      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24095      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24096      678358 :          pack_tmp = ISHFT(pack_tmp, -19)
   24097      678358 :          idata = idata + 1
   24098      678358 :          data_tmp = full_data(idata)
   24099      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24100      678358 :          data_tmp = IAND(data_tmp, mask_left(19))
   24101      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24102      678358 :          ipack = ipack + 1
   24103      678358 :          packed_data(ipack) = pack_tmp
   24104      678358 :          data_tmp = full_data(idata)
   24105      678358 :          pack_tmp = ISHFT(data_tmp, 50)
   24106      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24107      678358 :          idata = idata + 1
   24108      678358 :          data_tmp = full_data(idata)
   24109      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24110      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24111      678358 :          pack_tmp = ISHFT(pack_tmp, -17)
   24112      678358 :          idata = idata + 1
   24113      678358 :          data_tmp = full_data(idata)
   24114      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24115      678358 :          data_tmp = IAND(data_tmp, mask_left(17))
   24116      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24117      678358 :          ipack = ipack + 1
   24118      678358 :          packed_data(ipack) = pack_tmp
   24119      678358 :          data_tmp = full_data(idata)
   24120      678358 :          pack_tmp = ISHFT(data_tmp, 48)
   24121      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24122      678358 :          idata = idata + 1
   24123      678358 :          data_tmp = full_data(idata)
   24124      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24125      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24126      678358 :          pack_tmp = ISHFT(pack_tmp, -15)
   24127      678358 :          idata = idata + 1
   24128      678358 :          data_tmp = full_data(idata)
   24129      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24130      678358 :          data_tmp = IAND(data_tmp, mask_left(15))
   24131      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24132      678358 :          ipack = ipack + 1
   24133      678358 :          packed_data(ipack) = pack_tmp
   24134      678358 :          data_tmp = full_data(idata)
   24135      678358 :          pack_tmp = ISHFT(data_tmp, 46)
   24136      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24137      678358 :          idata = idata + 1
   24138      678358 :          data_tmp = full_data(idata)
   24139      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24140      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24141      678358 :          pack_tmp = ISHFT(pack_tmp, -13)
   24142      678358 :          idata = idata + 1
   24143      678358 :          data_tmp = full_data(idata)
   24144      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24145      678358 :          data_tmp = IAND(data_tmp, mask_left(13))
   24146      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24147      678358 :          ipack = ipack + 1
   24148      678358 :          packed_data(ipack) = pack_tmp
   24149      678358 :          data_tmp = full_data(idata)
   24150      678358 :          pack_tmp = ISHFT(data_tmp, 44)
   24151      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24152      678358 :          idata = idata + 1
   24153      678358 :          data_tmp = full_data(idata)
   24154      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24155      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24156      678358 :          pack_tmp = ISHFT(pack_tmp, -11)
   24157      678358 :          idata = idata + 1
   24158      678358 :          data_tmp = full_data(idata)
   24159      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24160      678358 :          data_tmp = IAND(data_tmp, mask_left(11))
   24161      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24162      678358 :          ipack = ipack + 1
   24163      678358 :          packed_data(ipack) = pack_tmp
   24164      678358 :          data_tmp = full_data(idata)
   24165      678358 :          pack_tmp = ISHFT(data_tmp, 42)
   24166      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24167      678358 :          idata = idata + 1
   24168      678358 :          data_tmp = full_data(idata)
   24169      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24170      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24171      678358 :          pack_tmp = ISHFT(pack_tmp, -9)
   24172      678358 :          idata = idata + 1
   24173      678358 :          data_tmp = full_data(idata)
   24174      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24175      678358 :          data_tmp = IAND(data_tmp, mask_left(9))
   24176      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24177      678358 :          ipack = ipack + 1
   24178      678358 :          packed_data(ipack) = pack_tmp
   24179      678358 :          data_tmp = full_data(idata)
   24180      678358 :          pack_tmp = ISHFT(data_tmp, 40)
   24181      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24182      678358 :          idata = idata + 1
   24183      678358 :          data_tmp = full_data(idata)
   24184      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24185      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24186      678358 :          pack_tmp = ISHFT(pack_tmp, -7)
   24187      678358 :          idata = idata + 1
   24188      678358 :          data_tmp = full_data(idata)
   24189      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24190      678358 :          data_tmp = IAND(data_tmp, mask_left(7))
   24191      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24192      678358 :          ipack = ipack + 1
   24193      678358 :          packed_data(ipack) = pack_tmp
   24194      678358 :          data_tmp = full_data(idata)
   24195      678358 :          pack_tmp = ISHFT(data_tmp, 38)
   24196      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24197      678358 :          idata = idata + 1
   24198      678358 :          data_tmp = full_data(idata)
   24199      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24200      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24201      678358 :          pack_tmp = ISHFT(pack_tmp, -5)
   24202      678358 :          idata = idata + 1
   24203      678358 :          data_tmp = full_data(idata)
   24204      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24205      678358 :          data_tmp = IAND(data_tmp, mask_left(5))
   24206      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24207      678358 :          ipack = ipack + 1
   24208      678358 :          packed_data(ipack) = pack_tmp
   24209      678358 :          data_tmp = full_data(idata)
   24210      678358 :          pack_tmp = ISHFT(data_tmp, 36)
   24211      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24212      678358 :          idata = idata + 1
   24213      678358 :          data_tmp = full_data(idata)
   24214      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24215      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24216      678358 :          pack_tmp = ISHFT(pack_tmp, -3)
   24217      678358 :          idata = idata + 1
   24218      678358 :          data_tmp = full_data(idata)
   24219      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24220      678358 :          data_tmp = IAND(data_tmp, mask_left(3))
   24221      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24222      678358 :          ipack = ipack + 1
   24223      678358 :          packed_data(ipack) = pack_tmp
   24224      678358 :          data_tmp = full_data(idata)
   24225      678358 :          pack_tmp = ISHFT(data_tmp, 34)
   24226      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24227      678358 :          idata = idata + 1
   24228      678358 :          data_tmp = full_data(idata)
   24229      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24230      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24231      678358 :          pack_tmp = ISHFT(pack_tmp, -1)
   24232      678358 :          idata = idata + 1
   24233      678358 :          data_tmp = full_data(idata)
   24234      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24235      678358 :          data_tmp = IAND(data_tmp, mask_left(1))
   24236      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24237      678358 :          ipack = ipack + 1
   24238      678358 :          packed_data(ipack) = pack_tmp
   24239      678358 :          data_tmp = full_data(idata)
   24240      678358 :          pack_tmp = ISHFT(data_tmp, 32)
   24241      678358 :          pack_tmp = ISHFT(pack_tmp, -32)
   24242      678358 :          idata = idata + 1
   24243      678358 :          data_tmp = full_data(idata)
   24244      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24245      678358 :          data_tmp = IAND(data_tmp, mask_left(32))
   24246      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24247      678358 :          ipack = ipack + 1
   24248      678358 :          packed_data(ipack) = pack_tmp
   24249      678358 :          data_tmp = full_data(idata)
   24250      678358 :          pack_tmp = ISHFT(data_tmp, 63)
   24251      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24252      678358 :          idata = idata + 1
   24253      678358 :          data_tmp = full_data(idata)
   24254      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24255      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24256      678358 :          pack_tmp = ISHFT(pack_tmp, -30)
   24257      678358 :          idata = idata + 1
   24258      678358 :          data_tmp = full_data(idata)
   24259      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24260      678358 :          data_tmp = IAND(data_tmp, mask_left(30))
   24261      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24262      678358 :          ipack = ipack + 1
   24263      678358 :          packed_data(ipack) = pack_tmp
   24264      678358 :          data_tmp = full_data(idata)
   24265      678358 :          pack_tmp = ISHFT(data_tmp, 61)
   24266      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24267      678358 :          idata = idata + 1
   24268      678358 :          data_tmp = full_data(idata)
   24269      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24270      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24271      678358 :          pack_tmp = ISHFT(pack_tmp, -28)
   24272      678358 :          idata = idata + 1
   24273      678358 :          data_tmp = full_data(idata)
   24274      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24275      678358 :          data_tmp = IAND(data_tmp, mask_left(28))
   24276      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24277      678358 :          ipack = ipack + 1
   24278      678358 :          packed_data(ipack) = pack_tmp
   24279      678358 :          data_tmp = full_data(idata)
   24280      678358 :          pack_tmp = ISHFT(data_tmp, 59)
   24281      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24282      678358 :          idata = idata + 1
   24283      678358 :          data_tmp = full_data(idata)
   24284      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24285      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24286      678358 :          pack_tmp = ISHFT(pack_tmp, -26)
   24287      678358 :          idata = idata + 1
   24288      678358 :          data_tmp = full_data(idata)
   24289      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24290      678358 :          data_tmp = IAND(data_tmp, mask_left(26))
   24291      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24292      678358 :          ipack = ipack + 1
   24293      678358 :          packed_data(ipack) = pack_tmp
   24294      678358 :          data_tmp = full_data(idata)
   24295      678358 :          pack_tmp = ISHFT(data_tmp, 57)
   24296      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24297      678358 :          idata = idata + 1
   24298      678358 :          data_tmp = full_data(idata)
   24299      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24300      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24301      678358 :          pack_tmp = ISHFT(pack_tmp, -24)
   24302      678358 :          idata = idata + 1
   24303      678358 :          data_tmp = full_data(idata)
   24304      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24305      678358 :          data_tmp = IAND(data_tmp, mask_left(24))
   24306      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24307      678358 :          ipack = ipack + 1
   24308      678358 :          packed_data(ipack) = pack_tmp
   24309      678358 :          data_tmp = full_data(idata)
   24310      678358 :          pack_tmp = ISHFT(data_tmp, 55)
   24311      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24312      678358 :          idata = idata + 1
   24313      678358 :          data_tmp = full_data(idata)
   24314      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24315      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24316      678358 :          pack_tmp = ISHFT(pack_tmp, -22)
   24317      678358 :          idata = idata + 1
   24318      678358 :          data_tmp = full_data(idata)
   24319      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24320      678358 :          data_tmp = IAND(data_tmp, mask_left(22))
   24321      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24322      678358 :          ipack = ipack + 1
   24323      678358 :          packed_data(ipack) = pack_tmp
   24324      678358 :          data_tmp = full_data(idata)
   24325      678358 :          pack_tmp = ISHFT(data_tmp, 53)
   24326      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24327      678358 :          idata = idata + 1
   24328      678358 :          data_tmp = full_data(idata)
   24329      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24330      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24331      678358 :          pack_tmp = ISHFT(pack_tmp, -20)
   24332      678358 :          idata = idata + 1
   24333      678358 :          data_tmp = full_data(idata)
   24334      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24335      678358 :          data_tmp = IAND(data_tmp, mask_left(20))
   24336      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24337      678358 :          ipack = ipack + 1
   24338      678358 :          packed_data(ipack) = pack_tmp
   24339      678358 :          data_tmp = full_data(idata)
   24340      678358 :          pack_tmp = ISHFT(data_tmp, 51)
   24341      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24342      678358 :          idata = idata + 1
   24343      678358 :          data_tmp = full_data(idata)
   24344      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24345      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24346      678358 :          pack_tmp = ISHFT(pack_tmp, -18)
   24347      678358 :          idata = idata + 1
   24348      678358 :          data_tmp = full_data(idata)
   24349      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24350      678358 :          data_tmp = IAND(data_tmp, mask_left(18))
   24351      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24352      678358 :          ipack = ipack + 1
   24353      678358 :          packed_data(ipack) = pack_tmp
   24354      678358 :          data_tmp = full_data(idata)
   24355      678358 :          pack_tmp = ISHFT(data_tmp, 49)
   24356      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24357      678358 :          idata = idata + 1
   24358      678358 :          data_tmp = full_data(idata)
   24359      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24360      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24361      678358 :          pack_tmp = ISHFT(pack_tmp, -16)
   24362      678358 :          idata = idata + 1
   24363      678358 :          data_tmp = full_data(idata)
   24364      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24365      678358 :          data_tmp = IAND(data_tmp, mask_left(16))
   24366      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24367      678358 :          ipack = ipack + 1
   24368      678358 :          packed_data(ipack) = pack_tmp
   24369      678358 :          data_tmp = full_data(idata)
   24370      678358 :          pack_tmp = ISHFT(data_tmp, 47)
   24371      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24372      678358 :          idata = idata + 1
   24373      678358 :          data_tmp = full_data(idata)
   24374      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24375      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24376      678358 :          pack_tmp = ISHFT(pack_tmp, -14)
   24377      678358 :          idata = idata + 1
   24378      678358 :          data_tmp = full_data(idata)
   24379      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24380      678358 :          data_tmp = IAND(data_tmp, mask_left(14))
   24381      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24382      678358 :          ipack = ipack + 1
   24383      678358 :          packed_data(ipack) = pack_tmp
   24384      678358 :          data_tmp = full_data(idata)
   24385      678358 :          pack_tmp = ISHFT(data_tmp, 45)
   24386      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24387      678358 :          idata = idata + 1
   24388      678358 :          data_tmp = full_data(idata)
   24389      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24390      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24391      678358 :          pack_tmp = ISHFT(pack_tmp, -12)
   24392      678358 :          idata = idata + 1
   24393      678358 :          data_tmp = full_data(idata)
   24394      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24395      678358 :          data_tmp = IAND(data_tmp, mask_left(12))
   24396      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24397      678358 :          ipack = ipack + 1
   24398      678358 :          packed_data(ipack) = pack_tmp
   24399      678358 :          data_tmp = full_data(idata)
   24400      678358 :          pack_tmp = ISHFT(data_tmp, 43)
   24401      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24402      678358 :          idata = idata + 1
   24403      678358 :          data_tmp = full_data(idata)
   24404      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24405      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24406      678358 :          pack_tmp = ISHFT(pack_tmp, -10)
   24407      678358 :          idata = idata + 1
   24408      678358 :          data_tmp = full_data(idata)
   24409      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24410      678358 :          data_tmp = IAND(data_tmp, mask_left(10))
   24411      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24412      678358 :          ipack = ipack + 1
   24413      678358 :          packed_data(ipack) = pack_tmp
   24414      678358 :          data_tmp = full_data(idata)
   24415      678358 :          pack_tmp = ISHFT(data_tmp, 41)
   24416      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24417      678358 :          idata = idata + 1
   24418      678358 :          data_tmp = full_data(idata)
   24419      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24420      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24421      678358 :          pack_tmp = ISHFT(pack_tmp, -8)
   24422      678358 :          idata = idata + 1
   24423      678358 :          data_tmp = full_data(idata)
   24424      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24425      678358 :          data_tmp = IAND(data_tmp, mask_left(8))
   24426      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24427      678358 :          ipack = ipack + 1
   24428      678358 :          packed_data(ipack) = pack_tmp
   24429      678358 :          data_tmp = full_data(idata)
   24430      678358 :          pack_tmp = ISHFT(data_tmp, 39)
   24431      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24432      678358 :          idata = idata + 1
   24433      678358 :          data_tmp = full_data(idata)
   24434      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24435      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24436      678358 :          pack_tmp = ISHFT(pack_tmp, -6)
   24437      678358 :          idata = idata + 1
   24438      678358 :          data_tmp = full_data(idata)
   24439      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24440      678358 :          data_tmp = IAND(data_tmp, mask_left(6))
   24441      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24442      678358 :          ipack = ipack + 1
   24443      678358 :          packed_data(ipack) = pack_tmp
   24444      678358 :          data_tmp = full_data(idata)
   24445      678358 :          pack_tmp = ISHFT(data_tmp, 37)
   24446      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24447      678358 :          idata = idata + 1
   24448      678358 :          data_tmp = full_data(idata)
   24449      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24450      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24451      678358 :          pack_tmp = ISHFT(pack_tmp, -4)
   24452      678358 :          idata = idata + 1
   24453      678358 :          data_tmp = full_data(idata)
   24454      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24455      678358 :          data_tmp = IAND(data_tmp, mask_left(4))
   24456      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24457      678358 :          ipack = ipack + 1
   24458      678358 :          packed_data(ipack) = pack_tmp
   24459      678358 :          data_tmp = full_data(idata)
   24460      678358 :          pack_tmp = ISHFT(data_tmp, 35)
   24461      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24462      678358 :          idata = idata + 1
   24463      678358 :          data_tmp = full_data(idata)
   24464      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24465      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24466      678358 :          pack_tmp = ISHFT(pack_tmp, -2)
   24467      678358 :          idata = idata + 1
   24468      678358 :          data_tmp = full_data(idata)
   24469      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24470      678358 :          data_tmp = IAND(data_tmp, mask_left(2))
   24471      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24472      678358 :          ipack = ipack + 1
   24473      678358 :          packed_data(ipack) = pack_tmp
   24474      678358 :          data_tmp = full_data(idata)
   24475      678358 :          pack_tmp = ISHFT(data_tmp, 33)
   24476      678358 :          pack_tmp = ISHFT(pack_tmp, -33)
   24477      678358 :          idata = idata + 1
   24478      678358 :          data_tmp = full_data(idata)
   24479      678358 :          data_tmp = ISHFT(data_tmp, 31)
   24480      678358 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24481             :          pack_tmp = ISHFT(pack_tmp, 0)
   24482      678358 :          pack_tmp = ISHFT(pack_tmp, 0)
   24483      678358 :          ipack = ipack + 1
   24484      681315 :          packed_data(ipack) = pack_tmp
   24485             :       END DO
   24486       53526 :       IF (Ndata_rep < Ndata) THEN
   24487       20948 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   24488             :       END IF
   24489       53526 :    END SUBROUTINE ints2bits_33
   24490             : 
   24491             : ! **************************************************************************************************
   24492             : !> \brief ...
   24493             : !> \param Ndata ...
   24494             : !> \param packed_data ...
   24495             : !> \param full_data ...
   24496             : ! **************************************************************************************************
   24497      265947 :    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      265947 :       ipack = 0
   24508      265947 :       idata = 0
   24509      265947 :       pack_tmp = 0
   24510      265947 :       Ndata_rep = (Ndata/64)*64
   24511      265947 :       DO kdata = 1, Ndata_rep, 64
   24512     3226669 :          idata = idata + 1
   24513     3226669 :          data_tmp = ISHFT(pack_tmp, 33)
   24514     3226669 :          ipack = ipack + 1
   24515     3226669 :          pack_tmp = packed_data(ipack)
   24516     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   24517     3226669 :          pack_tmp = ISHFT(pack_tmp, -33)
   24518     3226669 :          idata = idata + 1
   24519     3226669 :          data_tmp = ISHFT(pack_tmp, 2)
   24520     3226669 :          ipack = ipack + 1
   24521     3226669 :          pack_tmp = packed_data(ipack)
   24522     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   24523     3226669 :          pack_tmp = ISHFT(pack_tmp, -2)
   24524     3226669 :          idata = idata + 1
   24525     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24526     3226669 :          full_data(idata) = data_tmp
   24527     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24528     3226669 :          idata = idata + 1
   24529     3226669 :          data_tmp = ISHFT(pack_tmp, 4)
   24530     3226669 :          ipack = ipack + 1
   24531     3226669 :          pack_tmp = packed_data(ipack)
   24532     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   24533     3226669 :          pack_tmp = ISHFT(pack_tmp, -4)
   24534     3226669 :          idata = idata + 1
   24535     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24536     3226669 :          full_data(idata) = data_tmp
   24537     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24538     3226669 :          idata = idata + 1
   24539     3226669 :          data_tmp = ISHFT(pack_tmp, 6)
   24540     3226669 :          ipack = ipack + 1
   24541     3226669 :          pack_tmp = packed_data(ipack)
   24542     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   24543     3226669 :          pack_tmp = ISHFT(pack_tmp, -6)
   24544     3226669 :          idata = idata + 1
   24545     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24546     3226669 :          full_data(idata) = data_tmp
   24547     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24548     3226669 :          idata = idata + 1
   24549     3226669 :          data_tmp = ISHFT(pack_tmp, 8)
   24550     3226669 :          ipack = ipack + 1
   24551     3226669 :          pack_tmp = packed_data(ipack)
   24552     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   24553     3226669 :          pack_tmp = ISHFT(pack_tmp, -8)
   24554     3226669 :          idata = idata + 1
   24555     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24556     3226669 :          full_data(idata) = data_tmp
   24557     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24558     3226669 :          idata = idata + 1
   24559     3226669 :          data_tmp = ISHFT(pack_tmp, 10)
   24560     3226669 :          ipack = ipack + 1
   24561     3226669 :          pack_tmp = packed_data(ipack)
   24562     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   24563     3226669 :          pack_tmp = ISHFT(pack_tmp, -10)
   24564     3226669 :          idata = idata + 1
   24565     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24566     3226669 :          full_data(idata) = data_tmp
   24567     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24568     3226669 :          idata = idata + 1
   24569     3226669 :          data_tmp = ISHFT(pack_tmp, 12)
   24570     3226669 :          ipack = ipack + 1
   24571     3226669 :          pack_tmp = packed_data(ipack)
   24572     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   24573     3226669 :          pack_tmp = ISHFT(pack_tmp, -12)
   24574     3226669 :          idata = idata + 1
   24575     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24576     3226669 :          full_data(idata) = data_tmp
   24577     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24578     3226669 :          idata = idata + 1
   24579     3226669 :          data_tmp = ISHFT(pack_tmp, 14)
   24580     3226669 :          ipack = ipack + 1
   24581     3226669 :          pack_tmp = packed_data(ipack)
   24582     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   24583     3226669 :          pack_tmp = ISHFT(pack_tmp, -14)
   24584     3226669 :          idata = idata + 1
   24585     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24586     3226669 :          full_data(idata) = data_tmp
   24587     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24588     3226669 :          idata = idata + 1
   24589     3226669 :          data_tmp = ISHFT(pack_tmp, 16)
   24590     3226669 :          ipack = ipack + 1
   24591     3226669 :          pack_tmp = packed_data(ipack)
   24592     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   24593     3226669 :          pack_tmp = ISHFT(pack_tmp, -16)
   24594     3226669 :          idata = idata + 1
   24595     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24596     3226669 :          full_data(idata) = data_tmp
   24597     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24598     3226669 :          idata = idata + 1
   24599     3226669 :          data_tmp = ISHFT(pack_tmp, 18)
   24600     3226669 :          ipack = ipack + 1
   24601     3226669 :          pack_tmp = packed_data(ipack)
   24602     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   24603     3226669 :          pack_tmp = ISHFT(pack_tmp, -18)
   24604     3226669 :          idata = idata + 1
   24605     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24606     3226669 :          full_data(idata) = data_tmp
   24607     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24608     3226669 :          idata = idata + 1
   24609     3226669 :          data_tmp = ISHFT(pack_tmp, 20)
   24610     3226669 :          ipack = ipack + 1
   24611     3226669 :          pack_tmp = packed_data(ipack)
   24612     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   24613     3226669 :          pack_tmp = ISHFT(pack_tmp, -20)
   24614     3226669 :          idata = idata + 1
   24615     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24616     3226669 :          full_data(idata) = data_tmp
   24617     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24618     3226669 :          idata = idata + 1
   24619     3226669 :          data_tmp = ISHFT(pack_tmp, 22)
   24620     3226669 :          ipack = ipack + 1
   24621     3226669 :          pack_tmp = packed_data(ipack)
   24622     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   24623     3226669 :          pack_tmp = ISHFT(pack_tmp, -22)
   24624     3226669 :          idata = idata + 1
   24625     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24626     3226669 :          full_data(idata) = data_tmp
   24627     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24628     3226669 :          idata = idata + 1
   24629     3226669 :          data_tmp = ISHFT(pack_tmp, 24)
   24630     3226669 :          ipack = ipack + 1
   24631     3226669 :          pack_tmp = packed_data(ipack)
   24632     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   24633     3226669 :          pack_tmp = ISHFT(pack_tmp, -24)
   24634     3226669 :          idata = idata + 1
   24635     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24636     3226669 :          full_data(idata) = data_tmp
   24637     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24638     3226669 :          idata = idata + 1
   24639     3226669 :          data_tmp = ISHFT(pack_tmp, 26)
   24640     3226669 :          ipack = ipack + 1
   24641     3226669 :          pack_tmp = packed_data(ipack)
   24642     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   24643     3226669 :          pack_tmp = ISHFT(pack_tmp, -26)
   24644     3226669 :          idata = idata + 1
   24645     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24646     3226669 :          full_data(idata) = data_tmp
   24647     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24648     3226669 :          idata = idata + 1
   24649     3226669 :          data_tmp = ISHFT(pack_tmp, 28)
   24650     3226669 :          ipack = ipack + 1
   24651     3226669 :          pack_tmp = packed_data(ipack)
   24652     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   24653     3226669 :          pack_tmp = ISHFT(pack_tmp, -28)
   24654     3226669 :          idata = idata + 1
   24655     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24656     3226669 :          full_data(idata) = data_tmp
   24657     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24658     3226669 :          idata = idata + 1
   24659     3226669 :          data_tmp = ISHFT(pack_tmp, 30)
   24660     3226669 :          ipack = ipack + 1
   24661     3226669 :          pack_tmp = packed_data(ipack)
   24662     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   24663     3226669 :          pack_tmp = ISHFT(pack_tmp, -30)
   24664     3226669 :          idata = idata + 1
   24665     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24666     3226669 :          full_data(idata) = data_tmp
   24667     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24668     3226669 :          idata = idata + 1
   24669     3226669 :          data_tmp = ISHFT(pack_tmp, 32)
   24670     3226669 :          ipack = ipack + 1
   24671     3226669 :          pack_tmp = packed_data(ipack)
   24672     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   24673     3226669 :          pack_tmp = ISHFT(pack_tmp, -32)
   24674     3226669 :          idata = idata + 1
   24675     3226669 :          data_tmp = ISHFT(pack_tmp, 1)
   24676     3226669 :          ipack = ipack + 1
   24677     3226669 :          pack_tmp = packed_data(ipack)
   24678     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   24679     3226669 :          pack_tmp = ISHFT(pack_tmp, -1)
   24680     3226669 :          idata = idata + 1
   24681     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24682     3226669 :          full_data(idata) = data_tmp
   24683     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24684     3226669 :          idata = idata + 1
   24685     3226669 :          data_tmp = ISHFT(pack_tmp, 3)
   24686     3226669 :          ipack = ipack + 1
   24687     3226669 :          pack_tmp = packed_data(ipack)
   24688     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   24689     3226669 :          pack_tmp = ISHFT(pack_tmp, -3)
   24690     3226669 :          idata = idata + 1
   24691     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24692     3226669 :          full_data(idata) = data_tmp
   24693     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24694     3226669 :          idata = idata + 1
   24695     3226669 :          data_tmp = ISHFT(pack_tmp, 5)
   24696     3226669 :          ipack = ipack + 1
   24697     3226669 :          pack_tmp = packed_data(ipack)
   24698     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   24699     3226669 :          pack_tmp = ISHFT(pack_tmp, -5)
   24700     3226669 :          idata = idata + 1
   24701     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24702     3226669 :          full_data(idata) = data_tmp
   24703     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24704     3226669 :          idata = idata + 1
   24705     3226669 :          data_tmp = ISHFT(pack_tmp, 7)
   24706     3226669 :          ipack = ipack + 1
   24707     3226669 :          pack_tmp = packed_data(ipack)
   24708     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   24709     3226669 :          pack_tmp = ISHFT(pack_tmp, -7)
   24710     3226669 :          idata = idata + 1
   24711     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24712     3226669 :          full_data(idata) = data_tmp
   24713     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24714     3226669 :          idata = idata + 1
   24715     3226669 :          data_tmp = ISHFT(pack_tmp, 9)
   24716     3226669 :          ipack = ipack + 1
   24717     3226669 :          pack_tmp = packed_data(ipack)
   24718     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   24719     3226669 :          pack_tmp = ISHFT(pack_tmp, -9)
   24720     3226669 :          idata = idata + 1
   24721     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24722     3226669 :          full_data(idata) = data_tmp
   24723     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24724     3226669 :          idata = idata + 1
   24725     3226669 :          data_tmp = ISHFT(pack_tmp, 11)
   24726     3226669 :          ipack = ipack + 1
   24727     3226669 :          pack_tmp = packed_data(ipack)
   24728     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   24729     3226669 :          pack_tmp = ISHFT(pack_tmp, -11)
   24730     3226669 :          idata = idata + 1
   24731     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24732     3226669 :          full_data(idata) = data_tmp
   24733     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24734     3226669 :          idata = idata + 1
   24735     3226669 :          data_tmp = ISHFT(pack_tmp, 13)
   24736     3226669 :          ipack = ipack + 1
   24737     3226669 :          pack_tmp = packed_data(ipack)
   24738     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   24739     3226669 :          pack_tmp = ISHFT(pack_tmp, -13)
   24740     3226669 :          idata = idata + 1
   24741     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24742     3226669 :          full_data(idata) = data_tmp
   24743     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24744     3226669 :          idata = idata + 1
   24745     3226669 :          data_tmp = ISHFT(pack_tmp, 15)
   24746     3226669 :          ipack = ipack + 1
   24747     3226669 :          pack_tmp = packed_data(ipack)
   24748     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   24749     3226669 :          pack_tmp = ISHFT(pack_tmp, -15)
   24750     3226669 :          idata = idata + 1
   24751     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24752     3226669 :          full_data(idata) = data_tmp
   24753     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24754     3226669 :          idata = idata + 1
   24755     3226669 :          data_tmp = ISHFT(pack_tmp, 17)
   24756     3226669 :          ipack = ipack + 1
   24757     3226669 :          pack_tmp = packed_data(ipack)
   24758     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   24759     3226669 :          pack_tmp = ISHFT(pack_tmp, -17)
   24760     3226669 :          idata = idata + 1
   24761     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24762     3226669 :          full_data(idata) = data_tmp
   24763     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24764     3226669 :          idata = idata + 1
   24765     3226669 :          data_tmp = ISHFT(pack_tmp, 19)
   24766     3226669 :          ipack = ipack + 1
   24767     3226669 :          pack_tmp = packed_data(ipack)
   24768     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   24769     3226669 :          pack_tmp = ISHFT(pack_tmp, -19)
   24770     3226669 :          idata = idata + 1
   24771     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24772     3226669 :          full_data(idata) = data_tmp
   24773     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24774     3226669 :          idata = idata + 1
   24775     3226669 :          data_tmp = ISHFT(pack_tmp, 21)
   24776     3226669 :          ipack = ipack + 1
   24777     3226669 :          pack_tmp = packed_data(ipack)
   24778     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   24779     3226669 :          pack_tmp = ISHFT(pack_tmp, -21)
   24780     3226669 :          idata = idata + 1
   24781     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24782     3226669 :          full_data(idata) = data_tmp
   24783     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24784     3226669 :          idata = idata + 1
   24785     3226669 :          data_tmp = ISHFT(pack_tmp, 23)
   24786     3226669 :          ipack = ipack + 1
   24787     3226669 :          pack_tmp = packed_data(ipack)
   24788     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   24789     3226669 :          pack_tmp = ISHFT(pack_tmp, -23)
   24790     3226669 :          idata = idata + 1
   24791     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24792     3226669 :          full_data(idata) = data_tmp
   24793     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24794     3226669 :          idata = idata + 1
   24795     3226669 :          data_tmp = ISHFT(pack_tmp, 25)
   24796     3226669 :          ipack = ipack + 1
   24797     3226669 :          pack_tmp = packed_data(ipack)
   24798     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   24799     3226669 :          pack_tmp = ISHFT(pack_tmp, -25)
   24800     3226669 :          idata = idata + 1
   24801     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24802     3226669 :          full_data(idata) = data_tmp
   24803     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24804     3226669 :          idata = idata + 1
   24805     3226669 :          data_tmp = ISHFT(pack_tmp, 27)
   24806     3226669 :          ipack = ipack + 1
   24807     3226669 :          pack_tmp = packed_data(ipack)
   24808     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   24809     3226669 :          pack_tmp = ISHFT(pack_tmp, -27)
   24810     3226669 :          idata = idata + 1
   24811     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24812     3226669 :          full_data(idata) = data_tmp
   24813     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24814     3226669 :          idata = idata + 1
   24815     3226669 :          data_tmp = ISHFT(pack_tmp, 29)
   24816     3226669 :          ipack = ipack + 1
   24817     3226669 :          pack_tmp = packed_data(ipack)
   24818     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   24819     3226669 :          pack_tmp = ISHFT(pack_tmp, -29)
   24820     3226669 :          idata = idata + 1
   24821     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24822     3226669 :          full_data(idata) = data_tmp
   24823     3226669 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24824     3226669 :          idata = idata + 1
   24825     3226669 :          data_tmp = ISHFT(pack_tmp, 31)
   24826     3226669 :          ipack = ipack + 1
   24827     3226669 :          pack_tmp = packed_data(ipack)
   24828     3226669 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   24829     3226669 :          pack_tmp = ISHFT(pack_tmp, -31)
   24830     3226669 :          idata = idata + 1
   24831     3226669 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24832     3226669 :          full_data(idata) = data_tmp
   24833     3244393 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24834             :       END DO
   24835      265947 :       IF (Ndata_rep < Ndata) THEN
   24836      120998 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   24837             :       END IF
   24838      265947 :    END SUBROUTINE bits2ints_33
   24839             : 
   24840             : ! **************************************************************************************************
   24841             : !> \brief ...
   24842             : !> \param Ndata ...
   24843             : !> \param packed_data ...
   24844             : !> \param full_data ...
   24845             : ! **************************************************************************************************
   24846       46935 :    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       46935 :       idata = 0
   24857       46935 :       ipack = 0
   24858       46935 :       Ndata_rep = (Ndata/64)*64
   24859       46935 :       DO kdata = 1, Ndata_rep, 64
   24860      611949 :          pack_tmp = 0
   24861      611949 :          idata = idata + 1
   24862      611949 :          data_tmp = full_data(idata)
   24863      611949 :          data_tmp = ISHFT(data_tmp, 30)
   24864      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24865      611949 :          pack_tmp = ISHFT(pack_tmp, -30)
   24866      611949 :          idata = idata + 1
   24867      611949 :          data_tmp = full_data(idata)
   24868      611949 :          data_tmp = ISHFT(data_tmp, 30)
   24869      611949 :          data_tmp = IAND(data_tmp, mask_left(30))
   24870      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24871      611949 :          ipack = ipack + 1
   24872      611949 :          packed_data(ipack) = pack_tmp
   24873      611949 :          data_tmp = full_data(idata)
   24874      611949 :          pack_tmp = ISHFT(data_tmp, 60)
   24875      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   24876      611949 :          idata = idata + 1
   24877      611949 :          data_tmp = full_data(idata)
   24878      611949 :          data_tmp = ISHFT(data_tmp, 30)
   24879      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24880      611949 :          pack_tmp = ISHFT(pack_tmp, -26)
   24881      611949 :          idata = idata + 1
   24882      611949 :          data_tmp = full_data(idata)
   24883      611949 :          data_tmp = ISHFT(data_tmp, 30)
   24884      611949 :          data_tmp = IAND(data_tmp, mask_left(26))
   24885      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24886      611949 :          ipack = ipack + 1
   24887      611949 :          packed_data(ipack) = pack_tmp
   24888      611949 :          data_tmp = full_data(idata)
   24889      611949 :          pack_tmp = ISHFT(data_tmp, 56)
   24890      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   24891      611949 :          idata = idata + 1
   24892      611949 :          data_tmp = full_data(idata)
   24893      611949 :          data_tmp = ISHFT(data_tmp, 30)
   24894      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24895      611949 :          pack_tmp = ISHFT(pack_tmp, -22)
   24896      611949 :          idata = idata + 1
   24897      611949 :          data_tmp = full_data(idata)
   24898      611949 :          data_tmp = ISHFT(data_tmp, 30)
   24899      611949 :          data_tmp = IAND(data_tmp, mask_left(22))
   24900      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24901      611949 :          ipack = ipack + 1
   24902      611949 :          packed_data(ipack) = pack_tmp
   24903      611949 :          data_tmp = full_data(idata)
   24904      611949 :          pack_tmp = ISHFT(data_tmp, 52)
   24905      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   24906      611949 :          idata = idata + 1
   24907      611949 :          data_tmp = full_data(idata)
   24908      611949 :          data_tmp = ISHFT(data_tmp, 30)
   24909      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24910      611949 :          pack_tmp = ISHFT(pack_tmp, -18)
   24911      611949 :          idata = idata + 1
   24912      611949 :          data_tmp = full_data(idata)
   24913      611949 :          data_tmp = ISHFT(data_tmp, 30)
   24914      611949 :          data_tmp = IAND(data_tmp, mask_left(18))
   24915      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24916      611949 :          ipack = ipack + 1
   24917      611949 :          packed_data(ipack) = pack_tmp
   24918      611949 :          data_tmp = full_data(idata)
   24919      611949 :          pack_tmp = ISHFT(data_tmp, 48)
   24920      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   24921      611949 :          idata = idata + 1
   24922      611949 :          data_tmp = full_data(idata)
   24923      611949 :          data_tmp = ISHFT(data_tmp, 30)
   24924      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24925      611949 :          pack_tmp = ISHFT(pack_tmp, -14)
   24926      611949 :          idata = idata + 1
   24927      611949 :          data_tmp = full_data(idata)
   24928      611949 :          data_tmp = ISHFT(data_tmp, 30)
   24929      611949 :          data_tmp = IAND(data_tmp, mask_left(14))
   24930      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24931      611949 :          ipack = ipack + 1
   24932      611949 :          packed_data(ipack) = pack_tmp
   24933      611949 :          data_tmp = full_data(idata)
   24934      611949 :          pack_tmp = ISHFT(data_tmp, 44)
   24935      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   24936      611949 :          idata = idata + 1
   24937      611949 :          data_tmp = full_data(idata)
   24938      611949 :          data_tmp = ISHFT(data_tmp, 30)
   24939      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24940      611949 :          pack_tmp = ISHFT(pack_tmp, -10)
   24941      611949 :          idata = idata + 1
   24942      611949 :          data_tmp = full_data(idata)
   24943      611949 :          data_tmp = ISHFT(data_tmp, 30)
   24944      611949 :          data_tmp = IAND(data_tmp, mask_left(10))
   24945      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24946      611949 :          ipack = ipack + 1
   24947      611949 :          packed_data(ipack) = pack_tmp
   24948      611949 :          data_tmp = full_data(idata)
   24949      611949 :          pack_tmp = ISHFT(data_tmp, 40)
   24950      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   24951      611949 :          idata = idata + 1
   24952      611949 :          data_tmp = full_data(idata)
   24953      611949 :          data_tmp = ISHFT(data_tmp, 30)
   24954      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24955      611949 :          pack_tmp = ISHFT(pack_tmp, -6)
   24956      611949 :          idata = idata + 1
   24957      611949 :          data_tmp = full_data(idata)
   24958      611949 :          data_tmp = ISHFT(data_tmp, 30)
   24959      611949 :          data_tmp = IAND(data_tmp, mask_left(6))
   24960      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24961      611949 :          ipack = ipack + 1
   24962      611949 :          packed_data(ipack) = pack_tmp
   24963      611949 :          data_tmp = full_data(idata)
   24964      611949 :          pack_tmp = ISHFT(data_tmp, 36)
   24965      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   24966      611949 :          idata = idata + 1
   24967      611949 :          data_tmp = full_data(idata)
   24968      611949 :          data_tmp = ISHFT(data_tmp, 30)
   24969      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24970      611949 :          pack_tmp = ISHFT(pack_tmp, -2)
   24971      611949 :          idata = idata + 1
   24972      611949 :          data_tmp = full_data(idata)
   24973      611949 :          data_tmp = ISHFT(data_tmp, 30)
   24974      611949 :          data_tmp = IAND(data_tmp, mask_left(2))
   24975      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24976      611949 :          ipack = ipack + 1
   24977      611949 :          packed_data(ipack) = pack_tmp
   24978      611949 :          data_tmp = full_data(idata)
   24979      611949 :          pack_tmp = ISHFT(data_tmp, 32)
   24980      611949 :          pack_tmp = ISHFT(pack_tmp, -32)
   24981      611949 :          idata = idata + 1
   24982      611949 :          data_tmp = full_data(idata)
   24983      611949 :          data_tmp = ISHFT(data_tmp, 30)
   24984      611949 :          data_tmp = IAND(data_tmp, mask_left(32))
   24985      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24986      611949 :          ipack = ipack + 1
   24987      611949 :          packed_data(ipack) = pack_tmp
   24988      611949 :          data_tmp = full_data(idata)
   24989      611949 :          pack_tmp = ISHFT(data_tmp, 62)
   24990      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   24991      611949 :          idata = idata + 1
   24992      611949 :          data_tmp = full_data(idata)
   24993      611949 :          data_tmp = ISHFT(data_tmp, 30)
   24994      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24995      611949 :          pack_tmp = ISHFT(pack_tmp, -28)
   24996      611949 :          idata = idata + 1
   24997      611949 :          data_tmp = full_data(idata)
   24998      611949 :          data_tmp = ISHFT(data_tmp, 30)
   24999      611949 :          data_tmp = IAND(data_tmp, mask_left(28))
   25000      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25001      611949 :          ipack = ipack + 1
   25002      611949 :          packed_data(ipack) = pack_tmp
   25003      611949 :          data_tmp = full_data(idata)
   25004      611949 :          pack_tmp = ISHFT(data_tmp, 58)
   25005      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   25006      611949 :          idata = idata + 1
   25007      611949 :          data_tmp = full_data(idata)
   25008      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25009      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25010      611949 :          pack_tmp = ISHFT(pack_tmp, -24)
   25011      611949 :          idata = idata + 1
   25012      611949 :          data_tmp = full_data(idata)
   25013      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25014      611949 :          data_tmp = IAND(data_tmp, mask_left(24))
   25015      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25016      611949 :          ipack = ipack + 1
   25017      611949 :          packed_data(ipack) = pack_tmp
   25018      611949 :          data_tmp = full_data(idata)
   25019      611949 :          pack_tmp = ISHFT(data_tmp, 54)
   25020      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   25021      611949 :          idata = idata + 1
   25022      611949 :          data_tmp = full_data(idata)
   25023      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25024      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25025      611949 :          pack_tmp = ISHFT(pack_tmp, -20)
   25026      611949 :          idata = idata + 1
   25027      611949 :          data_tmp = full_data(idata)
   25028      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25029      611949 :          data_tmp = IAND(data_tmp, mask_left(20))
   25030      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25031      611949 :          ipack = ipack + 1
   25032      611949 :          packed_data(ipack) = pack_tmp
   25033      611949 :          data_tmp = full_data(idata)
   25034      611949 :          pack_tmp = ISHFT(data_tmp, 50)
   25035      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   25036      611949 :          idata = idata + 1
   25037      611949 :          data_tmp = full_data(idata)
   25038      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25039      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25040      611949 :          pack_tmp = ISHFT(pack_tmp, -16)
   25041      611949 :          idata = idata + 1
   25042      611949 :          data_tmp = full_data(idata)
   25043      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25044      611949 :          data_tmp = IAND(data_tmp, mask_left(16))
   25045      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25046      611949 :          ipack = ipack + 1
   25047      611949 :          packed_data(ipack) = pack_tmp
   25048      611949 :          data_tmp = full_data(idata)
   25049      611949 :          pack_tmp = ISHFT(data_tmp, 46)
   25050      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   25051      611949 :          idata = idata + 1
   25052      611949 :          data_tmp = full_data(idata)
   25053      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25054      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25055      611949 :          pack_tmp = ISHFT(pack_tmp, -12)
   25056      611949 :          idata = idata + 1
   25057      611949 :          data_tmp = full_data(idata)
   25058      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25059      611949 :          data_tmp = IAND(data_tmp, mask_left(12))
   25060      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25061      611949 :          ipack = ipack + 1
   25062      611949 :          packed_data(ipack) = pack_tmp
   25063      611949 :          data_tmp = full_data(idata)
   25064      611949 :          pack_tmp = ISHFT(data_tmp, 42)
   25065      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   25066      611949 :          idata = idata + 1
   25067      611949 :          data_tmp = full_data(idata)
   25068      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25069      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25070      611949 :          pack_tmp = ISHFT(pack_tmp, -8)
   25071      611949 :          idata = idata + 1
   25072      611949 :          data_tmp = full_data(idata)
   25073      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25074      611949 :          data_tmp = IAND(data_tmp, mask_left(8))
   25075      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25076      611949 :          ipack = ipack + 1
   25077      611949 :          packed_data(ipack) = pack_tmp
   25078      611949 :          data_tmp = full_data(idata)
   25079      611949 :          pack_tmp = ISHFT(data_tmp, 38)
   25080      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   25081      611949 :          idata = idata + 1
   25082      611949 :          data_tmp = full_data(idata)
   25083      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25084      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25085      611949 :          pack_tmp = ISHFT(pack_tmp, -4)
   25086      611949 :          idata = idata + 1
   25087      611949 :          data_tmp = full_data(idata)
   25088      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25089      611949 :          data_tmp = IAND(data_tmp, mask_left(4))
   25090      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25091      611949 :          ipack = ipack + 1
   25092      611949 :          packed_data(ipack) = pack_tmp
   25093      611949 :          data_tmp = full_data(idata)
   25094      611949 :          pack_tmp = ISHFT(data_tmp, 34)
   25095      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   25096      611949 :          idata = idata + 1
   25097      611949 :          data_tmp = full_data(idata)
   25098      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25099      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25100      611949 :          pack_tmp = ISHFT(pack_tmp, 0)
   25101      611949 :          idata = idata + 1
   25102      611949 :          data_tmp = full_data(idata)
   25103             :          data_tmp = ISHFT(data_tmp, 30)
   25104      611949 :          data_tmp = IAND(data_tmp, mask_left(0))
   25105      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25106      611949 :          ipack = ipack + 1
   25107      611949 :          packed_data(ipack) = pack_tmp
   25108      611949 :          data_tmp = full_data(idata)
   25109      611949 :          pack_tmp = ISHFT(data_tmp, 30)
   25110      611949 :          pack_tmp = ISHFT(pack_tmp, -30)
   25111      611949 :          idata = idata + 1
   25112      611949 :          data_tmp = full_data(idata)
   25113      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25114      611949 :          data_tmp = IAND(data_tmp, mask_left(30))
   25115      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25116      611949 :          ipack = ipack + 1
   25117      611949 :          packed_data(ipack) = pack_tmp
   25118      611949 :          data_tmp = full_data(idata)
   25119      611949 :          pack_tmp = ISHFT(data_tmp, 60)
   25120      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   25121      611949 :          idata = idata + 1
   25122      611949 :          data_tmp = full_data(idata)
   25123      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25124      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25125      611949 :          pack_tmp = ISHFT(pack_tmp, -26)
   25126      611949 :          idata = idata + 1
   25127      611949 :          data_tmp = full_data(idata)
   25128      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25129      611949 :          data_tmp = IAND(data_tmp, mask_left(26))
   25130      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25131      611949 :          ipack = ipack + 1
   25132      611949 :          packed_data(ipack) = pack_tmp
   25133      611949 :          data_tmp = full_data(idata)
   25134      611949 :          pack_tmp = ISHFT(data_tmp, 56)
   25135      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   25136      611949 :          idata = idata + 1
   25137      611949 :          data_tmp = full_data(idata)
   25138      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25139      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25140      611949 :          pack_tmp = ISHFT(pack_tmp, -22)
   25141      611949 :          idata = idata + 1
   25142      611949 :          data_tmp = full_data(idata)
   25143      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25144      611949 :          data_tmp = IAND(data_tmp, mask_left(22))
   25145      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25146      611949 :          ipack = ipack + 1
   25147      611949 :          packed_data(ipack) = pack_tmp
   25148      611949 :          data_tmp = full_data(idata)
   25149      611949 :          pack_tmp = ISHFT(data_tmp, 52)
   25150      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   25151      611949 :          idata = idata + 1
   25152      611949 :          data_tmp = full_data(idata)
   25153      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25154      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25155      611949 :          pack_tmp = ISHFT(pack_tmp, -18)
   25156      611949 :          idata = idata + 1
   25157      611949 :          data_tmp = full_data(idata)
   25158      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25159      611949 :          data_tmp = IAND(data_tmp, mask_left(18))
   25160      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25161      611949 :          ipack = ipack + 1
   25162      611949 :          packed_data(ipack) = pack_tmp
   25163      611949 :          data_tmp = full_data(idata)
   25164      611949 :          pack_tmp = ISHFT(data_tmp, 48)
   25165      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   25166      611949 :          idata = idata + 1
   25167      611949 :          data_tmp = full_data(idata)
   25168      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25169      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25170      611949 :          pack_tmp = ISHFT(pack_tmp, -14)
   25171      611949 :          idata = idata + 1
   25172      611949 :          data_tmp = full_data(idata)
   25173      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25174      611949 :          data_tmp = IAND(data_tmp, mask_left(14))
   25175      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25176      611949 :          ipack = ipack + 1
   25177      611949 :          packed_data(ipack) = pack_tmp
   25178      611949 :          data_tmp = full_data(idata)
   25179      611949 :          pack_tmp = ISHFT(data_tmp, 44)
   25180      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   25181      611949 :          idata = idata + 1
   25182      611949 :          data_tmp = full_data(idata)
   25183      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25184      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25185      611949 :          pack_tmp = ISHFT(pack_tmp, -10)
   25186      611949 :          idata = idata + 1
   25187      611949 :          data_tmp = full_data(idata)
   25188      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25189      611949 :          data_tmp = IAND(data_tmp, mask_left(10))
   25190      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25191      611949 :          ipack = ipack + 1
   25192      611949 :          packed_data(ipack) = pack_tmp
   25193      611949 :          data_tmp = full_data(idata)
   25194      611949 :          pack_tmp = ISHFT(data_tmp, 40)
   25195      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   25196      611949 :          idata = idata + 1
   25197      611949 :          data_tmp = full_data(idata)
   25198      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25199      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25200      611949 :          pack_tmp = ISHFT(pack_tmp, -6)
   25201      611949 :          idata = idata + 1
   25202      611949 :          data_tmp = full_data(idata)
   25203      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25204      611949 :          data_tmp = IAND(data_tmp, mask_left(6))
   25205      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25206      611949 :          ipack = ipack + 1
   25207      611949 :          packed_data(ipack) = pack_tmp
   25208      611949 :          data_tmp = full_data(idata)
   25209      611949 :          pack_tmp = ISHFT(data_tmp, 36)
   25210      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   25211      611949 :          idata = idata + 1
   25212      611949 :          data_tmp = full_data(idata)
   25213      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25214      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25215      611949 :          pack_tmp = ISHFT(pack_tmp, -2)
   25216      611949 :          idata = idata + 1
   25217      611949 :          data_tmp = full_data(idata)
   25218      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25219      611949 :          data_tmp = IAND(data_tmp, mask_left(2))
   25220      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25221      611949 :          ipack = ipack + 1
   25222      611949 :          packed_data(ipack) = pack_tmp
   25223      611949 :          data_tmp = full_data(idata)
   25224      611949 :          pack_tmp = ISHFT(data_tmp, 32)
   25225      611949 :          pack_tmp = ISHFT(pack_tmp, -32)
   25226      611949 :          idata = idata + 1
   25227      611949 :          data_tmp = full_data(idata)
   25228      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25229      611949 :          data_tmp = IAND(data_tmp, mask_left(32))
   25230      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25231      611949 :          ipack = ipack + 1
   25232      611949 :          packed_data(ipack) = pack_tmp
   25233      611949 :          data_tmp = full_data(idata)
   25234      611949 :          pack_tmp = ISHFT(data_tmp, 62)
   25235      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   25236      611949 :          idata = idata + 1
   25237      611949 :          data_tmp = full_data(idata)
   25238      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25239      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25240      611949 :          pack_tmp = ISHFT(pack_tmp, -28)
   25241      611949 :          idata = idata + 1
   25242      611949 :          data_tmp = full_data(idata)
   25243      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25244      611949 :          data_tmp = IAND(data_tmp, mask_left(28))
   25245      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25246      611949 :          ipack = ipack + 1
   25247      611949 :          packed_data(ipack) = pack_tmp
   25248      611949 :          data_tmp = full_data(idata)
   25249      611949 :          pack_tmp = ISHFT(data_tmp, 58)
   25250      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   25251      611949 :          idata = idata + 1
   25252      611949 :          data_tmp = full_data(idata)
   25253      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25254      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25255      611949 :          pack_tmp = ISHFT(pack_tmp, -24)
   25256      611949 :          idata = idata + 1
   25257      611949 :          data_tmp = full_data(idata)
   25258      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25259      611949 :          data_tmp = IAND(data_tmp, mask_left(24))
   25260      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25261      611949 :          ipack = ipack + 1
   25262      611949 :          packed_data(ipack) = pack_tmp
   25263      611949 :          data_tmp = full_data(idata)
   25264      611949 :          pack_tmp = ISHFT(data_tmp, 54)
   25265      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   25266      611949 :          idata = idata + 1
   25267      611949 :          data_tmp = full_data(idata)
   25268      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25269      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25270      611949 :          pack_tmp = ISHFT(pack_tmp, -20)
   25271      611949 :          idata = idata + 1
   25272      611949 :          data_tmp = full_data(idata)
   25273      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25274      611949 :          data_tmp = IAND(data_tmp, mask_left(20))
   25275      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25276      611949 :          ipack = ipack + 1
   25277      611949 :          packed_data(ipack) = pack_tmp
   25278      611949 :          data_tmp = full_data(idata)
   25279      611949 :          pack_tmp = ISHFT(data_tmp, 50)
   25280      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   25281      611949 :          idata = idata + 1
   25282      611949 :          data_tmp = full_data(idata)
   25283      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25284      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25285      611949 :          pack_tmp = ISHFT(pack_tmp, -16)
   25286      611949 :          idata = idata + 1
   25287      611949 :          data_tmp = full_data(idata)
   25288      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25289      611949 :          data_tmp = IAND(data_tmp, mask_left(16))
   25290      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25291      611949 :          ipack = ipack + 1
   25292      611949 :          packed_data(ipack) = pack_tmp
   25293      611949 :          data_tmp = full_data(idata)
   25294      611949 :          pack_tmp = ISHFT(data_tmp, 46)
   25295      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   25296      611949 :          idata = idata + 1
   25297      611949 :          data_tmp = full_data(idata)
   25298      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25299      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25300      611949 :          pack_tmp = ISHFT(pack_tmp, -12)
   25301      611949 :          idata = idata + 1
   25302      611949 :          data_tmp = full_data(idata)
   25303      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25304      611949 :          data_tmp = IAND(data_tmp, mask_left(12))
   25305      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25306      611949 :          ipack = ipack + 1
   25307      611949 :          packed_data(ipack) = pack_tmp
   25308      611949 :          data_tmp = full_data(idata)
   25309      611949 :          pack_tmp = ISHFT(data_tmp, 42)
   25310      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   25311      611949 :          idata = idata + 1
   25312      611949 :          data_tmp = full_data(idata)
   25313      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25314      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25315      611949 :          pack_tmp = ISHFT(pack_tmp, -8)
   25316      611949 :          idata = idata + 1
   25317      611949 :          data_tmp = full_data(idata)
   25318      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25319      611949 :          data_tmp = IAND(data_tmp, mask_left(8))
   25320      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25321      611949 :          ipack = ipack + 1
   25322      611949 :          packed_data(ipack) = pack_tmp
   25323      611949 :          data_tmp = full_data(idata)
   25324      611949 :          pack_tmp = ISHFT(data_tmp, 38)
   25325      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   25326      611949 :          idata = idata + 1
   25327      611949 :          data_tmp = full_data(idata)
   25328      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25329      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25330      611949 :          pack_tmp = ISHFT(pack_tmp, -4)
   25331      611949 :          idata = idata + 1
   25332      611949 :          data_tmp = full_data(idata)
   25333      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25334      611949 :          data_tmp = IAND(data_tmp, mask_left(4))
   25335      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25336      611949 :          ipack = ipack + 1
   25337      611949 :          packed_data(ipack) = pack_tmp
   25338      611949 :          data_tmp = full_data(idata)
   25339      611949 :          pack_tmp = ISHFT(data_tmp, 34)
   25340      611949 :          pack_tmp = ISHFT(pack_tmp, -34)
   25341      611949 :          idata = idata + 1
   25342      611949 :          data_tmp = full_data(idata)
   25343      611949 :          data_tmp = ISHFT(data_tmp, 30)
   25344      611949 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25345             :          pack_tmp = ISHFT(pack_tmp, 0)
   25346      611949 :          pack_tmp = ISHFT(pack_tmp, 0)
   25347      611949 :          ipack = ipack + 1
   25348      612217 :          packed_data(ipack) = pack_tmp
   25349             :       END DO
   25350       46935 :       IF (Ndata_rep < Ndata) THEN
   25351       16102 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   25352             :       END IF
   25353       46935 :    END SUBROUTINE ints2bits_34
   25354             : 
   25355             : ! **************************************************************************************************
   25356             : !> \brief ...
   25357             : !> \param Ndata ...
   25358             : !> \param packed_data ...
   25359             : !> \param full_data ...
   25360             : ! **************************************************************************************************
   25361      218297 :    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      218297 :       ipack = 0
   25372      218297 :       idata = 0
   25373      218297 :       pack_tmp = 0
   25374      218297 :       Ndata_rep = (Ndata/64)*64
   25375      218297 :       DO kdata = 1, Ndata_rep, 64
   25376     2747934 :          idata = idata + 1
   25377     2747934 :          data_tmp = ISHFT(pack_tmp, 34)
   25378     2747934 :          ipack = ipack + 1
   25379     2747934 :          pack_tmp = packed_data(ipack)
   25380     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   25381     2747934 :          pack_tmp = ISHFT(pack_tmp, -34)
   25382     2747934 :          idata = idata + 1
   25383     2747934 :          data_tmp = ISHFT(pack_tmp, 4)
   25384     2747934 :          ipack = ipack + 1
   25385     2747934 :          pack_tmp = packed_data(ipack)
   25386     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   25387     2747934 :          pack_tmp = ISHFT(pack_tmp, -4)
   25388     2747934 :          idata = idata + 1
   25389     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25390     2747934 :          full_data(idata) = data_tmp
   25391     2747934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25392     2747934 :          idata = idata + 1
   25393     2747934 :          data_tmp = ISHFT(pack_tmp, 8)
   25394     2747934 :          ipack = ipack + 1
   25395     2747934 :          pack_tmp = packed_data(ipack)
   25396     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   25397     2747934 :          pack_tmp = ISHFT(pack_tmp, -8)
   25398     2747934 :          idata = idata + 1
   25399     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25400     2747934 :          full_data(idata) = data_tmp
   25401     2747934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25402     2747934 :          idata = idata + 1
   25403     2747934 :          data_tmp = ISHFT(pack_tmp, 12)
   25404     2747934 :          ipack = ipack + 1
   25405     2747934 :          pack_tmp = packed_data(ipack)
   25406     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   25407     2747934 :          pack_tmp = ISHFT(pack_tmp, -12)
   25408     2747934 :          idata = idata + 1
   25409     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25410     2747934 :          full_data(idata) = data_tmp
   25411     2747934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25412     2747934 :          idata = idata + 1
   25413     2747934 :          data_tmp = ISHFT(pack_tmp, 16)
   25414     2747934 :          ipack = ipack + 1
   25415     2747934 :          pack_tmp = packed_data(ipack)
   25416     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   25417     2747934 :          pack_tmp = ISHFT(pack_tmp, -16)
   25418     2747934 :          idata = idata + 1
   25419     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25420     2747934 :          full_data(idata) = data_tmp
   25421     2747934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25422     2747934 :          idata = idata + 1
   25423     2747934 :          data_tmp = ISHFT(pack_tmp, 20)
   25424     2747934 :          ipack = ipack + 1
   25425     2747934 :          pack_tmp = packed_data(ipack)
   25426     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   25427     2747934 :          pack_tmp = ISHFT(pack_tmp, -20)
   25428     2747934 :          idata = idata + 1
   25429     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25430     2747934 :          full_data(idata) = data_tmp
   25431     2747934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25432     2747934 :          idata = idata + 1
   25433     2747934 :          data_tmp = ISHFT(pack_tmp, 24)
   25434     2747934 :          ipack = ipack + 1
   25435     2747934 :          pack_tmp = packed_data(ipack)
   25436     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   25437     2747934 :          pack_tmp = ISHFT(pack_tmp, -24)
   25438     2747934 :          idata = idata + 1
   25439     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25440     2747934 :          full_data(idata) = data_tmp
   25441     2747934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25442     2747934 :          idata = idata + 1
   25443     2747934 :          data_tmp = ISHFT(pack_tmp, 28)
   25444     2747934 :          ipack = ipack + 1
   25445     2747934 :          pack_tmp = packed_data(ipack)
   25446     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   25447     2747934 :          pack_tmp = ISHFT(pack_tmp, -28)
   25448     2747934 :          idata = idata + 1
   25449     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25450     2747934 :          full_data(idata) = data_tmp
   25451     2747934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25452     2747934 :          idata = idata + 1
   25453     2747934 :          data_tmp = ISHFT(pack_tmp, 32)
   25454     2747934 :          ipack = ipack + 1
   25455     2747934 :          pack_tmp = packed_data(ipack)
   25456     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   25457     2747934 :          pack_tmp = ISHFT(pack_tmp, -32)
   25458     2747934 :          idata = idata + 1
   25459     2747934 :          data_tmp = ISHFT(pack_tmp, 2)
   25460     2747934 :          ipack = ipack + 1
   25461     2747934 :          pack_tmp = packed_data(ipack)
   25462     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   25463     2747934 :          pack_tmp = ISHFT(pack_tmp, -2)
   25464     2747934 :          idata = idata + 1
   25465     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25466     2747934 :          full_data(idata) = data_tmp
   25467     2747934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25468     2747934 :          idata = idata + 1
   25469     2747934 :          data_tmp = ISHFT(pack_tmp, 6)
   25470     2747934 :          ipack = ipack + 1
   25471     2747934 :          pack_tmp = packed_data(ipack)
   25472     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   25473     2747934 :          pack_tmp = ISHFT(pack_tmp, -6)
   25474     2747934 :          idata = idata + 1
   25475     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25476     2747934 :          full_data(idata) = data_tmp
   25477     2747934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25478     2747934 :          idata = idata + 1
   25479     2747934 :          data_tmp = ISHFT(pack_tmp, 10)
   25480     2747934 :          ipack = ipack + 1
   25481     2747934 :          pack_tmp = packed_data(ipack)
   25482     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   25483     2747934 :          pack_tmp = ISHFT(pack_tmp, -10)
   25484     2747934 :          idata = idata + 1
   25485     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25486     2747934 :          full_data(idata) = data_tmp
   25487     2747934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25488     2747934 :          idata = idata + 1
   25489     2747934 :          data_tmp = ISHFT(pack_tmp, 14)
   25490     2747934 :          ipack = ipack + 1
   25491     2747934 :          pack_tmp = packed_data(ipack)
   25492     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   25493     2747934 :          pack_tmp = ISHFT(pack_tmp, -14)
   25494     2747934 :          idata = idata + 1
   25495     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25496     2747934 :          full_data(idata) = data_tmp
   25497     2747934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25498     2747934 :          idata = idata + 1
   25499     2747934 :          data_tmp = ISHFT(pack_tmp, 18)
   25500     2747934 :          ipack = ipack + 1
   25501     2747934 :          pack_tmp = packed_data(ipack)
   25502     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   25503     2747934 :          pack_tmp = ISHFT(pack_tmp, -18)
   25504     2747934 :          idata = idata + 1
   25505     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25506     2747934 :          full_data(idata) = data_tmp
   25507     2747934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25508     2747934 :          idata = idata + 1
   25509     2747934 :          data_tmp = ISHFT(pack_tmp, 22)
   25510     2747934 :          ipack = ipack + 1
   25511     2747934 :          pack_tmp = packed_data(ipack)
   25512     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   25513     2747934 :          pack_tmp = ISHFT(pack_tmp, -22)
   25514     2747934 :          idata = idata + 1
   25515     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25516     2747934 :          full_data(idata) = data_tmp
   25517     2747934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25518     2747934 :          idata = idata + 1
   25519     2747934 :          data_tmp = ISHFT(pack_tmp, 26)
   25520     2747934 :          ipack = ipack + 1
   25521     2747934 :          pack_tmp = packed_data(ipack)
   25522     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   25523     2747934 :          pack_tmp = ISHFT(pack_tmp, -26)
   25524     2747934 :          idata = idata + 1
   25525     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25526     2747934 :          full_data(idata) = data_tmp
   25527     2747934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25528     2747934 :          idata = idata + 1
   25529     2747934 :          data_tmp = ISHFT(pack_tmp, 30)
   25530     2747934 :          ipack = ipack + 1
   25531     2747934 :          pack_tmp = packed_data(ipack)
   25532     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   25533     2747934 :          pack_tmp = ISHFT(pack_tmp, -30)
   25534     2747934 :          idata = idata + 1
   25535     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25536     2747934 :          full_data(idata) = data_tmp
   25537     2747934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25538     2747934 :          idata = idata + 1
   25539     2747934 :          data_tmp = ISHFT(pack_tmp, 34)
   25540     2747934 :          ipack = ipack + 1
   25541     2747934 :          pack_tmp = packed_data(ipack)
   25542     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   25543     2747934 :          pack_tmp = ISHFT(pack_tmp, -34)
   25544     2747934 :          idata = idata + 1
   25545     2747934 :          data_tmp = ISHFT(pack_tmp, 4)
   25546     2747934 :          ipack = ipack + 1
   25547     2747934 :          pack_tmp = packed_data(ipack)
   25548     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   25549     2747934 :          pack_tmp = ISHFT(pack_tmp, -4)
   25550     2747934 :          idata = idata + 1
   25551     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25552     2747934 :          full_data(idata) = data_tmp
   25553     2747934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25554     2747934 :          idata = idata + 1
   25555     2747934 :          data_tmp = ISHFT(pack_tmp, 8)
   25556     2747934 :          ipack = ipack + 1
   25557     2747934 :          pack_tmp = packed_data(ipack)
   25558     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   25559     2747934 :          pack_tmp = ISHFT(pack_tmp, -8)
   25560     2747934 :          idata = idata + 1
   25561     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25562     2747934 :          full_data(idata) = data_tmp
   25563     2747934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25564     2747934 :          idata = idata + 1
   25565     2747934 :          data_tmp = ISHFT(pack_tmp, 12)
   25566     2747934 :          ipack = ipack + 1
   25567     2747934 :          pack_tmp = packed_data(ipack)
   25568     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   25569     2747934 :          pack_tmp = ISHFT(pack_tmp, -12)
   25570     2747934 :          idata = idata + 1
   25571     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25572     2747934 :          full_data(idata) = data_tmp
   25573     2747934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25574     2747934 :          idata = idata + 1
   25575     2747934 :          data_tmp = ISHFT(pack_tmp, 16)
   25576     2747934 :          ipack = ipack + 1
   25577     2747934 :          pack_tmp = packed_data(ipack)
   25578     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   25579     2747934 :          pack_tmp = ISHFT(pack_tmp, -16)
   25580     2747934 :          idata = idata + 1
   25581     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25582     2747934 :          full_data(idata) = data_tmp
   25583     2747934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25584     2747934 :          idata = idata + 1
   25585     2747934 :          data_tmp = ISHFT(pack_tmp, 20)
   25586     2747934 :          ipack = ipack + 1
   25587     2747934 :          pack_tmp = packed_data(ipack)
   25588     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   25589     2747934 :          pack_tmp = ISHFT(pack_tmp, -20)
   25590     2747934 :          idata = idata + 1
   25591     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25592     2747934 :          full_data(idata) = data_tmp
   25593     2747934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25594     2747934 :          idata = idata + 1
   25595     2747934 :          data_tmp = ISHFT(pack_tmp, 24)
   25596     2747934 :          ipack = ipack + 1
   25597     2747934 :          pack_tmp = packed_data(ipack)
   25598     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   25599     2747934 :          pack_tmp = ISHFT(pack_tmp, -24)
   25600     2747934 :          idata = idata + 1
   25601     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25602     2747934 :          full_data(idata) = data_tmp
   25603     2747934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25604     2747934 :          idata = idata + 1
   25605     2747934 :          data_tmp = ISHFT(pack_tmp, 28)
   25606     2747934 :          ipack = ipack + 1
   25607     2747934 :          pack_tmp = packed_data(ipack)
   25608     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   25609     2747934 :          pack_tmp = ISHFT(pack_tmp, -28)
   25610     2747934 :          idata = idata + 1
   25611     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25612     2747934 :          full_data(idata) = data_tmp
   25613     2747934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25614     2747934 :          idata = idata + 1
   25615     2747934 :          data_tmp = ISHFT(pack_tmp, 32)
   25616     2747934 :          ipack = ipack + 1
   25617     2747934 :          pack_tmp = packed_data(ipack)
   25618     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   25619     2747934 :          pack_tmp = ISHFT(pack_tmp, -32)
   25620     2747934 :          idata = idata + 1
   25621     2747934 :          data_tmp = ISHFT(pack_tmp, 2)
   25622     2747934 :          ipack = ipack + 1
   25623     2747934 :          pack_tmp = packed_data(ipack)
   25624     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   25625     2747934 :          pack_tmp = ISHFT(pack_tmp, -2)
   25626     2747934 :          idata = idata + 1
   25627     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25628     2747934 :          full_data(idata) = data_tmp
   25629     2747934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25630     2747934 :          idata = idata + 1
   25631     2747934 :          data_tmp = ISHFT(pack_tmp, 6)
   25632     2747934 :          ipack = ipack + 1
   25633     2747934 :          pack_tmp = packed_data(ipack)
   25634     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   25635     2747934 :          pack_tmp = ISHFT(pack_tmp, -6)
   25636     2747934 :          idata = idata + 1
   25637     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25638     2747934 :          full_data(idata) = data_tmp
   25639     2747934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25640     2747934 :          idata = idata + 1
   25641     2747934 :          data_tmp = ISHFT(pack_tmp, 10)
   25642     2747934 :          ipack = ipack + 1
   25643     2747934 :          pack_tmp = packed_data(ipack)
   25644     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   25645     2747934 :          pack_tmp = ISHFT(pack_tmp, -10)
   25646     2747934 :          idata = idata + 1
   25647     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25648     2747934 :          full_data(idata) = data_tmp
   25649     2747934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25650     2747934 :          idata = idata + 1
   25651     2747934 :          data_tmp = ISHFT(pack_tmp, 14)
   25652     2747934 :          ipack = ipack + 1
   25653     2747934 :          pack_tmp = packed_data(ipack)
   25654     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   25655     2747934 :          pack_tmp = ISHFT(pack_tmp, -14)
   25656     2747934 :          idata = idata + 1
   25657     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25658     2747934 :          full_data(idata) = data_tmp
   25659     2747934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25660     2747934 :          idata = idata + 1
   25661     2747934 :          data_tmp = ISHFT(pack_tmp, 18)
   25662     2747934 :          ipack = ipack + 1
   25663     2747934 :          pack_tmp = packed_data(ipack)
   25664     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   25665     2747934 :          pack_tmp = ISHFT(pack_tmp, -18)
   25666     2747934 :          idata = idata + 1
   25667     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25668     2747934 :          full_data(idata) = data_tmp
   25669     2747934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25670     2747934 :          idata = idata + 1
   25671     2747934 :          data_tmp = ISHFT(pack_tmp, 22)
   25672     2747934 :          ipack = ipack + 1
   25673     2747934 :          pack_tmp = packed_data(ipack)
   25674     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   25675     2747934 :          pack_tmp = ISHFT(pack_tmp, -22)
   25676     2747934 :          idata = idata + 1
   25677     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25678     2747934 :          full_data(idata) = data_tmp
   25679     2747934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25680     2747934 :          idata = idata + 1
   25681     2747934 :          data_tmp = ISHFT(pack_tmp, 26)
   25682     2747934 :          ipack = ipack + 1
   25683     2747934 :          pack_tmp = packed_data(ipack)
   25684     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   25685     2747934 :          pack_tmp = ISHFT(pack_tmp, -26)
   25686     2747934 :          idata = idata + 1
   25687     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25688     2747934 :          full_data(idata) = data_tmp
   25689     2747934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25690     2747934 :          idata = idata + 1
   25691     2747934 :          data_tmp = ISHFT(pack_tmp, 30)
   25692     2747934 :          ipack = ipack + 1
   25693     2747934 :          pack_tmp = packed_data(ipack)
   25694     2747934 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   25695     2747934 :          pack_tmp = ISHFT(pack_tmp, -30)
   25696     2747934 :          idata = idata + 1
   25697     2747934 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25698     2747934 :          full_data(idata) = data_tmp
   25699     2749120 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25700             :       END DO
   25701      218297 :       IF (Ndata_rep < Ndata) THEN
   25702       86244 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   25703             :       END IF
   25704      218297 :    END SUBROUTINE bits2ints_34
   25705             : 
   25706             : ! **************************************************************************************************
   25707             : !> \brief ...
   25708             : !> \param Ndata ...
   25709             : !> \param packed_data ...
   25710             : !> \param full_data ...
   25711             : ! **************************************************************************************************
   25712       47204 :    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       47204 :       idata = 0
   25723       47204 :       ipack = 0
   25724       47204 :       Ndata_rep = (Ndata/64)*64
   25725       47204 :       DO kdata = 1, Ndata_rep, 64
   25726      605858 :          pack_tmp = 0
   25727      605858 :          idata = idata + 1
   25728      605858 :          data_tmp = full_data(idata)
   25729      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25730      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25731      605858 :          pack_tmp = ISHFT(pack_tmp, -29)
   25732      605858 :          idata = idata + 1
   25733      605858 :          data_tmp = full_data(idata)
   25734      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25735      605858 :          data_tmp = IAND(data_tmp, mask_left(29))
   25736      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25737      605858 :          ipack = ipack + 1
   25738      605858 :          packed_data(ipack) = pack_tmp
   25739      605858 :          data_tmp = full_data(idata)
   25740      605858 :          pack_tmp = ISHFT(data_tmp, 58)
   25741      605858 :          pack_tmp = ISHFT(pack_tmp, -35)
   25742      605858 :          idata = idata + 1
   25743      605858 :          data_tmp = full_data(idata)
   25744      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25745      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25746      605858 :          pack_tmp = ISHFT(pack_tmp, -23)
   25747      605858 :          idata = idata + 1
   25748      605858 :          data_tmp = full_data(idata)
   25749      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25750      605858 :          data_tmp = IAND(data_tmp, mask_left(23))
   25751      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25752      605858 :          ipack = ipack + 1
   25753      605858 :          packed_data(ipack) = pack_tmp
   25754      605858 :          data_tmp = full_data(idata)
   25755      605858 :          pack_tmp = ISHFT(data_tmp, 52)
   25756      605858 :          pack_tmp = ISHFT(pack_tmp, -35)
   25757      605858 :          idata = idata + 1
   25758      605858 :          data_tmp = full_data(idata)
   25759      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25760      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25761      605858 :          pack_tmp = ISHFT(pack_tmp, -17)
   25762      605858 :          idata = idata + 1
   25763      605858 :          data_tmp = full_data(idata)
   25764      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25765      605858 :          data_tmp = IAND(data_tmp, mask_left(17))
   25766      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25767      605858 :          ipack = ipack + 1
   25768      605858 :          packed_data(ipack) = pack_tmp
   25769      605858 :          data_tmp = full_data(idata)
   25770      605858 :          pack_tmp = ISHFT(data_tmp, 46)
   25771      605858 :          pack_tmp = ISHFT(pack_tmp, -35)
   25772      605858 :          idata = idata + 1
   25773      605858 :          data_tmp = full_data(idata)
   25774      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25775      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25776      605858 :          pack_tmp = ISHFT(pack_tmp, -11)
   25777      605858 :          idata = idata + 1
   25778      605858 :          data_tmp = full_data(idata)
   25779      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25780      605858 :          data_tmp = IAND(data_tmp, mask_left(11))
   25781      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25782      605858 :          ipack = ipack + 1
   25783      605858 :          packed_data(ipack) = pack_tmp
   25784      605858 :          data_tmp = full_data(idata)
   25785      605858 :          pack_tmp = ISHFT(data_tmp, 40)
   25786      605858 :          pack_tmp = ISHFT(pack_tmp, -35)
   25787      605858 :          idata = idata + 1
   25788      605858 :          data_tmp = full_data(idata)
   25789      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25790      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25791      605858 :          pack_tmp = ISHFT(pack_tmp, -5)
   25792      605858 :          idata = idata + 1
   25793      605858 :          data_tmp = full_data(idata)
   25794      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25795      605858 :          data_tmp = IAND(data_tmp, mask_left(5))
   25796      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25797      605858 :          ipack = ipack + 1
   25798      605858 :          packed_data(ipack) = pack_tmp
   25799      605858 :          data_tmp = full_data(idata)
   25800      605858 :          pack_tmp = ISHFT(data_tmp, 34)
   25801      605858 :          pack_tmp = ISHFT(pack_tmp, -34)
   25802      605858 :          idata = idata + 1
   25803      605858 :          data_tmp = full_data(idata)
   25804      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25805      605858 :          data_tmp = IAND(data_tmp, mask_left(34))
   25806      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25807      605858 :          ipack = ipack + 1
   25808      605858 :          packed_data(ipack) = pack_tmp
   25809      605858 :          data_tmp = full_data(idata)
   25810      605858 :          pack_tmp = ISHFT(data_tmp, 63)
   25811      605858 :          pack_tmp = ISHFT(pack_tmp, -35)
   25812      605858 :          idata = idata + 1
   25813      605858 :          data_tmp = full_data(idata)
   25814      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25815      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25816      605858 :          pack_tmp = ISHFT(pack_tmp, -28)
   25817      605858 :          idata = idata + 1
   25818      605858 :          data_tmp = full_data(idata)
   25819      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25820      605858 :          data_tmp = IAND(data_tmp, mask_left(28))
   25821      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25822      605858 :          ipack = ipack + 1
   25823      605858 :          packed_data(ipack) = pack_tmp
   25824      605858 :          data_tmp = full_data(idata)
   25825      605858 :          pack_tmp = ISHFT(data_tmp, 57)
   25826      605858 :          pack_tmp = ISHFT(pack_tmp, -35)
   25827      605858 :          idata = idata + 1
   25828      605858 :          data_tmp = full_data(idata)
   25829      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25830      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25831      605858 :          pack_tmp = ISHFT(pack_tmp, -22)
   25832      605858 :          idata = idata + 1
   25833      605858 :          data_tmp = full_data(idata)
   25834      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25835      605858 :          data_tmp = IAND(data_tmp, mask_left(22))
   25836      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25837      605858 :          ipack = ipack + 1
   25838      605858 :          packed_data(ipack) = pack_tmp
   25839      605858 :          data_tmp = full_data(idata)
   25840      605858 :          pack_tmp = ISHFT(data_tmp, 51)
   25841      605858 :          pack_tmp = ISHFT(pack_tmp, -35)
   25842      605858 :          idata = idata + 1
   25843      605858 :          data_tmp = full_data(idata)
   25844      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25845      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25846      605858 :          pack_tmp = ISHFT(pack_tmp, -16)
   25847      605858 :          idata = idata + 1
   25848      605858 :          data_tmp = full_data(idata)
   25849      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25850      605858 :          data_tmp = IAND(data_tmp, mask_left(16))
   25851      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25852      605858 :          ipack = ipack + 1
   25853      605858 :          packed_data(ipack) = pack_tmp
   25854      605858 :          data_tmp = full_data(idata)
   25855      605858 :          pack_tmp = ISHFT(data_tmp, 45)
   25856      605858 :          pack_tmp = ISHFT(pack_tmp, -35)
   25857      605858 :          idata = idata + 1
   25858      605858 :          data_tmp = full_data(idata)
   25859      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25860      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25861      605858 :          pack_tmp = ISHFT(pack_tmp, -10)
   25862      605858 :          idata = idata + 1
   25863      605858 :          data_tmp = full_data(idata)
   25864      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25865      605858 :          data_tmp = IAND(data_tmp, mask_left(10))
   25866      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25867      605858 :          ipack = ipack + 1
   25868      605858 :          packed_data(ipack) = pack_tmp
   25869      605858 :          data_tmp = full_data(idata)
   25870      605858 :          pack_tmp = ISHFT(data_tmp, 39)
   25871      605858 :          pack_tmp = ISHFT(pack_tmp, -35)
   25872      605858 :          idata = idata + 1
   25873      605858 :          data_tmp = full_data(idata)
   25874      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25875      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25876      605858 :          pack_tmp = ISHFT(pack_tmp, -4)
   25877      605858 :          idata = idata + 1
   25878      605858 :          data_tmp = full_data(idata)
   25879      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25880      605858 :          data_tmp = IAND(data_tmp, mask_left(4))
   25881      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25882      605858 :          ipack = ipack + 1
   25883      605858 :          packed_data(ipack) = pack_tmp
   25884      605858 :          data_tmp = full_data(idata)
   25885      605858 :          pack_tmp = ISHFT(data_tmp, 33)
   25886      605858 :          pack_tmp = ISHFT(pack_tmp, -33)
   25887      605858 :          idata = idata + 1
   25888      605858 :          data_tmp = full_data(idata)
   25889      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25890      605858 :          data_tmp = IAND(data_tmp, mask_left(33))
   25891      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25892      605858 :          ipack = ipack + 1
   25893      605858 :          packed_data(ipack) = pack_tmp
   25894      605858 :          data_tmp = full_data(idata)
   25895      605858 :          pack_tmp = ISHFT(data_tmp, 62)
   25896      605858 :          pack_tmp = ISHFT(pack_tmp, -35)
   25897      605858 :          idata = idata + 1
   25898      605858 :          data_tmp = full_data(idata)
   25899      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25900      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25901      605858 :          pack_tmp = ISHFT(pack_tmp, -27)
   25902      605858 :          idata = idata + 1
   25903      605858 :          data_tmp = full_data(idata)
   25904      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25905      605858 :          data_tmp = IAND(data_tmp, mask_left(27))
   25906      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25907      605858 :          ipack = ipack + 1
   25908      605858 :          packed_data(ipack) = pack_tmp
   25909      605858 :          data_tmp = full_data(idata)
   25910      605858 :          pack_tmp = ISHFT(data_tmp, 56)
   25911      605858 :          pack_tmp = ISHFT(pack_tmp, -35)
   25912      605858 :          idata = idata + 1
   25913      605858 :          data_tmp = full_data(idata)
   25914      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25915      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25916      605858 :          pack_tmp = ISHFT(pack_tmp, -21)
   25917      605858 :          idata = idata + 1
   25918      605858 :          data_tmp = full_data(idata)
   25919      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25920      605858 :          data_tmp = IAND(data_tmp, mask_left(21))
   25921      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25922      605858 :          ipack = ipack + 1
   25923      605858 :          packed_data(ipack) = pack_tmp
   25924      605858 :          data_tmp = full_data(idata)
   25925      605858 :          pack_tmp = ISHFT(data_tmp, 50)
   25926      605858 :          pack_tmp = ISHFT(pack_tmp, -35)
   25927      605858 :          idata = idata + 1
   25928      605858 :          data_tmp = full_data(idata)
   25929      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25930      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25931      605858 :          pack_tmp = ISHFT(pack_tmp, -15)
   25932      605858 :          idata = idata + 1
   25933      605858 :          data_tmp = full_data(idata)
   25934      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25935      605858 :          data_tmp = IAND(data_tmp, mask_left(15))
   25936      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25937      605858 :          ipack = ipack + 1
   25938      605858 :          packed_data(ipack) = pack_tmp
   25939      605858 :          data_tmp = full_data(idata)
   25940      605858 :          pack_tmp = ISHFT(data_tmp, 44)
   25941      605858 :          pack_tmp = ISHFT(pack_tmp, -35)
   25942      605858 :          idata = idata + 1
   25943      605858 :          data_tmp = full_data(idata)
   25944      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25945      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25946      605858 :          pack_tmp = ISHFT(pack_tmp, -9)
   25947      605858 :          idata = idata + 1
   25948      605858 :          data_tmp = full_data(idata)
   25949      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25950      605858 :          data_tmp = IAND(data_tmp, mask_left(9))
   25951      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25952      605858 :          ipack = ipack + 1
   25953      605858 :          packed_data(ipack) = pack_tmp
   25954      605858 :          data_tmp = full_data(idata)
   25955      605858 :          pack_tmp = ISHFT(data_tmp, 38)
   25956      605858 :          pack_tmp = ISHFT(pack_tmp, -35)
   25957      605858 :          idata = idata + 1
   25958      605858 :          data_tmp = full_data(idata)
   25959      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25960      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25961      605858 :          pack_tmp = ISHFT(pack_tmp, -3)
   25962      605858 :          idata = idata + 1
   25963      605858 :          data_tmp = full_data(idata)
   25964      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25965      605858 :          data_tmp = IAND(data_tmp, mask_left(3))
   25966      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25967      605858 :          ipack = ipack + 1
   25968      605858 :          packed_data(ipack) = pack_tmp
   25969      605858 :          data_tmp = full_data(idata)
   25970      605858 :          pack_tmp = ISHFT(data_tmp, 32)
   25971      605858 :          pack_tmp = ISHFT(pack_tmp, -32)
   25972      605858 :          idata = idata + 1
   25973      605858 :          data_tmp = full_data(idata)
   25974      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25975      605858 :          data_tmp = IAND(data_tmp, mask_left(32))
   25976      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25977      605858 :          ipack = ipack + 1
   25978      605858 :          packed_data(ipack) = pack_tmp
   25979      605858 :          data_tmp = full_data(idata)
   25980      605858 :          pack_tmp = ISHFT(data_tmp, 61)
   25981      605858 :          pack_tmp = ISHFT(pack_tmp, -35)
   25982      605858 :          idata = idata + 1
   25983      605858 :          data_tmp = full_data(idata)
   25984      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25985      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25986      605858 :          pack_tmp = ISHFT(pack_tmp, -26)
   25987      605858 :          idata = idata + 1
   25988      605858 :          data_tmp = full_data(idata)
   25989      605858 :          data_tmp = ISHFT(data_tmp, 29)
   25990      605858 :          data_tmp = IAND(data_tmp, mask_left(26))
   25991      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25992      605858 :          ipack = ipack + 1
   25993      605858 :          packed_data(ipack) = pack_tmp
   25994      605858 :          data_tmp = full_data(idata)
   25995      605858 :          pack_tmp = ISHFT(data_tmp, 55)
   25996      605858 :          pack_tmp = ISHFT(pack_tmp, -35)
   25997      605858 :          idata = idata + 1
   25998      605858 :          data_tmp = full_data(idata)
   25999      605858 :          data_tmp = ISHFT(data_tmp, 29)
   26000      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26001      605858 :          pack_tmp = ISHFT(pack_tmp, -20)
   26002      605858 :          idata = idata + 1
   26003      605858 :          data_tmp = full_data(idata)
   26004      605858 :          data_tmp = ISHFT(data_tmp, 29)
   26005      605858 :          data_tmp = IAND(data_tmp, mask_left(20))
   26006      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26007      605858 :          ipack = ipack + 1
   26008      605858 :          packed_data(ipack) = pack_tmp
   26009      605858 :          data_tmp = full_data(idata)
   26010      605858 :          pack_tmp = ISHFT(data_tmp, 49)
   26011      605858 :          pack_tmp = ISHFT(pack_tmp, -35)
   26012      605858 :          idata = idata + 1
   26013      605858 :          data_tmp = full_data(idata)
   26014      605858 :          data_tmp = ISHFT(data_tmp, 29)
   26015      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26016      605858 :          pack_tmp = ISHFT(pack_tmp, -14)
   26017      605858 :          idata = idata + 1
   26018      605858 :          data_tmp = full_data(idata)
   26019      605858 :          data_tmp = ISHFT(data_tmp, 29)
   26020      605858 :          data_tmp = IAND(data_tmp, mask_left(14))
   26021      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26022      605858 :          ipack = ipack + 1
   26023      605858 :          packed_data(ipack) = pack_tmp
   26024      605858 :          data_tmp = full_data(idata)
   26025      605858 :          pack_tmp = ISHFT(data_tmp, 43)
   26026      605858 :          pack_tmp = ISHFT(pack_tmp, -35)
   26027      605858 :          idata = idata + 1
   26028      605858 :          data_tmp = full_data(idata)
   26029      605858 :          data_tmp = ISHFT(data_tmp, 29)
   26030      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26031      605858 :          pack_tmp = ISHFT(pack_tmp, -8)
   26032      605858 :          idata = idata + 1
   26033      605858 :          data_tmp = full_data(idata)
   26034      605858 :          data_tmp = ISHFT(data_tmp, 29)
   26035      605858 :          data_tmp = IAND(data_tmp, mask_left(8))
   26036      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26037      605858 :          ipack = ipack + 1
   26038      605858 :          packed_data(ipack) = pack_tmp
   26039      605858 :          data_tmp = full_data(idata)
   26040      605858 :          pack_tmp = ISHFT(data_tmp, 37)
   26041      605858 :          pack_tmp = ISHFT(pack_tmp, -35)
   26042      605858 :          idata = idata + 1
   26043      605858 :          data_tmp = full_data(idata)
   26044      605858 :          data_tmp = ISHFT(data_tmp, 29)
   26045      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26046      605858 :          pack_tmp = ISHFT(pack_tmp, -2)
   26047      605858 :          idata = idata + 1
   26048      605858 :          data_tmp = full_data(idata)
   26049      605858 :          data_tmp = ISHFT(data_tmp, 29)
   26050      605858 :          data_tmp = IAND(data_tmp, mask_left(2))
   26051      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26052      605858 :          ipack = ipack + 1
   26053      605858 :          packed_data(ipack) = pack_tmp
   26054      605858 :          data_tmp = full_data(idata)
   26055      605858 :          pack_tmp = ISHFT(data_tmp, 31)
   26056      605858 :          pack_tmp = ISHFT(pack_tmp, -31)
   26057      605858 :          idata = idata + 1
   26058      605858 :          data_tmp = full_data(idata)
   26059      605858 :          data_tmp = ISHFT(data_tmp, 29)
   26060      605858 :          data_tmp = IAND(data_tmp, mask_left(31))
   26061      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26062      605858 :          ipack = ipack + 1
   26063      605858 :          packed_data(ipack) = pack_tmp
   26064      605858 :          data_tmp = full_data(idata)
   26065      605858 :          pack_tmp = ISHFT(data_tmp, 60)
   26066      605858 :          pack_tmp = ISHFT(pack_tmp, -35)
   26067      605858 :          idata = idata + 1
   26068      605858 :          data_tmp = full_data(idata)
   26069      605858 :          data_tmp = ISHFT(data_tmp, 29)
   26070      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26071      605858 :          pack_tmp = ISHFT(pack_tmp, -25)
   26072      605858 :          idata = idata + 1
   26073      605858 :          data_tmp = full_data(idata)
   26074      605858 :          data_tmp = ISHFT(data_tmp, 29)
   26075      605858 :          data_tmp = IAND(data_tmp, mask_left(25))
   26076      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26077      605858 :          ipack = ipack + 1
   26078      605858 :          packed_data(ipack) = pack_tmp
   26079      605858 :          data_tmp = full_data(idata)
   26080      605858 :          pack_tmp = ISHFT(data_tmp, 54)
   26081      605858 :          pack_tmp = ISHFT(pack_tmp, -35)
   26082      605858 :          idata = idata + 1
   26083      605858 :          data_tmp = full_data(idata)
   26084      605858 :          data_tmp = ISHFT(data_tmp, 29)
   26085      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26086      605858 :          pack_tmp = ISHFT(pack_tmp, -19)
   26087      605858 :          idata = idata + 1
   26088      605858 :          data_tmp = full_data(idata)
   26089      605858 :          data_tmp = ISHFT(data_tmp, 29)
   26090      605858 :          data_tmp = IAND(data_tmp, mask_left(19))
   26091      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26092      605858 :          ipack = ipack + 1
   26093      605858 :          packed_data(ipack) = pack_tmp
   26094      605858 :          data_tmp = full_data(idata)
   26095      605858 :          pack_tmp = ISHFT(data_tmp, 48)
   26096      605858 :          pack_tmp = ISHFT(pack_tmp, -35)
   26097      605858 :          idata = idata + 1
   26098      605858 :          data_tmp = full_data(idata)
   26099      605858 :          data_tmp = ISHFT(data_tmp, 29)
   26100      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26101      605858 :          pack_tmp = ISHFT(pack_tmp, -13)
   26102      605858 :          idata = idata + 1
   26103      605858 :          data_tmp = full_data(idata)
   26104      605858 :          data_tmp = ISHFT(data_tmp, 29)
   26105      605858 :          data_tmp = IAND(data_tmp, mask_left(13))
   26106      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26107      605858 :          ipack = ipack + 1
   26108      605858 :          packed_data(ipack) = pack_tmp
   26109      605858 :          data_tmp = full_data(idata)
   26110      605858 :          pack_tmp = ISHFT(data_tmp, 42)
   26111      605858 :          pack_tmp = ISHFT(pack_tmp, -35)
   26112      605858 :          idata = idata + 1
   26113      605858 :          data_tmp = full_data(idata)
   26114      605858 :          data_tmp = ISHFT(data_tmp, 29)
   26115      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26116      605858 :          pack_tmp = ISHFT(pack_tmp, -7)
   26117      605858 :          idata = idata + 1
   26118      605858 :          data_tmp = full_data(idata)
   26119      605858 :          data_tmp = ISHFT(data_tmp, 29)
   26120      605858 :          data_tmp = IAND(data_tmp, mask_left(7))
   26121      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26122      605858 :          ipack = ipack + 1
   26123      605858 :          packed_data(ipack) = pack_tmp
   26124      605858 :          data_tmp = full_data(idata)
   26125      605858 :          pack_tmp = ISHFT(data_tmp, 36)
   26126      605858 :          pack_tmp = ISHFT(pack_tmp, -35)
   26127      605858 :          idata = idata + 1
   26128      605858 :          data_tmp = full_data(idata)
   26129      605858 :          data_tmp = ISHFT(data_tmp, 29)
   26130      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26131      605858 :          pack_tmp = ISHFT(pack_tmp, -1)
   26132      605858 :          idata = idata + 1
   26133      605858 :          data_tmp = full_data(idata)
   26134      605858 :          data_tmp = ISHFT(data_tmp, 29)
   26135      605858 :          data_tmp = IAND(data_tmp, mask_left(1))
   26136      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26137      605858 :          ipack = ipack + 1
   26138      605858 :          packed_data(ipack) = pack_tmp
   26139      605858 :          data_tmp = full_data(idata)
   26140      605858 :          pack_tmp = ISHFT(data_tmp, 30)
   26141      605858 :          pack_tmp = ISHFT(pack_tmp, -30)
   26142      605858 :          idata = idata + 1
   26143      605858 :          data_tmp = full_data(idata)
   26144      605858 :          data_tmp = ISHFT(data_tmp, 29)
   26145      605858 :          data_tmp = IAND(data_tmp, mask_left(30))
   26146      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26147      605858 :          ipack = ipack + 1
   26148      605858 :          packed_data(ipack) = pack_tmp
   26149      605858 :          data_tmp = full_data(idata)
   26150      605858 :          pack_tmp = ISHFT(data_tmp, 59)
   26151      605858 :          pack_tmp = ISHFT(pack_tmp, -35)
   26152      605858 :          idata = idata + 1
   26153      605858 :          data_tmp = full_data(idata)
   26154      605858 :          data_tmp = ISHFT(data_tmp, 29)
   26155      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26156      605858 :          pack_tmp = ISHFT(pack_tmp, -24)
   26157      605858 :          idata = idata + 1
   26158      605858 :          data_tmp = full_data(idata)
   26159      605858 :          data_tmp = ISHFT(data_tmp, 29)
   26160      605858 :          data_tmp = IAND(data_tmp, mask_left(24))
   26161      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26162      605858 :          ipack = ipack + 1
   26163      605858 :          packed_data(ipack) = pack_tmp
   26164      605858 :          data_tmp = full_data(idata)
   26165      605858 :          pack_tmp = ISHFT(data_tmp, 53)
   26166      605858 :          pack_tmp = ISHFT(pack_tmp, -35)
   26167      605858 :          idata = idata + 1
   26168      605858 :          data_tmp = full_data(idata)
   26169      605858 :          data_tmp = ISHFT(data_tmp, 29)
   26170      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26171      605858 :          pack_tmp = ISHFT(pack_tmp, -18)
   26172      605858 :          idata = idata + 1
   26173      605858 :          data_tmp = full_data(idata)
   26174      605858 :          data_tmp = ISHFT(data_tmp, 29)
   26175      605858 :          data_tmp = IAND(data_tmp, mask_left(18))
   26176      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26177      605858 :          ipack = ipack + 1
   26178      605858 :          packed_data(ipack) = pack_tmp
   26179      605858 :          data_tmp = full_data(idata)
   26180      605858 :          pack_tmp = ISHFT(data_tmp, 47)
   26181      605858 :          pack_tmp = ISHFT(pack_tmp, -35)
   26182      605858 :          idata = idata + 1
   26183      605858 :          data_tmp = full_data(idata)
   26184      605858 :          data_tmp = ISHFT(data_tmp, 29)
   26185      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26186      605858 :          pack_tmp = ISHFT(pack_tmp, -12)
   26187      605858 :          idata = idata + 1
   26188      605858 :          data_tmp = full_data(idata)
   26189      605858 :          data_tmp = ISHFT(data_tmp, 29)
   26190      605858 :          data_tmp = IAND(data_tmp, mask_left(12))
   26191      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26192      605858 :          ipack = ipack + 1
   26193      605858 :          packed_data(ipack) = pack_tmp
   26194      605858 :          data_tmp = full_data(idata)
   26195      605858 :          pack_tmp = ISHFT(data_tmp, 41)
   26196      605858 :          pack_tmp = ISHFT(pack_tmp, -35)
   26197      605858 :          idata = idata + 1
   26198      605858 :          data_tmp = full_data(idata)
   26199      605858 :          data_tmp = ISHFT(data_tmp, 29)
   26200      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26201      605858 :          pack_tmp = ISHFT(pack_tmp, -6)
   26202      605858 :          idata = idata + 1
   26203      605858 :          data_tmp = full_data(idata)
   26204      605858 :          data_tmp = ISHFT(data_tmp, 29)
   26205      605858 :          data_tmp = IAND(data_tmp, mask_left(6))
   26206      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26207      605858 :          ipack = ipack + 1
   26208      605858 :          packed_data(ipack) = pack_tmp
   26209      605858 :          data_tmp = full_data(idata)
   26210      605858 :          pack_tmp = ISHFT(data_tmp, 35)
   26211      605858 :          pack_tmp = ISHFT(pack_tmp, -35)
   26212      605858 :          idata = idata + 1
   26213      605858 :          data_tmp = full_data(idata)
   26214      605858 :          data_tmp = ISHFT(data_tmp, 29)
   26215      605858 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26216             :          pack_tmp = ISHFT(pack_tmp, 0)
   26217      605858 :          pack_tmp = ISHFT(pack_tmp, 0)
   26218      605858 :          ipack = ipack + 1
   26219      606350 :          packed_data(ipack) = pack_tmp
   26220             :       END DO
   26221       47204 :       IF (Ndata_rep < Ndata) THEN
   26222       17372 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   26223             :       END IF
   26224       47204 :    END SUBROUTINE ints2bits_35
   26225             : 
   26226             : ! **************************************************************************************************
   26227             : !> \brief ...
   26228             : !> \param Ndata ...
   26229             : !> \param packed_data ...
   26230             : !> \param full_data ...
   26231             : ! **************************************************************************************************
   26232      226587 :    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      226587 :       ipack = 0
   26243      226587 :       idata = 0
   26244      226587 :       pack_tmp = 0
   26245      226587 :       Ndata_rep = (Ndata/64)*64
   26246      226587 :       DO kdata = 1, Ndata_rep, 64
   26247     2801520 :          idata = idata + 1
   26248     2801520 :          data_tmp = ISHFT(pack_tmp, 35)
   26249     2801520 :          ipack = ipack + 1
   26250     2801520 :          pack_tmp = packed_data(ipack)
   26251     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   26252     2801520 :          pack_tmp = ISHFT(pack_tmp, -35)
   26253     2801520 :          idata = idata + 1
   26254     2801520 :          data_tmp = ISHFT(pack_tmp, 6)
   26255     2801520 :          ipack = ipack + 1
   26256     2801520 :          pack_tmp = packed_data(ipack)
   26257     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   26258     2801520 :          pack_tmp = ISHFT(pack_tmp, -6)
   26259     2801520 :          idata = idata + 1
   26260     2801520 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26261     2801520 :          full_data(idata) = data_tmp
   26262     2801520 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26263     2801520 :          idata = idata + 1
   26264     2801520 :          data_tmp = ISHFT(pack_tmp, 12)
   26265     2801520 :          ipack = ipack + 1
   26266     2801520 :          pack_tmp = packed_data(ipack)
   26267     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   26268     2801520 :          pack_tmp = ISHFT(pack_tmp, -12)
   26269     2801520 :          idata = idata + 1
   26270     2801520 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26271     2801520 :          full_data(idata) = data_tmp
   26272     2801520 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26273     2801520 :          idata = idata + 1
   26274     2801520 :          data_tmp = ISHFT(pack_tmp, 18)
   26275     2801520 :          ipack = ipack + 1
   26276     2801520 :          pack_tmp = packed_data(ipack)
   26277     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   26278     2801520 :          pack_tmp = ISHFT(pack_tmp, -18)
   26279     2801520 :          idata = idata + 1
   26280     2801520 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26281     2801520 :          full_data(idata) = data_tmp
   26282     2801520 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26283     2801520 :          idata = idata + 1
   26284     2801520 :          data_tmp = ISHFT(pack_tmp, 24)
   26285     2801520 :          ipack = ipack + 1
   26286     2801520 :          pack_tmp = packed_data(ipack)
   26287     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   26288     2801520 :          pack_tmp = ISHFT(pack_tmp, -24)
   26289     2801520 :          idata = idata + 1
   26290     2801520 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26291     2801520 :          full_data(idata) = data_tmp
   26292     2801520 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26293     2801520 :          idata = idata + 1
   26294     2801520 :          data_tmp = ISHFT(pack_tmp, 30)
   26295     2801520 :          ipack = ipack + 1
   26296     2801520 :          pack_tmp = packed_data(ipack)
   26297     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   26298     2801520 :          pack_tmp = ISHFT(pack_tmp, -30)
   26299     2801520 :          idata = idata + 1
   26300     2801520 :          data_tmp = ISHFT(pack_tmp, 1)
   26301     2801520 :          ipack = ipack + 1
   26302     2801520 :          pack_tmp = packed_data(ipack)
   26303     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   26304     2801520 :          pack_tmp = ISHFT(pack_tmp, -1)
   26305     2801520 :          idata = idata + 1
   26306     2801520 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26307     2801520 :          full_data(idata) = data_tmp
   26308     2801520 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26309     2801520 :          idata = idata + 1
   26310     2801520 :          data_tmp = ISHFT(pack_tmp, 7)
   26311     2801520 :          ipack = ipack + 1
   26312     2801520 :          pack_tmp = packed_data(ipack)
   26313     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   26314     2801520 :          pack_tmp = ISHFT(pack_tmp, -7)
   26315     2801520 :          idata = idata + 1
   26316     2801520 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26317     2801520 :          full_data(idata) = data_tmp
   26318     2801520 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26319     2801520 :          idata = idata + 1
   26320     2801520 :          data_tmp = ISHFT(pack_tmp, 13)
   26321     2801520 :          ipack = ipack + 1
   26322     2801520 :          pack_tmp = packed_data(ipack)
   26323     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   26324     2801520 :          pack_tmp = ISHFT(pack_tmp, -13)
   26325     2801520 :          idata = idata + 1
   26326     2801520 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26327     2801520 :          full_data(idata) = data_tmp
   26328     2801520 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26329     2801520 :          idata = idata + 1
   26330     2801520 :          data_tmp = ISHFT(pack_tmp, 19)
   26331     2801520 :          ipack = ipack + 1
   26332     2801520 :          pack_tmp = packed_data(ipack)
   26333     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   26334     2801520 :          pack_tmp = ISHFT(pack_tmp, -19)
   26335     2801520 :          idata = idata + 1
   26336     2801520 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26337     2801520 :          full_data(idata) = data_tmp
   26338     2801520 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26339     2801520 :          idata = idata + 1
   26340     2801520 :          data_tmp = ISHFT(pack_tmp, 25)
   26341     2801520 :          ipack = ipack + 1
   26342     2801520 :          pack_tmp = packed_data(ipack)
   26343     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   26344     2801520 :          pack_tmp = ISHFT(pack_tmp, -25)
   26345     2801520 :          idata = idata + 1
   26346     2801520 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26347     2801520 :          full_data(idata) = data_tmp
   26348     2801520 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26349     2801520 :          idata = idata + 1
   26350     2801520 :          data_tmp = ISHFT(pack_tmp, 31)
   26351     2801520 :          ipack = ipack + 1
   26352     2801520 :          pack_tmp = packed_data(ipack)
   26353     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   26354     2801520 :          pack_tmp = ISHFT(pack_tmp, -31)
   26355     2801520 :          idata = idata + 1
   26356     2801520 :          data_tmp = ISHFT(pack_tmp, 2)
   26357     2801520 :          ipack = ipack + 1
   26358     2801520 :          pack_tmp = packed_data(ipack)
   26359     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   26360     2801520 :          pack_tmp = ISHFT(pack_tmp, -2)
   26361     2801520 :          idata = idata + 1
   26362     2801520 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26363     2801520 :          full_data(idata) = data_tmp
   26364     2801520 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26365     2801520 :          idata = idata + 1
   26366     2801520 :          data_tmp = ISHFT(pack_tmp, 8)
   26367     2801520 :          ipack = ipack + 1
   26368     2801520 :          pack_tmp = packed_data(ipack)
   26369     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   26370     2801520 :          pack_tmp = ISHFT(pack_tmp, -8)
   26371     2801520 :          idata = idata + 1
   26372     2801520 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26373     2801520 :          full_data(idata) = data_tmp
   26374     2801520 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26375     2801520 :          idata = idata + 1
   26376     2801520 :          data_tmp = ISHFT(pack_tmp, 14)
   26377     2801520 :          ipack = ipack + 1
   26378     2801520 :          pack_tmp = packed_data(ipack)
   26379     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   26380     2801520 :          pack_tmp = ISHFT(pack_tmp, -14)
   26381     2801520 :          idata = idata + 1
   26382     2801520 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26383     2801520 :          full_data(idata) = data_tmp
   26384     2801520 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26385     2801520 :          idata = idata + 1
   26386     2801520 :          data_tmp = ISHFT(pack_tmp, 20)
   26387     2801520 :          ipack = ipack + 1
   26388     2801520 :          pack_tmp = packed_data(ipack)
   26389     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   26390     2801520 :          pack_tmp = ISHFT(pack_tmp, -20)
   26391     2801520 :          idata = idata + 1
   26392     2801520 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26393     2801520 :          full_data(idata) = data_tmp
   26394     2801520 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26395     2801520 :          idata = idata + 1
   26396     2801520 :          data_tmp = ISHFT(pack_tmp, 26)
   26397     2801520 :          ipack = ipack + 1
   26398     2801520 :          pack_tmp = packed_data(ipack)
   26399     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   26400     2801520 :          pack_tmp = ISHFT(pack_tmp, -26)
   26401     2801520 :          idata = idata + 1
   26402     2801520 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26403     2801520 :          full_data(idata) = data_tmp
   26404     2801520 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26405     2801520 :          idata = idata + 1
   26406     2801520 :          data_tmp = ISHFT(pack_tmp, 32)
   26407     2801520 :          ipack = ipack + 1
   26408     2801520 :          pack_tmp = packed_data(ipack)
   26409     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   26410     2801520 :          pack_tmp = ISHFT(pack_tmp, -32)
   26411     2801520 :          idata = idata + 1
   26412     2801520 :          data_tmp = ISHFT(pack_tmp, 3)
   26413     2801520 :          ipack = ipack + 1
   26414     2801520 :          pack_tmp = packed_data(ipack)
   26415     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   26416     2801520 :          pack_tmp = ISHFT(pack_tmp, -3)
   26417     2801520 :          idata = idata + 1
   26418     2801520 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26419     2801520 :          full_data(idata) = data_tmp
   26420     2801520 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26421     2801520 :          idata = idata + 1
   26422     2801520 :          data_tmp = ISHFT(pack_tmp, 9)
   26423     2801520 :          ipack = ipack + 1
   26424     2801520 :          pack_tmp = packed_data(ipack)
   26425     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   26426     2801520 :          pack_tmp = ISHFT(pack_tmp, -9)
   26427     2801520 :          idata = idata + 1
   26428     2801520 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26429     2801520 :          full_data(idata) = data_tmp
   26430     2801520 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26431     2801520 :          idata = idata + 1
   26432     2801520 :          data_tmp = ISHFT(pack_tmp, 15)
   26433     2801520 :          ipack = ipack + 1
   26434     2801520 :          pack_tmp = packed_data(ipack)
   26435     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   26436     2801520 :          pack_tmp = ISHFT(pack_tmp, -15)
   26437     2801520 :          idata = idata + 1
   26438     2801520 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26439     2801520 :          full_data(idata) = data_tmp
   26440     2801520 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26441     2801520 :          idata = idata + 1
   26442     2801520 :          data_tmp = ISHFT(pack_tmp, 21)
   26443     2801520 :          ipack = ipack + 1
   26444     2801520 :          pack_tmp = packed_data(ipack)
   26445     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   26446     2801520 :          pack_tmp = ISHFT(pack_tmp, -21)
   26447     2801520 :          idata = idata + 1
   26448     2801520 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26449     2801520 :          full_data(idata) = data_tmp
   26450     2801520 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26451     2801520 :          idata = idata + 1
   26452     2801520 :          data_tmp = ISHFT(pack_tmp, 27)
   26453     2801520 :          ipack = ipack + 1
   26454     2801520 :          pack_tmp = packed_data(ipack)
   26455     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   26456     2801520 :          pack_tmp = ISHFT(pack_tmp, -27)
   26457     2801520 :          idata = idata + 1
   26458     2801520 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26459     2801520 :          full_data(idata) = data_tmp
   26460     2801520 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26461     2801520 :          idata = idata + 1
   26462     2801520 :          data_tmp = ISHFT(pack_tmp, 33)
   26463     2801520 :          ipack = ipack + 1
   26464     2801520 :          pack_tmp = packed_data(ipack)
   26465     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   26466     2801520 :          pack_tmp = ISHFT(pack_tmp, -33)
   26467     2801520 :          idata = idata + 1
   26468     2801520 :          data_tmp = ISHFT(pack_tmp, 4)
   26469     2801520 :          ipack = ipack + 1
   26470     2801520 :          pack_tmp = packed_data(ipack)
   26471     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   26472     2801520 :          pack_tmp = ISHFT(pack_tmp, -4)
   26473     2801520 :          idata = idata + 1
   26474     2801520 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26475     2801520 :          full_data(idata) = data_tmp
   26476     2801520 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26477     2801520 :          idata = idata + 1
   26478     2801520 :          data_tmp = ISHFT(pack_tmp, 10)
   26479     2801520 :          ipack = ipack + 1
   26480     2801520 :          pack_tmp = packed_data(ipack)
   26481     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   26482     2801520 :          pack_tmp = ISHFT(pack_tmp, -10)
   26483     2801520 :          idata = idata + 1
   26484     2801520 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26485     2801520 :          full_data(idata) = data_tmp
   26486     2801520 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26487     2801520 :          idata = idata + 1
   26488     2801520 :          data_tmp = ISHFT(pack_tmp, 16)
   26489     2801520 :          ipack = ipack + 1
   26490     2801520 :          pack_tmp = packed_data(ipack)
   26491     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   26492     2801520 :          pack_tmp = ISHFT(pack_tmp, -16)
   26493     2801520 :          idata = idata + 1
   26494     2801520 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26495     2801520 :          full_data(idata) = data_tmp
   26496     2801520 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26497     2801520 :          idata = idata + 1
   26498     2801520 :          data_tmp = ISHFT(pack_tmp, 22)
   26499     2801520 :          ipack = ipack + 1
   26500     2801520 :          pack_tmp = packed_data(ipack)
   26501     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   26502     2801520 :          pack_tmp = ISHFT(pack_tmp, -22)
   26503     2801520 :          idata = idata + 1
   26504     2801520 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26505     2801520 :          full_data(idata) = data_tmp
   26506     2801520 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26507     2801520 :          idata = idata + 1
   26508     2801520 :          data_tmp = ISHFT(pack_tmp, 28)
   26509     2801520 :          ipack = ipack + 1
   26510     2801520 :          pack_tmp = packed_data(ipack)
   26511     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   26512     2801520 :          pack_tmp = ISHFT(pack_tmp, -28)
   26513     2801520 :          idata = idata + 1
   26514     2801520 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26515     2801520 :          full_data(idata) = data_tmp
   26516     2801520 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26517     2801520 :          idata = idata + 1
   26518     2801520 :          data_tmp = ISHFT(pack_tmp, 34)
   26519     2801520 :          ipack = ipack + 1
   26520     2801520 :          pack_tmp = packed_data(ipack)
   26521     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   26522     2801520 :          pack_tmp = ISHFT(pack_tmp, -34)
   26523     2801520 :          idata = idata + 1
   26524     2801520 :          data_tmp = ISHFT(pack_tmp, 5)
   26525     2801520 :          ipack = ipack + 1
   26526     2801520 :          pack_tmp = packed_data(ipack)
   26527     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   26528     2801520 :          pack_tmp = ISHFT(pack_tmp, -5)
   26529     2801520 :          idata = idata + 1
   26530     2801520 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26531     2801520 :          full_data(idata) = data_tmp
   26532     2801520 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26533     2801520 :          idata = idata + 1
   26534     2801520 :          data_tmp = ISHFT(pack_tmp, 11)
   26535     2801520 :          ipack = ipack + 1
   26536     2801520 :          pack_tmp = packed_data(ipack)
   26537     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   26538     2801520 :          pack_tmp = ISHFT(pack_tmp, -11)
   26539     2801520 :          idata = idata + 1
   26540     2801520 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26541     2801520 :          full_data(idata) = data_tmp
   26542     2801520 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26543     2801520 :          idata = idata + 1
   26544     2801520 :          data_tmp = ISHFT(pack_tmp, 17)
   26545     2801520 :          ipack = ipack + 1
   26546     2801520 :          pack_tmp = packed_data(ipack)
   26547     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   26548     2801520 :          pack_tmp = ISHFT(pack_tmp, -17)
   26549     2801520 :          idata = idata + 1
   26550     2801520 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26551     2801520 :          full_data(idata) = data_tmp
   26552     2801520 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26553     2801520 :          idata = idata + 1
   26554     2801520 :          data_tmp = ISHFT(pack_tmp, 23)
   26555     2801520 :          ipack = ipack + 1
   26556     2801520 :          pack_tmp = packed_data(ipack)
   26557     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   26558     2801520 :          pack_tmp = ISHFT(pack_tmp, -23)
   26559     2801520 :          idata = idata + 1
   26560     2801520 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26561     2801520 :          full_data(idata) = data_tmp
   26562     2801520 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26563     2801520 :          idata = idata + 1
   26564     2801520 :          data_tmp = ISHFT(pack_tmp, 29)
   26565     2801520 :          ipack = ipack + 1
   26566     2801520 :          pack_tmp = packed_data(ipack)
   26567     2801520 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   26568     2801520 :          pack_tmp = ISHFT(pack_tmp, -29)
   26569     2801520 :          idata = idata + 1
   26570     2801520 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26571     2801520 :          full_data(idata) = data_tmp
   26572     2803797 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26573             :       END DO
   26574      226587 :       IF (Ndata_rep < Ndata) THEN
   26575       95872 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   26576             :       END IF
   26577      226587 :    END SUBROUTINE bits2ints_35
   26578             : 
   26579             : ! **************************************************************************************************
   26580             : !> \brief ...
   26581             : !> \param Ndata ...
   26582             : !> \param packed_data ...
   26583             : !> \param full_data ...
   26584             : ! **************************************************************************************************
   26585       47706 :    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       47706 :       idata = 0
   26596       47706 :       ipack = 0
   26597       47706 :       Ndata_rep = (Ndata/64)*64
   26598       47706 :       DO kdata = 1, Ndata_rep, 64
   26599      610789 :          pack_tmp = 0
   26600      610789 :          idata = idata + 1
   26601      610789 :          data_tmp = full_data(idata)
   26602      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26603      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26604      610789 :          pack_tmp = ISHFT(pack_tmp, -28)
   26605      610789 :          idata = idata + 1
   26606      610789 :          data_tmp = full_data(idata)
   26607      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26608      610789 :          data_tmp = IAND(data_tmp, mask_left(28))
   26609      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26610      610789 :          ipack = ipack + 1
   26611      610789 :          packed_data(ipack) = pack_tmp
   26612      610789 :          data_tmp = full_data(idata)
   26613      610789 :          pack_tmp = ISHFT(data_tmp, 56)
   26614      610789 :          pack_tmp = ISHFT(pack_tmp, -36)
   26615      610789 :          idata = idata + 1
   26616      610789 :          data_tmp = full_data(idata)
   26617      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26618      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26619      610789 :          pack_tmp = ISHFT(pack_tmp, -20)
   26620      610789 :          idata = idata + 1
   26621      610789 :          data_tmp = full_data(idata)
   26622      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26623      610789 :          data_tmp = IAND(data_tmp, mask_left(20))
   26624      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26625      610789 :          ipack = ipack + 1
   26626      610789 :          packed_data(ipack) = pack_tmp
   26627      610789 :          data_tmp = full_data(idata)
   26628      610789 :          pack_tmp = ISHFT(data_tmp, 48)
   26629      610789 :          pack_tmp = ISHFT(pack_tmp, -36)
   26630      610789 :          idata = idata + 1
   26631      610789 :          data_tmp = full_data(idata)
   26632      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26633      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26634      610789 :          pack_tmp = ISHFT(pack_tmp, -12)
   26635      610789 :          idata = idata + 1
   26636      610789 :          data_tmp = full_data(idata)
   26637      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26638      610789 :          data_tmp = IAND(data_tmp, mask_left(12))
   26639      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26640      610789 :          ipack = ipack + 1
   26641      610789 :          packed_data(ipack) = pack_tmp
   26642      610789 :          data_tmp = full_data(idata)
   26643      610789 :          pack_tmp = ISHFT(data_tmp, 40)
   26644      610789 :          pack_tmp = ISHFT(pack_tmp, -36)
   26645      610789 :          idata = idata + 1
   26646      610789 :          data_tmp = full_data(idata)
   26647      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26648      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26649      610789 :          pack_tmp = ISHFT(pack_tmp, -4)
   26650      610789 :          idata = idata + 1
   26651      610789 :          data_tmp = full_data(idata)
   26652      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26653      610789 :          data_tmp = IAND(data_tmp, mask_left(4))
   26654      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26655      610789 :          ipack = ipack + 1
   26656      610789 :          packed_data(ipack) = pack_tmp
   26657      610789 :          data_tmp = full_data(idata)
   26658      610789 :          pack_tmp = ISHFT(data_tmp, 32)
   26659      610789 :          pack_tmp = ISHFT(pack_tmp, -32)
   26660      610789 :          idata = idata + 1
   26661      610789 :          data_tmp = full_data(idata)
   26662      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26663      610789 :          data_tmp = IAND(data_tmp, mask_left(32))
   26664      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26665      610789 :          ipack = ipack + 1
   26666      610789 :          packed_data(ipack) = pack_tmp
   26667      610789 :          data_tmp = full_data(idata)
   26668      610789 :          pack_tmp = ISHFT(data_tmp, 60)
   26669      610789 :          pack_tmp = ISHFT(pack_tmp, -36)
   26670      610789 :          idata = idata + 1
   26671      610789 :          data_tmp = full_data(idata)
   26672      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26673      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26674      610789 :          pack_tmp = ISHFT(pack_tmp, -24)
   26675      610789 :          idata = idata + 1
   26676      610789 :          data_tmp = full_data(idata)
   26677      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26678      610789 :          data_tmp = IAND(data_tmp, mask_left(24))
   26679      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26680      610789 :          ipack = ipack + 1
   26681      610789 :          packed_data(ipack) = pack_tmp
   26682      610789 :          data_tmp = full_data(idata)
   26683      610789 :          pack_tmp = ISHFT(data_tmp, 52)
   26684      610789 :          pack_tmp = ISHFT(pack_tmp, -36)
   26685      610789 :          idata = idata + 1
   26686      610789 :          data_tmp = full_data(idata)
   26687      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26688      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26689      610789 :          pack_tmp = ISHFT(pack_tmp, -16)
   26690      610789 :          idata = idata + 1
   26691      610789 :          data_tmp = full_data(idata)
   26692      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26693      610789 :          data_tmp = IAND(data_tmp, mask_left(16))
   26694      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26695      610789 :          ipack = ipack + 1
   26696      610789 :          packed_data(ipack) = pack_tmp
   26697      610789 :          data_tmp = full_data(idata)
   26698      610789 :          pack_tmp = ISHFT(data_tmp, 44)
   26699      610789 :          pack_tmp = ISHFT(pack_tmp, -36)
   26700      610789 :          idata = idata + 1
   26701      610789 :          data_tmp = full_data(idata)
   26702      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26703      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26704      610789 :          pack_tmp = ISHFT(pack_tmp, -8)
   26705      610789 :          idata = idata + 1
   26706      610789 :          data_tmp = full_data(idata)
   26707      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26708      610789 :          data_tmp = IAND(data_tmp, mask_left(8))
   26709      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26710      610789 :          ipack = ipack + 1
   26711      610789 :          packed_data(ipack) = pack_tmp
   26712      610789 :          data_tmp = full_data(idata)
   26713      610789 :          pack_tmp = ISHFT(data_tmp, 36)
   26714      610789 :          pack_tmp = ISHFT(pack_tmp, -36)
   26715      610789 :          idata = idata + 1
   26716      610789 :          data_tmp = full_data(idata)
   26717      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26718      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26719      610789 :          pack_tmp = ISHFT(pack_tmp, 0)
   26720      610789 :          idata = idata + 1
   26721      610789 :          data_tmp = full_data(idata)
   26722             :          data_tmp = ISHFT(data_tmp, 28)
   26723      610789 :          data_tmp = IAND(data_tmp, mask_left(0))
   26724      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26725      610789 :          ipack = ipack + 1
   26726      610789 :          packed_data(ipack) = pack_tmp
   26727      610789 :          data_tmp = full_data(idata)
   26728      610789 :          pack_tmp = ISHFT(data_tmp, 28)
   26729      610789 :          pack_tmp = ISHFT(pack_tmp, -28)
   26730      610789 :          idata = idata + 1
   26731      610789 :          data_tmp = full_data(idata)
   26732      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26733      610789 :          data_tmp = IAND(data_tmp, mask_left(28))
   26734      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26735      610789 :          ipack = ipack + 1
   26736      610789 :          packed_data(ipack) = pack_tmp
   26737      610789 :          data_tmp = full_data(idata)
   26738      610789 :          pack_tmp = ISHFT(data_tmp, 56)
   26739      610789 :          pack_tmp = ISHFT(pack_tmp, -36)
   26740      610789 :          idata = idata + 1
   26741      610789 :          data_tmp = full_data(idata)
   26742      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26743      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26744      610789 :          pack_tmp = ISHFT(pack_tmp, -20)
   26745      610789 :          idata = idata + 1
   26746      610789 :          data_tmp = full_data(idata)
   26747      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26748      610789 :          data_tmp = IAND(data_tmp, mask_left(20))
   26749      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26750      610789 :          ipack = ipack + 1
   26751      610789 :          packed_data(ipack) = pack_tmp
   26752      610789 :          data_tmp = full_data(idata)
   26753      610789 :          pack_tmp = ISHFT(data_tmp, 48)
   26754      610789 :          pack_tmp = ISHFT(pack_tmp, -36)
   26755      610789 :          idata = idata + 1
   26756      610789 :          data_tmp = full_data(idata)
   26757      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26758      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26759      610789 :          pack_tmp = ISHFT(pack_tmp, -12)
   26760      610789 :          idata = idata + 1
   26761      610789 :          data_tmp = full_data(idata)
   26762      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26763      610789 :          data_tmp = IAND(data_tmp, mask_left(12))
   26764      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26765      610789 :          ipack = ipack + 1
   26766      610789 :          packed_data(ipack) = pack_tmp
   26767      610789 :          data_tmp = full_data(idata)
   26768      610789 :          pack_tmp = ISHFT(data_tmp, 40)
   26769      610789 :          pack_tmp = ISHFT(pack_tmp, -36)
   26770      610789 :          idata = idata + 1
   26771      610789 :          data_tmp = full_data(idata)
   26772      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26773      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26774      610789 :          pack_tmp = ISHFT(pack_tmp, -4)
   26775      610789 :          idata = idata + 1
   26776      610789 :          data_tmp = full_data(idata)
   26777      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26778      610789 :          data_tmp = IAND(data_tmp, mask_left(4))
   26779      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26780      610789 :          ipack = ipack + 1
   26781      610789 :          packed_data(ipack) = pack_tmp
   26782      610789 :          data_tmp = full_data(idata)
   26783      610789 :          pack_tmp = ISHFT(data_tmp, 32)
   26784      610789 :          pack_tmp = ISHFT(pack_tmp, -32)
   26785      610789 :          idata = idata + 1
   26786      610789 :          data_tmp = full_data(idata)
   26787      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26788      610789 :          data_tmp = IAND(data_tmp, mask_left(32))
   26789      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26790      610789 :          ipack = ipack + 1
   26791      610789 :          packed_data(ipack) = pack_tmp
   26792      610789 :          data_tmp = full_data(idata)
   26793      610789 :          pack_tmp = ISHFT(data_tmp, 60)
   26794      610789 :          pack_tmp = ISHFT(pack_tmp, -36)
   26795      610789 :          idata = idata + 1
   26796      610789 :          data_tmp = full_data(idata)
   26797      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26798      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26799      610789 :          pack_tmp = ISHFT(pack_tmp, -24)
   26800      610789 :          idata = idata + 1
   26801      610789 :          data_tmp = full_data(idata)
   26802      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26803      610789 :          data_tmp = IAND(data_tmp, mask_left(24))
   26804      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26805      610789 :          ipack = ipack + 1
   26806      610789 :          packed_data(ipack) = pack_tmp
   26807      610789 :          data_tmp = full_data(idata)
   26808      610789 :          pack_tmp = ISHFT(data_tmp, 52)
   26809      610789 :          pack_tmp = ISHFT(pack_tmp, -36)
   26810      610789 :          idata = idata + 1
   26811      610789 :          data_tmp = full_data(idata)
   26812      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26813      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26814      610789 :          pack_tmp = ISHFT(pack_tmp, -16)
   26815      610789 :          idata = idata + 1
   26816      610789 :          data_tmp = full_data(idata)
   26817      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26818      610789 :          data_tmp = IAND(data_tmp, mask_left(16))
   26819      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26820      610789 :          ipack = ipack + 1
   26821      610789 :          packed_data(ipack) = pack_tmp
   26822      610789 :          data_tmp = full_data(idata)
   26823      610789 :          pack_tmp = ISHFT(data_tmp, 44)
   26824      610789 :          pack_tmp = ISHFT(pack_tmp, -36)
   26825      610789 :          idata = idata + 1
   26826      610789 :          data_tmp = full_data(idata)
   26827      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26828      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26829      610789 :          pack_tmp = ISHFT(pack_tmp, -8)
   26830      610789 :          idata = idata + 1
   26831      610789 :          data_tmp = full_data(idata)
   26832      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26833      610789 :          data_tmp = IAND(data_tmp, mask_left(8))
   26834      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26835      610789 :          ipack = ipack + 1
   26836      610789 :          packed_data(ipack) = pack_tmp
   26837      610789 :          data_tmp = full_data(idata)
   26838      610789 :          pack_tmp = ISHFT(data_tmp, 36)
   26839      610789 :          pack_tmp = ISHFT(pack_tmp, -36)
   26840      610789 :          idata = idata + 1
   26841      610789 :          data_tmp = full_data(idata)
   26842      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26843      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26844      610789 :          pack_tmp = ISHFT(pack_tmp, 0)
   26845      610789 :          idata = idata + 1
   26846      610789 :          data_tmp = full_data(idata)
   26847             :          data_tmp = ISHFT(data_tmp, 28)
   26848      610789 :          data_tmp = IAND(data_tmp, mask_left(0))
   26849      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26850      610789 :          ipack = ipack + 1
   26851      610789 :          packed_data(ipack) = pack_tmp
   26852      610789 :          data_tmp = full_data(idata)
   26853      610789 :          pack_tmp = ISHFT(data_tmp, 28)
   26854      610789 :          pack_tmp = ISHFT(pack_tmp, -28)
   26855      610789 :          idata = idata + 1
   26856      610789 :          data_tmp = full_data(idata)
   26857      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26858      610789 :          data_tmp = IAND(data_tmp, mask_left(28))
   26859      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26860      610789 :          ipack = ipack + 1
   26861      610789 :          packed_data(ipack) = pack_tmp
   26862      610789 :          data_tmp = full_data(idata)
   26863      610789 :          pack_tmp = ISHFT(data_tmp, 56)
   26864      610789 :          pack_tmp = ISHFT(pack_tmp, -36)
   26865      610789 :          idata = idata + 1
   26866      610789 :          data_tmp = full_data(idata)
   26867      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26868      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26869      610789 :          pack_tmp = ISHFT(pack_tmp, -20)
   26870      610789 :          idata = idata + 1
   26871      610789 :          data_tmp = full_data(idata)
   26872      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26873      610789 :          data_tmp = IAND(data_tmp, mask_left(20))
   26874      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26875      610789 :          ipack = ipack + 1
   26876      610789 :          packed_data(ipack) = pack_tmp
   26877      610789 :          data_tmp = full_data(idata)
   26878      610789 :          pack_tmp = ISHFT(data_tmp, 48)
   26879      610789 :          pack_tmp = ISHFT(pack_tmp, -36)
   26880      610789 :          idata = idata + 1
   26881      610789 :          data_tmp = full_data(idata)
   26882      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26883      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26884      610789 :          pack_tmp = ISHFT(pack_tmp, -12)
   26885      610789 :          idata = idata + 1
   26886      610789 :          data_tmp = full_data(idata)
   26887      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26888      610789 :          data_tmp = IAND(data_tmp, mask_left(12))
   26889      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26890      610789 :          ipack = ipack + 1
   26891      610789 :          packed_data(ipack) = pack_tmp
   26892      610789 :          data_tmp = full_data(idata)
   26893      610789 :          pack_tmp = ISHFT(data_tmp, 40)
   26894      610789 :          pack_tmp = ISHFT(pack_tmp, -36)
   26895      610789 :          idata = idata + 1
   26896      610789 :          data_tmp = full_data(idata)
   26897      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26898      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26899      610789 :          pack_tmp = ISHFT(pack_tmp, -4)
   26900      610789 :          idata = idata + 1
   26901      610789 :          data_tmp = full_data(idata)
   26902      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26903      610789 :          data_tmp = IAND(data_tmp, mask_left(4))
   26904      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26905      610789 :          ipack = ipack + 1
   26906      610789 :          packed_data(ipack) = pack_tmp
   26907      610789 :          data_tmp = full_data(idata)
   26908      610789 :          pack_tmp = ISHFT(data_tmp, 32)
   26909      610789 :          pack_tmp = ISHFT(pack_tmp, -32)
   26910      610789 :          idata = idata + 1
   26911      610789 :          data_tmp = full_data(idata)
   26912      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26913      610789 :          data_tmp = IAND(data_tmp, mask_left(32))
   26914      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26915      610789 :          ipack = ipack + 1
   26916      610789 :          packed_data(ipack) = pack_tmp
   26917      610789 :          data_tmp = full_data(idata)
   26918      610789 :          pack_tmp = ISHFT(data_tmp, 60)
   26919      610789 :          pack_tmp = ISHFT(pack_tmp, -36)
   26920      610789 :          idata = idata + 1
   26921      610789 :          data_tmp = full_data(idata)
   26922      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26923      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26924      610789 :          pack_tmp = ISHFT(pack_tmp, -24)
   26925      610789 :          idata = idata + 1
   26926      610789 :          data_tmp = full_data(idata)
   26927      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26928      610789 :          data_tmp = IAND(data_tmp, mask_left(24))
   26929      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26930      610789 :          ipack = ipack + 1
   26931      610789 :          packed_data(ipack) = pack_tmp
   26932      610789 :          data_tmp = full_data(idata)
   26933      610789 :          pack_tmp = ISHFT(data_tmp, 52)
   26934      610789 :          pack_tmp = ISHFT(pack_tmp, -36)
   26935      610789 :          idata = idata + 1
   26936      610789 :          data_tmp = full_data(idata)
   26937      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26938      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26939      610789 :          pack_tmp = ISHFT(pack_tmp, -16)
   26940      610789 :          idata = idata + 1
   26941      610789 :          data_tmp = full_data(idata)
   26942      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26943      610789 :          data_tmp = IAND(data_tmp, mask_left(16))
   26944      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26945      610789 :          ipack = ipack + 1
   26946      610789 :          packed_data(ipack) = pack_tmp
   26947      610789 :          data_tmp = full_data(idata)
   26948      610789 :          pack_tmp = ISHFT(data_tmp, 44)
   26949      610789 :          pack_tmp = ISHFT(pack_tmp, -36)
   26950      610789 :          idata = idata + 1
   26951      610789 :          data_tmp = full_data(idata)
   26952      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26953      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26954      610789 :          pack_tmp = ISHFT(pack_tmp, -8)
   26955      610789 :          idata = idata + 1
   26956      610789 :          data_tmp = full_data(idata)
   26957      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26958      610789 :          data_tmp = IAND(data_tmp, mask_left(8))
   26959      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26960      610789 :          ipack = ipack + 1
   26961      610789 :          packed_data(ipack) = pack_tmp
   26962      610789 :          data_tmp = full_data(idata)
   26963      610789 :          pack_tmp = ISHFT(data_tmp, 36)
   26964      610789 :          pack_tmp = ISHFT(pack_tmp, -36)
   26965      610789 :          idata = idata + 1
   26966      610789 :          data_tmp = full_data(idata)
   26967      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26968      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26969      610789 :          pack_tmp = ISHFT(pack_tmp, 0)
   26970      610789 :          idata = idata + 1
   26971      610789 :          data_tmp = full_data(idata)
   26972             :          data_tmp = ISHFT(data_tmp, 28)
   26973      610789 :          data_tmp = IAND(data_tmp, mask_left(0))
   26974      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26975      610789 :          ipack = ipack + 1
   26976      610789 :          packed_data(ipack) = pack_tmp
   26977      610789 :          data_tmp = full_data(idata)
   26978      610789 :          pack_tmp = ISHFT(data_tmp, 28)
   26979      610789 :          pack_tmp = ISHFT(pack_tmp, -28)
   26980      610789 :          idata = idata + 1
   26981      610789 :          data_tmp = full_data(idata)
   26982      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26983      610789 :          data_tmp = IAND(data_tmp, mask_left(28))
   26984      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26985      610789 :          ipack = ipack + 1
   26986      610789 :          packed_data(ipack) = pack_tmp
   26987      610789 :          data_tmp = full_data(idata)
   26988      610789 :          pack_tmp = ISHFT(data_tmp, 56)
   26989      610789 :          pack_tmp = ISHFT(pack_tmp, -36)
   26990      610789 :          idata = idata + 1
   26991      610789 :          data_tmp = full_data(idata)
   26992      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26993      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26994      610789 :          pack_tmp = ISHFT(pack_tmp, -20)
   26995      610789 :          idata = idata + 1
   26996      610789 :          data_tmp = full_data(idata)
   26997      610789 :          data_tmp = ISHFT(data_tmp, 28)
   26998      610789 :          data_tmp = IAND(data_tmp, mask_left(20))
   26999      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27000      610789 :          ipack = ipack + 1
   27001      610789 :          packed_data(ipack) = pack_tmp
   27002      610789 :          data_tmp = full_data(idata)
   27003      610789 :          pack_tmp = ISHFT(data_tmp, 48)
   27004      610789 :          pack_tmp = ISHFT(pack_tmp, -36)
   27005      610789 :          idata = idata + 1
   27006      610789 :          data_tmp = full_data(idata)
   27007      610789 :          data_tmp = ISHFT(data_tmp, 28)
   27008      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27009      610789 :          pack_tmp = ISHFT(pack_tmp, -12)
   27010      610789 :          idata = idata + 1
   27011      610789 :          data_tmp = full_data(idata)
   27012      610789 :          data_tmp = ISHFT(data_tmp, 28)
   27013      610789 :          data_tmp = IAND(data_tmp, mask_left(12))
   27014      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27015      610789 :          ipack = ipack + 1
   27016      610789 :          packed_data(ipack) = pack_tmp
   27017      610789 :          data_tmp = full_data(idata)
   27018      610789 :          pack_tmp = ISHFT(data_tmp, 40)
   27019      610789 :          pack_tmp = ISHFT(pack_tmp, -36)
   27020      610789 :          idata = idata + 1
   27021      610789 :          data_tmp = full_data(idata)
   27022      610789 :          data_tmp = ISHFT(data_tmp, 28)
   27023      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27024      610789 :          pack_tmp = ISHFT(pack_tmp, -4)
   27025      610789 :          idata = idata + 1
   27026      610789 :          data_tmp = full_data(idata)
   27027      610789 :          data_tmp = ISHFT(data_tmp, 28)
   27028      610789 :          data_tmp = IAND(data_tmp, mask_left(4))
   27029      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27030      610789 :          ipack = ipack + 1
   27031      610789 :          packed_data(ipack) = pack_tmp
   27032      610789 :          data_tmp = full_data(idata)
   27033      610789 :          pack_tmp = ISHFT(data_tmp, 32)
   27034      610789 :          pack_tmp = ISHFT(pack_tmp, -32)
   27035      610789 :          idata = idata + 1
   27036      610789 :          data_tmp = full_data(idata)
   27037      610789 :          data_tmp = ISHFT(data_tmp, 28)
   27038      610789 :          data_tmp = IAND(data_tmp, mask_left(32))
   27039      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27040      610789 :          ipack = ipack + 1
   27041      610789 :          packed_data(ipack) = pack_tmp
   27042      610789 :          data_tmp = full_data(idata)
   27043      610789 :          pack_tmp = ISHFT(data_tmp, 60)
   27044      610789 :          pack_tmp = ISHFT(pack_tmp, -36)
   27045      610789 :          idata = idata + 1
   27046      610789 :          data_tmp = full_data(idata)
   27047      610789 :          data_tmp = ISHFT(data_tmp, 28)
   27048      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27049      610789 :          pack_tmp = ISHFT(pack_tmp, -24)
   27050      610789 :          idata = idata + 1
   27051      610789 :          data_tmp = full_data(idata)
   27052      610789 :          data_tmp = ISHFT(data_tmp, 28)
   27053      610789 :          data_tmp = IAND(data_tmp, mask_left(24))
   27054      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27055      610789 :          ipack = ipack + 1
   27056      610789 :          packed_data(ipack) = pack_tmp
   27057      610789 :          data_tmp = full_data(idata)
   27058      610789 :          pack_tmp = ISHFT(data_tmp, 52)
   27059      610789 :          pack_tmp = ISHFT(pack_tmp, -36)
   27060      610789 :          idata = idata + 1
   27061      610789 :          data_tmp = full_data(idata)
   27062      610789 :          data_tmp = ISHFT(data_tmp, 28)
   27063      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27064      610789 :          pack_tmp = ISHFT(pack_tmp, -16)
   27065      610789 :          idata = idata + 1
   27066      610789 :          data_tmp = full_data(idata)
   27067      610789 :          data_tmp = ISHFT(data_tmp, 28)
   27068      610789 :          data_tmp = IAND(data_tmp, mask_left(16))
   27069      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27070      610789 :          ipack = ipack + 1
   27071      610789 :          packed_data(ipack) = pack_tmp
   27072      610789 :          data_tmp = full_data(idata)
   27073      610789 :          pack_tmp = ISHFT(data_tmp, 44)
   27074      610789 :          pack_tmp = ISHFT(pack_tmp, -36)
   27075      610789 :          idata = idata + 1
   27076      610789 :          data_tmp = full_data(idata)
   27077      610789 :          data_tmp = ISHFT(data_tmp, 28)
   27078      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27079      610789 :          pack_tmp = ISHFT(pack_tmp, -8)
   27080      610789 :          idata = idata + 1
   27081      610789 :          data_tmp = full_data(idata)
   27082      610789 :          data_tmp = ISHFT(data_tmp, 28)
   27083      610789 :          data_tmp = IAND(data_tmp, mask_left(8))
   27084      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27085      610789 :          ipack = ipack + 1
   27086      610789 :          packed_data(ipack) = pack_tmp
   27087      610789 :          data_tmp = full_data(idata)
   27088      610789 :          pack_tmp = ISHFT(data_tmp, 36)
   27089      610789 :          pack_tmp = ISHFT(pack_tmp, -36)
   27090      610789 :          idata = idata + 1
   27091      610789 :          data_tmp = full_data(idata)
   27092      610789 :          data_tmp = ISHFT(data_tmp, 28)
   27093      610789 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27094             :          pack_tmp = ISHFT(pack_tmp, 0)
   27095      610789 :          pack_tmp = ISHFT(pack_tmp, 0)
   27096      610789 :          ipack = ipack + 1
   27097      611125 :          packed_data(ipack) = pack_tmp
   27098             :       END DO
   27099       47706 :       IF (Ndata_rep < Ndata) THEN
   27100       17942 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   27101             :       END IF
   27102       47706 :    END SUBROUTINE ints2bits_36
   27103             : 
   27104             : ! **************************************************************************************************
   27105             : !> \brief ...
   27106             : !> \param Ndata ...
   27107             : !> \param packed_data ...
   27108             : !> \param full_data ...
   27109             : ! **************************************************************************************************
   27110      175748 :    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      175748 :       ipack = 0
   27121      175748 :       idata = 0
   27122      175748 :       pack_tmp = 0
   27123      175748 :       Ndata_rep = (Ndata/64)*64
   27124      175748 :       DO kdata = 1, Ndata_rep, 64
   27125     2302631 :          idata = idata + 1
   27126     2302631 :          data_tmp = ISHFT(pack_tmp, 36)
   27127     2302631 :          ipack = ipack + 1
   27128     2302631 :          pack_tmp = packed_data(ipack)
   27129     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   27130     2302631 :          pack_tmp = ISHFT(pack_tmp, -36)
   27131     2302631 :          idata = idata + 1
   27132     2302631 :          data_tmp = ISHFT(pack_tmp, 8)
   27133     2302631 :          ipack = ipack + 1
   27134     2302631 :          pack_tmp = packed_data(ipack)
   27135     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   27136     2302631 :          pack_tmp = ISHFT(pack_tmp, -8)
   27137     2302631 :          idata = idata + 1
   27138     2302631 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27139     2302631 :          full_data(idata) = data_tmp
   27140     2302631 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27141     2302631 :          idata = idata + 1
   27142     2302631 :          data_tmp = ISHFT(pack_tmp, 16)
   27143     2302631 :          ipack = ipack + 1
   27144     2302631 :          pack_tmp = packed_data(ipack)
   27145     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   27146     2302631 :          pack_tmp = ISHFT(pack_tmp, -16)
   27147     2302631 :          idata = idata + 1
   27148     2302631 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27149     2302631 :          full_data(idata) = data_tmp
   27150     2302631 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27151     2302631 :          idata = idata + 1
   27152     2302631 :          data_tmp = ISHFT(pack_tmp, 24)
   27153     2302631 :          ipack = ipack + 1
   27154     2302631 :          pack_tmp = packed_data(ipack)
   27155     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   27156     2302631 :          pack_tmp = ISHFT(pack_tmp, -24)
   27157     2302631 :          idata = idata + 1
   27158     2302631 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27159     2302631 :          full_data(idata) = data_tmp
   27160     2302631 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27161     2302631 :          idata = idata + 1
   27162     2302631 :          data_tmp = ISHFT(pack_tmp, 32)
   27163     2302631 :          ipack = ipack + 1
   27164     2302631 :          pack_tmp = packed_data(ipack)
   27165     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   27166     2302631 :          pack_tmp = ISHFT(pack_tmp, -32)
   27167     2302631 :          idata = idata + 1
   27168     2302631 :          data_tmp = ISHFT(pack_tmp, 4)
   27169     2302631 :          ipack = ipack + 1
   27170     2302631 :          pack_tmp = packed_data(ipack)
   27171     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   27172     2302631 :          pack_tmp = ISHFT(pack_tmp, -4)
   27173     2302631 :          idata = idata + 1
   27174     2302631 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27175     2302631 :          full_data(idata) = data_tmp
   27176     2302631 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27177     2302631 :          idata = idata + 1
   27178     2302631 :          data_tmp = ISHFT(pack_tmp, 12)
   27179     2302631 :          ipack = ipack + 1
   27180     2302631 :          pack_tmp = packed_data(ipack)
   27181     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   27182     2302631 :          pack_tmp = ISHFT(pack_tmp, -12)
   27183     2302631 :          idata = idata + 1
   27184     2302631 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27185     2302631 :          full_data(idata) = data_tmp
   27186     2302631 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27187     2302631 :          idata = idata + 1
   27188     2302631 :          data_tmp = ISHFT(pack_tmp, 20)
   27189     2302631 :          ipack = ipack + 1
   27190     2302631 :          pack_tmp = packed_data(ipack)
   27191     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   27192     2302631 :          pack_tmp = ISHFT(pack_tmp, -20)
   27193     2302631 :          idata = idata + 1
   27194     2302631 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27195     2302631 :          full_data(idata) = data_tmp
   27196     2302631 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27197     2302631 :          idata = idata + 1
   27198     2302631 :          data_tmp = ISHFT(pack_tmp, 28)
   27199     2302631 :          ipack = ipack + 1
   27200     2302631 :          pack_tmp = packed_data(ipack)
   27201     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   27202     2302631 :          pack_tmp = ISHFT(pack_tmp, -28)
   27203     2302631 :          idata = idata + 1
   27204     2302631 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27205     2302631 :          full_data(idata) = data_tmp
   27206     2302631 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27207     2302631 :          idata = idata + 1
   27208     2302631 :          data_tmp = ISHFT(pack_tmp, 36)
   27209     2302631 :          ipack = ipack + 1
   27210     2302631 :          pack_tmp = packed_data(ipack)
   27211     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   27212     2302631 :          pack_tmp = ISHFT(pack_tmp, -36)
   27213     2302631 :          idata = idata + 1
   27214     2302631 :          data_tmp = ISHFT(pack_tmp, 8)
   27215     2302631 :          ipack = ipack + 1
   27216     2302631 :          pack_tmp = packed_data(ipack)
   27217     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   27218     2302631 :          pack_tmp = ISHFT(pack_tmp, -8)
   27219     2302631 :          idata = idata + 1
   27220     2302631 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27221     2302631 :          full_data(idata) = data_tmp
   27222     2302631 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27223     2302631 :          idata = idata + 1
   27224     2302631 :          data_tmp = ISHFT(pack_tmp, 16)
   27225     2302631 :          ipack = ipack + 1
   27226     2302631 :          pack_tmp = packed_data(ipack)
   27227     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   27228     2302631 :          pack_tmp = ISHFT(pack_tmp, -16)
   27229     2302631 :          idata = idata + 1
   27230     2302631 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27231     2302631 :          full_data(idata) = data_tmp
   27232     2302631 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27233     2302631 :          idata = idata + 1
   27234     2302631 :          data_tmp = ISHFT(pack_tmp, 24)
   27235     2302631 :          ipack = ipack + 1
   27236     2302631 :          pack_tmp = packed_data(ipack)
   27237     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   27238     2302631 :          pack_tmp = ISHFT(pack_tmp, -24)
   27239     2302631 :          idata = idata + 1
   27240     2302631 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27241     2302631 :          full_data(idata) = data_tmp
   27242     2302631 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27243     2302631 :          idata = idata + 1
   27244     2302631 :          data_tmp = ISHFT(pack_tmp, 32)
   27245     2302631 :          ipack = ipack + 1
   27246     2302631 :          pack_tmp = packed_data(ipack)
   27247     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   27248     2302631 :          pack_tmp = ISHFT(pack_tmp, -32)
   27249     2302631 :          idata = idata + 1
   27250     2302631 :          data_tmp = ISHFT(pack_tmp, 4)
   27251     2302631 :          ipack = ipack + 1
   27252     2302631 :          pack_tmp = packed_data(ipack)
   27253     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   27254     2302631 :          pack_tmp = ISHFT(pack_tmp, -4)
   27255     2302631 :          idata = idata + 1
   27256     2302631 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27257     2302631 :          full_data(idata) = data_tmp
   27258     2302631 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27259     2302631 :          idata = idata + 1
   27260     2302631 :          data_tmp = ISHFT(pack_tmp, 12)
   27261     2302631 :          ipack = ipack + 1
   27262     2302631 :          pack_tmp = packed_data(ipack)
   27263     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   27264     2302631 :          pack_tmp = ISHFT(pack_tmp, -12)
   27265     2302631 :          idata = idata + 1
   27266     2302631 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27267     2302631 :          full_data(idata) = data_tmp
   27268     2302631 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27269     2302631 :          idata = idata + 1
   27270     2302631 :          data_tmp = ISHFT(pack_tmp, 20)
   27271     2302631 :          ipack = ipack + 1
   27272     2302631 :          pack_tmp = packed_data(ipack)
   27273     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   27274     2302631 :          pack_tmp = ISHFT(pack_tmp, -20)
   27275     2302631 :          idata = idata + 1
   27276     2302631 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27277     2302631 :          full_data(idata) = data_tmp
   27278     2302631 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27279     2302631 :          idata = idata + 1
   27280     2302631 :          data_tmp = ISHFT(pack_tmp, 28)
   27281     2302631 :          ipack = ipack + 1
   27282     2302631 :          pack_tmp = packed_data(ipack)
   27283     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   27284     2302631 :          pack_tmp = ISHFT(pack_tmp, -28)
   27285     2302631 :          idata = idata + 1
   27286     2302631 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27287     2302631 :          full_data(idata) = data_tmp
   27288     2302631 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27289     2302631 :          idata = idata + 1
   27290     2302631 :          data_tmp = ISHFT(pack_tmp, 36)
   27291     2302631 :          ipack = ipack + 1
   27292     2302631 :          pack_tmp = packed_data(ipack)
   27293     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   27294     2302631 :          pack_tmp = ISHFT(pack_tmp, -36)
   27295     2302631 :          idata = idata + 1
   27296     2302631 :          data_tmp = ISHFT(pack_tmp, 8)
   27297     2302631 :          ipack = ipack + 1
   27298     2302631 :          pack_tmp = packed_data(ipack)
   27299     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   27300     2302631 :          pack_tmp = ISHFT(pack_tmp, -8)
   27301     2302631 :          idata = idata + 1
   27302     2302631 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27303     2302631 :          full_data(idata) = data_tmp
   27304     2302631 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27305     2302631 :          idata = idata + 1
   27306     2302631 :          data_tmp = ISHFT(pack_tmp, 16)
   27307     2302631 :          ipack = ipack + 1
   27308     2302631 :          pack_tmp = packed_data(ipack)
   27309     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   27310     2302631 :          pack_tmp = ISHFT(pack_tmp, -16)
   27311     2302631 :          idata = idata + 1
   27312     2302631 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27313     2302631 :          full_data(idata) = data_tmp
   27314     2302631 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27315     2302631 :          idata = idata + 1
   27316     2302631 :          data_tmp = ISHFT(pack_tmp, 24)
   27317     2302631 :          ipack = ipack + 1
   27318     2302631 :          pack_tmp = packed_data(ipack)
   27319     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   27320     2302631 :          pack_tmp = ISHFT(pack_tmp, -24)
   27321     2302631 :          idata = idata + 1
   27322     2302631 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27323     2302631 :          full_data(idata) = data_tmp
   27324     2302631 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27325     2302631 :          idata = idata + 1
   27326     2302631 :          data_tmp = ISHFT(pack_tmp, 32)
   27327     2302631 :          ipack = ipack + 1
   27328     2302631 :          pack_tmp = packed_data(ipack)
   27329     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   27330     2302631 :          pack_tmp = ISHFT(pack_tmp, -32)
   27331     2302631 :          idata = idata + 1
   27332     2302631 :          data_tmp = ISHFT(pack_tmp, 4)
   27333     2302631 :          ipack = ipack + 1
   27334     2302631 :          pack_tmp = packed_data(ipack)
   27335     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   27336     2302631 :          pack_tmp = ISHFT(pack_tmp, -4)
   27337     2302631 :          idata = idata + 1
   27338     2302631 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27339     2302631 :          full_data(idata) = data_tmp
   27340     2302631 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27341     2302631 :          idata = idata + 1
   27342     2302631 :          data_tmp = ISHFT(pack_tmp, 12)
   27343     2302631 :          ipack = ipack + 1
   27344     2302631 :          pack_tmp = packed_data(ipack)
   27345     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   27346     2302631 :          pack_tmp = ISHFT(pack_tmp, -12)
   27347     2302631 :          idata = idata + 1
   27348     2302631 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27349     2302631 :          full_data(idata) = data_tmp
   27350     2302631 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27351     2302631 :          idata = idata + 1
   27352     2302631 :          data_tmp = ISHFT(pack_tmp, 20)
   27353     2302631 :          ipack = ipack + 1
   27354     2302631 :          pack_tmp = packed_data(ipack)
   27355     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   27356     2302631 :          pack_tmp = ISHFT(pack_tmp, -20)
   27357     2302631 :          idata = idata + 1
   27358     2302631 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27359     2302631 :          full_data(idata) = data_tmp
   27360     2302631 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27361     2302631 :          idata = idata + 1
   27362     2302631 :          data_tmp = ISHFT(pack_tmp, 28)
   27363     2302631 :          ipack = ipack + 1
   27364     2302631 :          pack_tmp = packed_data(ipack)
   27365     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   27366     2302631 :          pack_tmp = ISHFT(pack_tmp, -28)
   27367     2302631 :          idata = idata + 1
   27368     2302631 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27369     2302631 :          full_data(idata) = data_tmp
   27370     2302631 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27371     2302631 :          idata = idata + 1
   27372     2302631 :          data_tmp = ISHFT(pack_tmp, 36)
   27373     2302631 :          ipack = ipack + 1
   27374     2302631 :          pack_tmp = packed_data(ipack)
   27375     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   27376     2302631 :          pack_tmp = ISHFT(pack_tmp, -36)
   27377     2302631 :          idata = idata + 1
   27378     2302631 :          data_tmp = ISHFT(pack_tmp, 8)
   27379     2302631 :          ipack = ipack + 1
   27380     2302631 :          pack_tmp = packed_data(ipack)
   27381     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   27382     2302631 :          pack_tmp = ISHFT(pack_tmp, -8)
   27383     2302631 :          idata = idata + 1
   27384     2302631 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27385     2302631 :          full_data(idata) = data_tmp
   27386     2302631 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27387     2302631 :          idata = idata + 1
   27388     2302631 :          data_tmp = ISHFT(pack_tmp, 16)
   27389     2302631 :          ipack = ipack + 1
   27390     2302631 :          pack_tmp = packed_data(ipack)
   27391     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   27392     2302631 :          pack_tmp = ISHFT(pack_tmp, -16)
   27393     2302631 :          idata = idata + 1
   27394     2302631 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27395     2302631 :          full_data(idata) = data_tmp
   27396     2302631 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27397     2302631 :          idata = idata + 1
   27398     2302631 :          data_tmp = ISHFT(pack_tmp, 24)
   27399     2302631 :          ipack = ipack + 1
   27400     2302631 :          pack_tmp = packed_data(ipack)
   27401     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   27402     2302631 :          pack_tmp = ISHFT(pack_tmp, -24)
   27403     2302631 :          idata = idata + 1
   27404     2302631 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27405     2302631 :          full_data(idata) = data_tmp
   27406     2302631 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27407     2302631 :          idata = idata + 1
   27408     2302631 :          data_tmp = ISHFT(pack_tmp, 32)
   27409     2302631 :          ipack = ipack + 1
   27410     2302631 :          pack_tmp = packed_data(ipack)
   27411     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   27412     2302631 :          pack_tmp = ISHFT(pack_tmp, -32)
   27413     2302631 :          idata = idata + 1
   27414     2302631 :          data_tmp = ISHFT(pack_tmp, 4)
   27415     2302631 :          ipack = ipack + 1
   27416     2302631 :          pack_tmp = packed_data(ipack)
   27417     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   27418     2302631 :          pack_tmp = ISHFT(pack_tmp, -4)
   27419     2302631 :          idata = idata + 1
   27420     2302631 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27421     2302631 :          full_data(idata) = data_tmp
   27422     2302631 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27423     2302631 :          idata = idata + 1
   27424     2302631 :          data_tmp = ISHFT(pack_tmp, 12)
   27425     2302631 :          ipack = ipack + 1
   27426     2302631 :          pack_tmp = packed_data(ipack)
   27427     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   27428     2302631 :          pack_tmp = ISHFT(pack_tmp, -12)
   27429     2302631 :          idata = idata + 1
   27430     2302631 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27431     2302631 :          full_data(idata) = data_tmp
   27432     2302631 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27433     2302631 :          idata = idata + 1
   27434     2302631 :          data_tmp = ISHFT(pack_tmp, 20)
   27435     2302631 :          ipack = ipack + 1
   27436     2302631 :          pack_tmp = packed_data(ipack)
   27437     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   27438     2302631 :          pack_tmp = ISHFT(pack_tmp, -20)
   27439     2302631 :          idata = idata + 1
   27440     2302631 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27441     2302631 :          full_data(idata) = data_tmp
   27442     2302631 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27443     2302631 :          idata = idata + 1
   27444     2302631 :          data_tmp = ISHFT(pack_tmp, 28)
   27445     2302631 :          ipack = ipack + 1
   27446     2302631 :          pack_tmp = packed_data(ipack)
   27447     2302631 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   27448     2302631 :          pack_tmp = ISHFT(pack_tmp, -28)
   27449     2302631 :          idata = idata + 1
   27450     2302631 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27451     2302631 :          full_data(idata) = data_tmp
   27452     2304137 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27453             :       END DO
   27454      175748 :       IF (Ndata_rep < Ndata) THEN
   27455       59922 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   27456             :       END IF
   27457      175748 :    END SUBROUTINE bits2ints_36
   27458             : 
   27459             : ! **************************************************************************************************
   27460             : !> \brief ...
   27461             : !> \param Ndata ...
   27462             : !> \param packed_data ...
   27463             : !> \param full_data ...
   27464             : ! **************************************************************************************************
   27465       35359 :    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       35359 :       idata = 0
   27476       35359 :       ipack = 0
   27477       35359 :       Ndata_rep = (Ndata/64)*64
   27478       35359 :       DO kdata = 1, Ndata_rep, 64
   27479      489892 :          pack_tmp = 0
   27480      489892 :          idata = idata + 1
   27481      489892 :          data_tmp = full_data(idata)
   27482      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27483      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27484      489892 :          pack_tmp = ISHFT(pack_tmp, -27)
   27485      489892 :          idata = idata + 1
   27486      489892 :          data_tmp = full_data(idata)
   27487      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27488      489892 :          data_tmp = IAND(data_tmp, mask_left(27))
   27489      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27490      489892 :          ipack = ipack + 1
   27491      489892 :          packed_data(ipack) = pack_tmp
   27492      489892 :          data_tmp = full_data(idata)
   27493      489892 :          pack_tmp = ISHFT(data_tmp, 54)
   27494      489892 :          pack_tmp = ISHFT(pack_tmp, -37)
   27495      489892 :          idata = idata + 1
   27496      489892 :          data_tmp = full_data(idata)
   27497      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27498      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27499      489892 :          pack_tmp = ISHFT(pack_tmp, -17)
   27500      489892 :          idata = idata + 1
   27501      489892 :          data_tmp = full_data(idata)
   27502      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27503      489892 :          data_tmp = IAND(data_tmp, mask_left(17))
   27504      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27505      489892 :          ipack = ipack + 1
   27506      489892 :          packed_data(ipack) = pack_tmp
   27507      489892 :          data_tmp = full_data(idata)
   27508      489892 :          pack_tmp = ISHFT(data_tmp, 44)
   27509      489892 :          pack_tmp = ISHFT(pack_tmp, -37)
   27510      489892 :          idata = idata + 1
   27511      489892 :          data_tmp = full_data(idata)
   27512      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27513      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27514      489892 :          pack_tmp = ISHFT(pack_tmp, -7)
   27515      489892 :          idata = idata + 1
   27516      489892 :          data_tmp = full_data(idata)
   27517      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27518      489892 :          data_tmp = IAND(data_tmp, mask_left(7))
   27519      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27520      489892 :          ipack = ipack + 1
   27521      489892 :          packed_data(ipack) = pack_tmp
   27522      489892 :          data_tmp = full_data(idata)
   27523      489892 :          pack_tmp = ISHFT(data_tmp, 34)
   27524      489892 :          pack_tmp = ISHFT(pack_tmp, -34)
   27525      489892 :          idata = idata + 1
   27526      489892 :          data_tmp = full_data(idata)
   27527      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27528      489892 :          data_tmp = IAND(data_tmp, mask_left(34))
   27529      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27530      489892 :          ipack = ipack + 1
   27531      489892 :          packed_data(ipack) = pack_tmp
   27532      489892 :          data_tmp = full_data(idata)
   27533      489892 :          pack_tmp = ISHFT(data_tmp, 61)
   27534      489892 :          pack_tmp = ISHFT(pack_tmp, -37)
   27535      489892 :          idata = idata + 1
   27536      489892 :          data_tmp = full_data(idata)
   27537      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27538      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27539      489892 :          pack_tmp = ISHFT(pack_tmp, -24)
   27540      489892 :          idata = idata + 1
   27541      489892 :          data_tmp = full_data(idata)
   27542      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27543      489892 :          data_tmp = IAND(data_tmp, mask_left(24))
   27544      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27545      489892 :          ipack = ipack + 1
   27546      489892 :          packed_data(ipack) = pack_tmp
   27547      489892 :          data_tmp = full_data(idata)
   27548      489892 :          pack_tmp = ISHFT(data_tmp, 51)
   27549      489892 :          pack_tmp = ISHFT(pack_tmp, -37)
   27550      489892 :          idata = idata + 1
   27551      489892 :          data_tmp = full_data(idata)
   27552      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27553      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27554      489892 :          pack_tmp = ISHFT(pack_tmp, -14)
   27555      489892 :          idata = idata + 1
   27556      489892 :          data_tmp = full_data(idata)
   27557      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27558      489892 :          data_tmp = IAND(data_tmp, mask_left(14))
   27559      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27560      489892 :          ipack = ipack + 1
   27561      489892 :          packed_data(ipack) = pack_tmp
   27562      489892 :          data_tmp = full_data(idata)
   27563      489892 :          pack_tmp = ISHFT(data_tmp, 41)
   27564      489892 :          pack_tmp = ISHFT(pack_tmp, -37)
   27565      489892 :          idata = idata + 1
   27566      489892 :          data_tmp = full_data(idata)
   27567      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27568      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27569      489892 :          pack_tmp = ISHFT(pack_tmp, -4)
   27570      489892 :          idata = idata + 1
   27571      489892 :          data_tmp = full_data(idata)
   27572      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27573      489892 :          data_tmp = IAND(data_tmp, mask_left(4))
   27574      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27575      489892 :          ipack = ipack + 1
   27576      489892 :          packed_data(ipack) = pack_tmp
   27577      489892 :          data_tmp = full_data(idata)
   27578      489892 :          pack_tmp = ISHFT(data_tmp, 31)
   27579      489892 :          pack_tmp = ISHFT(pack_tmp, -31)
   27580      489892 :          idata = idata + 1
   27581      489892 :          data_tmp = full_data(idata)
   27582      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27583      489892 :          data_tmp = IAND(data_tmp, mask_left(31))
   27584      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27585      489892 :          ipack = ipack + 1
   27586      489892 :          packed_data(ipack) = pack_tmp
   27587      489892 :          data_tmp = full_data(idata)
   27588      489892 :          pack_tmp = ISHFT(data_tmp, 58)
   27589      489892 :          pack_tmp = ISHFT(pack_tmp, -37)
   27590      489892 :          idata = idata + 1
   27591      489892 :          data_tmp = full_data(idata)
   27592      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27593      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27594      489892 :          pack_tmp = ISHFT(pack_tmp, -21)
   27595      489892 :          idata = idata + 1
   27596      489892 :          data_tmp = full_data(idata)
   27597      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27598      489892 :          data_tmp = IAND(data_tmp, mask_left(21))
   27599      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27600      489892 :          ipack = ipack + 1
   27601      489892 :          packed_data(ipack) = pack_tmp
   27602      489892 :          data_tmp = full_data(idata)
   27603      489892 :          pack_tmp = ISHFT(data_tmp, 48)
   27604      489892 :          pack_tmp = ISHFT(pack_tmp, -37)
   27605      489892 :          idata = idata + 1
   27606      489892 :          data_tmp = full_data(idata)
   27607      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27608      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27609      489892 :          pack_tmp = ISHFT(pack_tmp, -11)
   27610      489892 :          idata = idata + 1
   27611      489892 :          data_tmp = full_data(idata)
   27612      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27613      489892 :          data_tmp = IAND(data_tmp, mask_left(11))
   27614      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27615      489892 :          ipack = ipack + 1
   27616      489892 :          packed_data(ipack) = pack_tmp
   27617      489892 :          data_tmp = full_data(idata)
   27618      489892 :          pack_tmp = ISHFT(data_tmp, 38)
   27619      489892 :          pack_tmp = ISHFT(pack_tmp, -37)
   27620      489892 :          idata = idata + 1
   27621      489892 :          data_tmp = full_data(idata)
   27622      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27623      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27624      489892 :          pack_tmp = ISHFT(pack_tmp, -1)
   27625      489892 :          idata = idata + 1
   27626      489892 :          data_tmp = full_data(idata)
   27627      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27628      489892 :          data_tmp = IAND(data_tmp, mask_left(1))
   27629      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27630      489892 :          ipack = ipack + 1
   27631      489892 :          packed_data(ipack) = pack_tmp
   27632      489892 :          data_tmp = full_data(idata)
   27633      489892 :          pack_tmp = ISHFT(data_tmp, 28)
   27634      489892 :          pack_tmp = ISHFT(pack_tmp, -28)
   27635      489892 :          idata = idata + 1
   27636      489892 :          data_tmp = full_data(idata)
   27637      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27638      489892 :          data_tmp = IAND(data_tmp, mask_left(28))
   27639      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27640      489892 :          ipack = ipack + 1
   27641      489892 :          packed_data(ipack) = pack_tmp
   27642      489892 :          data_tmp = full_data(idata)
   27643      489892 :          pack_tmp = ISHFT(data_tmp, 55)
   27644      489892 :          pack_tmp = ISHFT(pack_tmp, -37)
   27645      489892 :          idata = idata + 1
   27646      489892 :          data_tmp = full_data(idata)
   27647      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27648      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27649      489892 :          pack_tmp = ISHFT(pack_tmp, -18)
   27650      489892 :          idata = idata + 1
   27651      489892 :          data_tmp = full_data(idata)
   27652      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27653      489892 :          data_tmp = IAND(data_tmp, mask_left(18))
   27654      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27655      489892 :          ipack = ipack + 1
   27656      489892 :          packed_data(ipack) = pack_tmp
   27657      489892 :          data_tmp = full_data(idata)
   27658      489892 :          pack_tmp = ISHFT(data_tmp, 45)
   27659      489892 :          pack_tmp = ISHFT(pack_tmp, -37)
   27660      489892 :          idata = idata + 1
   27661      489892 :          data_tmp = full_data(idata)
   27662      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27663      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27664      489892 :          pack_tmp = ISHFT(pack_tmp, -8)
   27665      489892 :          idata = idata + 1
   27666      489892 :          data_tmp = full_data(idata)
   27667      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27668      489892 :          data_tmp = IAND(data_tmp, mask_left(8))
   27669      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27670      489892 :          ipack = ipack + 1
   27671      489892 :          packed_data(ipack) = pack_tmp
   27672      489892 :          data_tmp = full_data(idata)
   27673      489892 :          pack_tmp = ISHFT(data_tmp, 35)
   27674      489892 :          pack_tmp = ISHFT(pack_tmp, -35)
   27675      489892 :          idata = idata + 1
   27676      489892 :          data_tmp = full_data(idata)
   27677      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27678      489892 :          data_tmp = IAND(data_tmp, mask_left(35))
   27679      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27680      489892 :          ipack = ipack + 1
   27681      489892 :          packed_data(ipack) = pack_tmp
   27682      489892 :          data_tmp = full_data(idata)
   27683      489892 :          pack_tmp = ISHFT(data_tmp, 62)
   27684      489892 :          pack_tmp = ISHFT(pack_tmp, -37)
   27685      489892 :          idata = idata + 1
   27686      489892 :          data_tmp = full_data(idata)
   27687      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27688      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27689      489892 :          pack_tmp = ISHFT(pack_tmp, -25)
   27690      489892 :          idata = idata + 1
   27691      489892 :          data_tmp = full_data(idata)
   27692      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27693      489892 :          data_tmp = IAND(data_tmp, mask_left(25))
   27694      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27695      489892 :          ipack = ipack + 1
   27696      489892 :          packed_data(ipack) = pack_tmp
   27697      489892 :          data_tmp = full_data(idata)
   27698      489892 :          pack_tmp = ISHFT(data_tmp, 52)
   27699      489892 :          pack_tmp = ISHFT(pack_tmp, -37)
   27700      489892 :          idata = idata + 1
   27701      489892 :          data_tmp = full_data(idata)
   27702      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27703      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27704      489892 :          pack_tmp = ISHFT(pack_tmp, -15)
   27705      489892 :          idata = idata + 1
   27706      489892 :          data_tmp = full_data(idata)
   27707      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27708      489892 :          data_tmp = IAND(data_tmp, mask_left(15))
   27709      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27710      489892 :          ipack = ipack + 1
   27711      489892 :          packed_data(ipack) = pack_tmp
   27712      489892 :          data_tmp = full_data(idata)
   27713      489892 :          pack_tmp = ISHFT(data_tmp, 42)
   27714      489892 :          pack_tmp = ISHFT(pack_tmp, -37)
   27715      489892 :          idata = idata + 1
   27716      489892 :          data_tmp = full_data(idata)
   27717      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27718      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27719      489892 :          pack_tmp = ISHFT(pack_tmp, -5)
   27720      489892 :          idata = idata + 1
   27721      489892 :          data_tmp = full_data(idata)
   27722      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27723      489892 :          data_tmp = IAND(data_tmp, mask_left(5))
   27724      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27725      489892 :          ipack = ipack + 1
   27726      489892 :          packed_data(ipack) = pack_tmp
   27727      489892 :          data_tmp = full_data(idata)
   27728      489892 :          pack_tmp = ISHFT(data_tmp, 32)
   27729      489892 :          pack_tmp = ISHFT(pack_tmp, -32)
   27730      489892 :          idata = idata + 1
   27731      489892 :          data_tmp = full_data(idata)
   27732      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27733      489892 :          data_tmp = IAND(data_tmp, mask_left(32))
   27734      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27735      489892 :          ipack = ipack + 1
   27736      489892 :          packed_data(ipack) = pack_tmp
   27737      489892 :          data_tmp = full_data(idata)
   27738      489892 :          pack_tmp = ISHFT(data_tmp, 59)
   27739      489892 :          pack_tmp = ISHFT(pack_tmp, -37)
   27740      489892 :          idata = idata + 1
   27741      489892 :          data_tmp = full_data(idata)
   27742      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27743      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27744      489892 :          pack_tmp = ISHFT(pack_tmp, -22)
   27745      489892 :          idata = idata + 1
   27746      489892 :          data_tmp = full_data(idata)
   27747      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27748      489892 :          data_tmp = IAND(data_tmp, mask_left(22))
   27749      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27750      489892 :          ipack = ipack + 1
   27751      489892 :          packed_data(ipack) = pack_tmp
   27752      489892 :          data_tmp = full_data(idata)
   27753      489892 :          pack_tmp = ISHFT(data_tmp, 49)
   27754      489892 :          pack_tmp = ISHFT(pack_tmp, -37)
   27755      489892 :          idata = idata + 1
   27756      489892 :          data_tmp = full_data(idata)
   27757      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27758      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27759      489892 :          pack_tmp = ISHFT(pack_tmp, -12)
   27760      489892 :          idata = idata + 1
   27761      489892 :          data_tmp = full_data(idata)
   27762      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27763      489892 :          data_tmp = IAND(data_tmp, mask_left(12))
   27764      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27765      489892 :          ipack = ipack + 1
   27766      489892 :          packed_data(ipack) = pack_tmp
   27767      489892 :          data_tmp = full_data(idata)
   27768      489892 :          pack_tmp = ISHFT(data_tmp, 39)
   27769      489892 :          pack_tmp = ISHFT(pack_tmp, -37)
   27770      489892 :          idata = idata + 1
   27771      489892 :          data_tmp = full_data(idata)
   27772      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27773      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27774      489892 :          pack_tmp = ISHFT(pack_tmp, -2)
   27775      489892 :          idata = idata + 1
   27776      489892 :          data_tmp = full_data(idata)
   27777      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27778      489892 :          data_tmp = IAND(data_tmp, mask_left(2))
   27779      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27780      489892 :          ipack = ipack + 1
   27781      489892 :          packed_data(ipack) = pack_tmp
   27782      489892 :          data_tmp = full_data(idata)
   27783      489892 :          pack_tmp = ISHFT(data_tmp, 29)
   27784      489892 :          pack_tmp = ISHFT(pack_tmp, -29)
   27785      489892 :          idata = idata + 1
   27786      489892 :          data_tmp = full_data(idata)
   27787      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27788      489892 :          data_tmp = IAND(data_tmp, mask_left(29))
   27789      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27790      489892 :          ipack = ipack + 1
   27791      489892 :          packed_data(ipack) = pack_tmp
   27792      489892 :          data_tmp = full_data(idata)
   27793      489892 :          pack_tmp = ISHFT(data_tmp, 56)
   27794      489892 :          pack_tmp = ISHFT(pack_tmp, -37)
   27795      489892 :          idata = idata + 1
   27796      489892 :          data_tmp = full_data(idata)
   27797      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27798      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27799      489892 :          pack_tmp = ISHFT(pack_tmp, -19)
   27800      489892 :          idata = idata + 1
   27801      489892 :          data_tmp = full_data(idata)
   27802      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27803      489892 :          data_tmp = IAND(data_tmp, mask_left(19))
   27804      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27805      489892 :          ipack = ipack + 1
   27806      489892 :          packed_data(ipack) = pack_tmp
   27807      489892 :          data_tmp = full_data(idata)
   27808      489892 :          pack_tmp = ISHFT(data_tmp, 46)
   27809      489892 :          pack_tmp = ISHFT(pack_tmp, -37)
   27810      489892 :          idata = idata + 1
   27811      489892 :          data_tmp = full_data(idata)
   27812      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27813      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27814      489892 :          pack_tmp = ISHFT(pack_tmp, -9)
   27815      489892 :          idata = idata + 1
   27816      489892 :          data_tmp = full_data(idata)
   27817      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27818      489892 :          data_tmp = IAND(data_tmp, mask_left(9))
   27819      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27820      489892 :          ipack = ipack + 1
   27821      489892 :          packed_data(ipack) = pack_tmp
   27822      489892 :          data_tmp = full_data(idata)
   27823      489892 :          pack_tmp = ISHFT(data_tmp, 36)
   27824      489892 :          pack_tmp = ISHFT(pack_tmp, -36)
   27825      489892 :          idata = idata + 1
   27826      489892 :          data_tmp = full_data(idata)
   27827      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27828      489892 :          data_tmp = IAND(data_tmp, mask_left(36))
   27829      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27830      489892 :          ipack = ipack + 1
   27831      489892 :          packed_data(ipack) = pack_tmp
   27832      489892 :          data_tmp = full_data(idata)
   27833      489892 :          pack_tmp = ISHFT(data_tmp, 63)
   27834      489892 :          pack_tmp = ISHFT(pack_tmp, -37)
   27835      489892 :          idata = idata + 1
   27836      489892 :          data_tmp = full_data(idata)
   27837      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27838      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27839      489892 :          pack_tmp = ISHFT(pack_tmp, -26)
   27840      489892 :          idata = idata + 1
   27841      489892 :          data_tmp = full_data(idata)
   27842      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27843      489892 :          data_tmp = IAND(data_tmp, mask_left(26))
   27844      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27845      489892 :          ipack = ipack + 1
   27846      489892 :          packed_data(ipack) = pack_tmp
   27847      489892 :          data_tmp = full_data(idata)
   27848      489892 :          pack_tmp = ISHFT(data_tmp, 53)
   27849      489892 :          pack_tmp = ISHFT(pack_tmp, -37)
   27850      489892 :          idata = idata + 1
   27851      489892 :          data_tmp = full_data(idata)
   27852      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27853      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27854      489892 :          pack_tmp = ISHFT(pack_tmp, -16)
   27855      489892 :          idata = idata + 1
   27856      489892 :          data_tmp = full_data(idata)
   27857      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27858      489892 :          data_tmp = IAND(data_tmp, mask_left(16))
   27859      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27860      489892 :          ipack = ipack + 1
   27861      489892 :          packed_data(ipack) = pack_tmp
   27862      489892 :          data_tmp = full_data(idata)
   27863      489892 :          pack_tmp = ISHFT(data_tmp, 43)
   27864      489892 :          pack_tmp = ISHFT(pack_tmp, -37)
   27865      489892 :          idata = idata + 1
   27866      489892 :          data_tmp = full_data(idata)
   27867      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27868      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27869      489892 :          pack_tmp = ISHFT(pack_tmp, -6)
   27870      489892 :          idata = idata + 1
   27871      489892 :          data_tmp = full_data(idata)
   27872      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27873      489892 :          data_tmp = IAND(data_tmp, mask_left(6))
   27874      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27875      489892 :          ipack = ipack + 1
   27876      489892 :          packed_data(ipack) = pack_tmp
   27877      489892 :          data_tmp = full_data(idata)
   27878      489892 :          pack_tmp = ISHFT(data_tmp, 33)
   27879      489892 :          pack_tmp = ISHFT(pack_tmp, -33)
   27880      489892 :          idata = idata + 1
   27881      489892 :          data_tmp = full_data(idata)
   27882      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27883      489892 :          data_tmp = IAND(data_tmp, mask_left(33))
   27884      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27885      489892 :          ipack = ipack + 1
   27886      489892 :          packed_data(ipack) = pack_tmp
   27887      489892 :          data_tmp = full_data(idata)
   27888      489892 :          pack_tmp = ISHFT(data_tmp, 60)
   27889      489892 :          pack_tmp = ISHFT(pack_tmp, -37)
   27890      489892 :          idata = idata + 1
   27891      489892 :          data_tmp = full_data(idata)
   27892      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27893      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27894      489892 :          pack_tmp = ISHFT(pack_tmp, -23)
   27895      489892 :          idata = idata + 1
   27896      489892 :          data_tmp = full_data(idata)
   27897      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27898      489892 :          data_tmp = IAND(data_tmp, mask_left(23))
   27899      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27900      489892 :          ipack = ipack + 1
   27901      489892 :          packed_data(ipack) = pack_tmp
   27902      489892 :          data_tmp = full_data(idata)
   27903      489892 :          pack_tmp = ISHFT(data_tmp, 50)
   27904      489892 :          pack_tmp = ISHFT(pack_tmp, -37)
   27905      489892 :          idata = idata + 1
   27906      489892 :          data_tmp = full_data(idata)
   27907      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27908      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27909      489892 :          pack_tmp = ISHFT(pack_tmp, -13)
   27910      489892 :          idata = idata + 1
   27911      489892 :          data_tmp = full_data(idata)
   27912      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27913      489892 :          data_tmp = IAND(data_tmp, mask_left(13))
   27914      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27915      489892 :          ipack = ipack + 1
   27916      489892 :          packed_data(ipack) = pack_tmp
   27917      489892 :          data_tmp = full_data(idata)
   27918      489892 :          pack_tmp = ISHFT(data_tmp, 40)
   27919      489892 :          pack_tmp = ISHFT(pack_tmp, -37)
   27920      489892 :          idata = idata + 1
   27921      489892 :          data_tmp = full_data(idata)
   27922      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27923      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27924      489892 :          pack_tmp = ISHFT(pack_tmp, -3)
   27925      489892 :          idata = idata + 1
   27926      489892 :          data_tmp = full_data(idata)
   27927      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27928      489892 :          data_tmp = IAND(data_tmp, mask_left(3))
   27929      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27930      489892 :          ipack = ipack + 1
   27931      489892 :          packed_data(ipack) = pack_tmp
   27932      489892 :          data_tmp = full_data(idata)
   27933      489892 :          pack_tmp = ISHFT(data_tmp, 30)
   27934      489892 :          pack_tmp = ISHFT(pack_tmp, -30)
   27935      489892 :          idata = idata + 1
   27936      489892 :          data_tmp = full_data(idata)
   27937      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27938      489892 :          data_tmp = IAND(data_tmp, mask_left(30))
   27939      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27940      489892 :          ipack = ipack + 1
   27941      489892 :          packed_data(ipack) = pack_tmp
   27942      489892 :          data_tmp = full_data(idata)
   27943      489892 :          pack_tmp = ISHFT(data_tmp, 57)
   27944      489892 :          pack_tmp = ISHFT(pack_tmp, -37)
   27945      489892 :          idata = idata + 1
   27946      489892 :          data_tmp = full_data(idata)
   27947      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27948      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27949      489892 :          pack_tmp = ISHFT(pack_tmp, -20)
   27950      489892 :          idata = idata + 1
   27951      489892 :          data_tmp = full_data(idata)
   27952      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27953      489892 :          data_tmp = IAND(data_tmp, mask_left(20))
   27954      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27955      489892 :          ipack = ipack + 1
   27956      489892 :          packed_data(ipack) = pack_tmp
   27957      489892 :          data_tmp = full_data(idata)
   27958      489892 :          pack_tmp = ISHFT(data_tmp, 47)
   27959      489892 :          pack_tmp = ISHFT(pack_tmp, -37)
   27960      489892 :          idata = idata + 1
   27961      489892 :          data_tmp = full_data(idata)
   27962      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27963      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27964      489892 :          pack_tmp = ISHFT(pack_tmp, -10)
   27965      489892 :          idata = idata + 1
   27966      489892 :          data_tmp = full_data(idata)
   27967      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27968      489892 :          data_tmp = IAND(data_tmp, mask_left(10))
   27969      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27970      489892 :          ipack = ipack + 1
   27971      489892 :          packed_data(ipack) = pack_tmp
   27972      489892 :          data_tmp = full_data(idata)
   27973      489892 :          pack_tmp = ISHFT(data_tmp, 37)
   27974      489892 :          pack_tmp = ISHFT(pack_tmp, -37)
   27975      489892 :          idata = idata + 1
   27976      489892 :          data_tmp = full_data(idata)
   27977      489892 :          data_tmp = ISHFT(data_tmp, 27)
   27978      489892 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27979             :          pack_tmp = ISHFT(pack_tmp, 0)
   27980      489892 :          pack_tmp = ISHFT(pack_tmp, 0)
   27981      489892 :          ipack = ipack + 1
   27982      489915 :          packed_data(ipack) = pack_tmp
   27983             :       END DO
   27984       35359 :       IF (Ndata_rep < Ndata) THEN
   27985        8920 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   27986             :       END IF
   27987       35359 :    END SUBROUTINE ints2bits_37
   27988             : 
   27989             : ! **************************************************************************************************
   27990             : !> \brief ...
   27991             : !> \param Ndata ...
   27992             : !> \param packed_data ...
   27993             : !> \param full_data ...
   27994             : ! **************************************************************************************************
   27995      148792 :    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      148792 :       ipack = 0
   28006      148792 :       idata = 0
   28007      148792 :       pack_tmp = 0
   28008      148792 :       Ndata_rep = (Ndata/64)*64
   28009      148792 :       DO kdata = 1, Ndata_rep, 64
   28010     2024813 :          idata = idata + 1
   28011     2024813 :          data_tmp = ISHFT(pack_tmp, 37)
   28012     2024813 :          ipack = ipack + 1
   28013     2024813 :          pack_tmp = packed_data(ipack)
   28014     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   28015     2024813 :          pack_tmp = ISHFT(pack_tmp, -37)
   28016     2024813 :          idata = idata + 1
   28017     2024813 :          data_tmp = ISHFT(pack_tmp, 10)
   28018     2024813 :          ipack = ipack + 1
   28019     2024813 :          pack_tmp = packed_data(ipack)
   28020     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   28021     2024813 :          pack_tmp = ISHFT(pack_tmp, -10)
   28022     2024813 :          idata = idata + 1
   28023     2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28024     2024813 :          full_data(idata) = data_tmp
   28025     2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28026     2024813 :          idata = idata + 1
   28027     2024813 :          data_tmp = ISHFT(pack_tmp, 20)
   28028     2024813 :          ipack = ipack + 1
   28029     2024813 :          pack_tmp = packed_data(ipack)
   28030     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   28031     2024813 :          pack_tmp = ISHFT(pack_tmp, -20)
   28032     2024813 :          idata = idata + 1
   28033     2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28034     2024813 :          full_data(idata) = data_tmp
   28035     2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28036     2024813 :          idata = idata + 1
   28037     2024813 :          data_tmp = ISHFT(pack_tmp, 30)
   28038     2024813 :          ipack = ipack + 1
   28039     2024813 :          pack_tmp = packed_data(ipack)
   28040     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   28041     2024813 :          pack_tmp = ISHFT(pack_tmp, -30)
   28042     2024813 :          idata = idata + 1
   28043     2024813 :          data_tmp = ISHFT(pack_tmp, 3)
   28044     2024813 :          ipack = ipack + 1
   28045     2024813 :          pack_tmp = packed_data(ipack)
   28046     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   28047     2024813 :          pack_tmp = ISHFT(pack_tmp, -3)
   28048     2024813 :          idata = idata + 1
   28049     2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28050     2024813 :          full_data(idata) = data_tmp
   28051     2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28052     2024813 :          idata = idata + 1
   28053     2024813 :          data_tmp = ISHFT(pack_tmp, 13)
   28054     2024813 :          ipack = ipack + 1
   28055     2024813 :          pack_tmp = packed_data(ipack)
   28056     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   28057     2024813 :          pack_tmp = ISHFT(pack_tmp, -13)
   28058     2024813 :          idata = idata + 1
   28059     2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28060     2024813 :          full_data(idata) = data_tmp
   28061     2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28062     2024813 :          idata = idata + 1
   28063     2024813 :          data_tmp = ISHFT(pack_tmp, 23)
   28064     2024813 :          ipack = ipack + 1
   28065     2024813 :          pack_tmp = packed_data(ipack)
   28066     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   28067     2024813 :          pack_tmp = ISHFT(pack_tmp, -23)
   28068     2024813 :          idata = idata + 1
   28069     2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28070     2024813 :          full_data(idata) = data_tmp
   28071     2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28072     2024813 :          idata = idata + 1
   28073     2024813 :          data_tmp = ISHFT(pack_tmp, 33)
   28074     2024813 :          ipack = ipack + 1
   28075     2024813 :          pack_tmp = packed_data(ipack)
   28076     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   28077     2024813 :          pack_tmp = ISHFT(pack_tmp, -33)
   28078     2024813 :          idata = idata + 1
   28079     2024813 :          data_tmp = ISHFT(pack_tmp, 6)
   28080     2024813 :          ipack = ipack + 1
   28081     2024813 :          pack_tmp = packed_data(ipack)
   28082     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   28083     2024813 :          pack_tmp = ISHFT(pack_tmp, -6)
   28084     2024813 :          idata = idata + 1
   28085     2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28086     2024813 :          full_data(idata) = data_tmp
   28087     2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28088     2024813 :          idata = idata + 1
   28089     2024813 :          data_tmp = ISHFT(pack_tmp, 16)
   28090     2024813 :          ipack = ipack + 1
   28091     2024813 :          pack_tmp = packed_data(ipack)
   28092     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   28093     2024813 :          pack_tmp = ISHFT(pack_tmp, -16)
   28094     2024813 :          idata = idata + 1
   28095     2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28096     2024813 :          full_data(idata) = data_tmp
   28097     2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28098     2024813 :          idata = idata + 1
   28099     2024813 :          data_tmp = ISHFT(pack_tmp, 26)
   28100     2024813 :          ipack = ipack + 1
   28101     2024813 :          pack_tmp = packed_data(ipack)
   28102     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   28103     2024813 :          pack_tmp = ISHFT(pack_tmp, -26)
   28104     2024813 :          idata = idata + 1
   28105     2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28106     2024813 :          full_data(idata) = data_tmp
   28107     2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28108     2024813 :          idata = idata + 1
   28109     2024813 :          data_tmp = ISHFT(pack_tmp, 36)
   28110     2024813 :          ipack = ipack + 1
   28111     2024813 :          pack_tmp = packed_data(ipack)
   28112     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   28113     2024813 :          pack_tmp = ISHFT(pack_tmp, -36)
   28114     2024813 :          idata = idata + 1
   28115     2024813 :          data_tmp = ISHFT(pack_tmp, 9)
   28116     2024813 :          ipack = ipack + 1
   28117     2024813 :          pack_tmp = packed_data(ipack)
   28118     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   28119     2024813 :          pack_tmp = ISHFT(pack_tmp, -9)
   28120     2024813 :          idata = idata + 1
   28121     2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28122     2024813 :          full_data(idata) = data_tmp
   28123     2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28124     2024813 :          idata = idata + 1
   28125     2024813 :          data_tmp = ISHFT(pack_tmp, 19)
   28126     2024813 :          ipack = ipack + 1
   28127     2024813 :          pack_tmp = packed_data(ipack)
   28128     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   28129     2024813 :          pack_tmp = ISHFT(pack_tmp, -19)
   28130     2024813 :          idata = idata + 1
   28131     2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28132     2024813 :          full_data(idata) = data_tmp
   28133     2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28134     2024813 :          idata = idata + 1
   28135     2024813 :          data_tmp = ISHFT(pack_tmp, 29)
   28136     2024813 :          ipack = ipack + 1
   28137     2024813 :          pack_tmp = packed_data(ipack)
   28138     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   28139     2024813 :          pack_tmp = ISHFT(pack_tmp, -29)
   28140     2024813 :          idata = idata + 1
   28141     2024813 :          data_tmp = ISHFT(pack_tmp, 2)
   28142     2024813 :          ipack = ipack + 1
   28143     2024813 :          pack_tmp = packed_data(ipack)
   28144     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   28145     2024813 :          pack_tmp = ISHFT(pack_tmp, -2)
   28146     2024813 :          idata = idata + 1
   28147     2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28148     2024813 :          full_data(idata) = data_tmp
   28149     2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28150     2024813 :          idata = idata + 1
   28151     2024813 :          data_tmp = ISHFT(pack_tmp, 12)
   28152     2024813 :          ipack = ipack + 1
   28153     2024813 :          pack_tmp = packed_data(ipack)
   28154     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   28155     2024813 :          pack_tmp = ISHFT(pack_tmp, -12)
   28156     2024813 :          idata = idata + 1
   28157     2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28158     2024813 :          full_data(idata) = data_tmp
   28159     2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28160     2024813 :          idata = idata + 1
   28161     2024813 :          data_tmp = ISHFT(pack_tmp, 22)
   28162     2024813 :          ipack = ipack + 1
   28163     2024813 :          pack_tmp = packed_data(ipack)
   28164     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   28165     2024813 :          pack_tmp = ISHFT(pack_tmp, -22)
   28166     2024813 :          idata = idata + 1
   28167     2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28168     2024813 :          full_data(idata) = data_tmp
   28169     2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28170     2024813 :          idata = idata + 1
   28171     2024813 :          data_tmp = ISHFT(pack_tmp, 32)
   28172     2024813 :          ipack = ipack + 1
   28173     2024813 :          pack_tmp = packed_data(ipack)
   28174     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   28175     2024813 :          pack_tmp = ISHFT(pack_tmp, -32)
   28176     2024813 :          idata = idata + 1
   28177     2024813 :          data_tmp = ISHFT(pack_tmp, 5)
   28178     2024813 :          ipack = ipack + 1
   28179     2024813 :          pack_tmp = packed_data(ipack)
   28180     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   28181     2024813 :          pack_tmp = ISHFT(pack_tmp, -5)
   28182     2024813 :          idata = idata + 1
   28183     2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28184     2024813 :          full_data(idata) = data_tmp
   28185     2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28186     2024813 :          idata = idata + 1
   28187     2024813 :          data_tmp = ISHFT(pack_tmp, 15)
   28188     2024813 :          ipack = ipack + 1
   28189     2024813 :          pack_tmp = packed_data(ipack)
   28190     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   28191     2024813 :          pack_tmp = ISHFT(pack_tmp, -15)
   28192     2024813 :          idata = idata + 1
   28193     2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28194     2024813 :          full_data(idata) = data_tmp
   28195     2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28196     2024813 :          idata = idata + 1
   28197     2024813 :          data_tmp = ISHFT(pack_tmp, 25)
   28198     2024813 :          ipack = ipack + 1
   28199     2024813 :          pack_tmp = packed_data(ipack)
   28200     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   28201     2024813 :          pack_tmp = ISHFT(pack_tmp, -25)
   28202     2024813 :          idata = idata + 1
   28203     2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28204     2024813 :          full_data(idata) = data_tmp
   28205     2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28206     2024813 :          idata = idata + 1
   28207     2024813 :          data_tmp = ISHFT(pack_tmp, 35)
   28208     2024813 :          ipack = ipack + 1
   28209     2024813 :          pack_tmp = packed_data(ipack)
   28210     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   28211     2024813 :          pack_tmp = ISHFT(pack_tmp, -35)
   28212     2024813 :          idata = idata + 1
   28213     2024813 :          data_tmp = ISHFT(pack_tmp, 8)
   28214     2024813 :          ipack = ipack + 1
   28215     2024813 :          pack_tmp = packed_data(ipack)
   28216     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   28217     2024813 :          pack_tmp = ISHFT(pack_tmp, -8)
   28218     2024813 :          idata = idata + 1
   28219     2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28220     2024813 :          full_data(idata) = data_tmp
   28221     2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28222     2024813 :          idata = idata + 1
   28223     2024813 :          data_tmp = ISHFT(pack_tmp, 18)
   28224     2024813 :          ipack = ipack + 1
   28225     2024813 :          pack_tmp = packed_data(ipack)
   28226     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   28227     2024813 :          pack_tmp = ISHFT(pack_tmp, -18)
   28228     2024813 :          idata = idata + 1
   28229     2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28230     2024813 :          full_data(idata) = data_tmp
   28231     2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28232     2024813 :          idata = idata + 1
   28233     2024813 :          data_tmp = ISHFT(pack_tmp, 28)
   28234     2024813 :          ipack = ipack + 1
   28235     2024813 :          pack_tmp = packed_data(ipack)
   28236     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   28237     2024813 :          pack_tmp = ISHFT(pack_tmp, -28)
   28238     2024813 :          idata = idata + 1
   28239     2024813 :          data_tmp = ISHFT(pack_tmp, 1)
   28240     2024813 :          ipack = ipack + 1
   28241     2024813 :          pack_tmp = packed_data(ipack)
   28242     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   28243     2024813 :          pack_tmp = ISHFT(pack_tmp, -1)
   28244     2024813 :          idata = idata + 1
   28245     2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28246     2024813 :          full_data(idata) = data_tmp
   28247     2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28248     2024813 :          idata = idata + 1
   28249     2024813 :          data_tmp = ISHFT(pack_tmp, 11)
   28250     2024813 :          ipack = ipack + 1
   28251     2024813 :          pack_tmp = packed_data(ipack)
   28252     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   28253     2024813 :          pack_tmp = ISHFT(pack_tmp, -11)
   28254     2024813 :          idata = idata + 1
   28255     2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28256     2024813 :          full_data(idata) = data_tmp
   28257     2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28258     2024813 :          idata = idata + 1
   28259     2024813 :          data_tmp = ISHFT(pack_tmp, 21)
   28260     2024813 :          ipack = ipack + 1
   28261     2024813 :          pack_tmp = packed_data(ipack)
   28262     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   28263     2024813 :          pack_tmp = ISHFT(pack_tmp, -21)
   28264     2024813 :          idata = idata + 1
   28265     2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28266     2024813 :          full_data(idata) = data_tmp
   28267     2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28268     2024813 :          idata = idata + 1
   28269     2024813 :          data_tmp = ISHFT(pack_tmp, 31)
   28270     2024813 :          ipack = ipack + 1
   28271     2024813 :          pack_tmp = packed_data(ipack)
   28272     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   28273     2024813 :          pack_tmp = ISHFT(pack_tmp, -31)
   28274     2024813 :          idata = idata + 1
   28275     2024813 :          data_tmp = ISHFT(pack_tmp, 4)
   28276     2024813 :          ipack = ipack + 1
   28277     2024813 :          pack_tmp = packed_data(ipack)
   28278     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   28279     2024813 :          pack_tmp = ISHFT(pack_tmp, -4)
   28280     2024813 :          idata = idata + 1
   28281     2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28282     2024813 :          full_data(idata) = data_tmp
   28283     2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28284     2024813 :          idata = idata + 1
   28285     2024813 :          data_tmp = ISHFT(pack_tmp, 14)
   28286     2024813 :          ipack = ipack + 1
   28287     2024813 :          pack_tmp = packed_data(ipack)
   28288     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   28289     2024813 :          pack_tmp = ISHFT(pack_tmp, -14)
   28290     2024813 :          idata = idata + 1
   28291     2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28292     2024813 :          full_data(idata) = data_tmp
   28293     2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28294     2024813 :          idata = idata + 1
   28295     2024813 :          data_tmp = ISHFT(pack_tmp, 24)
   28296     2024813 :          ipack = ipack + 1
   28297     2024813 :          pack_tmp = packed_data(ipack)
   28298     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   28299     2024813 :          pack_tmp = ISHFT(pack_tmp, -24)
   28300     2024813 :          idata = idata + 1
   28301     2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28302     2024813 :          full_data(idata) = data_tmp
   28303     2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28304     2024813 :          idata = idata + 1
   28305     2024813 :          data_tmp = ISHFT(pack_tmp, 34)
   28306     2024813 :          ipack = ipack + 1
   28307     2024813 :          pack_tmp = packed_data(ipack)
   28308     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   28309     2024813 :          pack_tmp = ISHFT(pack_tmp, -34)
   28310     2024813 :          idata = idata + 1
   28311     2024813 :          data_tmp = ISHFT(pack_tmp, 7)
   28312     2024813 :          ipack = ipack + 1
   28313     2024813 :          pack_tmp = packed_data(ipack)
   28314     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   28315     2024813 :          pack_tmp = ISHFT(pack_tmp, -7)
   28316     2024813 :          idata = idata + 1
   28317     2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28318     2024813 :          full_data(idata) = data_tmp
   28319     2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28320     2024813 :          idata = idata + 1
   28321     2024813 :          data_tmp = ISHFT(pack_tmp, 17)
   28322     2024813 :          ipack = ipack + 1
   28323     2024813 :          pack_tmp = packed_data(ipack)
   28324     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   28325     2024813 :          pack_tmp = ISHFT(pack_tmp, -17)
   28326     2024813 :          idata = idata + 1
   28327     2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28328     2024813 :          full_data(idata) = data_tmp
   28329     2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28330     2024813 :          idata = idata + 1
   28331     2024813 :          data_tmp = ISHFT(pack_tmp, 27)
   28332     2024813 :          ipack = ipack + 1
   28333     2024813 :          pack_tmp = packed_data(ipack)
   28334     2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   28335     2024813 :          pack_tmp = ISHFT(pack_tmp, -27)
   28336     2024813 :          idata = idata + 1
   28337     2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28338     2024813 :          full_data(idata) = data_tmp
   28339     2024852 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28340             :       END DO
   28341      148792 :       IF (Ndata_rep < Ndata) THEN
   28342       41862 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   28343             :       END IF
   28344      148792 :    END SUBROUTINE bits2ints_37
   28345             : 
   28346             : ! **************************************************************************************************
   28347             : !> \brief ...
   28348             : !> \param Ndata ...
   28349             : !> \param packed_data ...
   28350             : !> \param full_data ...
   28351             : ! **************************************************************************************************
   28352       32712 :    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       32712 :       idata = 0
   28363       32712 :       ipack = 0
   28364       32712 :       Ndata_rep = (Ndata/64)*64
   28365       32712 :       DO kdata = 1, Ndata_rep, 64
   28366      464366 :          pack_tmp = 0
   28367      464366 :          idata = idata + 1
   28368      464366 :          data_tmp = full_data(idata)
   28369      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28370      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28371      464366 :          pack_tmp = ISHFT(pack_tmp, -26)
   28372      464366 :          idata = idata + 1
   28373      464366 :          data_tmp = full_data(idata)
   28374      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28375      464366 :          data_tmp = IAND(data_tmp, mask_left(26))
   28376      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28377      464366 :          ipack = ipack + 1
   28378      464366 :          packed_data(ipack) = pack_tmp
   28379      464366 :          data_tmp = full_data(idata)
   28380      464366 :          pack_tmp = ISHFT(data_tmp, 52)
   28381      464366 :          pack_tmp = ISHFT(pack_tmp, -38)
   28382      464366 :          idata = idata + 1
   28383      464366 :          data_tmp = full_data(idata)
   28384      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28385      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28386      464366 :          pack_tmp = ISHFT(pack_tmp, -14)
   28387      464366 :          idata = idata + 1
   28388      464366 :          data_tmp = full_data(idata)
   28389      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28390      464366 :          data_tmp = IAND(data_tmp, mask_left(14))
   28391      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28392      464366 :          ipack = ipack + 1
   28393      464366 :          packed_data(ipack) = pack_tmp
   28394      464366 :          data_tmp = full_data(idata)
   28395      464366 :          pack_tmp = ISHFT(data_tmp, 40)
   28396      464366 :          pack_tmp = ISHFT(pack_tmp, -38)
   28397      464366 :          idata = idata + 1
   28398      464366 :          data_tmp = full_data(idata)
   28399      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28400      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28401      464366 :          pack_tmp = ISHFT(pack_tmp, -2)
   28402      464366 :          idata = idata + 1
   28403      464366 :          data_tmp = full_data(idata)
   28404      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28405      464366 :          data_tmp = IAND(data_tmp, mask_left(2))
   28406      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28407      464366 :          ipack = ipack + 1
   28408      464366 :          packed_data(ipack) = pack_tmp
   28409      464366 :          data_tmp = full_data(idata)
   28410      464366 :          pack_tmp = ISHFT(data_tmp, 28)
   28411      464366 :          pack_tmp = ISHFT(pack_tmp, -28)
   28412      464366 :          idata = idata + 1
   28413      464366 :          data_tmp = full_data(idata)
   28414      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28415      464366 :          data_tmp = IAND(data_tmp, mask_left(28))
   28416      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28417      464366 :          ipack = ipack + 1
   28418      464366 :          packed_data(ipack) = pack_tmp
   28419      464366 :          data_tmp = full_data(idata)
   28420      464366 :          pack_tmp = ISHFT(data_tmp, 54)
   28421      464366 :          pack_tmp = ISHFT(pack_tmp, -38)
   28422      464366 :          idata = idata + 1
   28423      464366 :          data_tmp = full_data(idata)
   28424      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28425      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28426      464366 :          pack_tmp = ISHFT(pack_tmp, -16)
   28427      464366 :          idata = idata + 1
   28428      464366 :          data_tmp = full_data(idata)
   28429      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28430      464366 :          data_tmp = IAND(data_tmp, mask_left(16))
   28431      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28432      464366 :          ipack = ipack + 1
   28433      464366 :          packed_data(ipack) = pack_tmp
   28434      464366 :          data_tmp = full_data(idata)
   28435      464366 :          pack_tmp = ISHFT(data_tmp, 42)
   28436      464366 :          pack_tmp = ISHFT(pack_tmp, -38)
   28437      464366 :          idata = idata + 1
   28438      464366 :          data_tmp = full_data(idata)
   28439      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28440      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28441      464366 :          pack_tmp = ISHFT(pack_tmp, -4)
   28442      464366 :          idata = idata + 1
   28443      464366 :          data_tmp = full_data(idata)
   28444      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28445      464366 :          data_tmp = IAND(data_tmp, mask_left(4))
   28446      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28447      464366 :          ipack = ipack + 1
   28448      464366 :          packed_data(ipack) = pack_tmp
   28449      464366 :          data_tmp = full_data(idata)
   28450      464366 :          pack_tmp = ISHFT(data_tmp, 30)
   28451      464366 :          pack_tmp = ISHFT(pack_tmp, -30)
   28452      464366 :          idata = idata + 1
   28453      464366 :          data_tmp = full_data(idata)
   28454      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28455      464366 :          data_tmp = IAND(data_tmp, mask_left(30))
   28456      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28457      464366 :          ipack = ipack + 1
   28458      464366 :          packed_data(ipack) = pack_tmp
   28459      464366 :          data_tmp = full_data(idata)
   28460      464366 :          pack_tmp = ISHFT(data_tmp, 56)
   28461      464366 :          pack_tmp = ISHFT(pack_tmp, -38)
   28462      464366 :          idata = idata + 1
   28463      464366 :          data_tmp = full_data(idata)
   28464      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28465      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28466      464366 :          pack_tmp = ISHFT(pack_tmp, -18)
   28467      464366 :          idata = idata + 1
   28468      464366 :          data_tmp = full_data(idata)
   28469      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28470      464366 :          data_tmp = IAND(data_tmp, mask_left(18))
   28471      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28472      464366 :          ipack = ipack + 1
   28473      464366 :          packed_data(ipack) = pack_tmp
   28474      464366 :          data_tmp = full_data(idata)
   28475      464366 :          pack_tmp = ISHFT(data_tmp, 44)
   28476      464366 :          pack_tmp = ISHFT(pack_tmp, -38)
   28477      464366 :          idata = idata + 1
   28478      464366 :          data_tmp = full_data(idata)
   28479      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28480      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28481      464366 :          pack_tmp = ISHFT(pack_tmp, -6)
   28482      464366 :          idata = idata + 1
   28483      464366 :          data_tmp = full_data(idata)
   28484      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28485      464366 :          data_tmp = IAND(data_tmp, mask_left(6))
   28486      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28487      464366 :          ipack = ipack + 1
   28488      464366 :          packed_data(ipack) = pack_tmp
   28489      464366 :          data_tmp = full_data(idata)
   28490      464366 :          pack_tmp = ISHFT(data_tmp, 32)
   28491      464366 :          pack_tmp = ISHFT(pack_tmp, -32)
   28492      464366 :          idata = idata + 1
   28493      464366 :          data_tmp = full_data(idata)
   28494      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28495      464366 :          data_tmp = IAND(data_tmp, mask_left(32))
   28496      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28497      464366 :          ipack = ipack + 1
   28498      464366 :          packed_data(ipack) = pack_tmp
   28499      464366 :          data_tmp = full_data(idata)
   28500      464366 :          pack_tmp = ISHFT(data_tmp, 58)
   28501      464366 :          pack_tmp = ISHFT(pack_tmp, -38)
   28502      464366 :          idata = idata + 1
   28503      464366 :          data_tmp = full_data(idata)
   28504      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28505      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28506      464366 :          pack_tmp = ISHFT(pack_tmp, -20)
   28507      464366 :          idata = idata + 1
   28508      464366 :          data_tmp = full_data(idata)
   28509      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28510      464366 :          data_tmp = IAND(data_tmp, mask_left(20))
   28511      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28512      464366 :          ipack = ipack + 1
   28513      464366 :          packed_data(ipack) = pack_tmp
   28514      464366 :          data_tmp = full_data(idata)
   28515      464366 :          pack_tmp = ISHFT(data_tmp, 46)
   28516      464366 :          pack_tmp = ISHFT(pack_tmp, -38)
   28517      464366 :          idata = idata + 1
   28518      464366 :          data_tmp = full_data(idata)
   28519      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28520      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28521      464366 :          pack_tmp = ISHFT(pack_tmp, -8)
   28522      464366 :          idata = idata + 1
   28523      464366 :          data_tmp = full_data(idata)
   28524      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28525      464366 :          data_tmp = IAND(data_tmp, mask_left(8))
   28526      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28527      464366 :          ipack = ipack + 1
   28528      464366 :          packed_data(ipack) = pack_tmp
   28529      464366 :          data_tmp = full_data(idata)
   28530      464366 :          pack_tmp = ISHFT(data_tmp, 34)
   28531      464366 :          pack_tmp = ISHFT(pack_tmp, -34)
   28532      464366 :          idata = idata + 1
   28533      464366 :          data_tmp = full_data(idata)
   28534      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28535      464366 :          data_tmp = IAND(data_tmp, mask_left(34))
   28536      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28537      464366 :          ipack = ipack + 1
   28538      464366 :          packed_data(ipack) = pack_tmp
   28539      464366 :          data_tmp = full_data(idata)
   28540      464366 :          pack_tmp = ISHFT(data_tmp, 60)
   28541      464366 :          pack_tmp = ISHFT(pack_tmp, -38)
   28542      464366 :          idata = idata + 1
   28543      464366 :          data_tmp = full_data(idata)
   28544      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28545      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28546      464366 :          pack_tmp = ISHFT(pack_tmp, -22)
   28547      464366 :          idata = idata + 1
   28548      464366 :          data_tmp = full_data(idata)
   28549      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28550      464366 :          data_tmp = IAND(data_tmp, mask_left(22))
   28551      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28552      464366 :          ipack = ipack + 1
   28553      464366 :          packed_data(ipack) = pack_tmp
   28554      464366 :          data_tmp = full_data(idata)
   28555      464366 :          pack_tmp = ISHFT(data_tmp, 48)
   28556      464366 :          pack_tmp = ISHFT(pack_tmp, -38)
   28557      464366 :          idata = idata + 1
   28558      464366 :          data_tmp = full_data(idata)
   28559      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28560      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28561      464366 :          pack_tmp = ISHFT(pack_tmp, -10)
   28562      464366 :          idata = idata + 1
   28563      464366 :          data_tmp = full_data(idata)
   28564      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28565      464366 :          data_tmp = IAND(data_tmp, mask_left(10))
   28566      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28567      464366 :          ipack = ipack + 1
   28568      464366 :          packed_data(ipack) = pack_tmp
   28569      464366 :          data_tmp = full_data(idata)
   28570      464366 :          pack_tmp = ISHFT(data_tmp, 36)
   28571      464366 :          pack_tmp = ISHFT(pack_tmp, -36)
   28572      464366 :          idata = idata + 1
   28573      464366 :          data_tmp = full_data(idata)
   28574      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28575      464366 :          data_tmp = IAND(data_tmp, mask_left(36))
   28576      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28577      464366 :          ipack = ipack + 1
   28578      464366 :          packed_data(ipack) = pack_tmp
   28579      464366 :          data_tmp = full_data(idata)
   28580      464366 :          pack_tmp = ISHFT(data_tmp, 62)
   28581      464366 :          pack_tmp = ISHFT(pack_tmp, -38)
   28582      464366 :          idata = idata + 1
   28583      464366 :          data_tmp = full_data(idata)
   28584      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28585      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28586      464366 :          pack_tmp = ISHFT(pack_tmp, -24)
   28587      464366 :          idata = idata + 1
   28588      464366 :          data_tmp = full_data(idata)
   28589      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28590      464366 :          data_tmp = IAND(data_tmp, mask_left(24))
   28591      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28592      464366 :          ipack = ipack + 1
   28593      464366 :          packed_data(ipack) = pack_tmp
   28594      464366 :          data_tmp = full_data(idata)
   28595      464366 :          pack_tmp = ISHFT(data_tmp, 50)
   28596      464366 :          pack_tmp = ISHFT(pack_tmp, -38)
   28597      464366 :          idata = idata + 1
   28598      464366 :          data_tmp = full_data(idata)
   28599      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28600      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28601      464366 :          pack_tmp = ISHFT(pack_tmp, -12)
   28602      464366 :          idata = idata + 1
   28603      464366 :          data_tmp = full_data(idata)
   28604      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28605      464366 :          data_tmp = IAND(data_tmp, mask_left(12))
   28606      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28607      464366 :          ipack = ipack + 1
   28608      464366 :          packed_data(ipack) = pack_tmp
   28609      464366 :          data_tmp = full_data(idata)
   28610      464366 :          pack_tmp = ISHFT(data_tmp, 38)
   28611      464366 :          pack_tmp = ISHFT(pack_tmp, -38)
   28612      464366 :          idata = idata + 1
   28613      464366 :          data_tmp = full_data(idata)
   28614      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28615      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28616      464366 :          pack_tmp = ISHFT(pack_tmp, 0)
   28617      464366 :          idata = idata + 1
   28618      464366 :          data_tmp = full_data(idata)
   28619             :          data_tmp = ISHFT(data_tmp, 26)
   28620      464366 :          data_tmp = IAND(data_tmp, mask_left(0))
   28621      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28622      464366 :          ipack = ipack + 1
   28623      464366 :          packed_data(ipack) = pack_tmp
   28624      464366 :          data_tmp = full_data(idata)
   28625      464366 :          pack_tmp = ISHFT(data_tmp, 26)
   28626      464366 :          pack_tmp = ISHFT(pack_tmp, -26)
   28627      464366 :          idata = idata + 1
   28628      464366 :          data_tmp = full_data(idata)
   28629      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28630      464366 :          data_tmp = IAND(data_tmp, mask_left(26))
   28631      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28632      464366 :          ipack = ipack + 1
   28633      464366 :          packed_data(ipack) = pack_tmp
   28634      464366 :          data_tmp = full_data(idata)
   28635      464366 :          pack_tmp = ISHFT(data_tmp, 52)
   28636      464366 :          pack_tmp = ISHFT(pack_tmp, -38)
   28637      464366 :          idata = idata + 1
   28638      464366 :          data_tmp = full_data(idata)
   28639      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28640      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28641      464366 :          pack_tmp = ISHFT(pack_tmp, -14)
   28642      464366 :          idata = idata + 1
   28643      464366 :          data_tmp = full_data(idata)
   28644      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28645      464366 :          data_tmp = IAND(data_tmp, mask_left(14))
   28646      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28647      464366 :          ipack = ipack + 1
   28648      464366 :          packed_data(ipack) = pack_tmp
   28649      464366 :          data_tmp = full_data(idata)
   28650      464366 :          pack_tmp = ISHFT(data_tmp, 40)
   28651      464366 :          pack_tmp = ISHFT(pack_tmp, -38)
   28652      464366 :          idata = idata + 1
   28653      464366 :          data_tmp = full_data(idata)
   28654      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28655      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28656      464366 :          pack_tmp = ISHFT(pack_tmp, -2)
   28657      464366 :          idata = idata + 1
   28658      464366 :          data_tmp = full_data(idata)
   28659      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28660      464366 :          data_tmp = IAND(data_tmp, mask_left(2))
   28661      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28662      464366 :          ipack = ipack + 1
   28663      464366 :          packed_data(ipack) = pack_tmp
   28664      464366 :          data_tmp = full_data(idata)
   28665      464366 :          pack_tmp = ISHFT(data_tmp, 28)
   28666      464366 :          pack_tmp = ISHFT(pack_tmp, -28)
   28667      464366 :          idata = idata + 1
   28668      464366 :          data_tmp = full_data(idata)
   28669      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28670      464366 :          data_tmp = IAND(data_tmp, mask_left(28))
   28671      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28672      464366 :          ipack = ipack + 1
   28673      464366 :          packed_data(ipack) = pack_tmp
   28674      464366 :          data_tmp = full_data(idata)
   28675      464366 :          pack_tmp = ISHFT(data_tmp, 54)
   28676      464366 :          pack_tmp = ISHFT(pack_tmp, -38)
   28677      464366 :          idata = idata + 1
   28678      464366 :          data_tmp = full_data(idata)
   28679      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28680      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28681      464366 :          pack_tmp = ISHFT(pack_tmp, -16)
   28682      464366 :          idata = idata + 1
   28683      464366 :          data_tmp = full_data(idata)
   28684      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28685      464366 :          data_tmp = IAND(data_tmp, mask_left(16))
   28686      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28687      464366 :          ipack = ipack + 1
   28688      464366 :          packed_data(ipack) = pack_tmp
   28689      464366 :          data_tmp = full_data(idata)
   28690      464366 :          pack_tmp = ISHFT(data_tmp, 42)
   28691      464366 :          pack_tmp = ISHFT(pack_tmp, -38)
   28692      464366 :          idata = idata + 1
   28693      464366 :          data_tmp = full_data(idata)
   28694      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28695      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28696      464366 :          pack_tmp = ISHFT(pack_tmp, -4)
   28697      464366 :          idata = idata + 1
   28698      464366 :          data_tmp = full_data(idata)
   28699      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28700      464366 :          data_tmp = IAND(data_tmp, mask_left(4))
   28701      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28702      464366 :          ipack = ipack + 1
   28703      464366 :          packed_data(ipack) = pack_tmp
   28704      464366 :          data_tmp = full_data(idata)
   28705      464366 :          pack_tmp = ISHFT(data_tmp, 30)
   28706      464366 :          pack_tmp = ISHFT(pack_tmp, -30)
   28707      464366 :          idata = idata + 1
   28708      464366 :          data_tmp = full_data(idata)
   28709      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28710      464366 :          data_tmp = IAND(data_tmp, mask_left(30))
   28711      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28712      464366 :          ipack = ipack + 1
   28713      464366 :          packed_data(ipack) = pack_tmp
   28714      464366 :          data_tmp = full_data(idata)
   28715      464366 :          pack_tmp = ISHFT(data_tmp, 56)
   28716      464366 :          pack_tmp = ISHFT(pack_tmp, -38)
   28717      464366 :          idata = idata + 1
   28718      464366 :          data_tmp = full_data(idata)
   28719      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28720      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28721      464366 :          pack_tmp = ISHFT(pack_tmp, -18)
   28722      464366 :          idata = idata + 1
   28723      464366 :          data_tmp = full_data(idata)
   28724      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28725      464366 :          data_tmp = IAND(data_tmp, mask_left(18))
   28726      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28727      464366 :          ipack = ipack + 1
   28728      464366 :          packed_data(ipack) = pack_tmp
   28729      464366 :          data_tmp = full_data(idata)
   28730      464366 :          pack_tmp = ISHFT(data_tmp, 44)
   28731      464366 :          pack_tmp = ISHFT(pack_tmp, -38)
   28732      464366 :          idata = idata + 1
   28733      464366 :          data_tmp = full_data(idata)
   28734      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28735      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28736      464366 :          pack_tmp = ISHFT(pack_tmp, -6)
   28737      464366 :          idata = idata + 1
   28738      464366 :          data_tmp = full_data(idata)
   28739      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28740      464366 :          data_tmp = IAND(data_tmp, mask_left(6))
   28741      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28742      464366 :          ipack = ipack + 1
   28743      464366 :          packed_data(ipack) = pack_tmp
   28744      464366 :          data_tmp = full_data(idata)
   28745      464366 :          pack_tmp = ISHFT(data_tmp, 32)
   28746      464366 :          pack_tmp = ISHFT(pack_tmp, -32)
   28747      464366 :          idata = idata + 1
   28748      464366 :          data_tmp = full_data(idata)
   28749      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28750      464366 :          data_tmp = IAND(data_tmp, mask_left(32))
   28751      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28752      464366 :          ipack = ipack + 1
   28753      464366 :          packed_data(ipack) = pack_tmp
   28754      464366 :          data_tmp = full_data(idata)
   28755      464366 :          pack_tmp = ISHFT(data_tmp, 58)
   28756      464366 :          pack_tmp = ISHFT(pack_tmp, -38)
   28757      464366 :          idata = idata + 1
   28758      464366 :          data_tmp = full_data(idata)
   28759      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28760      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28761      464366 :          pack_tmp = ISHFT(pack_tmp, -20)
   28762      464366 :          idata = idata + 1
   28763      464366 :          data_tmp = full_data(idata)
   28764      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28765      464366 :          data_tmp = IAND(data_tmp, mask_left(20))
   28766      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28767      464366 :          ipack = ipack + 1
   28768      464366 :          packed_data(ipack) = pack_tmp
   28769      464366 :          data_tmp = full_data(idata)
   28770      464366 :          pack_tmp = ISHFT(data_tmp, 46)
   28771      464366 :          pack_tmp = ISHFT(pack_tmp, -38)
   28772      464366 :          idata = idata + 1
   28773      464366 :          data_tmp = full_data(idata)
   28774      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28775      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28776      464366 :          pack_tmp = ISHFT(pack_tmp, -8)
   28777      464366 :          idata = idata + 1
   28778      464366 :          data_tmp = full_data(idata)
   28779      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28780      464366 :          data_tmp = IAND(data_tmp, mask_left(8))
   28781      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28782      464366 :          ipack = ipack + 1
   28783      464366 :          packed_data(ipack) = pack_tmp
   28784      464366 :          data_tmp = full_data(idata)
   28785      464366 :          pack_tmp = ISHFT(data_tmp, 34)
   28786      464366 :          pack_tmp = ISHFT(pack_tmp, -34)
   28787      464366 :          idata = idata + 1
   28788      464366 :          data_tmp = full_data(idata)
   28789      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28790      464366 :          data_tmp = IAND(data_tmp, mask_left(34))
   28791      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28792      464366 :          ipack = ipack + 1
   28793      464366 :          packed_data(ipack) = pack_tmp
   28794      464366 :          data_tmp = full_data(idata)
   28795      464366 :          pack_tmp = ISHFT(data_tmp, 60)
   28796      464366 :          pack_tmp = ISHFT(pack_tmp, -38)
   28797      464366 :          idata = idata + 1
   28798      464366 :          data_tmp = full_data(idata)
   28799      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28800      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28801      464366 :          pack_tmp = ISHFT(pack_tmp, -22)
   28802      464366 :          idata = idata + 1
   28803      464366 :          data_tmp = full_data(idata)
   28804      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28805      464366 :          data_tmp = IAND(data_tmp, mask_left(22))
   28806      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28807      464366 :          ipack = ipack + 1
   28808      464366 :          packed_data(ipack) = pack_tmp
   28809      464366 :          data_tmp = full_data(idata)
   28810      464366 :          pack_tmp = ISHFT(data_tmp, 48)
   28811      464366 :          pack_tmp = ISHFT(pack_tmp, -38)
   28812      464366 :          idata = idata + 1
   28813      464366 :          data_tmp = full_data(idata)
   28814      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28815      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28816      464366 :          pack_tmp = ISHFT(pack_tmp, -10)
   28817      464366 :          idata = idata + 1
   28818      464366 :          data_tmp = full_data(idata)
   28819      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28820      464366 :          data_tmp = IAND(data_tmp, mask_left(10))
   28821      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28822      464366 :          ipack = ipack + 1
   28823      464366 :          packed_data(ipack) = pack_tmp
   28824      464366 :          data_tmp = full_data(idata)
   28825      464366 :          pack_tmp = ISHFT(data_tmp, 36)
   28826      464366 :          pack_tmp = ISHFT(pack_tmp, -36)
   28827      464366 :          idata = idata + 1
   28828      464366 :          data_tmp = full_data(idata)
   28829      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28830      464366 :          data_tmp = IAND(data_tmp, mask_left(36))
   28831      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28832      464366 :          ipack = ipack + 1
   28833      464366 :          packed_data(ipack) = pack_tmp
   28834      464366 :          data_tmp = full_data(idata)
   28835      464366 :          pack_tmp = ISHFT(data_tmp, 62)
   28836      464366 :          pack_tmp = ISHFT(pack_tmp, -38)
   28837      464366 :          idata = idata + 1
   28838      464366 :          data_tmp = full_data(idata)
   28839      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28840      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28841      464366 :          pack_tmp = ISHFT(pack_tmp, -24)
   28842      464366 :          idata = idata + 1
   28843      464366 :          data_tmp = full_data(idata)
   28844      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28845      464366 :          data_tmp = IAND(data_tmp, mask_left(24))
   28846      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28847      464366 :          ipack = ipack + 1
   28848      464366 :          packed_data(ipack) = pack_tmp
   28849      464366 :          data_tmp = full_data(idata)
   28850      464366 :          pack_tmp = ISHFT(data_tmp, 50)
   28851      464366 :          pack_tmp = ISHFT(pack_tmp, -38)
   28852      464366 :          idata = idata + 1
   28853      464366 :          data_tmp = full_data(idata)
   28854      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28855      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28856      464366 :          pack_tmp = ISHFT(pack_tmp, -12)
   28857      464366 :          idata = idata + 1
   28858      464366 :          data_tmp = full_data(idata)
   28859      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28860      464366 :          data_tmp = IAND(data_tmp, mask_left(12))
   28861      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28862      464366 :          ipack = ipack + 1
   28863      464366 :          packed_data(ipack) = pack_tmp
   28864      464366 :          data_tmp = full_data(idata)
   28865      464366 :          pack_tmp = ISHFT(data_tmp, 38)
   28866      464366 :          pack_tmp = ISHFT(pack_tmp, -38)
   28867      464366 :          idata = idata + 1
   28868      464366 :          data_tmp = full_data(idata)
   28869      464366 :          data_tmp = ISHFT(data_tmp, 26)
   28870      464366 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28871             :          pack_tmp = ISHFT(pack_tmp, 0)
   28872      464366 :          pack_tmp = ISHFT(pack_tmp, 0)
   28873      464366 :          ipack = ipack + 1
   28874      464700 :          packed_data(ipack) = pack_tmp
   28875             :       END DO
   28876       32712 :       IF (Ndata_rep < Ndata) THEN
   28877        6916 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   28878             :       END IF
   28879       32712 :    END SUBROUTINE ints2bits_38
   28880             : 
   28881             : ! **************************************************************************************************
   28882             : !> \brief ...
   28883             : !> \param Ndata ...
   28884             : !> \param packed_data ...
   28885             : !> \param full_data ...
   28886             : ! **************************************************************************************************
   28887      162450 :    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      162450 :       ipack = 0
   28898      162450 :       idata = 0
   28899      162450 :       pack_tmp = 0
   28900      162450 :       Ndata_rep = (Ndata/64)*64
   28901      162450 :       DO kdata = 1, Ndata_rep, 64
   28902     2167746 :          idata = idata + 1
   28903     2167746 :          data_tmp = ISHFT(pack_tmp, 38)
   28904     2167746 :          ipack = ipack + 1
   28905     2167746 :          pack_tmp = packed_data(ipack)
   28906     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   28907     2167746 :          pack_tmp = ISHFT(pack_tmp, -38)
   28908     2167746 :          idata = idata + 1
   28909     2167746 :          data_tmp = ISHFT(pack_tmp, 12)
   28910     2167746 :          ipack = ipack + 1
   28911     2167746 :          pack_tmp = packed_data(ipack)
   28912     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   28913     2167746 :          pack_tmp = ISHFT(pack_tmp, -12)
   28914     2167746 :          idata = idata + 1
   28915     2167746 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28916     2167746 :          full_data(idata) = data_tmp
   28917     2167746 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28918     2167746 :          idata = idata + 1
   28919     2167746 :          data_tmp = ISHFT(pack_tmp, 24)
   28920     2167746 :          ipack = ipack + 1
   28921     2167746 :          pack_tmp = packed_data(ipack)
   28922     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   28923     2167746 :          pack_tmp = ISHFT(pack_tmp, -24)
   28924     2167746 :          idata = idata + 1
   28925     2167746 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28926     2167746 :          full_data(idata) = data_tmp
   28927     2167746 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28928     2167746 :          idata = idata + 1
   28929     2167746 :          data_tmp = ISHFT(pack_tmp, 36)
   28930     2167746 :          ipack = ipack + 1
   28931     2167746 :          pack_tmp = packed_data(ipack)
   28932     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   28933     2167746 :          pack_tmp = ISHFT(pack_tmp, -36)
   28934     2167746 :          idata = idata + 1
   28935     2167746 :          data_tmp = ISHFT(pack_tmp, 10)
   28936     2167746 :          ipack = ipack + 1
   28937     2167746 :          pack_tmp = packed_data(ipack)
   28938     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   28939     2167746 :          pack_tmp = ISHFT(pack_tmp, -10)
   28940     2167746 :          idata = idata + 1
   28941     2167746 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28942     2167746 :          full_data(idata) = data_tmp
   28943     2167746 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28944     2167746 :          idata = idata + 1
   28945     2167746 :          data_tmp = ISHFT(pack_tmp, 22)
   28946     2167746 :          ipack = ipack + 1
   28947     2167746 :          pack_tmp = packed_data(ipack)
   28948     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   28949     2167746 :          pack_tmp = ISHFT(pack_tmp, -22)
   28950     2167746 :          idata = idata + 1
   28951     2167746 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28952     2167746 :          full_data(idata) = data_tmp
   28953     2167746 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28954     2167746 :          idata = idata + 1
   28955     2167746 :          data_tmp = ISHFT(pack_tmp, 34)
   28956     2167746 :          ipack = ipack + 1
   28957     2167746 :          pack_tmp = packed_data(ipack)
   28958     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   28959     2167746 :          pack_tmp = ISHFT(pack_tmp, -34)
   28960     2167746 :          idata = idata + 1
   28961     2167746 :          data_tmp = ISHFT(pack_tmp, 8)
   28962     2167746 :          ipack = ipack + 1
   28963     2167746 :          pack_tmp = packed_data(ipack)
   28964     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   28965     2167746 :          pack_tmp = ISHFT(pack_tmp, -8)
   28966     2167746 :          idata = idata + 1
   28967     2167746 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28968     2167746 :          full_data(idata) = data_tmp
   28969     2167746 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28970     2167746 :          idata = idata + 1
   28971     2167746 :          data_tmp = ISHFT(pack_tmp, 20)
   28972     2167746 :          ipack = ipack + 1
   28973     2167746 :          pack_tmp = packed_data(ipack)
   28974     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   28975     2167746 :          pack_tmp = ISHFT(pack_tmp, -20)
   28976     2167746 :          idata = idata + 1
   28977     2167746 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28978     2167746 :          full_data(idata) = data_tmp
   28979     2167746 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28980     2167746 :          idata = idata + 1
   28981     2167746 :          data_tmp = ISHFT(pack_tmp, 32)
   28982     2167746 :          ipack = ipack + 1
   28983     2167746 :          pack_tmp = packed_data(ipack)
   28984     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   28985     2167746 :          pack_tmp = ISHFT(pack_tmp, -32)
   28986     2167746 :          idata = idata + 1
   28987     2167746 :          data_tmp = ISHFT(pack_tmp, 6)
   28988     2167746 :          ipack = ipack + 1
   28989     2167746 :          pack_tmp = packed_data(ipack)
   28990     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   28991     2167746 :          pack_tmp = ISHFT(pack_tmp, -6)
   28992     2167746 :          idata = idata + 1
   28993     2167746 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28994     2167746 :          full_data(idata) = data_tmp
   28995     2167746 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28996     2167746 :          idata = idata + 1
   28997     2167746 :          data_tmp = ISHFT(pack_tmp, 18)
   28998     2167746 :          ipack = ipack + 1
   28999     2167746 :          pack_tmp = packed_data(ipack)
   29000     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   29001     2167746 :          pack_tmp = ISHFT(pack_tmp, -18)
   29002     2167746 :          idata = idata + 1
   29003     2167746 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29004     2167746 :          full_data(idata) = data_tmp
   29005     2167746 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29006     2167746 :          idata = idata + 1
   29007     2167746 :          data_tmp = ISHFT(pack_tmp, 30)
   29008     2167746 :          ipack = ipack + 1
   29009     2167746 :          pack_tmp = packed_data(ipack)
   29010     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   29011     2167746 :          pack_tmp = ISHFT(pack_tmp, -30)
   29012     2167746 :          idata = idata + 1
   29013     2167746 :          data_tmp = ISHFT(pack_tmp, 4)
   29014     2167746 :          ipack = ipack + 1
   29015     2167746 :          pack_tmp = packed_data(ipack)
   29016     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   29017     2167746 :          pack_tmp = ISHFT(pack_tmp, -4)
   29018     2167746 :          idata = idata + 1
   29019     2167746 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29020     2167746 :          full_data(idata) = data_tmp
   29021     2167746 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29022     2167746 :          idata = idata + 1
   29023     2167746 :          data_tmp = ISHFT(pack_tmp, 16)
   29024     2167746 :          ipack = ipack + 1
   29025     2167746 :          pack_tmp = packed_data(ipack)
   29026     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   29027     2167746 :          pack_tmp = ISHFT(pack_tmp, -16)
   29028     2167746 :          idata = idata + 1
   29029     2167746 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29030     2167746 :          full_data(idata) = data_tmp
   29031     2167746 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29032     2167746 :          idata = idata + 1
   29033     2167746 :          data_tmp = ISHFT(pack_tmp, 28)
   29034     2167746 :          ipack = ipack + 1
   29035     2167746 :          pack_tmp = packed_data(ipack)
   29036     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   29037     2167746 :          pack_tmp = ISHFT(pack_tmp, -28)
   29038     2167746 :          idata = idata + 1
   29039     2167746 :          data_tmp = ISHFT(pack_tmp, 2)
   29040     2167746 :          ipack = ipack + 1
   29041     2167746 :          pack_tmp = packed_data(ipack)
   29042     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   29043     2167746 :          pack_tmp = ISHFT(pack_tmp, -2)
   29044     2167746 :          idata = idata + 1
   29045     2167746 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29046     2167746 :          full_data(idata) = data_tmp
   29047     2167746 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29048     2167746 :          idata = idata + 1
   29049     2167746 :          data_tmp = ISHFT(pack_tmp, 14)
   29050     2167746 :          ipack = ipack + 1
   29051     2167746 :          pack_tmp = packed_data(ipack)
   29052     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   29053     2167746 :          pack_tmp = ISHFT(pack_tmp, -14)
   29054     2167746 :          idata = idata + 1
   29055     2167746 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29056     2167746 :          full_data(idata) = data_tmp
   29057     2167746 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29058     2167746 :          idata = idata + 1
   29059     2167746 :          data_tmp = ISHFT(pack_tmp, 26)
   29060     2167746 :          ipack = ipack + 1
   29061     2167746 :          pack_tmp = packed_data(ipack)
   29062     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   29063     2167746 :          pack_tmp = ISHFT(pack_tmp, -26)
   29064     2167746 :          idata = idata + 1
   29065     2167746 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29066     2167746 :          full_data(idata) = data_tmp
   29067     2167746 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29068     2167746 :          idata = idata + 1
   29069     2167746 :          data_tmp = ISHFT(pack_tmp, 38)
   29070     2167746 :          ipack = ipack + 1
   29071     2167746 :          pack_tmp = packed_data(ipack)
   29072     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   29073     2167746 :          pack_tmp = ISHFT(pack_tmp, -38)
   29074     2167746 :          idata = idata + 1
   29075     2167746 :          data_tmp = ISHFT(pack_tmp, 12)
   29076     2167746 :          ipack = ipack + 1
   29077     2167746 :          pack_tmp = packed_data(ipack)
   29078     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   29079     2167746 :          pack_tmp = ISHFT(pack_tmp, -12)
   29080     2167746 :          idata = idata + 1
   29081     2167746 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29082     2167746 :          full_data(idata) = data_tmp
   29083     2167746 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29084     2167746 :          idata = idata + 1
   29085     2167746 :          data_tmp = ISHFT(pack_tmp, 24)
   29086     2167746 :          ipack = ipack + 1
   29087     2167746 :          pack_tmp = packed_data(ipack)
   29088     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   29089     2167746 :          pack_tmp = ISHFT(pack_tmp, -24)
   29090     2167746 :          idata = idata + 1
   29091     2167746 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29092     2167746 :          full_data(idata) = data_tmp
   29093     2167746 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29094     2167746 :          idata = idata + 1
   29095     2167746 :          data_tmp = ISHFT(pack_tmp, 36)
   29096     2167746 :          ipack = ipack + 1
   29097     2167746 :          pack_tmp = packed_data(ipack)
   29098     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   29099     2167746 :          pack_tmp = ISHFT(pack_tmp, -36)
   29100     2167746 :          idata = idata + 1
   29101     2167746 :          data_tmp = ISHFT(pack_tmp, 10)
   29102     2167746 :          ipack = ipack + 1
   29103     2167746 :          pack_tmp = packed_data(ipack)
   29104     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   29105     2167746 :          pack_tmp = ISHFT(pack_tmp, -10)
   29106     2167746 :          idata = idata + 1
   29107     2167746 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29108     2167746 :          full_data(idata) = data_tmp
   29109     2167746 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29110     2167746 :          idata = idata + 1
   29111     2167746 :          data_tmp = ISHFT(pack_tmp, 22)
   29112     2167746 :          ipack = ipack + 1
   29113     2167746 :          pack_tmp = packed_data(ipack)
   29114     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   29115     2167746 :          pack_tmp = ISHFT(pack_tmp, -22)
   29116     2167746 :          idata = idata + 1
   29117     2167746 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29118     2167746 :          full_data(idata) = data_tmp
   29119     2167746 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29120     2167746 :          idata = idata + 1
   29121     2167746 :          data_tmp = ISHFT(pack_tmp, 34)
   29122     2167746 :          ipack = ipack + 1
   29123     2167746 :          pack_tmp = packed_data(ipack)
   29124     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   29125     2167746 :          pack_tmp = ISHFT(pack_tmp, -34)
   29126     2167746 :          idata = idata + 1
   29127     2167746 :          data_tmp = ISHFT(pack_tmp, 8)
   29128     2167746 :          ipack = ipack + 1
   29129     2167746 :          pack_tmp = packed_data(ipack)
   29130     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   29131     2167746 :          pack_tmp = ISHFT(pack_tmp, -8)
   29132     2167746 :          idata = idata + 1
   29133     2167746 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29134     2167746 :          full_data(idata) = data_tmp
   29135     2167746 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29136     2167746 :          idata = idata + 1
   29137     2167746 :          data_tmp = ISHFT(pack_tmp, 20)
   29138     2167746 :          ipack = ipack + 1
   29139     2167746 :          pack_tmp = packed_data(ipack)
   29140     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   29141     2167746 :          pack_tmp = ISHFT(pack_tmp, -20)
   29142     2167746 :          idata = idata + 1
   29143     2167746 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29144     2167746 :          full_data(idata) = data_tmp
   29145     2167746 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29146     2167746 :          idata = idata + 1
   29147     2167746 :          data_tmp = ISHFT(pack_tmp, 32)
   29148     2167746 :          ipack = ipack + 1
   29149     2167746 :          pack_tmp = packed_data(ipack)
   29150     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   29151     2167746 :          pack_tmp = ISHFT(pack_tmp, -32)
   29152     2167746 :          idata = idata + 1
   29153     2167746 :          data_tmp = ISHFT(pack_tmp, 6)
   29154     2167746 :          ipack = ipack + 1
   29155     2167746 :          pack_tmp = packed_data(ipack)
   29156     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   29157     2167746 :          pack_tmp = ISHFT(pack_tmp, -6)
   29158     2167746 :          idata = idata + 1
   29159     2167746 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29160     2167746 :          full_data(idata) = data_tmp
   29161     2167746 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29162     2167746 :          idata = idata + 1
   29163     2167746 :          data_tmp = ISHFT(pack_tmp, 18)
   29164     2167746 :          ipack = ipack + 1
   29165     2167746 :          pack_tmp = packed_data(ipack)
   29166     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   29167     2167746 :          pack_tmp = ISHFT(pack_tmp, -18)
   29168     2167746 :          idata = idata + 1
   29169     2167746 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29170     2167746 :          full_data(idata) = data_tmp
   29171     2167746 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29172     2167746 :          idata = idata + 1
   29173     2167746 :          data_tmp = ISHFT(pack_tmp, 30)
   29174     2167746 :          ipack = ipack + 1
   29175     2167746 :          pack_tmp = packed_data(ipack)
   29176     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   29177     2167746 :          pack_tmp = ISHFT(pack_tmp, -30)
   29178     2167746 :          idata = idata + 1
   29179     2167746 :          data_tmp = ISHFT(pack_tmp, 4)
   29180     2167746 :          ipack = ipack + 1
   29181     2167746 :          pack_tmp = packed_data(ipack)
   29182     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   29183     2167746 :          pack_tmp = ISHFT(pack_tmp, -4)
   29184     2167746 :          idata = idata + 1
   29185     2167746 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29186     2167746 :          full_data(idata) = data_tmp
   29187     2167746 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29188     2167746 :          idata = idata + 1
   29189     2167746 :          data_tmp = ISHFT(pack_tmp, 16)
   29190     2167746 :          ipack = ipack + 1
   29191     2167746 :          pack_tmp = packed_data(ipack)
   29192     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   29193     2167746 :          pack_tmp = ISHFT(pack_tmp, -16)
   29194     2167746 :          idata = idata + 1
   29195     2167746 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29196     2167746 :          full_data(idata) = data_tmp
   29197     2167746 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29198     2167746 :          idata = idata + 1
   29199     2167746 :          data_tmp = ISHFT(pack_tmp, 28)
   29200     2167746 :          ipack = ipack + 1
   29201     2167746 :          pack_tmp = packed_data(ipack)
   29202     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   29203     2167746 :          pack_tmp = ISHFT(pack_tmp, -28)
   29204     2167746 :          idata = idata + 1
   29205     2167746 :          data_tmp = ISHFT(pack_tmp, 2)
   29206     2167746 :          ipack = ipack + 1
   29207     2167746 :          pack_tmp = packed_data(ipack)
   29208     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   29209     2167746 :          pack_tmp = ISHFT(pack_tmp, -2)
   29210     2167746 :          idata = idata + 1
   29211     2167746 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29212     2167746 :          full_data(idata) = data_tmp
   29213     2167746 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29214     2167746 :          idata = idata + 1
   29215     2167746 :          data_tmp = ISHFT(pack_tmp, 14)
   29216     2167746 :          ipack = ipack + 1
   29217     2167746 :          pack_tmp = packed_data(ipack)
   29218     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   29219     2167746 :          pack_tmp = ISHFT(pack_tmp, -14)
   29220     2167746 :          idata = idata + 1
   29221     2167746 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29222     2167746 :          full_data(idata) = data_tmp
   29223     2167746 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29224     2167746 :          idata = idata + 1
   29225     2167746 :          data_tmp = ISHFT(pack_tmp, 26)
   29226     2167746 :          ipack = ipack + 1
   29227     2167746 :          pack_tmp = packed_data(ipack)
   29228     2167746 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   29229     2167746 :          pack_tmp = ISHFT(pack_tmp, -26)
   29230     2167746 :          idata = idata + 1
   29231     2167746 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29232     2167746 :          full_data(idata) = data_tmp
   29233     2170648 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29234             :       END DO
   29235      162450 :       IF (Ndata_rep < Ndata) THEN
   29236       50460 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   29237             :       END IF
   29238      162450 :    END SUBROUTINE bits2ints_38
   29239             : 
   29240             : ! **************************************************************************************************
   29241             : !> \brief ...
   29242             : !> \param Ndata ...
   29243             : !> \param packed_data ...
   29244             : !> \param full_data ...
   29245             : ! **************************************************************************************************
   29246       28447 :    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       28447 :       idata = 0
   29257       28447 :       ipack = 0
   29258       28447 :       Ndata_rep = (Ndata/64)*64
   29259       28447 :       DO kdata = 1, Ndata_rep, 64
   29260      419792 :          pack_tmp = 0
   29261      419792 :          idata = idata + 1
   29262      419792 :          data_tmp = full_data(idata)
   29263      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29264      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29265      419792 :          pack_tmp = ISHFT(pack_tmp, -25)
   29266      419792 :          idata = idata + 1
   29267      419792 :          data_tmp = full_data(idata)
   29268      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29269      419792 :          data_tmp = IAND(data_tmp, mask_left(25))
   29270      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29271      419792 :          ipack = ipack + 1
   29272      419792 :          packed_data(ipack) = pack_tmp
   29273      419792 :          data_tmp = full_data(idata)
   29274      419792 :          pack_tmp = ISHFT(data_tmp, 50)
   29275      419792 :          pack_tmp = ISHFT(pack_tmp, -39)
   29276      419792 :          idata = idata + 1
   29277      419792 :          data_tmp = full_data(idata)
   29278      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29279      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29280      419792 :          pack_tmp = ISHFT(pack_tmp, -11)
   29281      419792 :          idata = idata + 1
   29282      419792 :          data_tmp = full_data(idata)
   29283      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29284      419792 :          data_tmp = IAND(data_tmp, mask_left(11))
   29285      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29286      419792 :          ipack = ipack + 1
   29287      419792 :          packed_data(ipack) = pack_tmp
   29288      419792 :          data_tmp = full_data(idata)
   29289      419792 :          pack_tmp = ISHFT(data_tmp, 36)
   29290      419792 :          pack_tmp = ISHFT(pack_tmp, -36)
   29291      419792 :          idata = idata + 1
   29292      419792 :          data_tmp = full_data(idata)
   29293      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29294      419792 :          data_tmp = IAND(data_tmp, mask_left(36))
   29295      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29296      419792 :          ipack = ipack + 1
   29297      419792 :          packed_data(ipack) = pack_tmp
   29298      419792 :          data_tmp = full_data(idata)
   29299      419792 :          pack_tmp = ISHFT(data_tmp, 61)
   29300      419792 :          pack_tmp = ISHFT(pack_tmp, -39)
   29301      419792 :          idata = idata + 1
   29302      419792 :          data_tmp = full_data(idata)
   29303      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29304      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29305      419792 :          pack_tmp = ISHFT(pack_tmp, -22)
   29306      419792 :          idata = idata + 1
   29307      419792 :          data_tmp = full_data(idata)
   29308      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29309      419792 :          data_tmp = IAND(data_tmp, mask_left(22))
   29310      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29311      419792 :          ipack = ipack + 1
   29312      419792 :          packed_data(ipack) = pack_tmp
   29313      419792 :          data_tmp = full_data(idata)
   29314      419792 :          pack_tmp = ISHFT(data_tmp, 47)
   29315      419792 :          pack_tmp = ISHFT(pack_tmp, -39)
   29316      419792 :          idata = idata + 1
   29317      419792 :          data_tmp = full_data(idata)
   29318      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29319      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29320      419792 :          pack_tmp = ISHFT(pack_tmp, -8)
   29321      419792 :          idata = idata + 1
   29322      419792 :          data_tmp = full_data(idata)
   29323      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29324      419792 :          data_tmp = IAND(data_tmp, mask_left(8))
   29325      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29326      419792 :          ipack = ipack + 1
   29327      419792 :          packed_data(ipack) = pack_tmp
   29328      419792 :          data_tmp = full_data(idata)
   29329      419792 :          pack_tmp = ISHFT(data_tmp, 33)
   29330      419792 :          pack_tmp = ISHFT(pack_tmp, -33)
   29331      419792 :          idata = idata + 1
   29332      419792 :          data_tmp = full_data(idata)
   29333      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29334      419792 :          data_tmp = IAND(data_tmp, mask_left(33))
   29335      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29336      419792 :          ipack = ipack + 1
   29337      419792 :          packed_data(ipack) = pack_tmp
   29338      419792 :          data_tmp = full_data(idata)
   29339      419792 :          pack_tmp = ISHFT(data_tmp, 58)
   29340      419792 :          pack_tmp = ISHFT(pack_tmp, -39)
   29341      419792 :          idata = idata + 1
   29342      419792 :          data_tmp = full_data(idata)
   29343      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29344      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29345      419792 :          pack_tmp = ISHFT(pack_tmp, -19)
   29346      419792 :          idata = idata + 1
   29347      419792 :          data_tmp = full_data(idata)
   29348      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29349      419792 :          data_tmp = IAND(data_tmp, mask_left(19))
   29350      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29351      419792 :          ipack = ipack + 1
   29352      419792 :          packed_data(ipack) = pack_tmp
   29353      419792 :          data_tmp = full_data(idata)
   29354      419792 :          pack_tmp = ISHFT(data_tmp, 44)
   29355      419792 :          pack_tmp = ISHFT(pack_tmp, -39)
   29356      419792 :          idata = idata + 1
   29357      419792 :          data_tmp = full_data(idata)
   29358      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29359      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29360      419792 :          pack_tmp = ISHFT(pack_tmp, -5)
   29361      419792 :          idata = idata + 1
   29362      419792 :          data_tmp = full_data(idata)
   29363      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29364      419792 :          data_tmp = IAND(data_tmp, mask_left(5))
   29365      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29366      419792 :          ipack = ipack + 1
   29367      419792 :          packed_data(ipack) = pack_tmp
   29368      419792 :          data_tmp = full_data(idata)
   29369      419792 :          pack_tmp = ISHFT(data_tmp, 30)
   29370      419792 :          pack_tmp = ISHFT(pack_tmp, -30)
   29371      419792 :          idata = idata + 1
   29372      419792 :          data_tmp = full_data(idata)
   29373      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29374      419792 :          data_tmp = IAND(data_tmp, mask_left(30))
   29375      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29376      419792 :          ipack = ipack + 1
   29377      419792 :          packed_data(ipack) = pack_tmp
   29378      419792 :          data_tmp = full_data(idata)
   29379      419792 :          pack_tmp = ISHFT(data_tmp, 55)
   29380      419792 :          pack_tmp = ISHFT(pack_tmp, -39)
   29381      419792 :          idata = idata + 1
   29382      419792 :          data_tmp = full_data(idata)
   29383      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29384      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29385      419792 :          pack_tmp = ISHFT(pack_tmp, -16)
   29386      419792 :          idata = idata + 1
   29387      419792 :          data_tmp = full_data(idata)
   29388      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29389      419792 :          data_tmp = IAND(data_tmp, mask_left(16))
   29390      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29391      419792 :          ipack = ipack + 1
   29392      419792 :          packed_data(ipack) = pack_tmp
   29393      419792 :          data_tmp = full_data(idata)
   29394      419792 :          pack_tmp = ISHFT(data_tmp, 41)
   29395      419792 :          pack_tmp = ISHFT(pack_tmp, -39)
   29396      419792 :          idata = idata + 1
   29397      419792 :          data_tmp = full_data(idata)
   29398      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29399      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29400      419792 :          pack_tmp = ISHFT(pack_tmp, -2)
   29401      419792 :          idata = idata + 1
   29402      419792 :          data_tmp = full_data(idata)
   29403      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29404      419792 :          data_tmp = IAND(data_tmp, mask_left(2))
   29405      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29406      419792 :          ipack = ipack + 1
   29407      419792 :          packed_data(ipack) = pack_tmp
   29408      419792 :          data_tmp = full_data(idata)
   29409      419792 :          pack_tmp = ISHFT(data_tmp, 27)
   29410      419792 :          pack_tmp = ISHFT(pack_tmp, -27)
   29411      419792 :          idata = idata + 1
   29412      419792 :          data_tmp = full_data(idata)
   29413      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29414      419792 :          data_tmp = IAND(data_tmp, mask_left(27))
   29415      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29416      419792 :          ipack = ipack + 1
   29417      419792 :          packed_data(ipack) = pack_tmp
   29418      419792 :          data_tmp = full_data(idata)
   29419      419792 :          pack_tmp = ISHFT(data_tmp, 52)
   29420      419792 :          pack_tmp = ISHFT(pack_tmp, -39)
   29421      419792 :          idata = idata + 1
   29422      419792 :          data_tmp = full_data(idata)
   29423      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29424      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29425      419792 :          pack_tmp = ISHFT(pack_tmp, -13)
   29426      419792 :          idata = idata + 1
   29427      419792 :          data_tmp = full_data(idata)
   29428      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29429      419792 :          data_tmp = IAND(data_tmp, mask_left(13))
   29430      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29431      419792 :          ipack = ipack + 1
   29432      419792 :          packed_data(ipack) = pack_tmp
   29433      419792 :          data_tmp = full_data(idata)
   29434      419792 :          pack_tmp = ISHFT(data_tmp, 38)
   29435      419792 :          pack_tmp = ISHFT(pack_tmp, -38)
   29436      419792 :          idata = idata + 1
   29437      419792 :          data_tmp = full_data(idata)
   29438      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29439      419792 :          data_tmp = IAND(data_tmp, mask_left(38))
   29440      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29441      419792 :          ipack = ipack + 1
   29442      419792 :          packed_data(ipack) = pack_tmp
   29443      419792 :          data_tmp = full_data(idata)
   29444      419792 :          pack_tmp = ISHFT(data_tmp, 63)
   29445      419792 :          pack_tmp = ISHFT(pack_tmp, -39)
   29446      419792 :          idata = idata + 1
   29447      419792 :          data_tmp = full_data(idata)
   29448      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29449      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29450      419792 :          pack_tmp = ISHFT(pack_tmp, -24)
   29451      419792 :          idata = idata + 1
   29452      419792 :          data_tmp = full_data(idata)
   29453      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29454      419792 :          data_tmp = IAND(data_tmp, mask_left(24))
   29455      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29456      419792 :          ipack = ipack + 1
   29457      419792 :          packed_data(ipack) = pack_tmp
   29458      419792 :          data_tmp = full_data(idata)
   29459      419792 :          pack_tmp = ISHFT(data_tmp, 49)
   29460      419792 :          pack_tmp = ISHFT(pack_tmp, -39)
   29461      419792 :          idata = idata + 1
   29462      419792 :          data_tmp = full_data(idata)
   29463      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29464      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29465      419792 :          pack_tmp = ISHFT(pack_tmp, -10)
   29466      419792 :          idata = idata + 1
   29467      419792 :          data_tmp = full_data(idata)
   29468      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29469      419792 :          data_tmp = IAND(data_tmp, mask_left(10))
   29470      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29471      419792 :          ipack = ipack + 1
   29472      419792 :          packed_data(ipack) = pack_tmp
   29473      419792 :          data_tmp = full_data(idata)
   29474      419792 :          pack_tmp = ISHFT(data_tmp, 35)
   29475      419792 :          pack_tmp = ISHFT(pack_tmp, -35)
   29476      419792 :          idata = idata + 1
   29477      419792 :          data_tmp = full_data(idata)
   29478      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29479      419792 :          data_tmp = IAND(data_tmp, mask_left(35))
   29480      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29481      419792 :          ipack = ipack + 1
   29482      419792 :          packed_data(ipack) = pack_tmp
   29483      419792 :          data_tmp = full_data(idata)
   29484      419792 :          pack_tmp = ISHFT(data_tmp, 60)
   29485      419792 :          pack_tmp = ISHFT(pack_tmp, -39)
   29486      419792 :          idata = idata + 1
   29487      419792 :          data_tmp = full_data(idata)
   29488      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29489      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29490      419792 :          pack_tmp = ISHFT(pack_tmp, -21)
   29491      419792 :          idata = idata + 1
   29492      419792 :          data_tmp = full_data(idata)
   29493      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29494      419792 :          data_tmp = IAND(data_tmp, mask_left(21))
   29495      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29496      419792 :          ipack = ipack + 1
   29497      419792 :          packed_data(ipack) = pack_tmp
   29498      419792 :          data_tmp = full_data(idata)
   29499      419792 :          pack_tmp = ISHFT(data_tmp, 46)
   29500      419792 :          pack_tmp = ISHFT(pack_tmp, -39)
   29501      419792 :          idata = idata + 1
   29502      419792 :          data_tmp = full_data(idata)
   29503      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29504      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29505      419792 :          pack_tmp = ISHFT(pack_tmp, -7)
   29506      419792 :          idata = idata + 1
   29507      419792 :          data_tmp = full_data(idata)
   29508      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29509      419792 :          data_tmp = IAND(data_tmp, mask_left(7))
   29510      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29511      419792 :          ipack = ipack + 1
   29512      419792 :          packed_data(ipack) = pack_tmp
   29513      419792 :          data_tmp = full_data(idata)
   29514      419792 :          pack_tmp = ISHFT(data_tmp, 32)
   29515      419792 :          pack_tmp = ISHFT(pack_tmp, -32)
   29516      419792 :          idata = idata + 1
   29517      419792 :          data_tmp = full_data(idata)
   29518      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29519      419792 :          data_tmp = IAND(data_tmp, mask_left(32))
   29520      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29521      419792 :          ipack = ipack + 1
   29522      419792 :          packed_data(ipack) = pack_tmp
   29523      419792 :          data_tmp = full_data(idata)
   29524      419792 :          pack_tmp = ISHFT(data_tmp, 57)
   29525      419792 :          pack_tmp = ISHFT(pack_tmp, -39)
   29526      419792 :          idata = idata + 1
   29527      419792 :          data_tmp = full_data(idata)
   29528      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29529      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29530      419792 :          pack_tmp = ISHFT(pack_tmp, -18)
   29531      419792 :          idata = idata + 1
   29532      419792 :          data_tmp = full_data(idata)
   29533      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29534      419792 :          data_tmp = IAND(data_tmp, mask_left(18))
   29535      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29536      419792 :          ipack = ipack + 1
   29537      419792 :          packed_data(ipack) = pack_tmp
   29538      419792 :          data_tmp = full_data(idata)
   29539      419792 :          pack_tmp = ISHFT(data_tmp, 43)
   29540      419792 :          pack_tmp = ISHFT(pack_tmp, -39)
   29541      419792 :          idata = idata + 1
   29542      419792 :          data_tmp = full_data(idata)
   29543      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29544      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29545      419792 :          pack_tmp = ISHFT(pack_tmp, -4)
   29546      419792 :          idata = idata + 1
   29547      419792 :          data_tmp = full_data(idata)
   29548      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29549      419792 :          data_tmp = IAND(data_tmp, mask_left(4))
   29550      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29551      419792 :          ipack = ipack + 1
   29552      419792 :          packed_data(ipack) = pack_tmp
   29553      419792 :          data_tmp = full_data(idata)
   29554      419792 :          pack_tmp = ISHFT(data_tmp, 29)
   29555      419792 :          pack_tmp = ISHFT(pack_tmp, -29)
   29556      419792 :          idata = idata + 1
   29557      419792 :          data_tmp = full_data(idata)
   29558      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29559      419792 :          data_tmp = IAND(data_tmp, mask_left(29))
   29560      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29561      419792 :          ipack = ipack + 1
   29562      419792 :          packed_data(ipack) = pack_tmp
   29563      419792 :          data_tmp = full_data(idata)
   29564      419792 :          pack_tmp = ISHFT(data_tmp, 54)
   29565      419792 :          pack_tmp = ISHFT(pack_tmp, -39)
   29566      419792 :          idata = idata + 1
   29567      419792 :          data_tmp = full_data(idata)
   29568      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29569      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29570      419792 :          pack_tmp = ISHFT(pack_tmp, -15)
   29571      419792 :          idata = idata + 1
   29572      419792 :          data_tmp = full_data(idata)
   29573      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29574      419792 :          data_tmp = IAND(data_tmp, mask_left(15))
   29575      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29576      419792 :          ipack = ipack + 1
   29577      419792 :          packed_data(ipack) = pack_tmp
   29578      419792 :          data_tmp = full_data(idata)
   29579      419792 :          pack_tmp = ISHFT(data_tmp, 40)
   29580      419792 :          pack_tmp = ISHFT(pack_tmp, -39)
   29581      419792 :          idata = idata + 1
   29582      419792 :          data_tmp = full_data(idata)
   29583      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29584      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29585      419792 :          pack_tmp = ISHFT(pack_tmp, -1)
   29586      419792 :          idata = idata + 1
   29587      419792 :          data_tmp = full_data(idata)
   29588      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29589      419792 :          data_tmp = IAND(data_tmp, mask_left(1))
   29590      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29591      419792 :          ipack = ipack + 1
   29592      419792 :          packed_data(ipack) = pack_tmp
   29593      419792 :          data_tmp = full_data(idata)
   29594      419792 :          pack_tmp = ISHFT(data_tmp, 26)
   29595      419792 :          pack_tmp = ISHFT(pack_tmp, -26)
   29596      419792 :          idata = idata + 1
   29597      419792 :          data_tmp = full_data(idata)
   29598      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29599      419792 :          data_tmp = IAND(data_tmp, mask_left(26))
   29600      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29601      419792 :          ipack = ipack + 1
   29602      419792 :          packed_data(ipack) = pack_tmp
   29603      419792 :          data_tmp = full_data(idata)
   29604      419792 :          pack_tmp = ISHFT(data_tmp, 51)
   29605      419792 :          pack_tmp = ISHFT(pack_tmp, -39)
   29606      419792 :          idata = idata + 1
   29607      419792 :          data_tmp = full_data(idata)
   29608      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29609      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29610      419792 :          pack_tmp = ISHFT(pack_tmp, -12)
   29611      419792 :          idata = idata + 1
   29612      419792 :          data_tmp = full_data(idata)
   29613      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29614      419792 :          data_tmp = IAND(data_tmp, mask_left(12))
   29615      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29616      419792 :          ipack = ipack + 1
   29617      419792 :          packed_data(ipack) = pack_tmp
   29618      419792 :          data_tmp = full_data(idata)
   29619      419792 :          pack_tmp = ISHFT(data_tmp, 37)
   29620      419792 :          pack_tmp = ISHFT(pack_tmp, -37)
   29621      419792 :          idata = idata + 1
   29622      419792 :          data_tmp = full_data(idata)
   29623      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29624      419792 :          data_tmp = IAND(data_tmp, mask_left(37))
   29625      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29626      419792 :          ipack = ipack + 1
   29627      419792 :          packed_data(ipack) = pack_tmp
   29628      419792 :          data_tmp = full_data(idata)
   29629      419792 :          pack_tmp = ISHFT(data_tmp, 62)
   29630      419792 :          pack_tmp = ISHFT(pack_tmp, -39)
   29631      419792 :          idata = idata + 1
   29632      419792 :          data_tmp = full_data(idata)
   29633      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29634      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29635      419792 :          pack_tmp = ISHFT(pack_tmp, -23)
   29636      419792 :          idata = idata + 1
   29637      419792 :          data_tmp = full_data(idata)
   29638      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29639      419792 :          data_tmp = IAND(data_tmp, mask_left(23))
   29640      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29641      419792 :          ipack = ipack + 1
   29642      419792 :          packed_data(ipack) = pack_tmp
   29643      419792 :          data_tmp = full_data(idata)
   29644      419792 :          pack_tmp = ISHFT(data_tmp, 48)
   29645      419792 :          pack_tmp = ISHFT(pack_tmp, -39)
   29646      419792 :          idata = idata + 1
   29647      419792 :          data_tmp = full_data(idata)
   29648      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29649      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29650      419792 :          pack_tmp = ISHFT(pack_tmp, -9)
   29651      419792 :          idata = idata + 1
   29652      419792 :          data_tmp = full_data(idata)
   29653      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29654      419792 :          data_tmp = IAND(data_tmp, mask_left(9))
   29655      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29656      419792 :          ipack = ipack + 1
   29657      419792 :          packed_data(ipack) = pack_tmp
   29658      419792 :          data_tmp = full_data(idata)
   29659      419792 :          pack_tmp = ISHFT(data_tmp, 34)
   29660      419792 :          pack_tmp = ISHFT(pack_tmp, -34)
   29661      419792 :          idata = idata + 1
   29662      419792 :          data_tmp = full_data(idata)
   29663      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29664      419792 :          data_tmp = IAND(data_tmp, mask_left(34))
   29665      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29666      419792 :          ipack = ipack + 1
   29667      419792 :          packed_data(ipack) = pack_tmp
   29668      419792 :          data_tmp = full_data(idata)
   29669      419792 :          pack_tmp = ISHFT(data_tmp, 59)
   29670      419792 :          pack_tmp = ISHFT(pack_tmp, -39)
   29671      419792 :          idata = idata + 1
   29672      419792 :          data_tmp = full_data(idata)
   29673      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29674      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29675      419792 :          pack_tmp = ISHFT(pack_tmp, -20)
   29676      419792 :          idata = idata + 1
   29677      419792 :          data_tmp = full_data(idata)
   29678      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29679      419792 :          data_tmp = IAND(data_tmp, mask_left(20))
   29680      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29681      419792 :          ipack = ipack + 1
   29682      419792 :          packed_data(ipack) = pack_tmp
   29683      419792 :          data_tmp = full_data(idata)
   29684      419792 :          pack_tmp = ISHFT(data_tmp, 45)
   29685      419792 :          pack_tmp = ISHFT(pack_tmp, -39)
   29686      419792 :          idata = idata + 1
   29687      419792 :          data_tmp = full_data(idata)
   29688      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29689      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29690      419792 :          pack_tmp = ISHFT(pack_tmp, -6)
   29691      419792 :          idata = idata + 1
   29692      419792 :          data_tmp = full_data(idata)
   29693      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29694      419792 :          data_tmp = IAND(data_tmp, mask_left(6))
   29695      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29696      419792 :          ipack = ipack + 1
   29697      419792 :          packed_data(ipack) = pack_tmp
   29698      419792 :          data_tmp = full_data(idata)
   29699      419792 :          pack_tmp = ISHFT(data_tmp, 31)
   29700      419792 :          pack_tmp = ISHFT(pack_tmp, -31)
   29701      419792 :          idata = idata + 1
   29702      419792 :          data_tmp = full_data(idata)
   29703      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29704      419792 :          data_tmp = IAND(data_tmp, mask_left(31))
   29705      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29706      419792 :          ipack = ipack + 1
   29707      419792 :          packed_data(ipack) = pack_tmp
   29708      419792 :          data_tmp = full_data(idata)
   29709      419792 :          pack_tmp = ISHFT(data_tmp, 56)
   29710      419792 :          pack_tmp = ISHFT(pack_tmp, -39)
   29711      419792 :          idata = idata + 1
   29712      419792 :          data_tmp = full_data(idata)
   29713      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29714      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29715      419792 :          pack_tmp = ISHFT(pack_tmp, -17)
   29716      419792 :          idata = idata + 1
   29717      419792 :          data_tmp = full_data(idata)
   29718      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29719      419792 :          data_tmp = IAND(data_tmp, mask_left(17))
   29720      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29721      419792 :          ipack = ipack + 1
   29722      419792 :          packed_data(ipack) = pack_tmp
   29723      419792 :          data_tmp = full_data(idata)
   29724      419792 :          pack_tmp = ISHFT(data_tmp, 42)
   29725      419792 :          pack_tmp = ISHFT(pack_tmp, -39)
   29726      419792 :          idata = idata + 1
   29727      419792 :          data_tmp = full_data(idata)
   29728      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29729      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29730      419792 :          pack_tmp = ISHFT(pack_tmp, -3)
   29731      419792 :          idata = idata + 1
   29732      419792 :          data_tmp = full_data(idata)
   29733      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29734      419792 :          data_tmp = IAND(data_tmp, mask_left(3))
   29735      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29736      419792 :          ipack = ipack + 1
   29737      419792 :          packed_data(ipack) = pack_tmp
   29738      419792 :          data_tmp = full_data(idata)
   29739      419792 :          pack_tmp = ISHFT(data_tmp, 28)
   29740      419792 :          pack_tmp = ISHFT(pack_tmp, -28)
   29741      419792 :          idata = idata + 1
   29742      419792 :          data_tmp = full_data(idata)
   29743      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29744      419792 :          data_tmp = IAND(data_tmp, mask_left(28))
   29745      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29746      419792 :          ipack = ipack + 1
   29747      419792 :          packed_data(ipack) = pack_tmp
   29748      419792 :          data_tmp = full_data(idata)
   29749      419792 :          pack_tmp = ISHFT(data_tmp, 53)
   29750      419792 :          pack_tmp = ISHFT(pack_tmp, -39)
   29751      419792 :          idata = idata + 1
   29752      419792 :          data_tmp = full_data(idata)
   29753      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29754      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29755      419792 :          pack_tmp = ISHFT(pack_tmp, -14)
   29756      419792 :          idata = idata + 1
   29757      419792 :          data_tmp = full_data(idata)
   29758      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29759      419792 :          data_tmp = IAND(data_tmp, mask_left(14))
   29760      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29761      419792 :          ipack = ipack + 1
   29762      419792 :          packed_data(ipack) = pack_tmp
   29763      419792 :          data_tmp = full_data(idata)
   29764      419792 :          pack_tmp = ISHFT(data_tmp, 39)
   29765      419792 :          pack_tmp = ISHFT(pack_tmp, -39)
   29766      419792 :          idata = idata + 1
   29767      419792 :          data_tmp = full_data(idata)
   29768      419792 :          data_tmp = ISHFT(data_tmp, 25)
   29769      419792 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29770             :          pack_tmp = ISHFT(pack_tmp, 0)
   29771      419792 :          pack_tmp = ISHFT(pack_tmp, 0)
   29772      419792 :          ipack = ipack + 1
   29773      419792 :          packed_data(ipack) = pack_tmp
   29774             :       END DO
   29775       28447 :       IF (Ndata_rep < Ndata) THEN
   29776        4160 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   29777             :       END IF
   29778       28447 :    END SUBROUTINE ints2bits_39
   29779             : 
   29780             : ! **************************************************************************************************
   29781             : !> \brief ...
   29782             : !> \param Ndata ...
   29783             : !> \param packed_data ...
   29784             : !> \param full_data ...
   29785             : ! **************************************************************************************************
   29786      125730 :    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      125730 :       ipack = 0
   29797      125730 :       idata = 0
   29798      125730 :       pack_tmp = 0
   29799      125730 :       Ndata_rep = (Ndata/64)*64
   29800      125730 :       DO kdata = 1, Ndata_rep, 64
   29801     1794488 :          idata = idata + 1
   29802     1794488 :          data_tmp = ISHFT(pack_tmp, 39)
   29803     1794488 :          ipack = ipack + 1
   29804     1794488 :          pack_tmp = packed_data(ipack)
   29805     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   29806     1794488 :          pack_tmp = ISHFT(pack_tmp, -39)
   29807     1794488 :          idata = idata + 1
   29808     1794488 :          data_tmp = ISHFT(pack_tmp, 14)
   29809     1794488 :          ipack = ipack + 1
   29810     1794488 :          pack_tmp = packed_data(ipack)
   29811     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   29812     1794488 :          pack_tmp = ISHFT(pack_tmp, -14)
   29813     1794488 :          idata = idata + 1
   29814     1794488 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29815     1794488 :          full_data(idata) = data_tmp
   29816     1794488 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29817     1794488 :          idata = idata + 1
   29818     1794488 :          data_tmp = ISHFT(pack_tmp, 28)
   29819     1794488 :          ipack = ipack + 1
   29820     1794488 :          pack_tmp = packed_data(ipack)
   29821     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   29822     1794488 :          pack_tmp = ISHFT(pack_tmp, -28)
   29823     1794488 :          idata = idata + 1
   29824     1794488 :          data_tmp = ISHFT(pack_tmp, 3)
   29825     1794488 :          ipack = ipack + 1
   29826     1794488 :          pack_tmp = packed_data(ipack)
   29827     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   29828     1794488 :          pack_tmp = ISHFT(pack_tmp, -3)
   29829     1794488 :          idata = idata + 1
   29830     1794488 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29831     1794488 :          full_data(idata) = data_tmp
   29832     1794488 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29833     1794488 :          idata = idata + 1
   29834     1794488 :          data_tmp = ISHFT(pack_tmp, 17)
   29835     1794488 :          ipack = ipack + 1
   29836     1794488 :          pack_tmp = packed_data(ipack)
   29837     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   29838     1794488 :          pack_tmp = ISHFT(pack_tmp, -17)
   29839     1794488 :          idata = idata + 1
   29840     1794488 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29841     1794488 :          full_data(idata) = data_tmp
   29842     1794488 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29843     1794488 :          idata = idata + 1
   29844     1794488 :          data_tmp = ISHFT(pack_tmp, 31)
   29845     1794488 :          ipack = ipack + 1
   29846     1794488 :          pack_tmp = packed_data(ipack)
   29847     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   29848     1794488 :          pack_tmp = ISHFT(pack_tmp, -31)
   29849     1794488 :          idata = idata + 1
   29850     1794488 :          data_tmp = ISHFT(pack_tmp, 6)
   29851     1794488 :          ipack = ipack + 1
   29852     1794488 :          pack_tmp = packed_data(ipack)
   29853     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   29854     1794488 :          pack_tmp = ISHFT(pack_tmp, -6)
   29855     1794488 :          idata = idata + 1
   29856     1794488 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29857     1794488 :          full_data(idata) = data_tmp
   29858     1794488 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29859     1794488 :          idata = idata + 1
   29860     1794488 :          data_tmp = ISHFT(pack_tmp, 20)
   29861     1794488 :          ipack = ipack + 1
   29862     1794488 :          pack_tmp = packed_data(ipack)
   29863     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   29864     1794488 :          pack_tmp = ISHFT(pack_tmp, -20)
   29865     1794488 :          idata = idata + 1
   29866     1794488 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29867     1794488 :          full_data(idata) = data_tmp
   29868     1794488 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29869     1794488 :          idata = idata + 1
   29870     1794488 :          data_tmp = ISHFT(pack_tmp, 34)
   29871     1794488 :          ipack = ipack + 1
   29872     1794488 :          pack_tmp = packed_data(ipack)
   29873     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   29874     1794488 :          pack_tmp = ISHFT(pack_tmp, -34)
   29875     1794488 :          idata = idata + 1
   29876     1794488 :          data_tmp = ISHFT(pack_tmp, 9)
   29877     1794488 :          ipack = ipack + 1
   29878     1794488 :          pack_tmp = packed_data(ipack)
   29879     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   29880     1794488 :          pack_tmp = ISHFT(pack_tmp, -9)
   29881     1794488 :          idata = idata + 1
   29882     1794488 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29883     1794488 :          full_data(idata) = data_tmp
   29884     1794488 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29885     1794488 :          idata = idata + 1
   29886     1794488 :          data_tmp = ISHFT(pack_tmp, 23)
   29887     1794488 :          ipack = ipack + 1
   29888     1794488 :          pack_tmp = packed_data(ipack)
   29889     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   29890     1794488 :          pack_tmp = ISHFT(pack_tmp, -23)
   29891     1794488 :          idata = idata + 1
   29892     1794488 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29893     1794488 :          full_data(idata) = data_tmp
   29894     1794488 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29895     1794488 :          idata = idata + 1
   29896     1794488 :          data_tmp = ISHFT(pack_tmp, 37)
   29897     1794488 :          ipack = ipack + 1
   29898     1794488 :          pack_tmp = packed_data(ipack)
   29899     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   29900     1794488 :          pack_tmp = ISHFT(pack_tmp, -37)
   29901     1794488 :          idata = idata + 1
   29902     1794488 :          data_tmp = ISHFT(pack_tmp, 12)
   29903     1794488 :          ipack = ipack + 1
   29904     1794488 :          pack_tmp = packed_data(ipack)
   29905     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   29906     1794488 :          pack_tmp = ISHFT(pack_tmp, -12)
   29907     1794488 :          idata = idata + 1
   29908     1794488 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29909     1794488 :          full_data(idata) = data_tmp
   29910     1794488 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29911     1794488 :          idata = idata + 1
   29912     1794488 :          data_tmp = ISHFT(pack_tmp, 26)
   29913     1794488 :          ipack = ipack + 1
   29914     1794488 :          pack_tmp = packed_data(ipack)
   29915     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   29916     1794488 :          pack_tmp = ISHFT(pack_tmp, -26)
   29917     1794488 :          idata = idata + 1
   29918     1794488 :          data_tmp = ISHFT(pack_tmp, 1)
   29919     1794488 :          ipack = ipack + 1
   29920     1794488 :          pack_tmp = packed_data(ipack)
   29921     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   29922     1794488 :          pack_tmp = ISHFT(pack_tmp, -1)
   29923     1794488 :          idata = idata + 1
   29924     1794488 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29925     1794488 :          full_data(idata) = data_tmp
   29926     1794488 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29927     1794488 :          idata = idata + 1
   29928     1794488 :          data_tmp = ISHFT(pack_tmp, 15)
   29929     1794488 :          ipack = ipack + 1
   29930     1794488 :          pack_tmp = packed_data(ipack)
   29931     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   29932     1794488 :          pack_tmp = ISHFT(pack_tmp, -15)
   29933     1794488 :          idata = idata + 1
   29934     1794488 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29935     1794488 :          full_data(idata) = data_tmp
   29936     1794488 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29937     1794488 :          idata = idata + 1
   29938     1794488 :          data_tmp = ISHFT(pack_tmp, 29)
   29939     1794488 :          ipack = ipack + 1
   29940     1794488 :          pack_tmp = packed_data(ipack)
   29941     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   29942     1794488 :          pack_tmp = ISHFT(pack_tmp, -29)
   29943     1794488 :          idata = idata + 1
   29944     1794488 :          data_tmp = ISHFT(pack_tmp, 4)
   29945     1794488 :          ipack = ipack + 1
   29946     1794488 :          pack_tmp = packed_data(ipack)
   29947     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   29948     1794488 :          pack_tmp = ISHFT(pack_tmp, -4)
   29949     1794488 :          idata = idata + 1
   29950     1794488 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29951     1794488 :          full_data(idata) = data_tmp
   29952     1794488 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29953     1794488 :          idata = idata + 1
   29954     1794488 :          data_tmp = ISHFT(pack_tmp, 18)
   29955     1794488 :          ipack = ipack + 1
   29956     1794488 :          pack_tmp = packed_data(ipack)
   29957     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   29958     1794488 :          pack_tmp = ISHFT(pack_tmp, -18)
   29959     1794488 :          idata = idata + 1
   29960     1794488 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29961     1794488 :          full_data(idata) = data_tmp
   29962     1794488 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29963     1794488 :          idata = idata + 1
   29964     1794488 :          data_tmp = ISHFT(pack_tmp, 32)
   29965     1794488 :          ipack = ipack + 1
   29966     1794488 :          pack_tmp = packed_data(ipack)
   29967     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   29968     1794488 :          pack_tmp = ISHFT(pack_tmp, -32)
   29969     1794488 :          idata = idata + 1
   29970     1794488 :          data_tmp = ISHFT(pack_tmp, 7)
   29971     1794488 :          ipack = ipack + 1
   29972     1794488 :          pack_tmp = packed_data(ipack)
   29973     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   29974     1794488 :          pack_tmp = ISHFT(pack_tmp, -7)
   29975     1794488 :          idata = idata + 1
   29976     1794488 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29977     1794488 :          full_data(idata) = data_tmp
   29978     1794488 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29979     1794488 :          idata = idata + 1
   29980     1794488 :          data_tmp = ISHFT(pack_tmp, 21)
   29981     1794488 :          ipack = ipack + 1
   29982     1794488 :          pack_tmp = packed_data(ipack)
   29983     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   29984     1794488 :          pack_tmp = ISHFT(pack_tmp, -21)
   29985     1794488 :          idata = idata + 1
   29986     1794488 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29987     1794488 :          full_data(idata) = data_tmp
   29988     1794488 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29989     1794488 :          idata = idata + 1
   29990     1794488 :          data_tmp = ISHFT(pack_tmp, 35)
   29991     1794488 :          ipack = ipack + 1
   29992     1794488 :          pack_tmp = packed_data(ipack)
   29993     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   29994     1794488 :          pack_tmp = ISHFT(pack_tmp, -35)
   29995     1794488 :          idata = idata + 1
   29996     1794488 :          data_tmp = ISHFT(pack_tmp, 10)
   29997     1794488 :          ipack = ipack + 1
   29998     1794488 :          pack_tmp = packed_data(ipack)
   29999     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   30000     1794488 :          pack_tmp = ISHFT(pack_tmp, -10)
   30001     1794488 :          idata = idata + 1
   30002     1794488 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30003     1794488 :          full_data(idata) = data_tmp
   30004     1794488 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30005     1794488 :          idata = idata + 1
   30006     1794488 :          data_tmp = ISHFT(pack_tmp, 24)
   30007     1794488 :          ipack = ipack + 1
   30008     1794488 :          pack_tmp = packed_data(ipack)
   30009     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30010     1794488 :          pack_tmp = ISHFT(pack_tmp, -24)
   30011     1794488 :          idata = idata + 1
   30012     1794488 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30013     1794488 :          full_data(idata) = data_tmp
   30014     1794488 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30015     1794488 :          idata = idata + 1
   30016     1794488 :          data_tmp = ISHFT(pack_tmp, 38)
   30017     1794488 :          ipack = ipack + 1
   30018     1794488 :          pack_tmp = packed_data(ipack)
   30019     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   30020     1794488 :          pack_tmp = ISHFT(pack_tmp, -38)
   30021     1794488 :          idata = idata + 1
   30022     1794488 :          data_tmp = ISHFT(pack_tmp, 13)
   30023     1794488 :          ipack = ipack + 1
   30024     1794488 :          pack_tmp = packed_data(ipack)
   30025     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   30026     1794488 :          pack_tmp = ISHFT(pack_tmp, -13)
   30027     1794488 :          idata = idata + 1
   30028     1794488 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30029     1794488 :          full_data(idata) = data_tmp
   30030     1794488 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30031     1794488 :          idata = idata + 1
   30032     1794488 :          data_tmp = ISHFT(pack_tmp, 27)
   30033     1794488 :          ipack = ipack + 1
   30034     1794488 :          pack_tmp = packed_data(ipack)
   30035     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   30036     1794488 :          pack_tmp = ISHFT(pack_tmp, -27)
   30037     1794488 :          idata = idata + 1
   30038     1794488 :          data_tmp = ISHFT(pack_tmp, 2)
   30039     1794488 :          ipack = ipack + 1
   30040     1794488 :          pack_tmp = packed_data(ipack)
   30041     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   30042     1794488 :          pack_tmp = ISHFT(pack_tmp, -2)
   30043     1794488 :          idata = idata + 1
   30044     1794488 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30045     1794488 :          full_data(idata) = data_tmp
   30046     1794488 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30047     1794488 :          idata = idata + 1
   30048     1794488 :          data_tmp = ISHFT(pack_tmp, 16)
   30049     1794488 :          ipack = ipack + 1
   30050     1794488 :          pack_tmp = packed_data(ipack)
   30051     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30052     1794488 :          pack_tmp = ISHFT(pack_tmp, -16)
   30053     1794488 :          idata = idata + 1
   30054     1794488 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30055     1794488 :          full_data(idata) = data_tmp
   30056     1794488 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30057     1794488 :          idata = idata + 1
   30058     1794488 :          data_tmp = ISHFT(pack_tmp, 30)
   30059     1794488 :          ipack = ipack + 1
   30060     1794488 :          pack_tmp = packed_data(ipack)
   30061     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   30062     1794488 :          pack_tmp = ISHFT(pack_tmp, -30)
   30063     1794488 :          idata = idata + 1
   30064     1794488 :          data_tmp = ISHFT(pack_tmp, 5)
   30065     1794488 :          ipack = ipack + 1
   30066     1794488 :          pack_tmp = packed_data(ipack)
   30067     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   30068     1794488 :          pack_tmp = ISHFT(pack_tmp, -5)
   30069     1794488 :          idata = idata + 1
   30070     1794488 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30071     1794488 :          full_data(idata) = data_tmp
   30072     1794488 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30073     1794488 :          idata = idata + 1
   30074     1794488 :          data_tmp = ISHFT(pack_tmp, 19)
   30075     1794488 :          ipack = ipack + 1
   30076     1794488 :          pack_tmp = packed_data(ipack)
   30077     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   30078     1794488 :          pack_tmp = ISHFT(pack_tmp, -19)
   30079     1794488 :          idata = idata + 1
   30080     1794488 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30081     1794488 :          full_data(idata) = data_tmp
   30082     1794488 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30083     1794488 :          idata = idata + 1
   30084     1794488 :          data_tmp = ISHFT(pack_tmp, 33)
   30085     1794488 :          ipack = ipack + 1
   30086     1794488 :          pack_tmp = packed_data(ipack)
   30087     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   30088     1794488 :          pack_tmp = ISHFT(pack_tmp, -33)
   30089     1794488 :          idata = idata + 1
   30090     1794488 :          data_tmp = ISHFT(pack_tmp, 8)
   30091     1794488 :          ipack = ipack + 1
   30092     1794488 :          pack_tmp = packed_data(ipack)
   30093     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30094     1794488 :          pack_tmp = ISHFT(pack_tmp, -8)
   30095     1794488 :          idata = idata + 1
   30096     1794488 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30097     1794488 :          full_data(idata) = data_tmp
   30098     1794488 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30099     1794488 :          idata = idata + 1
   30100     1794488 :          data_tmp = ISHFT(pack_tmp, 22)
   30101     1794488 :          ipack = ipack + 1
   30102     1794488 :          pack_tmp = packed_data(ipack)
   30103     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   30104     1794488 :          pack_tmp = ISHFT(pack_tmp, -22)
   30105     1794488 :          idata = idata + 1
   30106     1794488 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30107     1794488 :          full_data(idata) = data_tmp
   30108     1794488 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30109     1794488 :          idata = idata + 1
   30110     1794488 :          data_tmp = ISHFT(pack_tmp, 36)
   30111     1794488 :          ipack = ipack + 1
   30112     1794488 :          pack_tmp = packed_data(ipack)
   30113     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   30114     1794488 :          pack_tmp = ISHFT(pack_tmp, -36)
   30115     1794488 :          idata = idata + 1
   30116     1794488 :          data_tmp = ISHFT(pack_tmp, 11)
   30117     1794488 :          ipack = ipack + 1
   30118     1794488 :          pack_tmp = packed_data(ipack)
   30119     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   30120     1794488 :          pack_tmp = ISHFT(pack_tmp, -11)
   30121     1794488 :          idata = idata + 1
   30122     1794488 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30123     1794488 :          full_data(idata) = data_tmp
   30124     1794488 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30125     1794488 :          idata = idata + 1
   30126     1794488 :          data_tmp = ISHFT(pack_tmp, 25)
   30127     1794488 :          ipack = ipack + 1
   30128     1794488 :          pack_tmp = packed_data(ipack)
   30129     1794488 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   30130     1794488 :          pack_tmp = ISHFT(pack_tmp, -25)
   30131     1794488 :          idata = idata + 1
   30132     1794488 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30133     1794488 :          full_data(idata) = data_tmp
   30134     1794488 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30135             :       END DO
   30136      125730 :       IF (Ndata_rep < Ndata) THEN
   30137       25552 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   30138             :       END IF
   30139      125730 :    END SUBROUTINE bits2ints_39
   30140             : 
   30141             : ! **************************************************************************************************
   30142             : !> \brief ...
   30143             : !> \param Ndata ...
   30144             : !> \param packed_data ...
   30145             : !> \param full_data ...
   30146             : ! **************************************************************************************************
   30147       27201 :    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       27201 :       idata = 0
   30158       27201 :       ipack = 0
   30159       27201 :       Ndata_rep = (Ndata/64)*64
   30160       27201 :       DO kdata = 1, Ndata_rep, 64
   30161      409894 :          pack_tmp = 0
   30162      409894 :          idata = idata + 1
   30163      409894 :          data_tmp = full_data(idata)
   30164      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30165      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30166      409894 :          pack_tmp = ISHFT(pack_tmp, -24)
   30167      409894 :          idata = idata + 1
   30168      409894 :          data_tmp = full_data(idata)
   30169      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30170      409894 :          data_tmp = IAND(data_tmp, mask_left(24))
   30171      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30172      409894 :          ipack = ipack + 1
   30173      409894 :          packed_data(ipack) = pack_tmp
   30174      409894 :          data_tmp = full_data(idata)
   30175      409894 :          pack_tmp = ISHFT(data_tmp, 48)
   30176      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30177      409894 :          idata = idata + 1
   30178      409894 :          data_tmp = full_data(idata)
   30179      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30180      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30181      409894 :          pack_tmp = ISHFT(pack_tmp, -8)
   30182      409894 :          idata = idata + 1
   30183      409894 :          data_tmp = full_data(idata)
   30184      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30185      409894 :          data_tmp = IAND(data_tmp, mask_left(8))
   30186      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30187      409894 :          ipack = ipack + 1
   30188      409894 :          packed_data(ipack) = pack_tmp
   30189      409894 :          data_tmp = full_data(idata)
   30190      409894 :          pack_tmp = ISHFT(data_tmp, 32)
   30191      409894 :          pack_tmp = ISHFT(pack_tmp, -32)
   30192      409894 :          idata = idata + 1
   30193      409894 :          data_tmp = full_data(idata)
   30194      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30195      409894 :          data_tmp = IAND(data_tmp, mask_left(32))
   30196      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30197      409894 :          ipack = ipack + 1
   30198      409894 :          packed_data(ipack) = pack_tmp
   30199      409894 :          data_tmp = full_data(idata)
   30200      409894 :          pack_tmp = ISHFT(data_tmp, 56)
   30201      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30202      409894 :          idata = idata + 1
   30203      409894 :          data_tmp = full_data(idata)
   30204      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30205      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30206      409894 :          pack_tmp = ISHFT(pack_tmp, -16)
   30207      409894 :          idata = idata + 1
   30208      409894 :          data_tmp = full_data(idata)
   30209      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30210      409894 :          data_tmp = IAND(data_tmp, mask_left(16))
   30211      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30212      409894 :          ipack = ipack + 1
   30213      409894 :          packed_data(ipack) = pack_tmp
   30214      409894 :          data_tmp = full_data(idata)
   30215      409894 :          pack_tmp = ISHFT(data_tmp, 40)
   30216      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30217      409894 :          idata = idata + 1
   30218      409894 :          data_tmp = full_data(idata)
   30219      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30220      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30221      409894 :          pack_tmp = ISHFT(pack_tmp, 0)
   30222      409894 :          idata = idata + 1
   30223      409894 :          data_tmp = full_data(idata)
   30224             :          data_tmp = ISHFT(data_tmp, 24)
   30225      409894 :          data_tmp = IAND(data_tmp, mask_left(0))
   30226      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30227      409894 :          ipack = ipack + 1
   30228      409894 :          packed_data(ipack) = pack_tmp
   30229      409894 :          data_tmp = full_data(idata)
   30230      409894 :          pack_tmp = ISHFT(data_tmp, 24)
   30231      409894 :          pack_tmp = ISHFT(pack_tmp, -24)
   30232      409894 :          idata = idata + 1
   30233      409894 :          data_tmp = full_data(idata)
   30234      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30235      409894 :          data_tmp = IAND(data_tmp, mask_left(24))
   30236      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30237      409894 :          ipack = ipack + 1
   30238      409894 :          packed_data(ipack) = pack_tmp
   30239      409894 :          data_tmp = full_data(idata)
   30240      409894 :          pack_tmp = ISHFT(data_tmp, 48)
   30241      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30242      409894 :          idata = idata + 1
   30243      409894 :          data_tmp = full_data(idata)
   30244      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30245      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30246      409894 :          pack_tmp = ISHFT(pack_tmp, -8)
   30247      409894 :          idata = idata + 1
   30248      409894 :          data_tmp = full_data(idata)
   30249      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30250      409894 :          data_tmp = IAND(data_tmp, mask_left(8))
   30251      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30252      409894 :          ipack = ipack + 1
   30253      409894 :          packed_data(ipack) = pack_tmp
   30254      409894 :          data_tmp = full_data(idata)
   30255      409894 :          pack_tmp = ISHFT(data_tmp, 32)
   30256      409894 :          pack_tmp = ISHFT(pack_tmp, -32)
   30257      409894 :          idata = idata + 1
   30258      409894 :          data_tmp = full_data(idata)
   30259      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30260      409894 :          data_tmp = IAND(data_tmp, mask_left(32))
   30261      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30262      409894 :          ipack = ipack + 1
   30263      409894 :          packed_data(ipack) = pack_tmp
   30264      409894 :          data_tmp = full_data(idata)
   30265      409894 :          pack_tmp = ISHFT(data_tmp, 56)
   30266      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30267      409894 :          idata = idata + 1
   30268      409894 :          data_tmp = full_data(idata)
   30269      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30270      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30271      409894 :          pack_tmp = ISHFT(pack_tmp, -16)
   30272      409894 :          idata = idata + 1
   30273      409894 :          data_tmp = full_data(idata)
   30274      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30275      409894 :          data_tmp = IAND(data_tmp, mask_left(16))
   30276      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30277      409894 :          ipack = ipack + 1
   30278      409894 :          packed_data(ipack) = pack_tmp
   30279      409894 :          data_tmp = full_data(idata)
   30280      409894 :          pack_tmp = ISHFT(data_tmp, 40)
   30281      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30282      409894 :          idata = idata + 1
   30283      409894 :          data_tmp = full_data(idata)
   30284      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30285      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30286      409894 :          pack_tmp = ISHFT(pack_tmp, 0)
   30287      409894 :          idata = idata + 1
   30288      409894 :          data_tmp = full_data(idata)
   30289             :          data_tmp = ISHFT(data_tmp, 24)
   30290      409894 :          data_tmp = IAND(data_tmp, mask_left(0))
   30291      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30292      409894 :          ipack = ipack + 1
   30293      409894 :          packed_data(ipack) = pack_tmp
   30294      409894 :          data_tmp = full_data(idata)
   30295      409894 :          pack_tmp = ISHFT(data_tmp, 24)
   30296      409894 :          pack_tmp = ISHFT(pack_tmp, -24)
   30297      409894 :          idata = idata + 1
   30298      409894 :          data_tmp = full_data(idata)
   30299      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30300      409894 :          data_tmp = IAND(data_tmp, mask_left(24))
   30301      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30302      409894 :          ipack = ipack + 1
   30303      409894 :          packed_data(ipack) = pack_tmp
   30304      409894 :          data_tmp = full_data(idata)
   30305      409894 :          pack_tmp = ISHFT(data_tmp, 48)
   30306      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30307      409894 :          idata = idata + 1
   30308      409894 :          data_tmp = full_data(idata)
   30309      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30310      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30311      409894 :          pack_tmp = ISHFT(pack_tmp, -8)
   30312      409894 :          idata = idata + 1
   30313      409894 :          data_tmp = full_data(idata)
   30314      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30315      409894 :          data_tmp = IAND(data_tmp, mask_left(8))
   30316      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30317      409894 :          ipack = ipack + 1
   30318      409894 :          packed_data(ipack) = pack_tmp
   30319      409894 :          data_tmp = full_data(idata)
   30320      409894 :          pack_tmp = ISHFT(data_tmp, 32)
   30321      409894 :          pack_tmp = ISHFT(pack_tmp, -32)
   30322      409894 :          idata = idata + 1
   30323      409894 :          data_tmp = full_data(idata)
   30324      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30325      409894 :          data_tmp = IAND(data_tmp, mask_left(32))
   30326      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30327      409894 :          ipack = ipack + 1
   30328      409894 :          packed_data(ipack) = pack_tmp
   30329      409894 :          data_tmp = full_data(idata)
   30330      409894 :          pack_tmp = ISHFT(data_tmp, 56)
   30331      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30332      409894 :          idata = idata + 1
   30333      409894 :          data_tmp = full_data(idata)
   30334      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30335      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30336      409894 :          pack_tmp = ISHFT(pack_tmp, -16)
   30337      409894 :          idata = idata + 1
   30338      409894 :          data_tmp = full_data(idata)
   30339      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30340      409894 :          data_tmp = IAND(data_tmp, mask_left(16))
   30341      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30342      409894 :          ipack = ipack + 1
   30343      409894 :          packed_data(ipack) = pack_tmp
   30344      409894 :          data_tmp = full_data(idata)
   30345      409894 :          pack_tmp = ISHFT(data_tmp, 40)
   30346      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30347      409894 :          idata = idata + 1
   30348      409894 :          data_tmp = full_data(idata)
   30349      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30350      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30351      409894 :          pack_tmp = ISHFT(pack_tmp, 0)
   30352      409894 :          idata = idata + 1
   30353      409894 :          data_tmp = full_data(idata)
   30354             :          data_tmp = ISHFT(data_tmp, 24)
   30355      409894 :          data_tmp = IAND(data_tmp, mask_left(0))
   30356      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30357      409894 :          ipack = ipack + 1
   30358      409894 :          packed_data(ipack) = pack_tmp
   30359      409894 :          data_tmp = full_data(idata)
   30360      409894 :          pack_tmp = ISHFT(data_tmp, 24)
   30361      409894 :          pack_tmp = ISHFT(pack_tmp, -24)
   30362      409894 :          idata = idata + 1
   30363      409894 :          data_tmp = full_data(idata)
   30364      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30365      409894 :          data_tmp = IAND(data_tmp, mask_left(24))
   30366      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30367      409894 :          ipack = ipack + 1
   30368      409894 :          packed_data(ipack) = pack_tmp
   30369      409894 :          data_tmp = full_data(idata)
   30370      409894 :          pack_tmp = ISHFT(data_tmp, 48)
   30371      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30372      409894 :          idata = idata + 1
   30373      409894 :          data_tmp = full_data(idata)
   30374      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30375      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30376      409894 :          pack_tmp = ISHFT(pack_tmp, -8)
   30377      409894 :          idata = idata + 1
   30378      409894 :          data_tmp = full_data(idata)
   30379      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30380      409894 :          data_tmp = IAND(data_tmp, mask_left(8))
   30381      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30382      409894 :          ipack = ipack + 1
   30383      409894 :          packed_data(ipack) = pack_tmp
   30384      409894 :          data_tmp = full_data(idata)
   30385      409894 :          pack_tmp = ISHFT(data_tmp, 32)
   30386      409894 :          pack_tmp = ISHFT(pack_tmp, -32)
   30387      409894 :          idata = idata + 1
   30388      409894 :          data_tmp = full_data(idata)
   30389      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30390      409894 :          data_tmp = IAND(data_tmp, mask_left(32))
   30391      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30392      409894 :          ipack = ipack + 1
   30393      409894 :          packed_data(ipack) = pack_tmp
   30394      409894 :          data_tmp = full_data(idata)
   30395      409894 :          pack_tmp = ISHFT(data_tmp, 56)
   30396      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30397      409894 :          idata = idata + 1
   30398      409894 :          data_tmp = full_data(idata)
   30399      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30400      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30401      409894 :          pack_tmp = ISHFT(pack_tmp, -16)
   30402      409894 :          idata = idata + 1
   30403      409894 :          data_tmp = full_data(idata)
   30404      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30405      409894 :          data_tmp = IAND(data_tmp, mask_left(16))
   30406      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30407      409894 :          ipack = ipack + 1
   30408      409894 :          packed_data(ipack) = pack_tmp
   30409      409894 :          data_tmp = full_data(idata)
   30410      409894 :          pack_tmp = ISHFT(data_tmp, 40)
   30411      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30412      409894 :          idata = idata + 1
   30413      409894 :          data_tmp = full_data(idata)
   30414      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30415      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30416      409894 :          pack_tmp = ISHFT(pack_tmp, 0)
   30417      409894 :          idata = idata + 1
   30418      409894 :          data_tmp = full_data(idata)
   30419             :          data_tmp = ISHFT(data_tmp, 24)
   30420      409894 :          data_tmp = IAND(data_tmp, mask_left(0))
   30421      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30422      409894 :          ipack = ipack + 1
   30423      409894 :          packed_data(ipack) = pack_tmp
   30424      409894 :          data_tmp = full_data(idata)
   30425      409894 :          pack_tmp = ISHFT(data_tmp, 24)
   30426      409894 :          pack_tmp = ISHFT(pack_tmp, -24)
   30427      409894 :          idata = idata + 1
   30428      409894 :          data_tmp = full_data(idata)
   30429      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30430      409894 :          data_tmp = IAND(data_tmp, mask_left(24))
   30431      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30432      409894 :          ipack = ipack + 1
   30433      409894 :          packed_data(ipack) = pack_tmp
   30434      409894 :          data_tmp = full_data(idata)
   30435      409894 :          pack_tmp = ISHFT(data_tmp, 48)
   30436      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30437      409894 :          idata = idata + 1
   30438      409894 :          data_tmp = full_data(idata)
   30439      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30440      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30441      409894 :          pack_tmp = ISHFT(pack_tmp, -8)
   30442      409894 :          idata = idata + 1
   30443      409894 :          data_tmp = full_data(idata)
   30444      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30445      409894 :          data_tmp = IAND(data_tmp, mask_left(8))
   30446      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30447      409894 :          ipack = ipack + 1
   30448      409894 :          packed_data(ipack) = pack_tmp
   30449      409894 :          data_tmp = full_data(idata)
   30450      409894 :          pack_tmp = ISHFT(data_tmp, 32)
   30451      409894 :          pack_tmp = ISHFT(pack_tmp, -32)
   30452      409894 :          idata = idata + 1
   30453      409894 :          data_tmp = full_data(idata)
   30454      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30455      409894 :          data_tmp = IAND(data_tmp, mask_left(32))
   30456      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30457      409894 :          ipack = ipack + 1
   30458      409894 :          packed_data(ipack) = pack_tmp
   30459      409894 :          data_tmp = full_data(idata)
   30460      409894 :          pack_tmp = ISHFT(data_tmp, 56)
   30461      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30462      409894 :          idata = idata + 1
   30463      409894 :          data_tmp = full_data(idata)
   30464      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30465      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30466      409894 :          pack_tmp = ISHFT(pack_tmp, -16)
   30467      409894 :          idata = idata + 1
   30468      409894 :          data_tmp = full_data(idata)
   30469      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30470      409894 :          data_tmp = IAND(data_tmp, mask_left(16))
   30471      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30472      409894 :          ipack = ipack + 1
   30473      409894 :          packed_data(ipack) = pack_tmp
   30474      409894 :          data_tmp = full_data(idata)
   30475      409894 :          pack_tmp = ISHFT(data_tmp, 40)
   30476      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30477      409894 :          idata = idata + 1
   30478      409894 :          data_tmp = full_data(idata)
   30479      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30480      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30481      409894 :          pack_tmp = ISHFT(pack_tmp, 0)
   30482      409894 :          idata = idata + 1
   30483      409894 :          data_tmp = full_data(idata)
   30484             :          data_tmp = ISHFT(data_tmp, 24)
   30485      409894 :          data_tmp = IAND(data_tmp, mask_left(0))
   30486      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30487      409894 :          ipack = ipack + 1
   30488      409894 :          packed_data(ipack) = pack_tmp
   30489      409894 :          data_tmp = full_data(idata)
   30490      409894 :          pack_tmp = ISHFT(data_tmp, 24)
   30491      409894 :          pack_tmp = ISHFT(pack_tmp, -24)
   30492      409894 :          idata = idata + 1
   30493      409894 :          data_tmp = full_data(idata)
   30494      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30495      409894 :          data_tmp = IAND(data_tmp, mask_left(24))
   30496      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30497      409894 :          ipack = ipack + 1
   30498      409894 :          packed_data(ipack) = pack_tmp
   30499      409894 :          data_tmp = full_data(idata)
   30500      409894 :          pack_tmp = ISHFT(data_tmp, 48)
   30501      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30502      409894 :          idata = idata + 1
   30503      409894 :          data_tmp = full_data(idata)
   30504      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30505      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30506      409894 :          pack_tmp = ISHFT(pack_tmp, -8)
   30507      409894 :          idata = idata + 1
   30508      409894 :          data_tmp = full_data(idata)
   30509      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30510      409894 :          data_tmp = IAND(data_tmp, mask_left(8))
   30511      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30512      409894 :          ipack = ipack + 1
   30513      409894 :          packed_data(ipack) = pack_tmp
   30514      409894 :          data_tmp = full_data(idata)
   30515      409894 :          pack_tmp = ISHFT(data_tmp, 32)
   30516      409894 :          pack_tmp = ISHFT(pack_tmp, -32)
   30517      409894 :          idata = idata + 1
   30518      409894 :          data_tmp = full_data(idata)
   30519      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30520      409894 :          data_tmp = IAND(data_tmp, mask_left(32))
   30521      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30522      409894 :          ipack = ipack + 1
   30523      409894 :          packed_data(ipack) = pack_tmp
   30524      409894 :          data_tmp = full_data(idata)
   30525      409894 :          pack_tmp = ISHFT(data_tmp, 56)
   30526      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30527      409894 :          idata = idata + 1
   30528      409894 :          data_tmp = full_data(idata)
   30529      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30530      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30531      409894 :          pack_tmp = ISHFT(pack_tmp, -16)
   30532      409894 :          idata = idata + 1
   30533      409894 :          data_tmp = full_data(idata)
   30534      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30535      409894 :          data_tmp = IAND(data_tmp, mask_left(16))
   30536      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30537      409894 :          ipack = ipack + 1
   30538      409894 :          packed_data(ipack) = pack_tmp
   30539      409894 :          data_tmp = full_data(idata)
   30540      409894 :          pack_tmp = ISHFT(data_tmp, 40)
   30541      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30542      409894 :          idata = idata + 1
   30543      409894 :          data_tmp = full_data(idata)
   30544      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30545      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30546      409894 :          pack_tmp = ISHFT(pack_tmp, 0)
   30547      409894 :          idata = idata + 1
   30548      409894 :          data_tmp = full_data(idata)
   30549             :          data_tmp = ISHFT(data_tmp, 24)
   30550      409894 :          data_tmp = IAND(data_tmp, mask_left(0))
   30551      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30552      409894 :          ipack = ipack + 1
   30553      409894 :          packed_data(ipack) = pack_tmp
   30554      409894 :          data_tmp = full_data(idata)
   30555      409894 :          pack_tmp = ISHFT(data_tmp, 24)
   30556      409894 :          pack_tmp = ISHFT(pack_tmp, -24)
   30557      409894 :          idata = idata + 1
   30558      409894 :          data_tmp = full_data(idata)
   30559      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30560      409894 :          data_tmp = IAND(data_tmp, mask_left(24))
   30561      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30562      409894 :          ipack = ipack + 1
   30563      409894 :          packed_data(ipack) = pack_tmp
   30564      409894 :          data_tmp = full_data(idata)
   30565      409894 :          pack_tmp = ISHFT(data_tmp, 48)
   30566      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30567      409894 :          idata = idata + 1
   30568      409894 :          data_tmp = full_data(idata)
   30569      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30570      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30571      409894 :          pack_tmp = ISHFT(pack_tmp, -8)
   30572      409894 :          idata = idata + 1
   30573      409894 :          data_tmp = full_data(idata)
   30574      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30575      409894 :          data_tmp = IAND(data_tmp, mask_left(8))
   30576      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30577      409894 :          ipack = ipack + 1
   30578      409894 :          packed_data(ipack) = pack_tmp
   30579      409894 :          data_tmp = full_data(idata)
   30580      409894 :          pack_tmp = ISHFT(data_tmp, 32)
   30581      409894 :          pack_tmp = ISHFT(pack_tmp, -32)
   30582      409894 :          idata = idata + 1
   30583      409894 :          data_tmp = full_data(idata)
   30584      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30585      409894 :          data_tmp = IAND(data_tmp, mask_left(32))
   30586      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30587      409894 :          ipack = ipack + 1
   30588      409894 :          packed_data(ipack) = pack_tmp
   30589      409894 :          data_tmp = full_data(idata)
   30590      409894 :          pack_tmp = ISHFT(data_tmp, 56)
   30591      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30592      409894 :          idata = idata + 1
   30593      409894 :          data_tmp = full_data(idata)
   30594      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30595      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30596      409894 :          pack_tmp = ISHFT(pack_tmp, -16)
   30597      409894 :          idata = idata + 1
   30598      409894 :          data_tmp = full_data(idata)
   30599      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30600      409894 :          data_tmp = IAND(data_tmp, mask_left(16))
   30601      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30602      409894 :          ipack = ipack + 1
   30603      409894 :          packed_data(ipack) = pack_tmp
   30604      409894 :          data_tmp = full_data(idata)
   30605      409894 :          pack_tmp = ISHFT(data_tmp, 40)
   30606      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30607      409894 :          idata = idata + 1
   30608      409894 :          data_tmp = full_data(idata)
   30609      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30610      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30611      409894 :          pack_tmp = ISHFT(pack_tmp, 0)
   30612      409894 :          idata = idata + 1
   30613      409894 :          data_tmp = full_data(idata)
   30614             :          data_tmp = ISHFT(data_tmp, 24)
   30615      409894 :          data_tmp = IAND(data_tmp, mask_left(0))
   30616      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30617      409894 :          ipack = ipack + 1
   30618      409894 :          packed_data(ipack) = pack_tmp
   30619      409894 :          data_tmp = full_data(idata)
   30620      409894 :          pack_tmp = ISHFT(data_tmp, 24)
   30621      409894 :          pack_tmp = ISHFT(pack_tmp, -24)
   30622      409894 :          idata = idata + 1
   30623      409894 :          data_tmp = full_data(idata)
   30624      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30625      409894 :          data_tmp = IAND(data_tmp, mask_left(24))
   30626      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30627      409894 :          ipack = ipack + 1
   30628      409894 :          packed_data(ipack) = pack_tmp
   30629      409894 :          data_tmp = full_data(idata)
   30630      409894 :          pack_tmp = ISHFT(data_tmp, 48)
   30631      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30632      409894 :          idata = idata + 1
   30633      409894 :          data_tmp = full_data(idata)
   30634      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30635      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30636      409894 :          pack_tmp = ISHFT(pack_tmp, -8)
   30637      409894 :          idata = idata + 1
   30638      409894 :          data_tmp = full_data(idata)
   30639      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30640      409894 :          data_tmp = IAND(data_tmp, mask_left(8))
   30641      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30642      409894 :          ipack = ipack + 1
   30643      409894 :          packed_data(ipack) = pack_tmp
   30644      409894 :          data_tmp = full_data(idata)
   30645      409894 :          pack_tmp = ISHFT(data_tmp, 32)
   30646      409894 :          pack_tmp = ISHFT(pack_tmp, -32)
   30647      409894 :          idata = idata + 1
   30648      409894 :          data_tmp = full_data(idata)
   30649      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30650      409894 :          data_tmp = IAND(data_tmp, mask_left(32))
   30651      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30652      409894 :          ipack = ipack + 1
   30653      409894 :          packed_data(ipack) = pack_tmp
   30654      409894 :          data_tmp = full_data(idata)
   30655      409894 :          pack_tmp = ISHFT(data_tmp, 56)
   30656      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30657      409894 :          idata = idata + 1
   30658      409894 :          data_tmp = full_data(idata)
   30659      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30660      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30661      409894 :          pack_tmp = ISHFT(pack_tmp, -16)
   30662      409894 :          idata = idata + 1
   30663      409894 :          data_tmp = full_data(idata)
   30664      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30665      409894 :          data_tmp = IAND(data_tmp, mask_left(16))
   30666      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30667      409894 :          ipack = ipack + 1
   30668      409894 :          packed_data(ipack) = pack_tmp
   30669      409894 :          data_tmp = full_data(idata)
   30670      409894 :          pack_tmp = ISHFT(data_tmp, 40)
   30671      409894 :          pack_tmp = ISHFT(pack_tmp, -40)
   30672      409894 :          idata = idata + 1
   30673      409894 :          data_tmp = full_data(idata)
   30674      409894 :          data_tmp = ISHFT(data_tmp, 24)
   30675      409894 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30676             :          pack_tmp = ISHFT(pack_tmp, 0)
   30677      409894 :          pack_tmp = ISHFT(pack_tmp, 0)
   30678      409894 :          ipack = ipack + 1
   30679      409920 :          packed_data(ipack) = pack_tmp
   30680             :       END DO
   30681       27201 :       IF (Ndata_rep < Ndata) THEN
   30682        2964 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   30683             :       END IF
   30684       27201 :    END SUBROUTINE ints2bits_40
   30685             : 
   30686             : ! **************************************************************************************************
   30687             : !> \brief ...
   30688             : !> \param Ndata ...
   30689             : !> \param packed_data ...
   30690             : !> \param full_data ...
   30691             : ! **************************************************************************************************
   30692      126699 :    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      126699 :       ipack = 0
   30703      126699 :       idata = 0
   30704      126699 :       pack_tmp = 0
   30705      126699 :       Ndata_rep = (Ndata/64)*64
   30706      126699 :       DO kdata = 1, Ndata_rep, 64
   30707     1809337 :          idata = idata + 1
   30708     1809337 :          data_tmp = ISHFT(pack_tmp, 40)
   30709     1809337 :          ipack = ipack + 1
   30710     1809337 :          pack_tmp = packed_data(ipack)
   30711     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30712     1809337 :          pack_tmp = ISHFT(pack_tmp, -40)
   30713     1809337 :          idata = idata + 1
   30714     1809337 :          data_tmp = ISHFT(pack_tmp, 16)
   30715     1809337 :          ipack = ipack + 1
   30716     1809337 :          pack_tmp = packed_data(ipack)
   30717     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30718     1809337 :          pack_tmp = ISHFT(pack_tmp, -16)
   30719     1809337 :          idata = idata + 1
   30720     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30721     1809337 :          full_data(idata) = data_tmp
   30722     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30723     1809337 :          idata = idata + 1
   30724     1809337 :          data_tmp = ISHFT(pack_tmp, 32)
   30725     1809337 :          ipack = ipack + 1
   30726     1809337 :          pack_tmp = packed_data(ipack)
   30727     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30728     1809337 :          pack_tmp = ISHFT(pack_tmp, -32)
   30729     1809337 :          idata = idata + 1
   30730     1809337 :          data_tmp = ISHFT(pack_tmp, 8)
   30731     1809337 :          ipack = ipack + 1
   30732     1809337 :          pack_tmp = packed_data(ipack)
   30733     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30734     1809337 :          pack_tmp = ISHFT(pack_tmp, -8)
   30735     1809337 :          idata = idata + 1
   30736     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30737     1809337 :          full_data(idata) = data_tmp
   30738     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30739     1809337 :          idata = idata + 1
   30740     1809337 :          data_tmp = ISHFT(pack_tmp, 24)
   30741     1809337 :          ipack = ipack + 1
   30742     1809337 :          pack_tmp = packed_data(ipack)
   30743     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30744     1809337 :          pack_tmp = ISHFT(pack_tmp, -24)
   30745     1809337 :          idata = idata + 1
   30746     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30747     1809337 :          full_data(idata) = data_tmp
   30748     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30749     1809337 :          idata = idata + 1
   30750     1809337 :          data_tmp = ISHFT(pack_tmp, 40)
   30751     1809337 :          ipack = ipack + 1
   30752     1809337 :          pack_tmp = packed_data(ipack)
   30753     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30754     1809337 :          pack_tmp = ISHFT(pack_tmp, -40)
   30755     1809337 :          idata = idata + 1
   30756     1809337 :          data_tmp = ISHFT(pack_tmp, 16)
   30757     1809337 :          ipack = ipack + 1
   30758     1809337 :          pack_tmp = packed_data(ipack)
   30759     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30760     1809337 :          pack_tmp = ISHFT(pack_tmp, -16)
   30761     1809337 :          idata = idata + 1
   30762     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30763     1809337 :          full_data(idata) = data_tmp
   30764     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30765     1809337 :          idata = idata + 1
   30766     1809337 :          data_tmp = ISHFT(pack_tmp, 32)
   30767     1809337 :          ipack = ipack + 1
   30768     1809337 :          pack_tmp = packed_data(ipack)
   30769     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30770     1809337 :          pack_tmp = ISHFT(pack_tmp, -32)
   30771     1809337 :          idata = idata + 1
   30772     1809337 :          data_tmp = ISHFT(pack_tmp, 8)
   30773     1809337 :          ipack = ipack + 1
   30774     1809337 :          pack_tmp = packed_data(ipack)
   30775     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30776     1809337 :          pack_tmp = ISHFT(pack_tmp, -8)
   30777     1809337 :          idata = idata + 1
   30778     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30779     1809337 :          full_data(idata) = data_tmp
   30780     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30781     1809337 :          idata = idata + 1
   30782     1809337 :          data_tmp = ISHFT(pack_tmp, 24)
   30783     1809337 :          ipack = ipack + 1
   30784     1809337 :          pack_tmp = packed_data(ipack)
   30785     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30786     1809337 :          pack_tmp = ISHFT(pack_tmp, -24)
   30787     1809337 :          idata = idata + 1
   30788     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30789     1809337 :          full_data(idata) = data_tmp
   30790     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30791     1809337 :          idata = idata + 1
   30792     1809337 :          data_tmp = ISHFT(pack_tmp, 40)
   30793     1809337 :          ipack = ipack + 1
   30794     1809337 :          pack_tmp = packed_data(ipack)
   30795     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30796     1809337 :          pack_tmp = ISHFT(pack_tmp, -40)
   30797     1809337 :          idata = idata + 1
   30798     1809337 :          data_tmp = ISHFT(pack_tmp, 16)
   30799     1809337 :          ipack = ipack + 1
   30800     1809337 :          pack_tmp = packed_data(ipack)
   30801     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30802     1809337 :          pack_tmp = ISHFT(pack_tmp, -16)
   30803     1809337 :          idata = idata + 1
   30804     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30805     1809337 :          full_data(idata) = data_tmp
   30806     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30807     1809337 :          idata = idata + 1
   30808     1809337 :          data_tmp = ISHFT(pack_tmp, 32)
   30809     1809337 :          ipack = ipack + 1
   30810     1809337 :          pack_tmp = packed_data(ipack)
   30811     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30812     1809337 :          pack_tmp = ISHFT(pack_tmp, -32)
   30813     1809337 :          idata = idata + 1
   30814     1809337 :          data_tmp = ISHFT(pack_tmp, 8)
   30815     1809337 :          ipack = ipack + 1
   30816     1809337 :          pack_tmp = packed_data(ipack)
   30817     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30818     1809337 :          pack_tmp = ISHFT(pack_tmp, -8)
   30819     1809337 :          idata = idata + 1
   30820     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30821     1809337 :          full_data(idata) = data_tmp
   30822     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30823     1809337 :          idata = idata + 1
   30824     1809337 :          data_tmp = ISHFT(pack_tmp, 24)
   30825     1809337 :          ipack = ipack + 1
   30826     1809337 :          pack_tmp = packed_data(ipack)
   30827     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30828     1809337 :          pack_tmp = ISHFT(pack_tmp, -24)
   30829     1809337 :          idata = idata + 1
   30830     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30831     1809337 :          full_data(idata) = data_tmp
   30832     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30833     1809337 :          idata = idata + 1
   30834     1809337 :          data_tmp = ISHFT(pack_tmp, 40)
   30835     1809337 :          ipack = ipack + 1
   30836     1809337 :          pack_tmp = packed_data(ipack)
   30837     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30838     1809337 :          pack_tmp = ISHFT(pack_tmp, -40)
   30839     1809337 :          idata = idata + 1
   30840     1809337 :          data_tmp = ISHFT(pack_tmp, 16)
   30841     1809337 :          ipack = ipack + 1
   30842     1809337 :          pack_tmp = packed_data(ipack)
   30843     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30844     1809337 :          pack_tmp = ISHFT(pack_tmp, -16)
   30845     1809337 :          idata = idata + 1
   30846     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30847     1809337 :          full_data(idata) = data_tmp
   30848     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30849     1809337 :          idata = idata + 1
   30850     1809337 :          data_tmp = ISHFT(pack_tmp, 32)
   30851     1809337 :          ipack = ipack + 1
   30852     1809337 :          pack_tmp = packed_data(ipack)
   30853     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30854     1809337 :          pack_tmp = ISHFT(pack_tmp, -32)
   30855     1809337 :          idata = idata + 1
   30856     1809337 :          data_tmp = ISHFT(pack_tmp, 8)
   30857     1809337 :          ipack = ipack + 1
   30858     1809337 :          pack_tmp = packed_data(ipack)
   30859     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30860     1809337 :          pack_tmp = ISHFT(pack_tmp, -8)
   30861     1809337 :          idata = idata + 1
   30862     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30863     1809337 :          full_data(idata) = data_tmp
   30864     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30865     1809337 :          idata = idata + 1
   30866     1809337 :          data_tmp = ISHFT(pack_tmp, 24)
   30867     1809337 :          ipack = ipack + 1
   30868     1809337 :          pack_tmp = packed_data(ipack)
   30869     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30870     1809337 :          pack_tmp = ISHFT(pack_tmp, -24)
   30871     1809337 :          idata = idata + 1
   30872     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30873     1809337 :          full_data(idata) = data_tmp
   30874     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30875     1809337 :          idata = idata + 1
   30876     1809337 :          data_tmp = ISHFT(pack_tmp, 40)
   30877     1809337 :          ipack = ipack + 1
   30878     1809337 :          pack_tmp = packed_data(ipack)
   30879     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30880     1809337 :          pack_tmp = ISHFT(pack_tmp, -40)
   30881     1809337 :          idata = idata + 1
   30882     1809337 :          data_tmp = ISHFT(pack_tmp, 16)
   30883     1809337 :          ipack = ipack + 1
   30884     1809337 :          pack_tmp = packed_data(ipack)
   30885     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30886     1809337 :          pack_tmp = ISHFT(pack_tmp, -16)
   30887     1809337 :          idata = idata + 1
   30888     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30889     1809337 :          full_data(idata) = data_tmp
   30890     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30891     1809337 :          idata = idata + 1
   30892     1809337 :          data_tmp = ISHFT(pack_tmp, 32)
   30893     1809337 :          ipack = ipack + 1
   30894     1809337 :          pack_tmp = packed_data(ipack)
   30895     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30896     1809337 :          pack_tmp = ISHFT(pack_tmp, -32)
   30897     1809337 :          idata = idata + 1
   30898     1809337 :          data_tmp = ISHFT(pack_tmp, 8)
   30899     1809337 :          ipack = ipack + 1
   30900     1809337 :          pack_tmp = packed_data(ipack)
   30901     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30902     1809337 :          pack_tmp = ISHFT(pack_tmp, -8)
   30903     1809337 :          idata = idata + 1
   30904     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30905     1809337 :          full_data(idata) = data_tmp
   30906     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30907     1809337 :          idata = idata + 1
   30908     1809337 :          data_tmp = ISHFT(pack_tmp, 24)
   30909     1809337 :          ipack = ipack + 1
   30910     1809337 :          pack_tmp = packed_data(ipack)
   30911     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30912     1809337 :          pack_tmp = ISHFT(pack_tmp, -24)
   30913     1809337 :          idata = idata + 1
   30914     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30915     1809337 :          full_data(idata) = data_tmp
   30916     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30917     1809337 :          idata = idata + 1
   30918     1809337 :          data_tmp = ISHFT(pack_tmp, 40)
   30919     1809337 :          ipack = ipack + 1
   30920     1809337 :          pack_tmp = packed_data(ipack)
   30921     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30922     1809337 :          pack_tmp = ISHFT(pack_tmp, -40)
   30923     1809337 :          idata = idata + 1
   30924     1809337 :          data_tmp = ISHFT(pack_tmp, 16)
   30925     1809337 :          ipack = ipack + 1
   30926     1809337 :          pack_tmp = packed_data(ipack)
   30927     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30928     1809337 :          pack_tmp = ISHFT(pack_tmp, -16)
   30929     1809337 :          idata = idata + 1
   30930     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30931     1809337 :          full_data(idata) = data_tmp
   30932     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30933     1809337 :          idata = idata + 1
   30934     1809337 :          data_tmp = ISHFT(pack_tmp, 32)
   30935     1809337 :          ipack = ipack + 1
   30936     1809337 :          pack_tmp = packed_data(ipack)
   30937     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30938     1809337 :          pack_tmp = ISHFT(pack_tmp, -32)
   30939     1809337 :          idata = idata + 1
   30940     1809337 :          data_tmp = ISHFT(pack_tmp, 8)
   30941     1809337 :          ipack = ipack + 1
   30942     1809337 :          pack_tmp = packed_data(ipack)
   30943     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30944     1809337 :          pack_tmp = ISHFT(pack_tmp, -8)
   30945     1809337 :          idata = idata + 1
   30946     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30947     1809337 :          full_data(idata) = data_tmp
   30948     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30949     1809337 :          idata = idata + 1
   30950     1809337 :          data_tmp = ISHFT(pack_tmp, 24)
   30951     1809337 :          ipack = ipack + 1
   30952     1809337 :          pack_tmp = packed_data(ipack)
   30953     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30954     1809337 :          pack_tmp = ISHFT(pack_tmp, -24)
   30955     1809337 :          idata = idata + 1
   30956     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30957     1809337 :          full_data(idata) = data_tmp
   30958     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30959     1809337 :          idata = idata + 1
   30960     1809337 :          data_tmp = ISHFT(pack_tmp, 40)
   30961     1809337 :          ipack = ipack + 1
   30962     1809337 :          pack_tmp = packed_data(ipack)
   30963     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30964     1809337 :          pack_tmp = ISHFT(pack_tmp, -40)
   30965     1809337 :          idata = idata + 1
   30966     1809337 :          data_tmp = ISHFT(pack_tmp, 16)
   30967     1809337 :          ipack = ipack + 1
   30968     1809337 :          pack_tmp = packed_data(ipack)
   30969     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30970     1809337 :          pack_tmp = ISHFT(pack_tmp, -16)
   30971     1809337 :          idata = idata + 1
   30972     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30973     1809337 :          full_data(idata) = data_tmp
   30974     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30975     1809337 :          idata = idata + 1
   30976     1809337 :          data_tmp = ISHFT(pack_tmp, 32)
   30977     1809337 :          ipack = ipack + 1
   30978     1809337 :          pack_tmp = packed_data(ipack)
   30979     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30980     1809337 :          pack_tmp = ISHFT(pack_tmp, -32)
   30981     1809337 :          idata = idata + 1
   30982     1809337 :          data_tmp = ISHFT(pack_tmp, 8)
   30983     1809337 :          ipack = ipack + 1
   30984     1809337 :          pack_tmp = packed_data(ipack)
   30985     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30986     1809337 :          pack_tmp = ISHFT(pack_tmp, -8)
   30987     1809337 :          idata = idata + 1
   30988     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30989     1809337 :          full_data(idata) = data_tmp
   30990     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30991     1809337 :          idata = idata + 1
   30992     1809337 :          data_tmp = ISHFT(pack_tmp, 24)
   30993     1809337 :          ipack = ipack + 1
   30994     1809337 :          pack_tmp = packed_data(ipack)
   30995     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30996     1809337 :          pack_tmp = ISHFT(pack_tmp, -24)
   30997     1809337 :          idata = idata + 1
   30998     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30999     1809337 :          full_data(idata) = data_tmp
   31000     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31001     1809337 :          idata = idata + 1
   31002     1809337 :          data_tmp = ISHFT(pack_tmp, 40)
   31003     1809337 :          ipack = ipack + 1
   31004     1809337 :          pack_tmp = packed_data(ipack)
   31005     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   31006     1809337 :          pack_tmp = ISHFT(pack_tmp, -40)
   31007     1809337 :          idata = idata + 1
   31008     1809337 :          data_tmp = ISHFT(pack_tmp, 16)
   31009     1809337 :          ipack = ipack + 1
   31010     1809337 :          pack_tmp = packed_data(ipack)
   31011     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   31012     1809337 :          pack_tmp = ISHFT(pack_tmp, -16)
   31013     1809337 :          idata = idata + 1
   31014     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31015     1809337 :          full_data(idata) = data_tmp
   31016     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31017     1809337 :          idata = idata + 1
   31018     1809337 :          data_tmp = ISHFT(pack_tmp, 32)
   31019     1809337 :          ipack = ipack + 1
   31020     1809337 :          pack_tmp = packed_data(ipack)
   31021     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   31022     1809337 :          pack_tmp = ISHFT(pack_tmp, -32)
   31023     1809337 :          idata = idata + 1
   31024     1809337 :          data_tmp = ISHFT(pack_tmp, 8)
   31025     1809337 :          ipack = ipack + 1
   31026     1809337 :          pack_tmp = packed_data(ipack)
   31027     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   31028     1809337 :          pack_tmp = ISHFT(pack_tmp, -8)
   31029     1809337 :          idata = idata + 1
   31030     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31031     1809337 :          full_data(idata) = data_tmp
   31032     1809337 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31033     1809337 :          idata = idata + 1
   31034     1809337 :          data_tmp = ISHFT(pack_tmp, 24)
   31035     1809337 :          ipack = ipack + 1
   31036     1809337 :          pack_tmp = packed_data(ipack)
   31037     1809337 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   31038     1809337 :          pack_tmp = ISHFT(pack_tmp, -24)
   31039     1809337 :          idata = idata + 1
   31040     1809337 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31041     1809337 :          full_data(idata) = data_tmp
   31042     1809516 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31043             :       END DO
   31044      126699 :       IF (Ndata_rep < Ndata) THEN
   31045       25614 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   31046             :       END IF
   31047      126699 :    END SUBROUTINE bits2ints_40
   31048             : 
   31049             : ! **************************************************************************************************
   31050             : !> \brief ...
   31051             : !> \param Ndata ...
   31052             : !> \param packed_data ...
   31053             : !> \param full_data ...
   31054             : ! **************************************************************************************************
   31055       27007 :    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       27007 :       idata = 0
   31066       27007 :       ipack = 0
   31067       27007 :       Ndata_rep = (Ndata/64)*64
   31068       27007 :       DO kdata = 1, Ndata_rep, 64
   31069      407957 :          pack_tmp = 0
   31070      407957 :          idata = idata + 1
   31071      407957 :          data_tmp = full_data(idata)
   31072      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31073      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31074      407957 :          pack_tmp = ISHFT(pack_tmp, -23)
   31075      407957 :          idata = idata + 1
   31076      407957 :          data_tmp = full_data(idata)
   31077      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31078      407957 :          data_tmp = IAND(data_tmp, mask_left(23))
   31079      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31080      407957 :          ipack = ipack + 1
   31081      407957 :          packed_data(ipack) = pack_tmp
   31082      407957 :          data_tmp = full_data(idata)
   31083      407957 :          pack_tmp = ISHFT(data_tmp, 46)
   31084      407957 :          pack_tmp = ISHFT(pack_tmp, -41)
   31085      407957 :          idata = idata + 1
   31086      407957 :          data_tmp = full_data(idata)
   31087      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31088      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31089      407957 :          pack_tmp = ISHFT(pack_tmp, -5)
   31090      407957 :          idata = idata + 1
   31091      407957 :          data_tmp = full_data(idata)
   31092      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31093      407957 :          data_tmp = IAND(data_tmp, mask_left(5))
   31094      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31095      407957 :          ipack = ipack + 1
   31096      407957 :          packed_data(ipack) = pack_tmp
   31097      407957 :          data_tmp = full_data(idata)
   31098      407957 :          pack_tmp = ISHFT(data_tmp, 28)
   31099      407957 :          pack_tmp = ISHFT(pack_tmp, -28)
   31100      407957 :          idata = idata + 1
   31101      407957 :          data_tmp = full_data(idata)
   31102      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31103      407957 :          data_tmp = IAND(data_tmp, mask_left(28))
   31104      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31105      407957 :          ipack = ipack + 1
   31106      407957 :          packed_data(ipack) = pack_tmp
   31107      407957 :          data_tmp = full_data(idata)
   31108      407957 :          pack_tmp = ISHFT(data_tmp, 51)
   31109      407957 :          pack_tmp = ISHFT(pack_tmp, -41)
   31110      407957 :          idata = idata + 1
   31111      407957 :          data_tmp = full_data(idata)
   31112      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31113      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31114      407957 :          pack_tmp = ISHFT(pack_tmp, -10)
   31115      407957 :          idata = idata + 1
   31116      407957 :          data_tmp = full_data(idata)
   31117      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31118      407957 :          data_tmp = IAND(data_tmp, mask_left(10))
   31119      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31120      407957 :          ipack = ipack + 1
   31121      407957 :          packed_data(ipack) = pack_tmp
   31122      407957 :          data_tmp = full_data(idata)
   31123      407957 :          pack_tmp = ISHFT(data_tmp, 33)
   31124      407957 :          pack_tmp = ISHFT(pack_tmp, -33)
   31125      407957 :          idata = idata + 1
   31126      407957 :          data_tmp = full_data(idata)
   31127      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31128      407957 :          data_tmp = IAND(data_tmp, mask_left(33))
   31129      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31130      407957 :          ipack = ipack + 1
   31131      407957 :          packed_data(ipack) = pack_tmp
   31132      407957 :          data_tmp = full_data(idata)
   31133      407957 :          pack_tmp = ISHFT(data_tmp, 56)
   31134      407957 :          pack_tmp = ISHFT(pack_tmp, -41)
   31135      407957 :          idata = idata + 1
   31136      407957 :          data_tmp = full_data(idata)
   31137      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31138      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31139      407957 :          pack_tmp = ISHFT(pack_tmp, -15)
   31140      407957 :          idata = idata + 1
   31141      407957 :          data_tmp = full_data(idata)
   31142      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31143      407957 :          data_tmp = IAND(data_tmp, mask_left(15))
   31144      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31145      407957 :          ipack = ipack + 1
   31146      407957 :          packed_data(ipack) = pack_tmp
   31147      407957 :          data_tmp = full_data(idata)
   31148      407957 :          pack_tmp = ISHFT(data_tmp, 38)
   31149      407957 :          pack_tmp = ISHFT(pack_tmp, -38)
   31150      407957 :          idata = idata + 1
   31151      407957 :          data_tmp = full_data(idata)
   31152      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31153      407957 :          data_tmp = IAND(data_tmp, mask_left(38))
   31154      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31155      407957 :          ipack = ipack + 1
   31156      407957 :          packed_data(ipack) = pack_tmp
   31157      407957 :          data_tmp = full_data(idata)
   31158      407957 :          pack_tmp = ISHFT(data_tmp, 61)
   31159      407957 :          pack_tmp = ISHFT(pack_tmp, -41)
   31160      407957 :          idata = idata + 1
   31161      407957 :          data_tmp = full_data(idata)
   31162      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31163      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31164      407957 :          pack_tmp = ISHFT(pack_tmp, -20)
   31165      407957 :          idata = idata + 1
   31166      407957 :          data_tmp = full_data(idata)
   31167      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31168      407957 :          data_tmp = IAND(data_tmp, mask_left(20))
   31169      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31170      407957 :          ipack = ipack + 1
   31171      407957 :          packed_data(ipack) = pack_tmp
   31172      407957 :          data_tmp = full_data(idata)
   31173      407957 :          pack_tmp = ISHFT(data_tmp, 43)
   31174      407957 :          pack_tmp = ISHFT(pack_tmp, -41)
   31175      407957 :          idata = idata + 1
   31176      407957 :          data_tmp = full_data(idata)
   31177      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31178      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31179      407957 :          pack_tmp = ISHFT(pack_tmp, -2)
   31180      407957 :          idata = idata + 1
   31181      407957 :          data_tmp = full_data(idata)
   31182      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31183      407957 :          data_tmp = IAND(data_tmp, mask_left(2))
   31184      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31185      407957 :          ipack = ipack + 1
   31186      407957 :          packed_data(ipack) = pack_tmp
   31187      407957 :          data_tmp = full_data(idata)
   31188      407957 :          pack_tmp = ISHFT(data_tmp, 25)
   31189      407957 :          pack_tmp = ISHFT(pack_tmp, -25)
   31190      407957 :          idata = idata + 1
   31191      407957 :          data_tmp = full_data(idata)
   31192      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31193      407957 :          data_tmp = IAND(data_tmp, mask_left(25))
   31194      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31195      407957 :          ipack = ipack + 1
   31196      407957 :          packed_data(ipack) = pack_tmp
   31197      407957 :          data_tmp = full_data(idata)
   31198      407957 :          pack_tmp = ISHFT(data_tmp, 48)
   31199      407957 :          pack_tmp = ISHFT(pack_tmp, -41)
   31200      407957 :          idata = idata + 1
   31201      407957 :          data_tmp = full_data(idata)
   31202      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31203      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31204      407957 :          pack_tmp = ISHFT(pack_tmp, -7)
   31205      407957 :          idata = idata + 1
   31206      407957 :          data_tmp = full_data(idata)
   31207      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31208      407957 :          data_tmp = IAND(data_tmp, mask_left(7))
   31209      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31210      407957 :          ipack = ipack + 1
   31211      407957 :          packed_data(ipack) = pack_tmp
   31212      407957 :          data_tmp = full_data(idata)
   31213      407957 :          pack_tmp = ISHFT(data_tmp, 30)
   31214      407957 :          pack_tmp = ISHFT(pack_tmp, -30)
   31215      407957 :          idata = idata + 1
   31216      407957 :          data_tmp = full_data(idata)
   31217      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31218      407957 :          data_tmp = IAND(data_tmp, mask_left(30))
   31219      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31220      407957 :          ipack = ipack + 1
   31221      407957 :          packed_data(ipack) = pack_tmp
   31222      407957 :          data_tmp = full_data(idata)
   31223      407957 :          pack_tmp = ISHFT(data_tmp, 53)
   31224      407957 :          pack_tmp = ISHFT(pack_tmp, -41)
   31225      407957 :          idata = idata + 1
   31226      407957 :          data_tmp = full_data(idata)
   31227      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31228      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31229      407957 :          pack_tmp = ISHFT(pack_tmp, -12)
   31230      407957 :          idata = idata + 1
   31231      407957 :          data_tmp = full_data(idata)
   31232      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31233      407957 :          data_tmp = IAND(data_tmp, mask_left(12))
   31234      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31235      407957 :          ipack = ipack + 1
   31236      407957 :          packed_data(ipack) = pack_tmp
   31237      407957 :          data_tmp = full_data(idata)
   31238      407957 :          pack_tmp = ISHFT(data_tmp, 35)
   31239      407957 :          pack_tmp = ISHFT(pack_tmp, -35)
   31240      407957 :          idata = idata + 1
   31241      407957 :          data_tmp = full_data(idata)
   31242      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31243      407957 :          data_tmp = IAND(data_tmp, mask_left(35))
   31244      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31245      407957 :          ipack = ipack + 1
   31246      407957 :          packed_data(ipack) = pack_tmp
   31247      407957 :          data_tmp = full_data(idata)
   31248      407957 :          pack_tmp = ISHFT(data_tmp, 58)
   31249      407957 :          pack_tmp = ISHFT(pack_tmp, -41)
   31250      407957 :          idata = idata + 1
   31251      407957 :          data_tmp = full_data(idata)
   31252      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31253      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31254      407957 :          pack_tmp = ISHFT(pack_tmp, -17)
   31255      407957 :          idata = idata + 1
   31256      407957 :          data_tmp = full_data(idata)
   31257      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31258      407957 :          data_tmp = IAND(data_tmp, mask_left(17))
   31259      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31260      407957 :          ipack = ipack + 1
   31261      407957 :          packed_data(ipack) = pack_tmp
   31262      407957 :          data_tmp = full_data(idata)
   31263      407957 :          pack_tmp = ISHFT(data_tmp, 40)
   31264      407957 :          pack_tmp = ISHFT(pack_tmp, -40)
   31265      407957 :          idata = idata + 1
   31266      407957 :          data_tmp = full_data(idata)
   31267      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31268      407957 :          data_tmp = IAND(data_tmp, mask_left(40))
   31269      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31270      407957 :          ipack = ipack + 1
   31271      407957 :          packed_data(ipack) = pack_tmp
   31272      407957 :          data_tmp = full_data(idata)
   31273      407957 :          pack_tmp = ISHFT(data_tmp, 63)
   31274      407957 :          pack_tmp = ISHFT(pack_tmp, -41)
   31275      407957 :          idata = idata + 1
   31276      407957 :          data_tmp = full_data(idata)
   31277      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31278      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31279      407957 :          pack_tmp = ISHFT(pack_tmp, -22)
   31280      407957 :          idata = idata + 1
   31281      407957 :          data_tmp = full_data(idata)
   31282      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31283      407957 :          data_tmp = IAND(data_tmp, mask_left(22))
   31284      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31285      407957 :          ipack = ipack + 1
   31286      407957 :          packed_data(ipack) = pack_tmp
   31287      407957 :          data_tmp = full_data(idata)
   31288      407957 :          pack_tmp = ISHFT(data_tmp, 45)
   31289      407957 :          pack_tmp = ISHFT(pack_tmp, -41)
   31290      407957 :          idata = idata + 1
   31291      407957 :          data_tmp = full_data(idata)
   31292      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31293      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31294      407957 :          pack_tmp = ISHFT(pack_tmp, -4)
   31295      407957 :          idata = idata + 1
   31296      407957 :          data_tmp = full_data(idata)
   31297      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31298      407957 :          data_tmp = IAND(data_tmp, mask_left(4))
   31299      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31300      407957 :          ipack = ipack + 1
   31301      407957 :          packed_data(ipack) = pack_tmp
   31302      407957 :          data_tmp = full_data(idata)
   31303      407957 :          pack_tmp = ISHFT(data_tmp, 27)
   31304      407957 :          pack_tmp = ISHFT(pack_tmp, -27)
   31305      407957 :          idata = idata + 1
   31306      407957 :          data_tmp = full_data(idata)
   31307      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31308      407957 :          data_tmp = IAND(data_tmp, mask_left(27))
   31309      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31310      407957 :          ipack = ipack + 1
   31311      407957 :          packed_data(ipack) = pack_tmp
   31312      407957 :          data_tmp = full_data(idata)
   31313      407957 :          pack_tmp = ISHFT(data_tmp, 50)
   31314      407957 :          pack_tmp = ISHFT(pack_tmp, -41)
   31315      407957 :          idata = idata + 1
   31316      407957 :          data_tmp = full_data(idata)
   31317      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31318      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31319      407957 :          pack_tmp = ISHFT(pack_tmp, -9)
   31320      407957 :          idata = idata + 1
   31321      407957 :          data_tmp = full_data(idata)
   31322      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31323      407957 :          data_tmp = IAND(data_tmp, mask_left(9))
   31324      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31325      407957 :          ipack = ipack + 1
   31326      407957 :          packed_data(ipack) = pack_tmp
   31327      407957 :          data_tmp = full_data(idata)
   31328      407957 :          pack_tmp = ISHFT(data_tmp, 32)
   31329      407957 :          pack_tmp = ISHFT(pack_tmp, -32)
   31330      407957 :          idata = idata + 1
   31331      407957 :          data_tmp = full_data(idata)
   31332      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31333      407957 :          data_tmp = IAND(data_tmp, mask_left(32))
   31334      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31335      407957 :          ipack = ipack + 1
   31336      407957 :          packed_data(ipack) = pack_tmp
   31337      407957 :          data_tmp = full_data(idata)
   31338      407957 :          pack_tmp = ISHFT(data_tmp, 55)
   31339      407957 :          pack_tmp = ISHFT(pack_tmp, -41)
   31340      407957 :          idata = idata + 1
   31341      407957 :          data_tmp = full_data(idata)
   31342      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31343      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31344      407957 :          pack_tmp = ISHFT(pack_tmp, -14)
   31345      407957 :          idata = idata + 1
   31346      407957 :          data_tmp = full_data(idata)
   31347      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31348      407957 :          data_tmp = IAND(data_tmp, mask_left(14))
   31349      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31350      407957 :          ipack = ipack + 1
   31351      407957 :          packed_data(ipack) = pack_tmp
   31352      407957 :          data_tmp = full_data(idata)
   31353      407957 :          pack_tmp = ISHFT(data_tmp, 37)
   31354      407957 :          pack_tmp = ISHFT(pack_tmp, -37)
   31355      407957 :          idata = idata + 1
   31356      407957 :          data_tmp = full_data(idata)
   31357      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31358      407957 :          data_tmp = IAND(data_tmp, mask_left(37))
   31359      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31360      407957 :          ipack = ipack + 1
   31361      407957 :          packed_data(ipack) = pack_tmp
   31362      407957 :          data_tmp = full_data(idata)
   31363      407957 :          pack_tmp = ISHFT(data_tmp, 60)
   31364      407957 :          pack_tmp = ISHFT(pack_tmp, -41)
   31365      407957 :          idata = idata + 1
   31366      407957 :          data_tmp = full_data(idata)
   31367      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31368      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31369      407957 :          pack_tmp = ISHFT(pack_tmp, -19)
   31370      407957 :          idata = idata + 1
   31371      407957 :          data_tmp = full_data(idata)
   31372      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31373      407957 :          data_tmp = IAND(data_tmp, mask_left(19))
   31374      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31375      407957 :          ipack = ipack + 1
   31376      407957 :          packed_data(ipack) = pack_tmp
   31377      407957 :          data_tmp = full_data(idata)
   31378      407957 :          pack_tmp = ISHFT(data_tmp, 42)
   31379      407957 :          pack_tmp = ISHFT(pack_tmp, -41)
   31380      407957 :          idata = idata + 1
   31381      407957 :          data_tmp = full_data(idata)
   31382      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31383      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31384      407957 :          pack_tmp = ISHFT(pack_tmp, -1)
   31385      407957 :          idata = idata + 1
   31386      407957 :          data_tmp = full_data(idata)
   31387      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31388      407957 :          data_tmp = IAND(data_tmp, mask_left(1))
   31389      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31390      407957 :          ipack = ipack + 1
   31391      407957 :          packed_data(ipack) = pack_tmp
   31392      407957 :          data_tmp = full_data(idata)
   31393      407957 :          pack_tmp = ISHFT(data_tmp, 24)
   31394      407957 :          pack_tmp = ISHFT(pack_tmp, -24)
   31395      407957 :          idata = idata + 1
   31396      407957 :          data_tmp = full_data(idata)
   31397      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31398      407957 :          data_tmp = IAND(data_tmp, mask_left(24))
   31399      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31400      407957 :          ipack = ipack + 1
   31401      407957 :          packed_data(ipack) = pack_tmp
   31402      407957 :          data_tmp = full_data(idata)
   31403      407957 :          pack_tmp = ISHFT(data_tmp, 47)
   31404      407957 :          pack_tmp = ISHFT(pack_tmp, -41)
   31405      407957 :          idata = idata + 1
   31406      407957 :          data_tmp = full_data(idata)
   31407      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31408      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31409      407957 :          pack_tmp = ISHFT(pack_tmp, -6)
   31410      407957 :          idata = idata + 1
   31411      407957 :          data_tmp = full_data(idata)
   31412      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31413      407957 :          data_tmp = IAND(data_tmp, mask_left(6))
   31414      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31415      407957 :          ipack = ipack + 1
   31416      407957 :          packed_data(ipack) = pack_tmp
   31417      407957 :          data_tmp = full_data(idata)
   31418      407957 :          pack_tmp = ISHFT(data_tmp, 29)
   31419      407957 :          pack_tmp = ISHFT(pack_tmp, -29)
   31420      407957 :          idata = idata + 1
   31421      407957 :          data_tmp = full_data(idata)
   31422      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31423      407957 :          data_tmp = IAND(data_tmp, mask_left(29))
   31424      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31425      407957 :          ipack = ipack + 1
   31426      407957 :          packed_data(ipack) = pack_tmp
   31427      407957 :          data_tmp = full_data(idata)
   31428      407957 :          pack_tmp = ISHFT(data_tmp, 52)
   31429      407957 :          pack_tmp = ISHFT(pack_tmp, -41)
   31430      407957 :          idata = idata + 1
   31431      407957 :          data_tmp = full_data(idata)
   31432      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31433      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31434      407957 :          pack_tmp = ISHFT(pack_tmp, -11)
   31435      407957 :          idata = idata + 1
   31436      407957 :          data_tmp = full_data(idata)
   31437      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31438      407957 :          data_tmp = IAND(data_tmp, mask_left(11))
   31439      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31440      407957 :          ipack = ipack + 1
   31441      407957 :          packed_data(ipack) = pack_tmp
   31442      407957 :          data_tmp = full_data(idata)
   31443      407957 :          pack_tmp = ISHFT(data_tmp, 34)
   31444      407957 :          pack_tmp = ISHFT(pack_tmp, -34)
   31445      407957 :          idata = idata + 1
   31446      407957 :          data_tmp = full_data(idata)
   31447      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31448      407957 :          data_tmp = IAND(data_tmp, mask_left(34))
   31449      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31450      407957 :          ipack = ipack + 1
   31451      407957 :          packed_data(ipack) = pack_tmp
   31452      407957 :          data_tmp = full_data(idata)
   31453      407957 :          pack_tmp = ISHFT(data_tmp, 57)
   31454      407957 :          pack_tmp = ISHFT(pack_tmp, -41)
   31455      407957 :          idata = idata + 1
   31456      407957 :          data_tmp = full_data(idata)
   31457      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31458      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31459      407957 :          pack_tmp = ISHFT(pack_tmp, -16)
   31460      407957 :          idata = idata + 1
   31461      407957 :          data_tmp = full_data(idata)
   31462      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31463      407957 :          data_tmp = IAND(data_tmp, mask_left(16))
   31464      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31465      407957 :          ipack = ipack + 1
   31466      407957 :          packed_data(ipack) = pack_tmp
   31467      407957 :          data_tmp = full_data(idata)
   31468      407957 :          pack_tmp = ISHFT(data_tmp, 39)
   31469      407957 :          pack_tmp = ISHFT(pack_tmp, -39)
   31470      407957 :          idata = idata + 1
   31471      407957 :          data_tmp = full_data(idata)
   31472      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31473      407957 :          data_tmp = IAND(data_tmp, mask_left(39))
   31474      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31475      407957 :          ipack = ipack + 1
   31476      407957 :          packed_data(ipack) = pack_tmp
   31477      407957 :          data_tmp = full_data(idata)
   31478      407957 :          pack_tmp = ISHFT(data_tmp, 62)
   31479      407957 :          pack_tmp = ISHFT(pack_tmp, -41)
   31480      407957 :          idata = idata + 1
   31481      407957 :          data_tmp = full_data(idata)
   31482      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31483      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31484      407957 :          pack_tmp = ISHFT(pack_tmp, -21)
   31485      407957 :          idata = idata + 1
   31486      407957 :          data_tmp = full_data(idata)
   31487      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31488      407957 :          data_tmp = IAND(data_tmp, mask_left(21))
   31489      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31490      407957 :          ipack = ipack + 1
   31491      407957 :          packed_data(ipack) = pack_tmp
   31492      407957 :          data_tmp = full_data(idata)
   31493      407957 :          pack_tmp = ISHFT(data_tmp, 44)
   31494      407957 :          pack_tmp = ISHFT(pack_tmp, -41)
   31495      407957 :          idata = idata + 1
   31496      407957 :          data_tmp = full_data(idata)
   31497      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31498      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31499      407957 :          pack_tmp = ISHFT(pack_tmp, -3)
   31500      407957 :          idata = idata + 1
   31501      407957 :          data_tmp = full_data(idata)
   31502      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31503      407957 :          data_tmp = IAND(data_tmp, mask_left(3))
   31504      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31505      407957 :          ipack = ipack + 1
   31506      407957 :          packed_data(ipack) = pack_tmp
   31507      407957 :          data_tmp = full_data(idata)
   31508      407957 :          pack_tmp = ISHFT(data_tmp, 26)
   31509      407957 :          pack_tmp = ISHFT(pack_tmp, -26)
   31510      407957 :          idata = idata + 1
   31511      407957 :          data_tmp = full_data(idata)
   31512      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31513      407957 :          data_tmp = IAND(data_tmp, mask_left(26))
   31514      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31515      407957 :          ipack = ipack + 1
   31516      407957 :          packed_data(ipack) = pack_tmp
   31517      407957 :          data_tmp = full_data(idata)
   31518      407957 :          pack_tmp = ISHFT(data_tmp, 49)
   31519      407957 :          pack_tmp = ISHFT(pack_tmp, -41)
   31520      407957 :          idata = idata + 1
   31521      407957 :          data_tmp = full_data(idata)
   31522      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31523      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31524      407957 :          pack_tmp = ISHFT(pack_tmp, -8)
   31525      407957 :          idata = idata + 1
   31526      407957 :          data_tmp = full_data(idata)
   31527      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31528      407957 :          data_tmp = IAND(data_tmp, mask_left(8))
   31529      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31530      407957 :          ipack = ipack + 1
   31531      407957 :          packed_data(ipack) = pack_tmp
   31532      407957 :          data_tmp = full_data(idata)
   31533      407957 :          pack_tmp = ISHFT(data_tmp, 31)
   31534      407957 :          pack_tmp = ISHFT(pack_tmp, -31)
   31535      407957 :          idata = idata + 1
   31536      407957 :          data_tmp = full_data(idata)
   31537      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31538      407957 :          data_tmp = IAND(data_tmp, mask_left(31))
   31539      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31540      407957 :          ipack = ipack + 1
   31541      407957 :          packed_data(ipack) = pack_tmp
   31542      407957 :          data_tmp = full_data(idata)
   31543      407957 :          pack_tmp = ISHFT(data_tmp, 54)
   31544      407957 :          pack_tmp = ISHFT(pack_tmp, -41)
   31545      407957 :          idata = idata + 1
   31546      407957 :          data_tmp = full_data(idata)
   31547      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31548      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31549      407957 :          pack_tmp = ISHFT(pack_tmp, -13)
   31550      407957 :          idata = idata + 1
   31551      407957 :          data_tmp = full_data(idata)
   31552      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31553      407957 :          data_tmp = IAND(data_tmp, mask_left(13))
   31554      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31555      407957 :          ipack = ipack + 1
   31556      407957 :          packed_data(ipack) = pack_tmp
   31557      407957 :          data_tmp = full_data(idata)
   31558      407957 :          pack_tmp = ISHFT(data_tmp, 36)
   31559      407957 :          pack_tmp = ISHFT(pack_tmp, -36)
   31560      407957 :          idata = idata + 1
   31561      407957 :          data_tmp = full_data(idata)
   31562      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31563      407957 :          data_tmp = IAND(data_tmp, mask_left(36))
   31564      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31565      407957 :          ipack = ipack + 1
   31566      407957 :          packed_data(ipack) = pack_tmp
   31567      407957 :          data_tmp = full_data(idata)
   31568      407957 :          pack_tmp = ISHFT(data_tmp, 59)
   31569      407957 :          pack_tmp = ISHFT(pack_tmp, -41)
   31570      407957 :          idata = idata + 1
   31571      407957 :          data_tmp = full_data(idata)
   31572      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31573      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31574      407957 :          pack_tmp = ISHFT(pack_tmp, -18)
   31575      407957 :          idata = idata + 1
   31576      407957 :          data_tmp = full_data(idata)
   31577      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31578      407957 :          data_tmp = IAND(data_tmp, mask_left(18))
   31579      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31580      407957 :          ipack = ipack + 1
   31581      407957 :          packed_data(ipack) = pack_tmp
   31582      407957 :          data_tmp = full_data(idata)
   31583      407957 :          pack_tmp = ISHFT(data_tmp, 41)
   31584      407957 :          pack_tmp = ISHFT(pack_tmp, -41)
   31585      407957 :          idata = idata + 1
   31586      407957 :          data_tmp = full_data(idata)
   31587      407957 :          data_tmp = ISHFT(data_tmp, 23)
   31588      407957 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31589             :          pack_tmp = ISHFT(pack_tmp, 0)
   31590      407957 :          pack_tmp = ISHFT(pack_tmp, 0)
   31591      407957 :          ipack = ipack + 1
   31592      408014 :          packed_data(ipack) = pack_tmp
   31593             :       END DO
   31594       27007 :       IF (Ndata_rep < Ndata) THEN
   31595        2806 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   31596             :       END IF
   31597       27007 :    END SUBROUTINE ints2bits_41
   31598             : 
   31599             : ! **************************************************************************************************
   31600             : !> \brief ...
   31601             : !> \param Ndata ...
   31602             : !> \param packed_data ...
   31603             : !> \param full_data ...
   31604             : ! **************************************************************************************************
   31605      131305 :    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      131305 :       ipack = 0
   31616      131305 :       idata = 0
   31617      131305 :       pack_tmp = 0
   31618      131305 :       Ndata_rep = (Ndata/64)*64
   31619      131305 :       DO kdata = 1, Ndata_rep, 64
   31620     1851976 :          idata = idata + 1
   31621     1851976 :          data_tmp = ISHFT(pack_tmp, 41)
   31622     1851976 :          ipack = ipack + 1
   31623     1851976 :          pack_tmp = packed_data(ipack)
   31624     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   31625     1851976 :          pack_tmp = ISHFT(pack_tmp, -41)
   31626     1851976 :          idata = idata + 1
   31627     1851976 :          data_tmp = ISHFT(pack_tmp, 18)
   31628     1851976 :          ipack = ipack + 1
   31629     1851976 :          pack_tmp = packed_data(ipack)
   31630     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   31631     1851976 :          pack_tmp = ISHFT(pack_tmp, -18)
   31632     1851976 :          idata = idata + 1
   31633     1851976 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31634     1851976 :          full_data(idata) = data_tmp
   31635     1851976 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31636     1851976 :          idata = idata + 1
   31637     1851976 :          data_tmp = ISHFT(pack_tmp, 36)
   31638     1851976 :          ipack = ipack + 1
   31639     1851976 :          pack_tmp = packed_data(ipack)
   31640     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   31641     1851976 :          pack_tmp = ISHFT(pack_tmp, -36)
   31642     1851976 :          idata = idata + 1
   31643     1851976 :          data_tmp = ISHFT(pack_tmp, 13)
   31644     1851976 :          ipack = ipack + 1
   31645     1851976 :          pack_tmp = packed_data(ipack)
   31646     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   31647     1851976 :          pack_tmp = ISHFT(pack_tmp, -13)
   31648     1851976 :          idata = idata + 1
   31649     1851976 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31650     1851976 :          full_data(idata) = data_tmp
   31651     1851976 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31652     1851976 :          idata = idata + 1
   31653     1851976 :          data_tmp = ISHFT(pack_tmp, 31)
   31654     1851976 :          ipack = ipack + 1
   31655     1851976 :          pack_tmp = packed_data(ipack)
   31656     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   31657     1851976 :          pack_tmp = ISHFT(pack_tmp, -31)
   31658     1851976 :          idata = idata + 1
   31659     1851976 :          data_tmp = ISHFT(pack_tmp, 8)
   31660     1851976 :          ipack = ipack + 1
   31661     1851976 :          pack_tmp = packed_data(ipack)
   31662     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   31663     1851976 :          pack_tmp = ISHFT(pack_tmp, -8)
   31664     1851976 :          idata = idata + 1
   31665     1851976 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31666     1851976 :          full_data(idata) = data_tmp
   31667     1851976 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31668     1851976 :          idata = idata + 1
   31669     1851976 :          data_tmp = ISHFT(pack_tmp, 26)
   31670     1851976 :          ipack = ipack + 1
   31671     1851976 :          pack_tmp = packed_data(ipack)
   31672     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   31673     1851976 :          pack_tmp = ISHFT(pack_tmp, -26)
   31674     1851976 :          idata = idata + 1
   31675     1851976 :          data_tmp = ISHFT(pack_tmp, 3)
   31676     1851976 :          ipack = ipack + 1
   31677     1851976 :          pack_tmp = packed_data(ipack)
   31678     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   31679     1851976 :          pack_tmp = ISHFT(pack_tmp, -3)
   31680     1851976 :          idata = idata + 1
   31681     1851976 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31682     1851976 :          full_data(idata) = data_tmp
   31683     1851976 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31684     1851976 :          idata = idata + 1
   31685     1851976 :          data_tmp = ISHFT(pack_tmp, 21)
   31686     1851976 :          ipack = ipack + 1
   31687     1851976 :          pack_tmp = packed_data(ipack)
   31688     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   31689     1851976 :          pack_tmp = ISHFT(pack_tmp, -21)
   31690     1851976 :          idata = idata + 1
   31691     1851976 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31692     1851976 :          full_data(idata) = data_tmp
   31693     1851976 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31694     1851976 :          idata = idata + 1
   31695     1851976 :          data_tmp = ISHFT(pack_tmp, 39)
   31696     1851976 :          ipack = ipack + 1
   31697     1851976 :          pack_tmp = packed_data(ipack)
   31698     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   31699     1851976 :          pack_tmp = ISHFT(pack_tmp, -39)
   31700     1851976 :          idata = idata + 1
   31701     1851976 :          data_tmp = ISHFT(pack_tmp, 16)
   31702     1851976 :          ipack = ipack + 1
   31703     1851976 :          pack_tmp = packed_data(ipack)
   31704     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   31705     1851976 :          pack_tmp = ISHFT(pack_tmp, -16)
   31706     1851976 :          idata = idata + 1
   31707     1851976 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31708     1851976 :          full_data(idata) = data_tmp
   31709     1851976 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31710     1851976 :          idata = idata + 1
   31711     1851976 :          data_tmp = ISHFT(pack_tmp, 34)
   31712     1851976 :          ipack = ipack + 1
   31713     1851976 :          pack_tmp = packed_data(ipack)
   31714     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   31715     1851976 :          pack_tmp = ISHFT(pack_tmp, -34)
   31716     1851976 :          idata = idata + 1
   31717     1851976 :          data_tmp = ISHFT(pack_tmp, 11)
   31718     1851976 :          ipack = ipack + 1
   31719     1851976 :          pack_tmp = packed_data(ipack)
   31720     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   31721     1851976 :          pack_tmp = ISHFT(pack_tmp, -11)
   31722     1851976 :          idata = idata + 1
   31723     1851976 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31724     1851976 :          full_data(idata) = data_tmp
   31725     1851976 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31726     1851976 :          idata = idata + 1
   31727     1851976 :          data_tmp = ISHFT(pack_tmp, 29)
   31728     1851976 :          ipack = ipack + 1
   31729     1851976 :          pack_tmp = packed_data(ipack)
   31730     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   31731     1851976 :          pack_tmp = ISHFT(pack_tmp, -29)
   31732     1851976 :          idata = idata + 1
   31733     1851976 :          data_tmp = ISHFT(pack_tmp, 6)
   31734     1851976 :          ipack = ipack + 1
   31735     1851976 :          pack_tmp = packed_data(ipack)
   31736     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   31737     1851976 :          pack_tmp = ISHFT(pack_tmp, -6)
   31738     1851976 :          idata = idata + 1
   31739     1851976 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31740     1851976 :          full_data(idata) = data_tmp
   31741     1851976 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31742     1851976 :          idata = idata + 1
   31743     1851976 :          data_tmp = ISHFT(pack_tmp, 24)
   31744     1851976 :          ipack = ipack + 1
   31745     1851976 :          pack_tmp = packed_data(ipack)
   31746     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   31747     1851976 :          pack_tmp = ISHFT(pack_tmp, -24)
   31748     1851976 :          idata = idata + 1
   31749     1851976 :          data_tmp = ISHFT(pack_tmp, 1)
   31750     1851976 :          ipack = ipack + 1
   31751     1851976 :          pack_tmp = packed_data(ipack)
   31752     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   31753     1851976 :          pack_tmp = ISHFT(pack_tmp, -1)
   31754     1851976 :          idata = idata + 1
   31755     1851976 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31756     1851976 :          full_data(idata) = data_tmp
   31757     1851976 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31758     1851976 :          idata = idata + 1
   31759     1851976 :          data_tmp = ISHFT(pack_tmp, 19)
   31760     1851976 :          ipack = ipack + 1
   31761     1851976 :          pack_tmp = packed_data(ipack)
   31762     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   31763     1851976 :          pack_tmp = ISHFT(pack_tmp, -19)
   31764     1851976 :          idata = idata + 1
   31765     1851976 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31766     1851976 :          full_data(idata) = data_tmp
   31767     1851976 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31768     1851976 :          idata = idata + 1
   31769     1851976 :          data_tmp = ISHFT(pack_tmp, 37)
   31770     1851976 :          ipack = ipack + 1
   31771     1851976 :          pack_tmp = packed_data(ipack)
   31772     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   31773     1851976 :          pack_tmp = ISHFT(pack_tmp, -37)
   31774     1851976 :          idata = idata + 1
   31775     1851976 :          data_tmp = ISHFT(pack_tmp, 14)
   31776     1851976 :          ipack = ipack + 1
   31777     1851976 :          pack_tmp = packed_data(ipack)
   31778     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   31779     1851976 :          pack_tmp = ISHFT(pack_tmp, -14)
   31780     1851976 :          idata = idata + 1
   31781     1851976 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31782     1851976 :          full_data(idata) = data_tmp
   31783     1851976 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31784     1851976 :          idata = idata + 1
   31785     1851976 :          data_tmp = ISHFT(pack_tmp, 32)
   31786     1851976 :          ipack = ipack + 1
   31787     1851976 :          pack_tmp = packed_data(ipack)
   31788     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   31789     1851976 :          pack_tmp = ISHFT(pack_tmp, -32)
   31790     1851976 :          idata = idata + 1
   31791     1851976 :          data_tmp = ISHFT(pack_tmp, 9)
   31792     1851976 :          ipack = ipack + 1
   31793     1851976 :          pack_tmp = packed_data(ipack)
   31794     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   31795     1851976 :          pack_tmp = ISHFT(pack_tmp, -9)
   31796     1851976 :          idata = idata + 1
   31797     1851976 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31798     1851976 :          full_data(idata) = data_tmp
   31799     1851976 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31800     1851976 :          idata = idata + 1
   31801     1851976 :          data_tmp = ISHFT(pack_tmp, 27)
   31802     1851976 :          ipack = ipack + 1
   31803     1851976 :          pack_tmp = packed_data(ipack)
   31804     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   31805     1851976 :          pack_tmp = ISHFT(pack_tmp, -27)
   31806     1851976 :          idata = idata + 1
   31807     1851976 :          data_tmp = ISHFT(pack_tmp, 4)
   31808     1851976 :          ipack = ipack + 1
   31809     1851976 :          pack_tmp = packed_data(ipack)
   31810     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   31811     1851976 :          pack_tmp = ISHFT(pack_tmp, -4)
   31812     1851976 :          idata = idata + 1
   31813     1851976 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31814     1851976 :          full_data(idata) = data_tmp
   31815     1851976 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31816     1851976 :          idata = idata + 1
   31817     1851976 :          data_tmp = ISHFT(pack_tmp, 22)
   31818     1851976 :          ipack = ipack + 1
   31819     1851976 :          pack_tmp = packed_data(ipack)
   31820     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   31821     1851976 :          pack_tmp = ISHFT(pack_tmp, -22)
   31822     1851976 :          idata = idata + 1
   31823     1851976 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31824     1851976 :          full_data(idata) = data_tmp
   31825     1851976 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31826     1851976 :          idata = idata + 1
   31827     1851976 :          data_tmp = ISHFT(pack_tmp, 40)
   31828     1851976 :          ipack = ipack + 1
   31829     1851976 :          pack_tmp = packed_data(ipack)
   31830     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   31831     1851976 :          pack_tmp = ISHFT(pack_tmp, -40)
   31832     1851976 :          idata = idata + 1
   31833     1851976 :          data_tmp = ISHFT(pack_tmp, 17)
   31834     1851976 :          ipack = ipack + 1
   31835     1851976 :          pack_tmp = packed_data(ipack)
   31836     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   31837     1851976 :          pack_tmp = ISHFT(pack_tmp, -17)
   31838     1851976 :          idata = idata + 1
   31839     1851976 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31840     1851976 :          full_data(idata) = data_tmp
   31841     1851976 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31842     1851976 :          idata = idata + 1
   31843     1851976 :          data_tmp = ISHFT(pack_tmp, 35)
   31844     1851976 :          ipack = ipack + 1
   31845     1851976 :          pack_tmp = packed_data(ipack)
   31846     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   31847     1851976 :          pack_tmp = ISHFT(pack_tmp, -35)
   31848     1851976 :          idata = idata + 1
   31849     1851976 :          data_tmp = ISHFT(pack_tmp, 12)
   31850     1851976 :          ipack = ipack + 1
   31851     1851976 :          pack_tmp = packed_data(ipack)
   31852     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   31853     1851976 :          pack_tmp = ISHFT(pack_tmp, -12)
   31854     1851976 :          idata = idata + 1
   31855     1851976 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31856     1851976 :          full_data(idata) = data_tmp
   31857     1851976 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31858     1851976 :          idata = idata + 1
   31859     1851976 :          data_tmp = ISHFT(pack_tmp, 30)
   31860     1851976 :          ipack = ipack + 1
   31861     1851976 :          pack_tmp = packed_data(ipack)
   31862     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   31863     1851976 :          pack_tmp = ISHFT(pack_tmp, -30)
   31864     1851976 :          idata = idata + 1
   31865     1851976 :          data_tmp = ISHFT(pack_tmp, 7)
   31866     1851976 :          ipack = ipack + 1
   31867     1851976 :          pack_tmp = packed_data(ipack)
   31868     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   31869     1851976 :          pack_tmp = ISHFT(pack_tmp, -7)
   31870     1851976 :          idata = idata + 1
   31871     1851976 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31872     1851976 :          full_data(idata) = data_tmp
   31873     1851976 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31874     1851976 :          idata = idata + 1
   31875     1851976 :          data_tmp = ISHFT(pack_tmp, 25)
   31876     1851976 :          ipack = ipack + 1
   31877     1851976 :          pack_tmp = packed_data(ipack)
   31878     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   31879     1851976 :          pack_tmp = ISHFT(pack_tmp, -25)
   31880     1851976 :          idata = idata + 1
   31881     1851976 :          data_tmp = ISHFT(pack_tmp, 2)
   31882     1851976 :          ipack = ipack + 1
   31883     1851976 :          pack_tmp = packed_data(ipack)
   31884     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   31885     1851976 :          pack_tmp = ISHFT(pack_tmp, -2)
   31886     1851976 :          idata = idata + 1
   31887     1851976 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31888     1851976 :          full_data(idata) = data_tmp
   31889     1851976 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31890     1851976 :          idata = idata + 1
   31891     1851976 :          data_tmp = ISHFT(pack_tmp, 20)
   31892     1851976 :          ipack = ipack + 1
   31893     1851976 :          pack_tmp = packed_data(ipack)
   31894     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   31895     1851976 :          pack_tmp = ISHFT(pack_tmp, -20)
   31896     1851976 :          idata = idata + 1
   31897     1851976 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31898     1851976 :          full_data(idata) = data_tmp
   31899     1851976 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31900     1851976 :          idata = idata + 1
   31901     1851976 :          data_tmp = ISHFT(pack_tmp, 38)
   31902     1851976 :          ipack = ipack + 1
   31903     1851976 :          pack_tmp = packed_data(ipack)
   31904     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   31905     1851976 :          pack_tmp = ISHFT(pack_tmp, -38)
   31906     1851976 :          idata = idata + 1
   31907     1851976 :          data_tmp = ISHFT(pack_tmp, 15)
   31908     1851976 :          ipack = ipack + 1
   31909     1851976 :          pack_tmp = packed_data(ipack)
   31910     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   31911     1851976 :          pack_tmp = ISHFT(pack_tmp, -15)
   31912     1851976 :          idata = idata + 1
   31913     1851976 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31914     1851976 :          full_data(idata) = data_tmp
   31915     1851976 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31916     1851976 :          idata = idata + 1
   31917     1851976 :          data_tmp = ISHFT(pack_tmp, 33)
   31918     1851976 :          ipack = ipack + 1
   31919     1851976 :          pack_tmp = packed_data(ipack)
   31920     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   31921     1851976 :          pack_tmp = ISHFT(pack_tmp, -33)
   31922     1851976 :          idata = idata + 1
   31923     1851976 :          data_tmp = ISHFT(pack_tmp, 10)
   31924     1851976 :          ipack = ipack + 1
   31925     1851976 :          pack_tmp = packed_data(ipack)
   31926     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   31927     1851976 :          pack_tmp = ISHFT(pack_tmp, -10)
   31928     1851976 :          idata = idata + 1
   31929     1851976 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31930     1851976 :          full_data(idata) = data_tmp
   31931     1851976 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31932     1851976 :          idata = idata + 1
   31933     1851976 :          data_tmp = ISHFT(pack_tmp, 28)
   31934     1851976 :          ipack = ipack + 1
   31935     1851976 :          pack_tmp = packed_data(ipack)
   31936     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   31937     1851976 :          pack_tmp = ISHFT(pack_tmp, -28)
   31938     1851976 :          idata = idata + 1
   31939     1851976 :          data_tmp = ISHFT(pack_tmp, 5)
   31940     1851976 :          ipack = ipack + 1
   31941     1851976 :          pack_tmp = packed_data(ipack)
   31942     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   31943     1851976 :          pack_tmp = ISHFT(pack_tmp, -5)
   31944     1851976 :          idata = idata + 1
   31945     1851976 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31946     1851976 :          full_data(idata) = data_tmp
   31947     1851976 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31948     1851976 :          idata = idata + 1
   31949     1851976 :          data_tmp = ISHFT(pack_tmp, 23)
   31950     1851976 :          ipack = ipack + 1
   31951     1851976 :          pack_tmp = packed_data(ipack)
   31952     1851976 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   31953     1851976 :          pack_tmp = ISHFT(pack_tmp, -23)
   31954     1851976 :          idata = idata + 1
   31955     1851976 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31956     1851976 :          full_data(idata) = data_tmp
   31957     1852465 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31958             :       END DO
   31959      131305 :       IF (Ndata_rep < Ndata) THEN
   31960       28976 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   31961             :       END IF
   31962      131305 :    END SUBROUTINE bits2ints_41
   31963             : 
   31964             : ! **************************************************************************************************
   31965             : !> \brief ...
   31966             : !> \param Ndata ...
   31967             : !> \param packed_data ...
   31968             : !> \param full_data ...
   31969             : ! **************************************************************************************************
   31970       25373 :    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       25373 :       idata = 0
   31981       25373 :       ipack = 0
   31982       25373 :       Ndata_rep = (Ndata/64)*64
   31983       25373 :       DO kdata = 1, Ndata_rep, 64
   31984      392946 :          pack_tmp = 0
   31985      392946 :          idata = idata + 1
   31986      392946 :          data_tmp = full_data(idata)
   31987      392946 :          data_tmp = ISHFT(data_tmp, 22)
   31988      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31989      392946 :          pack_tmp = ISHFT(pack_tmp, -22)
   31990      392946 :          idata = idata + 1
   31991      392946 :          data_tmp = full_data(idata)
   31992      392946 :          data_tmp = ISHFT(data_tmp, 22)
   31993      392946 :          data_tmp = IAND(data_tmp, mask_left(22))
   31994      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31995      392946 :          ipack = ipack + 1
   31996      392946 :          packed_data(ipack) = pack_tmp
   31997      392946 :          data_tmp = full_data(idata)
   31998      392946 :          pack_tmp = ISHFT(data_tmp, 44)
   31999      392946 :          pack_tmp = ISHFT(pack_tmp, -42)
   32000      392946 :          idata = idata + 1
   32001      392946 :          data_tmp = full_data(idata)
   32002      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32003      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32004      392946 :          pack_tmp = ISHFT(pack_tmp, -2)
   32005      392946 :          idata = idata + 1
   32006      392946 :          data_tmp = full_data(idata)
   32007      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32008      392946 :          data_tmp = IAND(data_tmp, mask_left(2))
   32009      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32010      392946 :          ipack = ipack + 1
   32011      392946 :          packed_data(ipack) = pack_tmp
   32012      392946 :          data_tmp = full_data(idata)
   32013      392946 :          pack_tmp = ISHFT(data_tmp, 24)
   32014      392946 :          pack_tmp = ISHFT(pack_tmp, -24)
   32015      392946 :          idata = idata + 1
   32016      392946 :          data_tmp = full_data(idata)
   32017      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32018      392946 :          data_tmp = IAND(data_tmp, mask_left(24))
   32019      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32020      392946 :          ipack = ipack + 1
   32021      392946 :          packed_data(ipack) = pack_tmp
   32022      392946 :          data_tmp = full_data(idata)
   32023      392946 :          pack_tmp = ISHFT(data_tmp, 46)
   32024      392946 :          pack_tmp = ISHFT(pack_tmp, -42)
   32025      392946 :          idata = idata + 1
   32026      392946 :          data_tmp = full_data(idata)
   32027      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32028      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32029      392946 :          pack_tmp = ISHFT(pack_tmp, -4)
   32030      392946 :          idata = idata + 1
   32031      392946 :          data_tmp = full_data(idata)
   32032      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32033      392946 :          data_tmp = IAND(data_tmp, mask_left(4))
   32034      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32035      392946 :          ipack = ipack + 1
   32036      392946 :          packed_data(ipack) = pack_tmp
   32037      392946 :          data_tmp = full_data(idata)
   32038      392946 :          pack_tmp = ISHFT(data_tmp, 26)
   32039      392946 :          pack_tmp = ISHFT(pack_tmp, -26)
   32040      392946 :          idata = idata + 1
   32041      392946 :          data_tmp = full_data(idata)
   32042      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32043      392946 :          data_tmp = IAND(data_tmp, mask_left(26))
   32044      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32045      392946 :          ipack = ipack + 1
   32046      392946 :          packed_data(ipack) = pack_tmp
   32047      392946 :          data_tmp = full_data(idata)
   32048      392946 :          pack_tmp = ISHFT(data_tmp, 48)
   32049      392946 :          pack_tmp = ISHFT(pack_tmp, -42)
   32050      392946 :          idata = idata + 1
   32051      392946 :          data_tmp = full_data(idata)
   32052      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32053      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32054      392946 :          pack_tmp = ISHFT(pack_tmp, -6)
   32055      392946 :          idata = idata + 1
   32056      392946 :          data_tmp = full_data(idata)
   32057      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32058      392946 :          data_tmp = IAND(data_tmp, mask_left(6))
   32059      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32060      392946 :          ipack = ipack + 1
   32061      392946 :          packed_data(ipack) = pack_tmp
   32062      392946 :          data_tmp = full_data(idata)
   32063      392946 :          pack_tmp = ISHFT(data_tmp, 28)
   32064      392946 :          pack_tmp = ISHFT(pack_tmp, -28)
   32065      392946 :          idata = idata + 1
   32066      392946 :          data_tmp = full_data(idata)
   32067      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32068      392946 :          data_tmp = IAND(data_tmp, mask_left(28))
   32069      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32070      392946 :          ipack = ipack + 1
   32071      392946 :          packed_data(ipack) = pack_tmp
   32072      392946 :          data_tmp = full_data(idata)
   32073      392946 :          pack_tmp = ISHFT(data_tmp, 50)
   32074      392946 :          pack_tmp = ISHFT(pack_tmp, -42)
   32075      392946 :          idata = idata + 1
   32076      392946 :          data_tmp = full_data(idata)
   32077      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32078      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32079      392946 :          pack_tmp = ISHFT(pack_tmp, -8)
   32080      392946 :          idata = idata + 1
   32081      392946 :          data_tmp = full_data(idata)
   32082      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32083      392946 :          data_tmp = IAND(data_tmp, mask_left(8))
   32084      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32085      392946 :          ipack = ipack + 1
   32086      392946 :          packed_data(ipack) = pack_tmp
   32087      392946 :          data_tmp = full_data(idata)
   32088      392946 :          pack_tmp = ISHFT(data_tmp, 30)
   32089      392946 :          pack_tmp = ISHFT(pack_tmp, -30)
   32090      392946 :          idata = idata + 1
   32091      392946 :          data_tmp = full_data(idata)
   32092      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32093      392946 :          data_tmp = IAND(data_tmp, mask_left(30))
   32094      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32095      392946 :          ipack = ipack + 1
   32096      392946 :          packed_data(ipack) = pack_tmp
   32097      392946 :          data_tmp = full_data(idata)
   32098      392946 :          pack_tmp = ISHFT(data_tmp, 52)
   32099      392946 :          pack_tmp = ISHFT(pack_tmp, -42)
   32100      392946 :          idata = idata + 1
   32101      392946 :          data_tmp = full_data(idata)
   32102      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32103      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32104      392946 :          pack_tmp = ISHFT(pack_tmp, -10)
   32105      392946 :          idata = idata + 1
   32106      392946 :          data_tmp = full_data(idata)
   32107      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32108      392946 :          data_tmp = IAND(data_tmp, mask_left(10))
   32109      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32110      392946 :          ipack = ipack + 1
   32111      392946 :          packed_data(ipack) = pack_tmp
   32112      392946 :          data_tmp = full_data(idata)
   32113      392946 :          pack_tmp = ISHFT(data_tmp, 32)
   32114      392946 :          pack_tmp = ISHFT(pack_tmp, -32)
   32115      392946 :          idata = idata + 1
   32116      392946 :          data_tmp = full_data(idata)
   32117      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32118      392946 :          data_tmp = IAND(data_tmp, mask_left(32))
   32119      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32120      392946 :          ipack = ipack + 1
   32121      392946 :          packed_data(ipack) = pack_tmp
   32122      392946 :          data_tmp = full_data(idata)
   32123      392946 :          pack_tmp = ISHFT(data_tmp, 54)
   32124      392946 :          pack_tmp = ISHFT(pack_tmp, -42)
   32125      392946 :          idata = idata + 1
   32126      392946 :          data_tmp = full_data(idata)
   32127      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32128      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32129      392946 :          pack_tmp = ISHFT(pack_tmp, -12)
   32130      392946 :          idata = idata + 1
   32131      392946 :          data_tmp = full_data(idata)
   32132      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32133      392946 :          data_tmp = IAND(data_tmp, mask_left(12))
   32134      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32135      392946 :          ipack = ipack + 1
   32136      392946 :          packed_data(ipack) = pack_tmp
   32137      392946 :          data_tmp = full_data(idata)
   32138      392946 :          pack_tmp = ISHFT(data_tmp, 34)
   32139      392946 :          pack_tmp = ISHFT(pack_tmp, -34)
   32140      392946 :          idata = idata + 1
   32141      392946 :          data_tmp = full_data(idata)
   32142      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32143      392946 :          data_tmp = IAND(data_tmp, mask_left(34))
   32144      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32145      392946 :          ipack = ipack + 1
   32146      392946 :          packed_data(ipack) = pack_tmp
   32147      392946 :          data_tmp = full_data(idata)
   32148      392946 :          pack_tmp = ISHFT(data_tmp, 56)
   32149      392946 :          pack_tmp = ISHFT(pack_tmp, -42)
   32150      392946 :          idata = idata + 1
   32151      392946 :          data_tmp = full_data(idata)
   32152      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32153      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32154      392946 :          pack_tmp = ISHFT(pack_tmp, -14)
   32155      392946 :          idata = idata + 1
   32156      392946 :          data_tmp = full_data(idata)
   32157      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32158      392946 :          data_tmp = IAND(data_tmp, mask_left(14))
   32159      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32160      392946 :          ipack = ipack + 1
   32161      392946 :          packed_data(ipack) = pack_tmp
   32162      392946 :          data_tmp = full_data(idata)
   32163      392946 :          pack_tmp = ISHFT(data_tmp, 36)
   32164      392946 :          pack_tmp = ISHFT(pack_tmp, -36)
   32165      392946 :          idata = idata + 1
   32166      392946 :          data_tmp = full_data(idata)
   32167      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32168      392946 :          data_tmp = IAND(data_tmp, mask_left(36))
   32169      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32170      392946 :          ipack = ipack + 1
   32171      392946 :          packed_data(ipack) = pack_tmp
   32172      392946 :          data_tmp = full_data(idata)
   32173      392946 :          pack_tmp = ISHFT(data_tmp, 58)
   32174      392946 :          pack_tmp = ISHFT(pack_tmp, -42)
   32175      392946 :          idata = idata + 1
   32176      392946 :          data_tmp = full_data(idata)
   32177      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32178      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32179      392946 :          pack_tmp = ISHFT(pack_tmp, -16)
   32180      392946 :          idata = idata + 1
   32181      392946 :          data_tmp = full_data(idata)
   32182      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32183      392946 :          data_tmp = IAND(data_tmp, mask_left(16))
   32184      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32185      392946 :          ipack = ipack + 1
   32186      392946 :          packed_data(ipack) = pack_tmp
   32187      392946 :          data_tmp = full_data(idata)
   32188      392946 :          pack_tmp = ISHFT(data_tmp, 38)
   32189      392946 :          pack_tmp = ISHFT(pack_tmp, -38)
   32190      392946 :          idata = idata + 1
   32191      392946 :          data_tmp = full_data(idata)
   32192      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32193      392946 :          data_tmp = IAND(data_tmp, mask_left(38))
   32194      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32195      392946 :          ipack = ipack + 1
   32196      392946 :          packed_data(ipack) = pack_tmp
   32197      392946 :          data_tmp = full_data(idata)
   32198      392946 :          pack_tmp = ISHFT(data_tmp, 60)
   32199      392946 :          pack_tmp = ISHFT(pack_tmp, -42)
   32200      392946 :          idata = idata + 1
   32201      392946 :          data_tmp = full_data(idata)
   32202      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32203      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32204      392946 :          pack_tmp = ISHFT(pack_tmp, -18)
   32205      392946 :          idata = idata + 1
   32206      392946 :          data_tmp = full_data(idata)
   32207      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32208      392946 :          data_tmp = IAND(data_tmp, mask_left(18))
   32209      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32210      392946 :          ipack = ipack + 1
   32211      392946 :          packed_data(ipack) = pack_tmp
   32212      392946 :          data_tmp = full_data(idata)
   32213      392946 :          pack_tmp = ISHFT(data_tmp, 40)
   32214      392946 :          pack_tmp = ISHFT(pack_tmp, -40)
   32215      392946 :          idata = idata + 1
   32216      392946 :          data_tmp = full_data(idata)
   32217      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32218      392946 :          data_tmp = IAND(data_tmp, mask_left(40))
   32219      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32220      392946 :          ipack = ipack + 1
   32221      392946 :          packed_data(ipack) = pack_tmp
   32222      392946 :          data_tmp = full_data(idata)
   32223      392946 :          pack_tmp = ISHFT(data_tmp, 62)
   32224      392946 :          pack_tmp = ISHFT(pack_tmp, -42)
   32225      392946 :          idata = idata + 1
   32226      392946 :          data_tmp = full_data(idata)
   32227      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32228      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32229      392946 :          pack_tmp = ISHFT(pack_tmp, -20)
   32230      392946 :          idata = idata + 1
   32231      392946 :          data_tmp = full_data(idata)
   32232      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32233      392946 :          data_tmp = IAND(data_tmp, mask_left(20))
   32234      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32235      392946 :          ipack = ipack + 1
   32236      392946 :          packed_data(ipack) = pack_tmp
   32237      392946 :          data_tmp = full_data(idata)
   32238      392946 :          pack_tmp = ISHFT(data_tmp, 42)
   32239      392946 :          pack_tmp = ISHFT(pack_tmp, -42)
   32240      392946 :          idata = idata + 1
   32241      392946 :          data_tmp = full_data(idata)
   32242      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32243      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32244      392946 :          pack_tmp = ISHFT(pack_tmp, 0)
   32245      392946 :          idata = idata + 1
   32246      392946 :          data_tmp = full_data(idata)
   32247             :          data_tmp = ISHFT(data_tmp, 22)
   32248      392946 :          data_tmp = IAND(data_tmp, mask_left(0))
   32249      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32250      392946 :          ipack = ipack + 1
   32251      392946 :          packed_data(ipack) = pack_tmp
   32252      392946 :          data_tmp = full_data(idata)
   32253      392946 :          pack_tmp = ISHFT(data_tmp, 22)
   32254      392946 :          pack_tmp = ISHFT(pack_tmp, -22)
   32255      392946 :          idata = idata + 1
   32256      392946 :          data_tmp = full_data(idata)
   32257      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32258      392946 :          data_tmp = IAND(data_tmp, mask_left(22))
   32259      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32260      392946 :          ipack = ipack + 1
   32261      392946 :          packed_data(ipack) = pack_tmp
   32262      392946 :          data_tmp = full_data(idata)
   32263      392946 :          pack_tmp = ISHFT(data_tmp, 44)
   32264      392946 :          pack_tmp = ISHFT(pack_tmp, -42)
   32265      392946 :          idata = idata + 1
   32266      392946 :          data_tmp = full_data(idata)
   32267      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32268      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32269      392946 :          pack_tmp = ISHFT(pack_tmp, -2)
   32270      392946 :          idata = idata + 1
   32271      392946 :          data_tmp = full_data(idata)
   32272      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32273      392946 :          data_tmp = IAND(data_tmp, mask_left(2))
   32274      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32275      392946 :          ipack = ipack + 1
   32276      392946 :          packed_data(ipack) = pack_tmp
   32277      392946 :          data_tmp = full_data(idata)
   32278      392946 :          pack_tmp = ISHFT(data_tmp, 24)
   32279      392946 :          pack_tmp = ISHFT(pack_tmp, -24)
   32280      392946 :          idata = idata + 1
   32281      392946 :          data_tmp = full_data(idata)
   32282      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32283      392946 :          data_tmp = IAND(data_tmp, mask_left(24))
   32284      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32285      392946 :          ipack = ipack + 1
   32286      392946 :          packed_data(ipack) = pack_tmp
   32287      392946 :          data_tmp = full_data(idata)
   32288      392946 :          pack_tmp = ISHFT(data_tmp, 46)
   32289      392946 :          pack_tmp = ISHFT(pack_tmp, -42)
   32290      392946 :          idata = idata + 1
   32291      392946 :          data_tmp = full_data(idata)
   32292      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32293      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32294      392946 :          pack_tmp = ISHFT(pack_tmp, -4)
   32295      392946 :          idata = idata + 1
   32296      392946 :          data_tmp = full_data(idata)
   32297      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32298      392946 :          data_tmp = IAND(data_tmp, mask_left(4))
   32299      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32300      392946 :          ipack = ipack + 1
   32301      392946 :          packed_data(ipack) = pack_tmp
   32302      392946 :          data_tmp = full_data(idata)
   32303      392946 :          pack_tmp = ISHFT(data_tmp, 26)
   32304      392946 :          pack_tmp = ISHFT(pack_tmp, -26)
   32305      392946 :          idata = idata + 1
   32306      392946 :          data_tmp = full_data(idata)
   32307      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32308      392946 :          data_tmp = IAND(data_tmp, mask_left(26))
   32309      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32310      392946 :          ipack = ipack + 1
   32311      392946 :          packed_data(ipack) = pack_tmp
   32312      392946 :          data_tmp = full_data(idata)
   32313      392946 :          pack_tmp = ISHFT(data_tmp, 48)
   32314      392946 :          pack_tmp = ISHFT(pack_tmp, -42)
   32315      392946 :          idata = idata + 1
   32316      392946 :          data_tmp = full_data(idata)
   32317      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32318      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32319      392946 :          pack_tmp = ISHFT(pack_tmp, -6)
   32320      392946 :          idata = idata + 1
   32321      392946 :          data_tmp = full_data(idata)
   32322      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32323      392946 :          data_tmp = IAND(data_tmp, mask_left(6))
   32324      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32325      392946 :          ipack = ipack + 1
   32326      392946 :          packed_data(ipack) = pack_tmp
   32327      392946 :          data_tmp = full_data(idata)
   32328      392946 :          pack_tmp = ISHFT(data_tmp, 28)
   32329      392946 :          pack_tmp = ISHFT(pack_tmp, -28)
   32330      392946 :          idata = idata + 1
   32331      392946 :          data_tmp = full_data(idata)
   32332      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32333      392946 :          data_tmp = IAND(data_tmp, mask_left(28))
   32334      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32335      392946 :          ipack = ipack + 1
   32336      392946 :          packed_data(ipack) = pack_tmp
   32337      392946 :          data_tmp = full_data(idata)
   32338      392946 :          pack_tmp = ISHFT(data_tmp, 50)
   32339      392946 :          pack_tmp = ISHFT(pack_tmp, -42)
   32340      392946 :          idata = idata + 1
   32341      392946 :          data_tmp = full_data(idata)
   32342      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32343      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32344      392946 :          pack_tmp = ISHFT(pack_tmp, -8)
   32345      392946 :          idata = idata + 1
   32346      392946 :          data_tmp = full_data(idata)
   32347      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32348      392946 :          data_tmp = IAND(data_tmp, mask_left(8))
   32349      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32350      392946 :          ipack = ipack + 1
   32351      392946 :          packed_data(ipack) = pack_tmp
   32352      392946 :          data_tmp = full_data(idata)
   32353      392946 :          pack_tmp = ISHFT(data_tmp, 30)
   32354      392946 :          pack_tmp = ISHFT(pack_tmp, -30)
   32355      392946 :          idata = idata + 1
   32356      392946 :          data_tmp = full_data(idata)
   32357      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32358      392946 :          data_tmp = IAND(data_tmp, mask_left(30))
   32359      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32360      392946 :          ipack = ipack + 1
   32361      392946 :          packed_data(ipack) = pack_tmp
   32362      392946 :          data_tmp = full_data(idata)
   32363      392946 :          pack_tmp = ISHFT(data_tmp, 52)
   32364      392946 :          pack_tmp = ISHFT(pack_tmp, -42)
   32365      392946 :          idata = idata + 1
   32366      392946 :          data_tmp = full_data(idata)
   32367      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32368      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32369      392946 :          pack_tmp = ISHFT(pack_tmp, -10)
   32370      392946 :          idata = idata + 1
   32371      392946 :          data_tmp = full_data(idata)
   32372      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32373      392946 :          data_tmp = IAND(data_tmp, mask_left(10))
   32374      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32375      392946 :          ipack = ipack + 1
   32376      392946 :          packed_data(ipack) = pack_tmp
   32377      392946 :          data_tmp = full_data(idata)
   32378      392946 :          pack_tmp = ISHFT(data_tmp, 32)
   32379      392946 :          pack_tmp = ISHFT(pack_tmp, -32)
   32380      392946 :          idata = idata + 1
   32381      392946 :          data_tmp = full_data(idata)
   32382      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32383      392946 :          data_tmp = IAND(data_tmp, mask_left(32))
   32384      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32385      392946 :          ipack = ipack + 1
   32386      392946 :          packed_data(ipack) = pack_tmp
   32387      392946 :          data_tmp = full_data(idata)
   32388      392946 :          pack_tmp = ISHFT(data_tmp, 54)
   32389      392946 :          pack_tmp = ISHFT(pack_tmp, -42)
   32390      392946 :          idata = idata + 1
   32391      392946 :          data_tmp = full_data(idata)
   32392      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32393      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32394      392946 :          pack_tmp = ISHFT(pack_tmp, -12)
   32395      392946 :          idata = idata + 1
   32396      392946 :          data_tmp = full_data(idata)
   32397      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32398      392946 :          data_tmp = IAND(data_tmp, mask_left(12))
   32399      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32400      392946 :          ipack = ipack + 1
   32401      392946 :          packed_data(ipack) = pack_tmp
   32402      392946 :          data_tmp = full_data(idata)
   32403      392946 :          pack_tmp = ISHFT(data_tmp, 34)
   32404      392946 :          pack_tmp = ISHFT(pack_tmp, -34)
   32405      392946 :          idata = idata + 1
   32406      392946 :          data_tmp = full_data(idata)
   32407      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32408      392946 :          data_tmp = IAND(data_tmp, mask_left(34))
   32409      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32410      392946 :          ipack = ipack + 1
   32411      392946 :          packed_data(ipack) = pack_tmp
   32412      392946 :          data_tmp = full_data(idata)
   32413      392946 :          pack_tmp = ISHFT(data_tmp, 56)
   32414      392946 :          pack_tmp = ISHFT(pack_tmp, -42)
   32415      392946 :          idata = idata + 1
   32416      392946 :          data_tmp = full_data(idata)
   32417      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32418      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32419      392946 :          pack_tmp = ISHFT(pack_tmp, -14)
   32420      392946 :          idata = idata + 1
   32421      392946 :          data_tmp = full_data(idata)
   32422      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32423      392946 :          data_tmp = IAND(data_tmp, mask_left(14))
   32424      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32425      392946 :          ipack = ipack + 1
   32426      392946 :          packed_data(ipack) = pack_tmp
   32427      392946 :          data_tmp = full_data(idata)
   32428      392946 :          pack_tmp = ISHFT(data_tmp, 36)
   32429      392946 :          pack_tmp = ISHFT(pack_tmp, -36)
   32430      392946 :          idata = idata + 1
   32431      392946 :          data_tmp = full_data(idata)
   32432      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32433      392946 :          data_tmp = IAND(data_tmp, mask_left(36))
   32434      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32435      392946 :          ipack = ipack + 1
   32436      392946 :          packed_data(ipack) = pack_tmp
   32437      392946 :          data_tmp = full_data(idata)
   32438      392946 :          pack_tmp = ISHFT(data_tmp, 58)
   32439      392946 :          pack_tmp = ISHFT(pack_tmp, -42)
   32440      392946 :          idata = idata + 1
   32441      392946 :          data_tmp = full_data(idata)
   32442      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32443      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32444      392946 :          pack_tmp = ISHFT(pack_tmp, -16)
   32445      392946 :          idata = idata + 1
   32446      392946 :          data_tmp = full_data(idata)
   32447      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32448      392946 :          data_tmp = IAND(data_tmp, mask_left(16))
   32449      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32450      392946 :          ipack = ipack + 1
   32451      392946 :          packed_data(ipack) = pack_tmp
   32452      392946 :          data_tmp = full_data(idata)
   32453      392946 :          pack_tmp = ISHFT(data_tmp, 38)
   32454      392946 :          pack_tmp = ISHFT(pack_tmp, -38)
   32455      392946 :          idata = idata + 1
   32456      392946 :          data_tmp = full_data(idata)
   32457      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32458      392946 :          data_tmp = IAND(data_tmp, mask_left(38))
   32459      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32460      392946 :          ipack = ipack + 1
   32461      392946 :          packed_data(ipack) = pack_tmp
   32462      392946 :          data_tmp = full_data(idata)
   32463      392946 :          pack_tmp = ISHFT(data_tmp, 60)
   32464      392946 :          pack_tmp = ISHFT(pack_tmp, -42)
   32465      392946 :          idata = idata + 1
   32466      392946 :          data_tmp = full_data(idata)
   32467      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32468      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32469      392946 :          pack_tmp = ISHFT(pack_tmp, -18)
   32470      392946 :          idata = idata + 1
   32471      392946 :          data_tmp = full_data(idata)
   32472      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32473      392946 :          data_tmp = IAND(data_tmp, mask_left(18))
   32474      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32475      392946 :          ipack = ipack + 1
   32476      392946 :          packed_data(ipack) = pack_tmp
   32477      392946 :          data_tmp = full_data(idata)
   32478      392946 :          pack_tmp = ISHFT(data_tmp, 40)
   32479      392946 :          pack_tmp = ISHFT(pack_tmp, -40)
   32480      392946 :          idata = idata + 1
   32481      392946 :          data_tmp = full_data(idata)
   32482      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32483      392946 :          data_tmp = IAND(data_tmp, mask_left(40))
   32484      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32485      392946 :          ipack = ipack + 1
   32486      392946 :          packed_data(ipack) = pack_tmp
   32487      392946 :          data_tmp = full_data(idata)
   32488      392946 :          pack_tmp = ISHFT(data_tmp, 62)
   32489      392946 :          pack_tmp = ISHFT(pack_tmp, -42)
   32490      392946 :          idata = idata + 1
   32491      392946 :          data_tmp = full_data(idata)
   32492      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32493      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32494      392946 :          pack_tmp = ISHFT(pack_tmp, -20)
   32495      392946 :          idata = idata + 1
   32496      392946 :          data_tmp = full_data(idata)
   32497      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32498      392946 :          data_tmp = IAND(data_tmp, mask_left(20))
   32499      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32500      392946 :          ipack = ipack + 1
   32501      392946 :          packed_data(ipack) = pack_tmp
   32502      392946 :          data_tmp = full_data(idata)
   32503      392946 :          pack_tmp = ISHFT(data_tmp, 42)
   32504      392946 :          pack_tmp = ISHFT(pack_tmp, -42)
   32505      392946 :          idata = idata + 1
   32506      392946 :          data_tmp = full_data(idata)
   32507      392946 :          data_tmp = ISHFT(data_tmp, 22)
   32508      392946 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32509             :          pack_tmp = ISHFT(pack_tmp, 0)
   32510      392946 :          pack_tmp = ISHFT(pack_tmp, 0)
   32511      392946 :          ipack = ipack + 1
   32512      393047 :          packed_data(ipack) = pack_tmp
   32513             :       END DO
   32514       25373 :       IF (Ndata_rep < Ndata) THEN
   32515        1532 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   32516             :       END IF
   32517       25373 :    END SUBROUTINE ints2bits_42
   32518             : 
   32519             : ! **************************************************************************************************
   32520             : !> \brief ...
   32521             : !> \param Ndata ...
   32522             : !> \param packed_data ...
   32523             : !> \param full_data ...
   32524             : ! **************************************************************************************************
   32525      115902 :    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      115902 :       ipack = 0
   32536      115902 :       idata = 0
   32537      115902 :       pack_tmp = 0
   32538      115902 :       Ndata_rep = (Ndata/64)*64
   32539      115902 :       DO kdata = 1, Ndata_rep, 64
   32540     1712397 :          idata = idata + 1
   32541     1712397 :          data_tmp = ISHFT(pack_tmp, 42)
   32542     1712397 :          ipack = ipack + 1
   32543     1712397 :          pack_tmp = packed_data(ipack)
   32544     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   32545     1712397 :          pack_tmp = ISHFT(pack_tmp, -42)
   32546     1712397 :          idata = idata + 1
   32547     1712397 :          data_tmp = ISHFT(pack_tmp, 20)
   32548     1712397 :          ipack = ipack + 1
   32549     1712397 :          pack_tmp = packed_data(ipack)
   32550     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   32551     1712397 :          pack_tmp = ISHFT(pack_tmp, -20)
   32552     1712397 :          idata = idata + 1
   32553     1712397 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32554     1712397 :          full_data(idata) = data_tmp
   32555     1712397 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32556     1712397 :          idata = idata + 1
   32557     1712397 :          data_tmp = ISHFT(pack_tmp, 40)
   32558     1712397 :          ipack = ipack + 1
   32559     1712397 :          pack_tmp = packed_data(ipack)
   32560     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   32561     1712397 :          pack_tmp = ISHFT(pack_tmp, -40)
   32562     1712397 :          idata = idata + 1
   32563     1712397 :          data_tmp = ISHFT(pack_tmp, 18)
   32564     1712397 :          ipack = ipack + 1
   32565     1712397 :          pack_tmp = packed_data(ipack)
   32566     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   32567     1712397 :          pack_tmp = ISHFT(pack_tmp, -18)
   32568     1712397 :          idata = idata + 1
   32569     1712397 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32570     1712397 :          full_data(idata) = data_tmp
   32571     1712397 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32572     1712397 :          idata = idata + 1
   32573     1712397 :          data_tmp = ISHFT(pack_tmp, 38)
   32574     1712397 :          ipack = ipack + 1
   32575     1712397 :          pack_tmp = packed_data(ipack)
   32576     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   32577     1712397 :          pack_tmp = ISHFT(pack_tmp, -38)
   32578     1712397 :          idata = idata + 1
   32579     1712397 :          data_tmp = ISHFT(pack_tmp, 16)
   32580     1712397 :          ipack = ipack + 1
   32581     1712397 :          pack_tmp = packed_data(ipack)
   32582     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   32583     1712397 :          pack_tmp = ISHFT(pack_tmp, -16)
   32584     1712397 :          idata = idata + 1
   32585     1712397 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32586     1712397 :          full_data(idata) = data_tmp
   32587     1712397 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32588     1712397 :          idata = idata + 1
   32589     1712397 :          data_tmp = ISHFT(pack_tmp, 36)
   32590     1712397 :          ipack = ipack + 1
   32591     1712397 :          pack_tmp = packed_data(ipack)
   32592     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   32593     1712397 :          pack_tmp = ISHFT(pack_tmp, -36)
   32594     1712397 :          idata = idata + 1
   32595     1712397 :          data_tmp = ISHFT(pack_tmp, 14)
   32596     1712397 :          ipack = ipack + 1
   32597     1712397 :          pack_tmp = packed_data(ipack)
   32598     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   32599     1712397 :          pack_tmp = ISHFT(pack_tmp, -14)
   32600     1712397 :          idata = idata + 1
   32601     1712397 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32602     1712397 :          full_data(idata) = data_tmp
   32603     1712397 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32604     1712397 :          idata = idata + 1
   32605     1712397 :          data_tmp = ISHFT(pack_tmp, 34)
   32606     1712397 :          ipack = ipack + 1
   32607     1712397 :          pack_tmp = packed_data(ipack)
   32608     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   32609     1712397 :          pack_tmp = ISHFT(pack_tmp, -34)
   32610     1712397 :          idata = idata + 1
   32611     1712397 :          data_tmp = ISHFT(pack_tmp, 12)
   32612     1712397 :          ipack = ipack + 1
   32613     1712397 :          pack_tmp = packed_data(ipack)
   32614     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   32615     1712397 :          pack_tmp = ISHFT(pack_tmp, -12)
   32616     1712397 :          idata = idata + 1
   32617     1712397 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32618     1712397 :          full_data(idata) = data_tmp
   32619     1712397 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32620     1712397 :          idata = idata + 1
   32621     1712397 :          data_tmp = ISHFT(pack_tmp, 32)
   32622     1712397 :          ipack = ipack + 1
   32623     1712397 :          pack_tmp = packed_data(ipack)
   32624     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   32625     1712397 :          pack_tmp = ISHFT(pack_tmp, -32)
   32626     1712397 :          idata = idata + 1
   32627     1712397 :          data_tmp = ISHFT(pack_tmp, 10)
   32628     1712397 :          ipack = ipack + 1
   32629     1712397 :          pack_tmp = packed_data(ipack)
   32630     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   32631     1712397 :          pack_tmp = ISHFT(pack_tmp, -10)
   32632     1712397 :          idata = idata + 1
   32633     1712397 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32634     1712397 :          full_data(idata) = data_tmp
   32635     1712397 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32636     1712397 :          idata = idata + 1
   32637     1712397 :          data_tmp = ISHFT(pack_tmp, 30)
   32638     1712397 :          ipack = ipack + 1
   32639     1712397 :          pack_tmp = packed_data(ipack)
   32640     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   32641     1712397 :          pack_tmp = ISHFT(pack_tmp, -30)
   32642     1712397 :          idata = idata + 1
   32643     1712397 :          data_tmp = ISHFT(pack_tmp, 8)
   32644     1712397 :          ipack = ipack + 1
   32645     1712397 :          pack_tmp = packed_data(ipack)
   32646     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   32647     1712397 :          pack_tmp = ISHFT(pack_tmp, -8)
   32648     1712397 :          idata = idata + 1
   32649     1712397 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32650     1712397 :          full_data(idata) = data_tmp
   32651     1712397 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32652     1712397 :          idata = idata + 1
   32653     1712397 :          data_tmp = ISHFT(pack_tmp, 28)
   32654     1712397 :          ipack = ipack + 1
   32655     1712397 :          pack_tmp = packed_data(ipack)
   32656     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   32657     1712397 :          pack_tmp = ISHFT(pack_tmp, -28)
   32658     1712397 :          idata = idata + 1
   32659     1712397 :          data_tmp = ISHFT(pack_tmp, 6)
   32660     1712397 :          ipack = ipack + 1
   32661     1712397 :          pack_tmp = packed_data(ipack)
   32662     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   32663     1712397 :          pack_tmp = ISHFT(pack_tmp, -6)
   32664     1712397 :          idata = idata + 1
   32665     1712397 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32666     1712397 :          full_data(idata) = data_tmp
   32667     1712397 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32668     1712397 :          idata = idata + 1
   32669     1712397 :          data_tmp = ISHFT(pack_tmp, 26)
   32670     1712397 :          ipack = ipack + 1
   32671     1712397 :          pack_tmp = packed_data(ipack)
   32672     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   32673     1712397 :          pack_tmp = ISHFT(pack_tmp, -26)
   32674     1712397 :          idata = idata + 1
   32675     1712397 :          data_tmp = ISHFT(pack_tmp, 4)
   32676     1712397 :          ipack = ipack + 1
   32677     1712397 :          pack_tmp = packed_data(ipack)
   32678     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   32679     1712397 :          pack_tmp = ISHFT(pack_tmp, -4)
   32680     1712397 :          idata = idata + 1
   32681     1712397 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32682     1712397 :          full_data(idata) = data_tmp
   32683     1712397 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32684     1712397 :          idata = idata + 1
   32685     1712397 :          data_tmp = ISHFT(pack_tmp, 24)
   32686     1712397 :          ipack = ipack + 1
   32687     1712397 :          pack_tmp = packed_data(ipack)
   32688     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   32689     1712397 :          pack_tmp = ISHFT(pack_tmp, -24)
   32690     1712397 :          idata = idata + 1
   32691     1712397 :          data_tmp = ISHFT(pack_tmp, 2)
   32692     1712397 :          ipack = ipack + 1
   32693     1712397 :          pack_tmp = packed_data(ipack)
   32694     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   32695     1712397 :          pack_tmp = ISHFT(pack_tmp, -2)
   32696     1712397 :          idata = idata + 1
   32697     1712397 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32698     1712397 :          full_data(idata) = data_tmp
   32699     1712397 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32700     1712397 :          idata = idata + 1
   32701     1712397 :          data_tmp = ISHFT(pack_tmp, 22)
   32702     1712397 :          ipack = ipack + 1
   32703     1712397 :          pack_tmp = packed_data(ipack)
   32704     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   32705     1712397 :          pack_tmp = ISHFT(pack_tmp, -22)
   32706     1712397 :          idata = idata + 1
   32707     1712397 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32708     1712397 :          full_data(idata) = data_tmp
   32709     1712397 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32710     1712397 :          idata = idata + 1
   32711     1712397 :          data_tmp = ISHFT(pack_tmp, 42)
   32712     1712397 :          ipack = ipack + 1
   32713     1712397 :          pack_tmp = packed_data(ipack)
   32714     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   32715     1712397 :          pack_tmp = ISHFT(pack_tmp, -42)
   32716     1712397 :          idata = idata + 1
   32717     1712397 :          data_tmp = ISHFT(pack_tmp, 20)
   32718     1712397 :          ipack = ipack + 1
   32719     1712397 :          pack_tmp = packed_data(ipack)
   32720     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   32721     1712397 :          pack_tmp = ISHFT(pack_tmp, -20)
   32722     1712397 :          idata = idata + 1
   32723     1712397 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32724     1712397 :          full_data(idata) = data_tmp
   32725     1712397 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32726     1712397 :          idata = idata + 1
   32727     1712397 :          data_tmp = ISHFT(pack_tmp, 40)
   32728     1712397 :          ipack = ipack + 1
   32729     1712397 :          pack_tmp = packed_data(ipack)
   32730     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   32731     1712397 :          pack_tmp = ISHFT(pack_tmp, -40)
   32732     1712397 :          idata = idata + 1
   32733     1712397 :          data_tmp = ISHFT(pack_tmp, 18)
   32734     1712397 :          ipack = ipack + 1
   32735     1712397 :          pack_tmp = packed_data(ipack)
   32736     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   32737     1712397 :          pack_tmp = ISHFT(pack_tmp, -18)
   32738     1712397 :          idata = idata + 1
   32739     1712397 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32740     1712397 :          full_data(idata) = data_tmp
   32741     1712397 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32742     1712397 :          idata = idata + 1
   32743     1712397 :          data_tmp = ISHFT(pack_tmp, 38)
   32744     1712397 :          ipack = ipack + 1
   32745     1712397 :          pack_tmp = packed_data(ipack)
   32746     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   32747     1712397 :          pack_tmp = ISHFT(pack_tmp, -38)
   32748     1712397 :          idata = idata + 1
   32749     1712397 :          data_tmp = ISHFT(pack_tmp, 16)
   32750     1712397 :          ipack = ipack + 1
   32751     1712397 :          pack_tmp = packed_data(ipack)
   32752     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   32753     1712397 :          pack_tmp = ISHFT(pack_tmp, -16)
   32754     1712397 :          idata = idata + 1
   32755     1712397 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32756     1712397 :          full_data(idata) = data_tmp
   32757     1712397 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32758     1712397 :          idata = idata + 1
   32759     1712397 :          data_tmp = ISHFT(pack_tmp, 36)
   32760     1712397 :          ipack = ipack + 1
   32761     1712397 :          pack_tmp = packed_data(ipack)
   32762     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   32763     1712397 :          pack_tmp = ISHFT(pack_tmp, -36)
   32764     1712397 :          idata = idata + 1
   32765     1712397 :          data_tmp = ISHFT(pack_tmp, 14)
   32766     1712397 :          ipack = ipack + 1
   32767     1712397 :          pack_tmp = packed_data(ipack)
   32768     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   32769     1712397 :          pack_tmp = ISHFT(pack_tmp, -14)
   32770     1712397 :          idata = idata + 1
   32771     1712397 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32772     1712397 :          full_data(idata) = data_tmp
   32773     1712397 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32774     1712397 :          idata = idata + 1
   32775     1712397 :          data_tmp = ISHFT(pack_tmp, 34)
   32776     1712397 :          ipack = ipack + 1
   32777     1712397 :          pack_tmp = packed_data(ipack)
   32778     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   32779     1712397 :          pack_tmp = ISHFT(pack_tmp, -34)
   32780     1712397 :          idata = idata + 1
   32781     1712397 :          data_tmp = ISHFT(pack_tmp, 12)
   32782     1712397 :          ipack = ipack + 1
   32783     1712397 :          pack_tmp = packed_data(ipack)
   32784     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   32785     1712397 :          pack_tmp = ISHFT(pack_tmp, -12)
   32786     1712397 :          idata = idata + 1
   32787     1712397 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32788     1712397 :          full_data(idata) = data_tmp
   32789     1712397 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32790     1712397 :          idata = idata + 1
   32791     1712397 :          data_tmp = ISHFT(pack_tmp, 32)
   32792     1712397 :          ipack = ipack + 1
   32793     1712397 :          pack_tmp = packed_data(ipack)
   32794     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   32795     1712397 :          pack_tmp = ISHFT(pack_tmp, -32)
   32796     1712397 :          idata = idata + 1
   32797     1712397 :          data_tmp = ISHFT(pack_tmp, 10)
   32798     1712397 :          ipack = ipack + 1
   32799     1712397 :          pack_tmp = packed_data(ipack)
   32800     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   32801     1712397 :          pack_tmp = ISHFT(pack_tmp, -10)
   32802     1712397 :          idata = idata + 1
   32803     1712397 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32804     1712397 :          full_data(idata) = data_tmp
   32805     1712397 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32806     1712397 :          idata = idata + 1
   32807     1712397 :          data_tmp = ISHFT(pack_tmp, 30)
   32808     1712397 :          ipack = ipack + 1
   32809     1712397 :          pack_tmp = packed_data(ipack)
   32810     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   32811     1712397 :          pack_tmp = ISHFT(pack_tmp, -30)
   32812     1712397 :          idata = idata + 1
   32813     1712397 :          data_tmp = ISHFT(pack_tmp, 8)
   32814     1712397 :          ipack = ipack + 1
   32815     1712397 :          pack_tmp = packed_data(ipack)
   32816     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   32817     1712397 :          pack_tmp = ISHFT(pack_tmp, -8)
   32818     1712397 :          idata = idata + 1
   32819     1712397 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32820     1712397 :          full_data(idata) = data_tmp
   32821     1712397 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32822     1712397 :          idata = idata + 1
   32823     1712397 :          data_tmp = ISHFT(pack_tmp, 28)
   32824     1712397 :          ipack = ipack + 1
   32825     1712397 :          pack_tmp = packed_data(ipack)
   32826     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   32827     1712397 :          pack_tmp = ISHFT(pack_tmp, -28)
   32828     1712397 :          idata = idata + 1
   32829     1712397 :          data_tmp = ISHFT(pack_tmp, 6)
   32830     1712397 :          ipack = ipack + 1
   32831     1712397 :          pack_tmp = packed_data(ipack)
   32832     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   32833     1712397 :          pack_tmp = ISHFT(pack_tmp, -6)
   32834     1712397 :          idata = idata + 1
   32835     1712397 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32836     1712397 :          full_data(idata) = data_tmp
   32837     1712397 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32838     1712397 :          idata = idata + 1
   32839     1712397 :          data_tmp = ISHFT(pack_tmp, 26)
   32840     1712397 :          ipack = ipack + 1
   32841     1712397 :          pack_tmp = packed_data(ipack)
   32842     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   32843     1712397 :          pack_tmp = ISHFT(pack_tmp, -26)
   32844     1712397 :          idata = idata + 1
   32845     1712397 :          data_tmp = ISHFT(pack_tmp, 4)
   32846     1712397 :          ipack = ipack + 1
   32847     1712397 :          pack_tmp = packed_data(ipack)
   32848     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   32849     1712397 :          pack_tmp = ISHFT(pack_tmp, -4)
   32850     1712397 :          idata = idata + 1
   32851     1712397 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32852     1712397 :          full_data(idata) = data_tmp
   32853     1712397 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32854     1712397 :          idata = idata + 1
   32855     1712397 :          data_tmp = ISHFT(pack_tmp, 24)
   32856     1712397 :          ipack = ipack + 1
   32857     1712397 :          pack_tmp = packed_data(ipack)
   32858     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   32859     1712397 :          pack_tmp = ISHFT(pack_tmp, -24)
   32860     1712397 :          idata = idata + 1
   32861     1712397 :          data_tmp = ISHFT(pack_tmp, 2)
   32862     1712397 :          ipack = ipack + 1
   32863     1712397 :          pack_tmp = packed_data(ipack)
   32864     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   32865     1712397 :          pack_tmp = ISHFT(pack_tmp, -2)
   32866     1712397 :          idata = idata + 1
   32867     1712397 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32868     1712397 :          full_data(idata) = data_tmp
   32869     1712397 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32870     1712397 :          idata = idata + 1
   32871     1712397 :          data_tmp = ISHFT(pack_tmp, 22)
   32872     1712397 :          ipack = ipack + 1
   32873     1712397 :          pack_tmp = packed_data(ipack)
   32874     1712397 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   32875     1712397 :          pack_tmp = ISHFT(pack_tmp, -22)
   32876     1712397 :          idata = idata + 1
   32877     1712397 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32878     1712397 :          full_data(idata) = data_tmp
   32879     1713903 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32880             :       END DO
   32881      115902 :       IF (Ndata_rep < Ndata) THEN
   32882       16710 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   32883             :       END IF
   32884      115902 :    END SUBROUTINE bits2ints_42
   32885             : 
   32886             : ! **************************************************************************************************
   32887             : !> \brief ...
   32888             : !> \param Ndata ...
   32889             : !> \param packed_data ...
   32890             : !> \param full_data ...
   32891             : ! **************************************************************************************************
   32892       26035 :    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       26035 :       idata = 0
   32903       26035 :       ipack = 0
   32904       26035 :       Ndata_rep = (Ndata/64)*64
   32905       26035 :       DO kdata = 1, Ndata_rep, 64
   32906      397520 :          pack_tmp = 0
   32907      397520 :          idata = idata + 1
   32908      397520 :          data_tmp = full_data(idata)
   32909      397520 :          data_tmp = ISHFT(data_tmp, 21)
   32910      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32911      397520 :          pack_tmp = ISHFT(pack_tmp, -21)
   32912      397520 :          idata = idata + 1
   32913      397520 :          data_tmp = full_data(idata)
   32914      397520 :          data_tmp = ISHFT(data_tmp, 21)
   32915      397520 :          data_tmp = IAND(data_tmp, mask_left(21))
   32916      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32917      397520 :          ipack = ipack + 1
   32918      397520 :          packed_data(ipack) = pack_tmp
   32919      397520 :          data_tmp = full_data(idata)
   32920      397520 :          pack_tmp = ISHFT(data_tmp, 42)
   32921      397520 :          pack_tmp = ISHFT(pack_tmp, -42)
   32922      397520 :          idata = idata + 1
   32923      397520 :          data_tmp = full_data(idata)
   32924      397520 :          data_tmp = ISHFT(data_tmp, 21)
   32925      397520 :          data_tmp = IAND(data_tmp, mask_left(42))
   32926      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32927      397520 :          ipack = ipack + 1
   32928      397520 :          packed_data(ipack) = pack_tmp
   32929      397520 :          data_tmp = full_data(idata)
   32930      397520 :          pack_tmp = ISHFT(data_tmp, 63)
   32931      397520 :          pack_tmp = ISHFT(pack_tmp, -43)
   32932      397520 :          idata = idata + 1
   32933      397520 :          data_tmp = full_data(idata)
   32934      397520 :          data_tmp = ISHFT(data_tmp, 21)
   32935      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32936      397520 :          pack_tmp = ISHFT(pack_tmp, -20)
   32937      397520 :          idata = idata + 1
   32938      397520 :          data_tmp = full_data(idata)
   32939      397520 :          data_tmp = ISHFT(data_tmp, 21)
   32940      397520 :          data_tmp = IAND(data_tmp, mask_left(20))
   32941      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32942      397520 :          ipack = ipack + 1
   32943      397520 :          packed_data(ipack) = pack_tmp
   32944      397520 :          data_tmp = full_data(idata)
   32945      397520 :          pack_tmp = ISHFT(data_tmp, 41)
   32946      397520 :          pack_tmp = ISHFT(pack_tmp, -41)
   32947      397520 :          idata = idata + 1
   32948      397520 :          data_tmp = full_data(idata)
   32949      397520 :          data_tmp = ISHFT(data_tmp, 21)
   32950      397520 :          data_tmp = IAND(data_tmp, mask_left(41))
   32951      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32952      397520 :          ipack = ipack + 1
   32953      397520 :          packed_data(ipack) = pack_tmp
   32954      397520 :          data_tmp = full_data(idata)
   32955      397520 :          pack_tmp = ISHFT(data_tmp, 62)
   32956      397520 :          pack_tmp = ISHFT(pack_tmp, -43)
   32957      397520 :          idata = idata + 1
   32958      397520 :          data_tmp = full_data(idata)
   32959      397520 :          data_tmp = ISHFT(data_tmp, 21)
   32960      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32961      397520 :          pack_tmp = ISHFT(pack_tmp, -19)
   32962      397520 :          idata = idata + 1
   32963      397520 :          data_tmp = full_data(idata)
   32964      397520 :          data_tmp = ISHFT(data_tmp, 21)
   32965      397520 :          data_tmp = IAND(data_tmp, mask_left(19))
   32966      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32967      397520 :          ipack = ipack + 1
   32968      397520 :          packed_data(ipack) = pack_tmp
   32969      397520 :          data_tmp = full_data(idata)
   32970      397520 :          pack_tmp = ISHFT(data_tmp, 40)
   32971      397520 :          pack_tmp = ISHFT(pack_tmp, -40)
   32972      397520 :          idata = idata + 1
   32973      397520 :          data_tmp = full_data(idata)
   32974      397520 :          data_tmp = ISHFT(data_tmp, 21)
   32975      397520 :          data_tmp = IAND(data_tmp, mask_left(40))
   32976      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32977      397520 :          ipack = ipack + 1
   32978      397520 :          packed_data(ipack) = pack_tmp
   32979      397520 :          data_tmp = full_data(idata)
   32980      397520 :          pack_tmp = ISHFT(data_tmp, 61)
   32981      397520 :          pack_tmp = ISHFT(pack_tmp, -43)
   32982      397520 :          idata = idata + 1
   32983      397520 :          data_tmp = full_data(idata)
   32984      397520 :          data_tmp = ISHFT(data_tmp, 21)
   32985      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32986      397520 :          pack_tmp = ISHFT(pack_tmp, -18)
   32987      397520 :          idata = idata + 1
   32988      397520 :          data_tmp = full_data(idata)
   32989      397520 :          data_tmp = ISHFT(data_tmp, 21)
   32990      397520 :          data_tmp = IAND(data_tmp, mask_left(18))
   32991      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32992      397520 :          ipack = ipack + 1
   32993      397520 :          packed_data(ipack) = pack_tmp
   32994      397520 :          data_tmp = full_data(idata)
   32995      397520 :          pack_tmp = ISHFT(data_tmp, 39)
   32996      397520 :          pack_tmp = ISHFT(pack_tmp, -39)
   32997      397520 :          idata = idata + 1
   32998      397520 :          data_tmp = full_data(idata)
   32999      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33000      397520 :          data_tmp = IAND(data_tmp, mask_left(39))
   33001      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33002      397520 :          ipack = ipack + 1
   33003      397520 :          packed_data(ipack) = pack_tmp
   33004      397520 :          data_tmp = full_data(idata)
   33005      397520 :          pack_tmp = ISHFT(data_tmp, 60)
   33006      397520 :          pack_tmp = ISHFT(pack_tmp, -43)
   33007      397520 :          idata = idata + 1
   33008      397520 :          data_tmp = full_data(idata)
   33009      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33010      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33011      397520 :          pack_tmp = ISHFT(pack_tmp, -17)
   33012      397520 :          idata = idata + 1
   33013      397520 :          data_tmp = full_data(idata)
   33014      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33015      397520 :          data_tmp = IAND(data_tmp, mask_left(17))
   33016      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33017      397520 :          ipack = ipack + 1
   33018      397520 :          packed_data(ipack) = pack_tmp
   33019      397520 :          data_tmp = full_data(idata)
   33020      397520 :          pack_tmp = ISHFT(data_tmp, 38)
   33021      397520 :          pack_tmp = ISHFT(pack_tmp, -38)
   33022      397520 :          idata = idata + 1
   33023      397520 :          data_tmp = full_data(idata)
   33024      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33025      397520 :          data_tmp = IAND(data_tmp, mask_left(38))
   33026      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33027      397520 :          ipack = ipack + 1
   33028      397520 :          packed_data(ipack) = pack_tmp
   33029      397520 :          data_tmp = full_data(idata)
   33030      397520 :          pack_tmp = ISHFT(data_tmp, 59)
   33031      397520 :          pack_tmp = ISHFT(pack_tmp, -43)
   33032      397520 :          idata = idata + 1
   33033      397520 :          data_tmp = full_data(idata)
   33034      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33035      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33036      397520 :          pack_tmp = ISHFT(pack_tmp, -16)
   33037      397520 :          idata = idata + 1
   33038      397520 :          data_tmp = full_data(idata)
   33039      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33040      397520 :          data_tmp = IAND(data_tmp, mask_left(16))
   33041      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33042      397520 :          ipack = ipack + 1
   33043      397520 :          packed_data(ipack) = pack_tmp
   33044      397520 :          data_tmp = full_data(idata)
   33045      397520 :          pack_tmp = ISHFT(data_tmp, 37)
   33046      397520 :          pack_tmp = ISHFT(pack_tmp, -37)
   33047      397520 :          idata = idata + 1
   33048      397520 :          data_tmp = full_data(idata)
   33049      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33050      397520 :          data_tmp = IAND(data_tmp, mask_left(37))
   33051      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33052      397520 :          ipack = ipack + 1
   33053      397520 :          packed_data(ipack) = pack_tmp
   33054      397520 :          data_tmp = full_data(idata)
   33055      397520 :          pack_tmp = ISHFT(data_tmp, 58)
   33056      397520 :          pack_tmp = ISHFT(pack_tmp, -43)
   33057      397520 :          idata = idata + 1
   33058      397520 :          data_tmp = full_data(idata)
   33059      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33060      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33061      397520 :          pack_tmp = ISHFT(pack_tmp, -15)
   33062      397520 :          idata = idata + 1
   33063      397520 :          data_tmp = full_data(idata)
   33064      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33065      397520 :          data_tmp = IAND(data_tmp, mask_left(15))
   33066      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33067      397520 :          ipack = ipack + 1
   33068      397520 :          packed_data(ipack) = pack_tmp
   33069      397520 :          data_tmp = full_data(idata)
   33070      397520 :          pack_tmp = ISHFT(data_tmp, 36)
   33071      397520 :          pack_tmp = ISHFT(pack_tmp, -36)
   33072      397520 :          idata = idata + 1
   33073      397520 :          data_tmp = full_data(idata)
   33074      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33075      397520 :          data_tmp = IAND(data_tmp, mask_left(36))
   33076      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33077      397520 :          ipack = ipack + 1
   33078      397520 :          packed_data(ipack) = pack_tmp
   33079      397520 :          data_tmp = full_data(idata)
   33080      397520 :          pack_tmp = ISHFT(data_tmp, 57)
   33081      397520 :          pack_tmp = ISHFT(pack_tmp, -43)
   33082      397520 :          idata = idata + 1
   33083      397520 :          data_tmp = full_data(idata)
   33084      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33085      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33086      397520 :          pack_tmp = ISHFT(pack_tmp, -14)
   33087      397520 :          idata = idata + 1
   33088      397520 :          data_tmp = full_data(idata)
   33089      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33090      397520 :          data_tmp = IAND(data_tmp, mask_left(14))
   33091      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33092      397520 :          ipack = ipack + 1
   33093      397520 :          packed_data(ipack) = pack_tmp
   33094      397520 :          data_tmp = full_data(idata)
   33095      397520 :          pack_tmp = ISHFT(data_tmp, 35)
   33096      397520 :          pack_tmp = ISHFT(pack_tmp, -35)
   33097      397520 :          idata = idata + 1
   33098      397520 :          data_tmp = full_data(idata)
   33099      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33100      397520 :          data_tmp = IAND(data_tmp, mask_left(35))
   33101      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33102      397520 :          ipack = ipack + 1
   33103      397520 :          packed_data(ipack) = pack_tmp
   33104      397520 :          data_tmp = full_data(idata)
   33105      397520 :          pack_tmp = ISHFT(data_tmp, 56)
   33106      397520 :          pack_tmp = ISHFT(pack_tmp, -43)
   33107      397520 :          idata = idata + 1
   33108      397520 :          data_tmp = full_data(idata)
   33109      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33110      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33111      397520 :          pack_tmp = ISHFT(pack_tmp, -13)
   33112      397520 :          idata = idata + 1
   33113      397520 :          data_tmp = full_data(idata)
   33114      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33115      397520 :          data_tmp = IAND(data_tmp, mask_left(13))
   33116      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33117      397520 :          ipack = ipack + 1
   33118      397520 :          packed_data(ipack) = pack_tmp
   33119      397520 :          data_tmp = full_data(idata)
   33120      397520 :          pack_tmp = ISHFT(data_tmp, 34)
   33121      397520 :          pack_tmp = ISHFT(pack_tmp, -34)
   33122      397520 :          idata = idata + 1
   33123      397520 :          data_tmp = full_data(idata)
   33124      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33125      397520 :          data_tmp = IAND(data_tmp, mask_left(34))
   33126      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33127      397520 :          ipack = ipack + 1
   33128      397520 :          packed_data(ipack) = pack_tmp
   33129      397520 :          data_tmp = full_data(idata)
   33130      397520 :          pack_tmp = ISHFT(data_tmp, 55)
   33131      397520 :          pack_tmp = ISHFT(pack_tmp, -43)
   33132      397520 :          idata = idata + 1
   33133      397520 :          data_tmp = full_data(idata)
   33134      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33135      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33136      397520 :          pack_tmp = ISHFT(pack_tmp, -12)
   33137      397520 :          idata = idata + 1
   33138      397520 :          data_tmp = full_data(idata)
   33139      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33140      397520 :          data_tmp = IAND(data_tmp, mask_left(12))
   33141      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33142      397520 :          ipack = ipack + 1
   33143      397520 :          packed_data(ipack) = pack_tmp
   33144      397520 :          data_tmp = full_data(idata)
   33145      397520 :          pack_tmp = ISHFT(data_tmp, 33)
   33146      397520 :          pack_tmp = ISHFT(pack_tmp, -33)
   33147      397520 :          idata = idata + 1
   33148      397520 :          data_tmp = full_data(idata)
   33149      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33150      397520 :          data_tmp = IAND(data_tmp, mask_left(33))
   33151      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33152      397520 :          ipack = ipack + 1
   33153      397520 :          packed_data(ipack) = pack_tmp
   33154      397520 :          data_tmp = full_data(idata)
   33155      397520 :          pack_tmp = ISHFT(data_tmp, 54)
   33156      397520 :          pack_tmp = ISHFT(pack_tmp, -43)
   33157      397520 :          idata = idata + 1
   33158      397520 :          data_tmp = full_data(idata)
   33159      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33160      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33161      397520 :          pack_tmp = ISHFT(pack_tmp, -11)
   33162      397520 :          idata = idata + 1
   33163      397520 :          data_tmp = full_data(idata)
   33164      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33165      397520 :          data_tmp = IAND(data_tmp, mask_left(11))
   33166      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33167      397520 :          ipack = ipack + 1
   33168      397520 :          packed_data(ipack) = pack_tmp
   33169      397520 :          data_tmp = full_data(idata)
   33170      397520 :          pack_tmp = ISHFT(data_tmp, 32)
   33171      397520 :          pack_tmp = ISHFT(pack_tmp, -32)
   33172      397520 :          idata = idata + 1
   33173      397520 :          data_tmp = full_data(idata)
   33174      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33175      397520 :          data_tmp = IAND(data_tmp, mask_left(32))
   33176      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33177      397520 :          ipack = ipack + 1
   33178      397520 :          packed_data(ipack) = pack_tmp
   33179      397520 :          data_tmp = full_data(idata)
   33180      397520 :          pack_tmp = ISHFT(data_tmp, 53)
   33181      397520 :          pack_tmp = ISHFT(pack_tmp, -43)
   33182      397520 :          idata = idata + 1
   33183      397520 :          data_tmp = full_data(idata)
   33184      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33185      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33186      397520 :          pack_tmp = ISHFT(pack_tmp, -10)
   33187      397520 :          idata = idata + 1
   33188      397520 :          data_tmp = full_data(idata)
   33189      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33190      397520 :          data_tmp = IAND(data_tmp, mask_left(10))
   33191      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33192      397520 :          ipack = ipack + 1
   33193      397520 :          packed_data(ipack) = pack_tmp
   33194      397520 :          data_tmp = full_data(idata)
   33195      397520 :          pack_tmp = ISHFT(data_tmp, 31)
   33196      397520 :          pack_tmp = ISHFT(pack_tmp, -31)
   33197      397520 :          idata = idata + 1
   33198      397520 :          data_tmp = full_data(idata)
   33199      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33200      397520 :          data_tmp = IAND(data_tmp, mask_left(31))
   33201      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33202      397520 :          ipack = ipack + 1
   33203      397520 :          packed_data(ipack) = pack_tmp
   33204      397520 :          data_tmp = full_data(idata)
   33205      397520 :          pack_tmp = ISHFT(data_tmp, 52)
   33206      397520 :          pack_tmp = ISHFT(pack_tmp, -43)
   33207      397520 :          idata = idata + 1
   33208      397520 :          data_tmp = full_data(idata)
   33209      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33210      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33211      397520 :          pack_tmp = ISHFT(pack_tmp, -9)
   33212      397520 :          idata = idata + 1
   33213      397520 :          data_tmp = full_data(idata)
   33214      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33215      397520 :          data_tmp = IAND(data_tmp, mask_left(9))
   33216      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33217      397520 :          ipack = ipack + 1
   33218      397520 :          packed_data(ipack) = pack_tmp
   33219      397520 :          data_tmp = full_data(idata)
   33220      397520 :          pack_tmp = ISHFT(data_tmp, 30)
   33221      397520 :          pack_tmp = ISHFT(pack_tmp, -30)
   33222      397520 :          idata = idata + 1
   33223      397520 :          data_tmp = full_data(idata)
   33224      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33225      397520 :          data_tmp = IAND(data_tmp, mask_left(30))
   33226      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33227      397520 :          ipack = ipack + 1
   33228      397520 :          packed_data(ipack) = pack_tmp
   33229      397520 :          data_tmp = full_data(idata)
   33230      397520 :          pack_tmp = ISHFT(data_tmp, 51)
   33231      397520 :          pack_tmp = ISHFT(pack_tmp, -43)
   33232      397520 :          idata = idata + 1
   33233      397520 :          data_tmp = full_data(idata)
   33234      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33235      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33236      397520 :          pack_tmp = ISHFT(pack_tmp, -8)
   33237      397520 :          idata = idata + 1
   33238      397520 :          data_tmp = full_data(idata)
   33239      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33240      397520 :          data_tmp = IAND(data_tmp, mask_left(8))
   33241      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33242      397520 :          ipack = ipack + 1
   33243      397520 :          packed_data(ipack) = pack_tmp
   33244      397520 :          data_tmp = full_data(idata)
   33245      397520 :          pack_tmp = ISHFT(data_tmp, 29)
   33246      397520 :          pack_tmp = ISHFT(pack_tmp, -29)
   33247      397520 :          idata = idata + 1
   33248      397520 :          data_tmp = full_data(idata)
   33249      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33250      397520 :          data_tmp = IAND(data_tmp, mask_left(29))
   33251      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33252      397520 :          ipack = ipack + 1
   33253      397520 :          packed_data(ipack) = pack_tmp
   33254      397520 :          data_tmp = full_data(idata)
   33255      397520 :          pack_tmp = ISHFT(data_tmp, 50)
   33256      397520 :          pack_tmp = ISHFT(pack_tmp, -43)
   33257      397520 :          idata = idata + 1
   33258      397520 :          data_tmp = full_data(idata)
   33259      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33260      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33261      397520 :          pack_tmp = ISHFT(pack_tmp, -7)
   33262      397520 :          idata = idata + 1
   33263      397520 :          data_tmp = full_data(idata)
   33264      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33265      397520 :          data_tmp = IAND(data_tmp, mask_left(7))
   33266      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33267      397520 :          ipack = ipack + 1
   33268      397520 :          packed_data(ipack) = pack_tmp
   33269      397520 :          data_tmp = full_data(idata)
   33270      397520 :          pack_tmp = ISHFT(data_tmp, 28)
   33271      397520 :          pack_tmp = ISHFT(pack_tmp, -28)
   33272      397520 :          idata = idata + 1
   33273      397520 :          data_tmp = full_data(idata)
   33274      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33275      397520 :          data_tmp = IAND(data_tmp, mask_left(28))
   33276      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33277      397520 :          ipack = ipack + 1
   33278      397520 :          packed_data(ipack) = pack_tmp
   33279      397520 :          data_tmp = full_data(idata)
   33280      397520 :          pack_tmp = ISHFT(data_tmp, 49)
   33281      397520 :          pack_tmp = ISHFT(pack_tmp, -43)
   33282      397520 :          idata = idata + 1
   33283      397520 :          data_tmp = full_data(idata)
   33284      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33285      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33286      397520 :          pack_tmp = ISHFT(pack_tmp, -6)
   33287      397520 :          idata = idata + 1
   33288      397520 :          data_tmp = full_data(idata)
   33289      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33290      397520 :          data_tmp = IAND(data_tmp, mask_left(6))
   33291      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33292      397520 :          ipack = ipack + 1
   33293      397520 :          packed_data(ipack) = pack_tmp
   33294      397520 :          data_tmp = full_data(idata)
   33295      397520 :          pack_tmp = ISHFT(data_tmp, 27)
   33296      397520 :          pack_tmp = ISHFT(pack_tmp, -27)
   33297      397520 :          idata = idata + 1
   33298      397520 :          data_tmp = full_data(idata)
   33299      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33300      397520 :          data_tmp = IAND(data_tmp, mask_left(27))
   33301      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33302      397520 :          ipack = ipack + 1
   33303      397520 :          packed_data(ipack) = pack_tmp
   33304      397520 :          data_tmp = full_data(idata)
   33305      397520 :          pack_tmp = ISHFT(data_tmp, 48)
   33306      397520 :          pack_tmp = ISHFT(pack_tmp, -43)
   33307      397520 :          idata = idata + 1
   33308      397520 :          data_tmp = full_data(idata)
   33309      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33310      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33311      397520 :          pack_tmp = ISHFT(pack_tmp, -5)
   33312      397520 :          idata = idata + 1
   33313      397520 :          data_tmp = full_data(idata)
   33314      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33315      397520 :          data_tmp = IAND(data_tmp, mask_left(5))
   33316      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33317      397520 :          ipack = ipack + 1
   33318      397520 :          packed_data(ipack) = pack_tmp
   33319      397520 :          data_tmp = full_data(idata)
   33320      397520 :          pack_tmp = ISHFT(data_tmp, 26)
   33321      397520 :          pack_tmp = ISHFT(pack_tmp, -26)
   33322      397520 :          idata = idata + 1
   33323      397520 :          data_tmp = full_data(idata)
   33324      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33325      397520 :          data_tmp = IAND(data_tmp, mask_left(26))
   33326      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33327      397520 :          ipack = ipack + 1
   33328      397520 :          packed_data(ipack) = pack_tmp
   33329      397520 :          data_tmp = full_data(idata)
   33330      397520 :          pack_tmp = ISHFT(data_tmp, 47)
   33331      397520 :          pack_tmp = ISHFT(pack_tmp, -43)
   33332      397520 :          idata = idata + 1
   33333      397520 :          data_tmp = full_data(idata)
   33334      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33335      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33336      397520 :          pack_tmp = ISHFT(pack_tmp, -4)
   33337      397520 :          idata = idata + 1
   33338      397520 :          data_tmp = full_data(idata)
   33339      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33340      397520 :          data_tmp = IAND(data_tmp, mask_left(4))
   33341      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33342      397520 :          ipack = ipack + 1
   33343      397520 :          packed_data(ipack) = pack_tmp
   33344      397520 :          data_tmp = full_data(idata)
   33345      397520 :          pack_tmp = ISHFT(data_tmp, 25)
   33346      397520 :          pack_tmp = ISHFT(pack_tmp, -25)
   33347      397520 :          idata = idata + 1
   33348      397520 :          data_tmp = full_data(idata)
   33349      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33350      397520 :          data_tmp = IAND(data_tmp, mask_left(25))
   33351      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33352      397520 :          ipack = ipack + 1
   33353      397520 :          packed_data(ipack) = pack_tmp
   33354      397520 :          data_tmp = full_data(idata)
   33355      397520 :          pack_tmp = ISHFT(data_tmp, 46)
   33356      397520 :          pack_tmp = ISHFT(pack_tmp, -43)
   33357      397520 :          idata = idata + 1
   33358      397520 :          data_tmp = full_data(idata)
   33359      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33360      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33361      397520 :          pack_tmp = ISHFT(pack_tmp, -3)
   33362      397520 :          idata = idata + 1
   33363      397520 :          data_tmp = full_data(idata)
   33364      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33365      397520 :          data_tmp = IAND(data_tmp, mask_left(3))
   33366      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33367      397520 :          ipack = ipack + 1
   33368      397520 :          packed_data(ipack) = pack_tmp
   33369      397520 :          data_tmp = full_data(idata)
   33370      397520 :          pack_tmp = ISHFT(data_tmp, 24)
   33371      397520 :          pack_tmp = ISHFT(pack_tmp, -24)
   33372      397520 :          idata = idata + 1
   33373      397520 :          data_tmp = full_data(idata)
   33374      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33375      397520 :          data_tmp = IAND(data_tmp, mask_left(24))
   33376      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33377      397520 :          ipack = ipack + 1
   33378      397520 :          packed_data(ipack) = pack_tmp
   33379      397520 :          data_tmp = full_data(idata)
   33380      397520 :          pack_tmp = ISHFT(data_tmp, 45)
   33381      397520 :          pack_tmp = ISHFT(pack_tmp, -43)
   33382      397520 :          idata = idata + 1
   33383      397520 :          data_tmp = full_data(idata)
   33384      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33385      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33386      397520 :          pack_tmp = ISHFT(pack_tmp, -2)
   33387      397520 :          idata = idata + 1
   33388      397520 :          data_tmp = full_data(idata)
   33389      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33390      397520 :          data_tmp = IAND(data_tmp, mask_left(2))
   33391      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33392      397520 :          ipack = ipack + 1
   33393      397520 :          packed_data(ipack) = pack_tmp
   33394      397520 :          data_tmp = full_data(idata)
   33395      397520 :          pack_tmp = ISHFT(data_tmp, 23)
   33396      397520 :          pack_tmp = ISHFT(pack_tmp, -23)
   33397      397520 :          idata = idata + 1
   33398      397520 :          data_tmp = full_data(idata)
   33399      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33400      397520 :          data_tmp = IAND(data_tmp, mask_left(23))
   33401      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33402      397520 :          ipack = ipack + 1
   33403      397520 :          packed_data(ipack) = pack_tmp
   33404      397520 :          data_tmp = full_data(idata)
   33405      397520 :          pack_tmp = ISHFT(data_tmp, 44)
   33406      397520 :          pack_tmp = ISHFT(pack_tmp, -43)
   33407      397520 :          idata = idata + 1
   33408      397520 :          data_tmp = full_data(idata)
   33409      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33410      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33411      397520 :          pack_tmp = ISHFT(pack_tmp, -1)
   33412      397520 :          idata = idata + 1
   33413      397520 :          data_tmp = full_data(idata)
   33414      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33415      397520 :          data_tmp = IAND(data_tmp, mask_left(1))
   33416      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33417      397520 :          ipack = ipack + 1
   33418      397520 :          packed_data(ipack) = pack_tmp
   33419      397520 :          data_tmp = full_data(idata)
   33420      397520 :          pack_tmp = ISHFT(data_tmp, 22)
   33421      397520 :          pack_tmp = ISHFT(pack_tmp, -22)
   33422      397520 :          idata = idata + 1
   33423      397520 :          data_tmp = full_data(idata)
   33424      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33425      397520 :          data_tmp = IAND(data_tmp, mask_left(22))
   33426      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33427      397520 :          ipack = ipack + 1
   33428      397520 :          packed_data(ipack) = pack_tmp
   33429      397520 :          data_tmp = full_data(idata)
   33430      397520 :          pack_tmp = ISHFT(data_tmp, 43)
   33431      397520 :          pack_tmp = ISHFT(pack_tmp, -43)
   33432      397520 :          idata = idata + 1
   33433      397520 :          data_tmp = full_data(idata)
   33434      397520 :          data_tmp = ISHFT(data_tmp, 21)
   33435      397520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33436             :          pack_tmp = ISHFT(pack_tmp, 0)
   33437      397520 :          pack_tmp = ISHFT(pack_tmp, 0)
   33438      397520 :          ipack = ipack + 1
   33439      397782 :          packed_data(ipack) = pack_tmp
   33440             :       END DO
   33441       26035 :       IF (Ndata_rep < Ndata) THEN
   33442        2240 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   33443             :       END IF
   33444       26035 :    END SUBROUTINE ints2bits_43
   33445             : 
   33446             : ! **************************************************************************************************
   33447             : !> \brief ...
   33448             : !> \param Ndata ...
   33449             : !> \param packed_data ...
   33450             : !> \param full_data ...
   33451             : ! **************************************************************************************************
   33452      115831 :    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      115831 :       ipack = 0
   33463      115831 :       idata = 0
   33464      115831 :       pack_tmp = 0
   33465      115831 :       Ndata_rep = (Ndata/64)*64
   33466      115831 :       DO kdata = 1, Ndata_rep, 64
   33467     1699191 :          idata = idata + 1
   33468     1699191 :          data_tmp = ISHFT(pack_tmp, 43)
   33469     1699191 :          ipack = ipack + 1
   33470     1699191 :          pack_tmp = packed_data(ipack)
   33471     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   33472     1699191 :          pack_tmp = ISHFT(pack_tmp, -43)
   33473     1699191 :          idata = idata + 1
   33474     1699191 :          data_tmp = ISHFT(pack_tmp, 22)
   33475     1699191 :          ipack = ipack + 1
   33476     1699191 :          pack_tmp = packed_data(ipack)
   33477     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   33478     1699191 :          pack_tmp = ISHFT(pack_tmp, -22)
   33479     1699191 :          idata = idata + 1
   33480     1699191 :          data_tmp = ISHFT(pack_tmp, 1)
   33481     1699191 :          ipack = ipack + 1
   33482     1699191 :          pack_tmp = packed_data(ipack)
   33483     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   33484     1699191 :          pack_tmp = ISHFT(pack_tmp, -1)
   33485     1699191 :          idata = idata + 1
   33486     1699191 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33487     1699191 :          full_data(idata) = data_tmp
   33488     1699191 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33489     1699191 :          idata = idata + 1
   33490     1699191 :          data_tmp = ISHFT(pack_tmp, 23)
   33491     1699191 :          ipack = ipack + 1
   33492     1699191 :          pack_tmp = packed_data(ipack)
   33493     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   33494     1699191 :          pack_tmp = ISHFT(pack_tmp, -23)
   33495     1699191 :          idata = idata + 1
   33496     1699191 :          data_tmp = ISHFT(pack_tmp, 2)
   33497     1699191 :          ipack = ipack + 1
   33498     1699191 :          pack_tmp = packed_data(ipack)
   33499     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   33500     1699191 :          pack_tmp = ISHFT(pack_tmp, -2)
   33501     1699191 :          idata = idata + 1
   33502     1699191 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33503     1699191 :          full_data(idata) = data_tmp
   33504     1699191 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33505     1699191 :          idata = idata + 1
   33506     1699191 :          data_tmp = ISHFT(pack_tmp, 24)
   33507     1699191 :          ipack = ipack + 1
   33508     1699191 :          pack_tmp = packed_data(ipack)
   33509     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   33510     1699191 :          pack_tmp = ISHFT(pack_tmp, -24)
   33511     1699191 :          idata = idata + 1
   33512     1699191 :          data_tmp = ISHFT(pack_tmp, 3)
   33513     1699191 :          ipack = ipack + 1
   33514     1699191 :          pack_tmp = packed_data(ipack)
   33515     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   33516     1699191 :          pack_tmp = ISHFT(pack_tmp, -3)
   33517     1699191 :          idata = idata + 1
   33518     1699191 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33519     1699191 :          full_data(idata) = data_tmp
   33520     1699191 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33521     1699191 :          idata = idata + 1
   33522     1699191 :          data_tmp = ISHFT(pack_tmp, 25)
   33523     1699191 :          ipack = ipack + 1
   33524     1699191 :          pack_tmp = packed_data(ipack)
   33525     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   33526     1699191 :          pack_tmp = ISHFT(pack_tmp, -25)
   33527     1699191 :          idata = idata + 1
   33528     1699191 :          data_tmp = ISHFT(pack_tmp, 4)
   33529     1699191 :          ipack = ipack + 1
   33530     1699191 :          pack_tmp = packed_data(ipack)
   33531     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   33532     1699191 :          pack_tmp = ISHFT(pack_tmp, -4)
   33533     1699191 :          idata = idata + 1
   33534     1699191 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33535     1699191 :          full_data(idata) = data_tmp
   33536     1699191 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33537     1699191 :          idata = idata + 1
   33538     1699191 :          data_tmp = ISHFT(pack_tmp, 26)
   33539     1699191 :          ipack = ipack + 1
   33540     1699191 :          pack_tmp = packed_data(ipack)
   33541     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   33542     1699191 :          pack_tmp = ISHFT(pack_tmp, -26)
   33543     1699191 :          idata = idata + 1
   33544     1699191 :          data_tmp = ISHFT(pack_tmp, 5)
   33545     1699191 :          ipack = ipack + 1
   33546     1699191 :          pack_tmp = packed_data(ipack)
   33547     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   33548     1699191 :          pack_tmp = ISHFT(pack_tmp, -5)
   33549     1699191 :          idata = idata + 1
   33550     1699191 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33551     1699191 :          full_data(idata) = data_tmp
   33552     1699191 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33553     1699191 :          idata = idata + 1
   33554     1699191 :          data_tmp = ISHFT(pack_tmp, 27)
   33555     1699191 :          ipack = ipack + 1
   33556     1699191 :          pack_tmp = packed_data(ipack)
   33557     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   33558     1699191 :          pack_tmp = ISHFT(pack_tmp, -27)
   33559     1699191 :          idata = idata + 1
   33560     1699191 :          data_tmp = ISHFT(pack_tmp, 6)
   33561     1699191 :          ipack = ipack + 1
   33562     1699191 :          pack_tmp = packed_data(ipack)
   33563     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   33564     1699191 :          pack_tmp = ISHFT(pack_tmp, -6)
   33565     1699191 :          idata = idata + 1
   33566     1699191 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33567     1699191 :          full_data(idata) = data_tmp
   33568     1699191 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33569     1699191 :          idata = idata + 1
   33570     1699191 :          data_tmp = ISHFT(pack_tmp, 28)
   33571     1699191 :          ipack = ipack + 1
   33572     1699191 :          pack_tmp = packed_data(ipack)
   33573     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   33574     1699191 :          pack_tmp = ISHFT(pack_tmp, -28)
   33575     1699191 :          idata = idata + 1
   33576     1699191 :          data_tmp = ISHFT(pack_tmp, 7)
   33577     1699191 :          ipack = ipack + 1
   33578     1699191 :          pack_tmp = packed_data(ipack)
   33579     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   33580     1699191 :          pack_tmp = ISHFT(pack_tmp, -7)
   33581     1699191 :          idata = idata + 1
   33582     1699191 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33583     1699191 :          full_data(idata) = data_tmp
   33584     1699191 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33585     1699191 :          idata = idata + 1
   33586     1699191 :          data_tmp = ISHFT(pack_tmp, 29)
   33587     1699191 :          ipack = ipack + 1
   33588     1699191 :          pack_tmp = packed_data(ipack)
   33589     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   33590     1699191 :          pack_tmp = ISHFT(pack_tmp, -29)
   33591     1699191 :          idata = idata + 1
   33592     1699191 :          data_tmp = ISHFT(pack_tmp, 8)
   33593     1699191 :          ipack = ipack + 1
   33594     1699191 :          pack_tmp = packed_data(ipack)
   33595     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   33596     1699191 :          pack_tmp = ISHFT(pack_tmp, -8)
   33597     1699191 :          idata = idata + 1
   33598     1699191 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33599     1699191 :          full_data(idata) = data_tmp
   33600     1699191 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33601     1699191 :          idata = idata + 1
   33602     1699191 :          data_tmp = ISHFT(pack_tmp, 30)
   33603     1699191 :          ipack = ipack + 1
   33604     1699191 :          pack_tmp = packed_data(ipack)
   33605     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   33606     1699191 :          pack_tmp = ISHFT(pack_tmp, -30)
   33607     1699191 :          idata = idata + 1
   33608     1699191 :          data_tmp = ISHFT(pack_tmp, 9)
   33609     1699191 :          ipack = ipack + 1
   33610     1699191 :          pack_tmp = packed_data(ipack)
   33611     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   33612     1699191 :          pack_tmp = ISHFT(pack_tmp, -9)
   33613     1699191 :          idata = idata + 1
   33614     1699191 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33615     1699191 :          full_data(idata) = data_tmp
   33616     1699191 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33617     1699191 :          idata = idata + 1
   33618     1699191 :          data_tmp = ISHFT(pack_tmp, 31)
   33619     1699191 :          ipack = ipack + 1
   33620     1699191 :          pack_tmp = packed_data(ipack)
   33621     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   33622     1699191 :          pack_tmp = ISHFT(pack_tmp, -31)
   33623     1699191 :          idata = idata + 1
   33624     1699191 :          data_tmp = ISHFT(pack_tmp, 10)
   33625     1699191 :          ipack = ipack + 1
   33626     1699191 :          pack_tmp = packed_data(ipack)
   33627     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   33628     1699191 :          pack_tmp = ISHFT(pack_tmp, -10)
   33629     1699191 :          idata = idata + 1
   33630     1699191 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33631     1699191 :          full_data(idata) = data_tmp
   33632     1699191 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33633     1699191 :          idata = idata + 1
   33634     1699191 :          data_tmp = ISHFT(pack_tmp, 32)
   33635     1699191 :          ipack = ipack + 1
   33636     1699191 :          pack_tmp = packed_data(ipack)
   33637     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   33638     1699191 :          pack_tmp = ISHFT(pack_tmp, -32)
   33639     1699191 :          idata = idata + 1
   33640     1699191 :          data_tmp = ISHFT(pack_tmp, 11)
   33641     1699191 :          ipack = ipack + 1
   33642     1699191 :          pack_tmp = packed_data(ipack)
   33643     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   33644     1699191 :          pack_tmp = ISHFT(pack_tmp, -11)
   33645     1699191 :          idata = idata + 1
   33646     1699191 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33647     1699191 :          full_data(idata) = data_tmp
   33648     1699191 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33649     1699191 :          idata = idata + 1
   33650     1699191 :          data_tmp = ISHFT(pack_tmp, 33)
   33651     1699191 :          ipack = ipack + 1
   33652     1699191 :          pack_tmp = packed_data(ipack)
   33653     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   33654     1699191 :          pack_tmp = ISHFT(pack_tmp, -33)
   33655     1699191 :          idata = idata + 1
   33656     1699191 :          data_tmp = ISHFT(pack_tmp, 12)
   33657     1699191 :          ipack = ipack + 1
   33658     1699191 :          pack_tmp = packed_data(ipack)
   33659     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   33660     1699191 :          pack_tmp = ISHFT(pack_tmp, -12)
   33661     1699191 :          idata = idata + 1
   33662     1699191 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33663     1699191 :          full_data(idata) = data_tmp
   33664     1699191 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33665     1699191 :          idata = idata + 1
   33666     1699191 :          data_tmp = ISHFT(pack_tmp, 34)
   33667     1699191 :          ipack = ipack + 1
   33668     1699191 :          pack_tmp = packed_data(ipack)
   33669     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   33670     1699191 :          pack_tmp = ISHFT(pack_tmp, -34)
   33671     1699191 :          idata = idata + 1
   33672     1699191 :          data_tmp = ISHFT(pack_tmp, 13)
   33673     1699191 :          ipack = ipack + 1
   33674     1699191 :          pack_tmp = packed_data(ipack)
   33675     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   33676     1699191 :          pack_tmp = ISHFT(pack_tmp, -13)
   33677     1699191 :          idata = idata + 1
   33678     1699191 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33679     1699191 :          full_data(idata) = data_tmp
   33680     1699191 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33681     1699191 :          idata = idata + 1
   33682     1699191 :          data_tmp = ISHFT(pack_tmp, 35)
   33683     1699191 :          ipack = ipack + 1
   33684     1699191 :          pack_tmp = packed_data(ipack)
   33685     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   33686     1699191 :          pack_tmp = ISHFT(pack_tmp, -35)
   33687     1699191 :          idata = idata + 1
   33688     1699191 :          data_tmp = ISHFT(pack_tmp, 14)
   33689     1699191 :          ipack = ipack + 1
   33690     1699191 :          pack_tmp = packed_data(ipack)
   33691     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   33692     1699191 :          pack_tmp = ISHFT(pack_tmp, -14)
   33693     1699191 :          idata = idata + 1
   33694     1699191 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33695     1699191 :          full_data(idata) = data_tmp
   33696     1699191 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33697     1699191 :          idata = idata + 1
   33698     1699191 :          data_tmp = ISHFT(pack_tmp, 36)
   33699     1699191 :          ipack = ipack + 1
   33700     1699191 :          pack_tmp = packed_data(ipack)
   33701     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   33702     1699191 :          pack_tmp = ISHFT(pack_tmp, -36)
   33703     1699191 :          idata = idata + 1
   33704     1699191 :          data_tmp = ISHFT(pack_tmp, 15)
   33705     1699191 :          ipack = ipack + 1
   33706     1699191 :          pack_tmp = packed_data(ipack)
   33707     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   33708     1699191 :          pack_tmp = ISHFT(pack_tmp, -15)
   33709     1699191 :          idata = idata + 1
   33710     1699191 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33711     1699191 :          full_data(idata) = data_tmp
   33712     1699191 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33713     1699191 :          idata = idata + 1
   33714     1699191 :          data_tmp = ISHFT(pack_tmp, 37)
   33715     1699191 :          ipack = ipack + 1
   33716     1699191 :          pack_tmp = packed_data(ipack)
   33717     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   33718     1699191 :          pack_tmp = ISHFT(pack_tmp, -37)
   33719     1699191 :          idata = idata + 1
   33720     1699191 :          data_tmp = ISHFT(pack_tmp, 16)
   33721     1699191 :          ipack = ipack + 1
   33722     1699191 :          pack_tmp = packed_data(ipack)
   33723     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   33724     1699191 :          pack_tmp = ISHFT(pack_tmp, -16)
   33725     1699191 :          idata = idata + 1
   33726     1699191 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33727     1699191 :          full_data(idata) = data_tmp
   33728     1699191 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33729     1699191 :          idata = idata + 1
   33730     1699191 :          data_tmp = ISHFT(pack_tmp, 38)
   33731     1699191 :          ipack = ipack + 1
   33732     1699191 :          pack_tmp = packed_data(ipack)
   33733     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   33734     1699191 :          pack_tmp = ISHFT(pack_tmp, -38)
   33735     1699191 :          idata = idata + 1
   33736     1699191 :          data_tmp = ISHFT(pack_tmp, 17)
   33737     1699191 :          ipack = ipack + 1
   33738     1699191 :          pack_tmp = packed_data(ipack)
   33739     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   33740     1699191 :          pack_tmp = ISHFT(pack_tmp, -17)
   33741     1699191 :          idata = idata + 1
   33742     1699191 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33743     1699191 :          full_data(idata) = data_tmp
   33744     1699191 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33745     1699191 :          idata = idata + 1
   33746     1699191 :          data_tmp = ISHFT(pack_tmp, 39)
   33747     1699191 :          ipack = ipack + 1
   33748     1699191 :          pack_tmp = packed_data(ipack)
   33749     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   33750     1699191 :          pack_tmp = ISHFT(pack_tmp, -39)
   33751     1699191 :          idata = idata + 1
   33752     1699191 :          data_tmp = ISHFT(pack_tmp, 18)
   33753     1699191 :          ipack = ipack + 1
   33754     1699191 :          pack_tmp = packed_data(ipack)
   33755     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   33756     1699191 :          pack_tmp = ISHFT(pack_tmp, -18)
   33757     1699191 :          idata = idata + 1
   33758     1699191 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33759     1699191 :          full_data(idata) = data_tmp
   33760     1699191 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33761     1699191 :          idata = idata + 1
   33762     1699191 :          data_tmp = ISHFT(pack_tmp, 40)
   33763     1699191 :          ipack = ipack + 1
   33764     1699191 :          pack_tmp = packed_data(ipack)
   33765     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   33766     1699191 :          pack_tmp = ISHFT(pack_tmp, -40)
   33767     1699191 :          idata = idata + 1
   33768     1699191 :          data_tmp = ISHFT(pack_tmp, 19)
   33769     1699191 :          ipack = ipack + 1
   33770     1699191 :          pack_tmp = packed_data(ipack)
   33771     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   33772     1699191 :          pack_tmp = ISHFT(pack_tmp, -19)
   33773     1699191 :          idata = idata + 1
   33774     1699191 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33775     1699191 :          full_data(idata) = data_tmp
   33776     1699191 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33777     1699191 :          idata = idata + 1
   33778     1699191 :          data_tmp = ISHFT(pack_tmp, 41)
   33779     1699191 :          ipack = ipack + 1
   33780     1699191 :          pack_tmp = packed_data(ipack)
   33781     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   33782     1699191 :          pack_tmp = ISHFT(pack_tmp, -41)
   33783     1699191 :          idata = idata + 1
   33784     1699191 :          data_tmp = ISHFT(pack_tmp, 20)
   33785     1699191 :          ipack = ipack + 1
   33786     1699191 :          pack_tmp = packed_data(ipack)
   33787     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   33788     1699191 :          pack_tmp = ISHFT(pack_tmp, -20)
   33789     1699191 :          idata = idata + 1
   33790     1699191 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33791     1699191 :          full_data(idata) = data_tmp
   33792     1699191 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33793     1699191 :          idata = idata + 1
   33794     1699191 :          data_tmp = ISHFT(pack_tmp, 42)
   33795     1699191 :          ipack = ipack + 1
   33796     1699191 :          pack_tmp = packed_data(ipack)
   33797     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   33798     1699191 :          pack_tmp = ISHFT(pack_tmp, -42)
   33799     1699191 :          idata = idata + 1
   33800     1699191 :          data_tmp = ISHFT(pack_tmp, 21)
   33801     1699191 :          ipack = ipack + 1
   33802     1699191 :          pack_tmp = packed_data(ipack)
   33803     1699191 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   33804     1699191 :          pack_tmp = ISHFT(pack_tmp, -21)
   33805     1699191 :          idata = idata + 1
   33806     1699191 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33807     1699191 :          full_data(idata) = data_tmp
   33808     1701599 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33809             :       END DO
   33810      115831 :       IF (Ndata_rep < Ndata) THEN
   33811       18130 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   33812             :       END IF
   33813      115831 :    END SUBROUTINE bits2ints_43
   33814             : 
   33815             : ! **************************************************************************************************
   33816             : !> \brief ...
   33817             : !> \param Ndata ...
   33818             : !> \param packed_data ...
   33819             : !> \param full_data ...
   33820             : ! **************************************************************************************************
   33821       27514 :    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       27514 :       idata = 0
   33832       27514 :       ipack = 0
   33833       27514 :       Ndata_rep = (Ndata/64)*64
   33834       27514 :       DO kdata = 1, Ndata_rep, 64
   33835      409556 :          pack_tmp = 0
   33836      409556 :          idata = idata + 1
   33837      409556 :          data_tmp = full_data(idata)
   33838      409556 :          data_tmp = ISHFT(data_tmp, 20)
   33839      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33840      409556 :          pack_tmp = ISHFT(pack_tmp, -20)
   33841      409556 :          idata = idata + 1
   33842      409556 :          data_tmp = full_data(idata)
   33843      409556 :          data_tmp = ISHFT(data_tmp, 20)
   33844      409556 :          data_tmp = IAND(data_tmp, mask_left(20))
   33845      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33846      409556 :          ipack = ipack + 1
   33847      409556 :          packed_data(ipack) = pack_tmp
   33848      409556 :          data_tmp = full_data(idata)
   33849      409556 :          pack_tmp = ISHFT(data_tmp, 40)
   33850      409556 :          pack_tmp = ISHFT(pack_tmp, -40)
   33851      409556 :          idata = idata + 1
   33852      409556 :          data_tmp = full_data(idata)
   33853      409556 :          data_tmp = ISHFT(data_tmp, 20)
   33854      409556 :          data_tmp = IAND(data_tmp, mask_left(40))
   33855      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33856      409556 :          ipack = ipack + 1
   33857      409556 :          packed_data(ipack) = pack_tmp
   33858      409556 :          data_tmp = full_data(idata)
   33859      409556 :          pack_tmp = ISHFT(data_tmp, 60)
   33860      409556 :          pack_tmp = ISHFT(pack_tmp, -44)
   33861      409556 :          idata = idata + 1
   33862      409556 :          data_tmp = full_data(idata)
   33863      409556 :          data_tmp = ISHFT(data_tmp, 20)
   33864      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33865      409556 :          pack_tmp = ISHFT(pack_tmp, -16)
   33866      409556 :          idata = idata + 1
   33867      409556 :          data_tmp = full_data(idata)
   33868      409556 :          data_tmp = ISHFT(data_tmp, 20)
   33869      409556 :          data_tmp = IAND(data_tmp, mask_left(16))
   33870      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33871      409556 :          ipack = ipack + 1
   33872      409556 :          packed_data(ipack) = pack_tmp
   33873      409556 :          data_tmp = full_data(idata)
   33874      409556 :          pack_tmp = ISHFT(data_tmp, 36)
   33875      409556 :          pack_tmp = ISHFT(pack_tmp, -36)
   33876      409556 :          idata = idata + 1
   33877      409556 :          data_tmp = full_data(idata)
   33878      409556 :          data_tmp = ISHFT(data_tmp, 20)
   33879      409556 :          data_tmp = IAND(data_tmp, mask_left(36))
   33880      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33881      409556 :          ipack = ipack + 1
   33882      409556 :          packed_data(ipack) = pack_tmp
   33883      409556 :          data_tmp = full_data(idata)
   33884      409556 :          pack_tmp = ISHFT(data_tmp, 56)
   33885      409556 :          pack_tmp = ISHFT(pack_tmp, -44)
   33886      409556 :          idata = idata + 1
   33887      409556 :          data_tmp = full_data(idata)
   33888      409556 :          data_tmp = ISHFT(data_tmp, 20)
   33889      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33890      409556 :          pack_tmp = ISHFT(pack_tmp, -12)
   33891      409556 :          idata = idata + 1
   33892      409556 :          data_tmp = full_data(idata)
   33893      409556 :          data_tmp = ISHFT(data_tmp, 20)
   33894      409556 :          data_tmp = IAND(data_tmp, mask_left(12))
   33895      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33896      409556 :          ipack = ipack + 1
   33897      409556 :          packed_data(ipack) = pack_tmp
   33898      409556 :          data_tmp = full_data(idata)
   33899      409556 :          pack_tmp = ISHFT(data_tmp, 32)
   33900      409556 :          pack_tmp = ISHFT(pack_tmp, -32)
   33901      409556 :          idata = idata + 1
   33902      409556 :          data_tmp = full_data(idata)
   33903      409556 :          data_tmp = ISHFT(data_tmp, 20)
   33904      409556 :          data_tmp = IAND(data_tmp, mask_left(32))
   33905      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33906      409556 :          ipack = ipack + 1
   33907      409556 :          packed_data(ipack) = pack_tmp
   33908      409556 :          data_tmp = full_data(idata)
   33909      409556 :          pack_tmp = ISHFT(data_tmp, 52)
   33910      409556 :          pack_tmp = ISHFT(pack_tmp, -44)
   33911      409556 :          idata = idata + 1
   33912      409556 :          data_tmp = full_data(idata)
   33913      409556 :          data_tmp = ISHFT(data_tmp, 20)
   33914      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33915      409556 :          pack_tmp = ISHFT(pack_tmp, -8)
   33916      409556 :          idata = idata + 1
   33917      409556 :          data_tmp = full_data(idata)
   33918      409556 :          data_tmp = ISHFT(data_tmp, 20)
   33919      409556 :          data_tmp = IAND(data_tmp, mask_left(8))
   33920      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33921      409556 :          ipack = ipack + 1
   33922      409556 :          packed_data(ipack) = pack_tmp
   33923      409556 :          data_tmp = full_data(idata)
   33924      409556 :          pack_tmp = ISHFT(data_tmp, 28)
   33925      409556 :          pack_tmp = ISHFT(pack_tmp, -28)
   33926      409556 :          idata = idata + 1
   33927      409556 :          data_tmp = full_data(idata)
   33928      409556 :          data_tmp = ISHFT(data_tmp, 20)
   33929      409556 :          data_tmp = IAND(data_tmp, mask_left(28))
   33930      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33931      409556 :          ipack = ipack + 1
   33932      409556 :          packed_data(ipack) = pack_tmp
   33933      409556 :          data_tmp = full_data(idata)
   33934      409556 :          pack_tmp = ISHFT(data_tmp, 48)
   33935      409556 :          pack_tmp = ISHFT(pack_tmp, -44)
   33936      409556 :          idata = idata + 1
   33937      409556 :          data_tmp = full_data(idata)
   33938      409556 :          data_tmp = ISHFT(data_tmp, 20)
   33939      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33940      409556 :          pack_tmp = ISHFT(pack_tmp, -4)
   33941      409556 :          idata = idata + 1
   33942      409556 :          data_tmp = full_data(idata)
   33943      409556 :          data_tmp = ISHFT(data_tmp, 20)
   33944      409556 :          data_tmp = IAND(data_tmp, mask_left(4))
   33945      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33946      409556 :          ipack = ipack + 1
   33947      409556 :          packed_data(ipack) = pack_tmp
   33948      409556 :          data_tmp = full_data(idata)
   33949      409556 :          pack_tmp = ISHFT(data_tmp, 24)
   33950      409556 :          pack_tmp = ISHFT(pack_tmp, -24)
   33951      409556 :          idata = idata + 1
   33952      409556 :          data_tmp = full_data(idata)
   33953      409556 :          data_tmp = ISHFT(data_tmp, 20)
   33954      409556 :          data_tmp = IAND(data_tmp, mask_left(24))
   33955      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33956      409556 :          ipack = ipack + 1
   33957      409556 :          packed_data(ipack) = pack_tmp
   33958      409556 :          data_tmp = full_data(idata)
   33959      409556 :          pack_tmp = ISHFT(data_tmp, 44)
   33960      409556 :          pack_tmp = ISHFT(pack_tmp, -44)
   33961      409556 :          idata = idata + 1
   33962      409556 :          data_tmp = full_data(idata)
   33963      409556 :          data_tmp = ISHFT(data_tmp, 20)
   33964      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33965      409556 :          pack_tmp = ISHFT(pack_tmp, 0)
   33966      409556 :          idata = idata + 1
   33967      409556 :          data_tmp = full_data(idata)
   33968             :          data_tmp = ISHFT(data_tmp, 20)
   33969      409556 :          data_tmp = IAND(data_tmp, mask_left(0))
   33970      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33971      409556 :          ipack = ipack + 1
   33972      409556 :          packed_data(ipack) = pack_tmp
   33973      409556 :          data_tmp = full_data(idata)
   33974      409556 :          pack_tmp = ISHFT(data_tmp, 20)
   33975      409556 :          pack_tmp = ISHFT(pack_tmp, -20)
   33976      409556 :          idata = idata + 1
   33977      409556 :          data_tmp = full_data(idata)
   33978      409556 :          data_tmp = ISHFT(data_tmp, 20)
   33979      409556 :          data_tmp = IAND(data_tmp, mask_left(20))
   33980      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33981      409556 :          ipack = ipack + 1
   33982      409556 :          packed_data(ipack) = pack_tmp
   33983      409556 :          data_tmp = full_data(idata)
   33984      409556 :          pack_tmp = ISHFT(data_tmp, 40)
   33985      409556 :          pack_tmp = ISHFT(pack_tmp, -40)
   33986      409556 :          idata = idata + 1
   33987      409556 :          data_tmp = full_data(idata)
   33988      409556 :          data_tmp = ISHFT(data_tmp, 20)
   33989      409556 :          data_tmp = IAND(data_tmp, mask_left(40))
   33990      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33991      409556 :          ipack = ipack + 1
   33992      409556 :          packed_data(ipack) = pack_tmp
   33993      409556 :          data_tmp = full_data(idata)
   33994      409556 :          pack_tmp = ISHFT(data_tmp, 60)
   33995      409556 :          pack_tmp = ISHFT(pack_tmp, -44)
   33996      409556 :          idata = idata + 1
   33997      409556 :          data_tmp = full_data(idata)
   33998      409556 :          data_tmp = ISHFT(data_tmp, 20)
   33999      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34000      409556 :          pack_tmp = ISHFT(pack_tmp, -16)
   34001      409556 :          idata = idata + 1
   34002      409556 :          data_tmp = full_data(idata)
   34003      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34004      409556 :          data_tmp = IAND(data_tmp, mask_left(16))
   34005      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34006      409556 :          ipack = ipack + 1
   34007      409556 :          packed_data(ipack) = pack_tmp
   34008      409556 :          data_tmp = full_data(idata)
   34009      409556 :          pack_tmp = ISHFT(data_tmp, 36)
   34010      409556 :          pack_tmp = ISHFT(pack_tmp, -36)
   34011      409556 :          idata = idata + 1
   34012      409556 :          data_tmp = full_data(idata)
   34013      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34014      409556 :          data_tmp = IAND(data_tmp, mask_left(36))
   34015      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34016      409556 :          ipack = ipack + 1
   34017      409556 :          packed_data(ipack) = pack_tmp
   34018      409556 :          data_tmp = full_data(idata)
   34019      409556 :          pack_tmp = ISHFT(data_tmp, 56)
   34020      409556 :          pack_tmp = ISHFT(pack_tmp, -44)
   34021      409556 :          idata = idata + 1
   34022      409556 :          data_tmp = full_data(idata)
   34023      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34024      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34025      409556 :          pack_tmp = ISHFT(pack_tmp, -12)
   34026      409556 :          idata = idata + 1
   34027      409556 :          data_tmp = full_data(idata)
   34028      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34029      409556 :          data_tmp = IAND(data_tmp, mask_left(12))
   34030      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34031      409556 :          ipack = ipack + 1
   34032      409556 :          packed_data(ipack) = pack_tmp
   34033      409556 :          data_tmp = full_data(idata)
   34034      409556 :          pack_tmp = ISHFT(data_tmp, 32)
   34035      409556 :          pack_tmp = ISHFT(pack_tmp, -32)
   34036      409556 :          idata = idata + 1
   34037      409556 :          data_tmp = full_data(idata)
   34038      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34039      409556 :          data_tmp = IAND(data_tmp, mask_left(32))
   34040      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34041      409556 :          ipack = ipack + 1
   34042      409556 :          packed_data(ipack) = pack_tmp
   34043      409556 :          data_tmp = full_data(idata)
   34044      409556 :          pack_tmp = ISHFT(data_tmp, 52)
   34045      409556 :          pack_tmp = ISHFT(pack_tmp, -44)
   34046      409556 :          idata = idata + 1
   34047      409556 :          data_tmp = full_data(idata)
   34048      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34049      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34050      409556 :          pack_tmp = ISHFT(pack_tmp, -8)
   34051      409556 :          idata = idata + 1
   34052      409556 :          data_tmp = full_data(idata)
   34053      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34054      409556 :          data_tmp = IAND(data_tmp, mask_left(8))
   34055      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34056      409556 :          ipack = ipack + 1
   34057      409556 :          packed_data(ipack) = pack_tmp
   34058      409556 :          data_tmp = full_data(idata)
   34059      409556 :          pack_tmp = ISHFT(data_tmp, 28)
   34060      409556 :          pack_tmp = ISHFT(pack_tmp, -28)
   34061      409556 :          idata = idata + 1
   34062      409556 :          data_tmp = full_data(idata)
   34063      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34064      409556 :          data_tmp = IAND(data_tmp, mask_left(28))
   34065      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34066      409556 :          ipack = ipack + 1
   34067      409556 :          packed_data(ipack) = pack_tmp
   34068      409556 :          data_tmp = full_data(idata)
   34069      409556 :          pack_tmp = ISHFT(data_tmp, 48)
   34070      409556 :          pack_tmp = ISHFT(pack_tmp, -44)
   34071      409556 :          idata = idata + 1
   34072      409556 :          data_tmp = full_data(idata)
   34073      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34074      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34075      409556 :          pack_tmp = ISHFT(pack_tmp, -4)
   34076      409556 :          idata = idata + 1
   34077      409556 :          data_tmp = full_data(idata)
   34078      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34079      409556 :          data_tmp = IAND(data_tmp, mask_left(4))
   34080      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34081      409556 :          ipack = ipack + 1
   34082      409556 :          packed_data(ipack) = pack_tmp
   34083      409556 :          data_tmp = full_data(idata)
   34084      409556 :          pack_tmp = ISHFT(data_tmp, 24)
   34085      409556 :          pack_tmp = ISHFT(pack_tmp, -24)
   34086      409556 :          idata = idata + 1
   34087      409556 :          data_tmp = full_data(idata)
   34088      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34089      409556 :          data_tmp = IAND(data_tmp, mask_left(24))
   34090      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34091      409556 :          ipack = ipack + 1
   34092      409556 :          packed_data(ipack) = pack_tmp
   34093      409556 :          data_tmp = full_data(idata)
   34094      409556 :          pack_tmp = ISHFT(data_tmp, 44)
   34095      409556 :          pack_tmp = ISHFT(pack_tmp, -44)
   34096      409556 :          idata = idata + 1
   34097      409556 :          data_tmp = full_data(idata)
   34098      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34099      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34100      409556 :          pack_tmp = ISHFT(pack_tmp, 0)
   34101      409556 :          idata = idata + 1
   34102      409556 :          data_tmp = full_data(idata)
   34103             :          data_tmp = ISHFT(data_tmp, 20)
   34104      409556 :          data_tmp = IAND(data_tmp, mask_left(0))
   34105      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34106      409556 :          ipack = ipack + 1
   34107      409556 :          packed_data(ipack) = pack_tmp
   34108      409556 :          data_tmp = full_data(idata)
   34109      409556 :          pack_tmp = ISHFT(data_tmp, 20)
   34110      409556 :          pack_tmp = ISHFT(pack_tmp, -20)
   34111      409556 :          idata = idata + 1
   34112      409556 :          data_tmp = full_data(idata)
   34113      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34114      409556 :          data_tmp = IAND(data_tmp, mask_left(20))
   34115      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34116      409556 :          ipack = ipack + 1
   34117      409556 :          packed_data(ipack) = pack_tmp
   34118      409556 :          data_tmp = full_data(idata)
   34119      409556 :          pack_tmp = ISHFT(data_tmp, 40)
   34120      409556 :          pack_tmp = ISHFT(pack_tmp, -40)
   34121      409556 :          idata = idata + 1
   34122      409556 :          data_tmp = full_data(idata)
   34123      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34124      409556 :          data_tmp = IAND(data_tmp, mask_left(40))
   34125      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34126      409556 :          ipack = ipack + 1
   34127      409556 :          packed_data(ipack) = pack_tmp
   34128      409556 :          data_tmp = full_data(idata)
   34129      409556 :          pack_tmp = ISHFT(data_tmp, 60)
   34130      409556 :          pack_tmp = ISHFT(pack_tmp, -44)
   34131      409556 :          idata = idata + 1
   34132      409556 :          data_tmp = full_data(idata)
   34133      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34134      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34135      409556 :          pack_tmp = ISHFT(pack_tmp, -16)
   34136      409556 :          idata = idata + 1
   34137      409556 :          data_tmp = full_data(idata)
   34138      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34139      409556 :          data_tmp = IAND(data_tmp, mask_left(16))
   34140      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34141      409556 :          ipack = ipack + 1
   34142      409556 :          packed_data(ipack) = pack_tmp
   34143      409556 :          data_tmp = full_data(idata)
   34144      409556 :          pack_tmp = ISHFT(data_tmp, 36)
   34145      409556 :          pack_tmp = ISHFT(pack_tmp, -36)
   34146      409556 :          idata = idata + 1
   34147      409556 :          data_tmp = full_data(idata)
   34148      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34149      409556 :          data_tmp = IAND(data_tmp, mask_left(36))
   34150      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34151      409556 :          ipack = ipack + 1
   34152      409556 :          packed_data(ipack) = pack_tmp
   34153      409556 :          data_tmp = full_data(idata)
   34154      409556 :          pack_tmp = ISHFT(data_tmp, 56)
   34155      409556 :          pack_tmp = ISHFT(pack_tmp, -44)
   34156      409556 :          idata = idata + 1
   34157      409556 :          data_tmp = full_data(idata)
   34158      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34159      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34160      409556 :          pack_tmp = ISHFT(pack_tmp, -12)
   34161      409556 :          idata = idata + 1
   34162      409556 :          data_tmp = full_data(idata)
   34163      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34164      409556 :          data_tmp = IAND(data_tmp, mask_left(12))
   34165      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34166      409556 :          ipack = ipack + 1
   34167      409556 :          packed_data(ipack) = pack_tmp
   34168      409556 :          data_tmp = full_data(idata)
   34169      409556 :          pack_tmp = ISHFT(data_tmp, 32)
   34170      409556 :          pack_tmp = ISHFT(pack_tmp, -32)
   34171      409556 :          idata = idata + 1
   34172      409556 :          data_tmp = full_data(idata)
   34173      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34174      409556 :          data_tmp = IAND(data_tmp, mask_left(32))
   34175      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34176      409556 :          ipack = ipack + 1
   34177      409556 :          packed_data(ipack) = pack_tmp
   34178      409556 :          data_tmp = full_data(idata)
   34179      409556 :          pack_tmp = ISHFT(data_tmp, 52)
   34180      409556 :          pack_tmp = ISHFT(pack_tmp, -44)
   34181      409556 :          idata = idata + 1
   34182      409556 :          data_tmp = full_data(idata)
   34183      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34184      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34185      409556 :          pack_tmp = ISHFT(pack_tmp, -8)
   34186      409556 :          idata = idata + 1
   34187      409556 :          data_tmp = full_data(idata)
   34188      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34189      409556 :          data_tmp = IAND(data_tmp, mask_left(8))
   34190      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34191      409556 :          ipack = ipack + 1
   34192      409556 :          packed_data(ipack) = pack_tmp
   34193      409556 :          data_tmp = full_data(idata)
   34194      409556 :          pack_tmp = ISHFT(data_tmp, 28)
   34195      409556 :          pack_tmp = ISHFT(pack_tmp, -28)
   34196      409556 :          idata = idata + 1
   34197      409556 :          data_tmp = full_data(idata)
   34198      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34199      409556 :          data_tmp = IAND(data_tmp, mask_left(28))
   34200      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34201      409556 :          ipack = ipack + 1
   34202      409556 :          packed_data(ipack) = pack_tmp
   34203      409556 :          data_tmp = full_data(idata)
   34204      409556 :          pack_tmp = ISHFT(data_tmp, 48)
   34205      409556 :          pack_tmp = ISHFT(pack_tmp, -44)
   34206      409556 :          idata = idata + 1
   34207      409556 :          data_tmp = full_data(idata)
   34208      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34209      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34210      409556 :          pack_tmp = ISHFT(pack_tmp, -4)
   34211      409556 :          idata = idata + 1
   34212      409556 :          data_tmp = full_data(idata)
   34213      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34214      409556 :          data_tmp = IAND(data_tmp, mask_left(4))
   34215      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34216      409556 :          ipack = ipack + 1
   34217      409556 :          packed_data(ipack) = pack_tmp
   34218      409556 :          data_tmp = full_data(idata)
   34219      409556 :          pack_tmp = ISHFT(data_tmp, 24)
   34220      409556 :          pack_tmp = ISHFT(pack_tmp, -24)
   34221      409556 :          idata = idata + 1
   34222      409556 :          data_tmp = full_data(idata)
   34223      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34224      409556 :          data_tmp = IAND(data_tmp, mask_left(24))
   34225      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34226      409556 :          ipack = ipack + 1
   34227      409556 :          packed_data(ipack) = pack_tmp
   34228      409556 :          data_tmp = full_data(idata)
   34229      409556 :          pack_tmp = ISHFT(data_tmp, 44)
   34230      409556 :          pack_tmp = ISHFT(pack_tmp, -44)
   34231      409556 :          idata = idata + 1
   34232      409556 :          data_tmp = full_data(idata)
   34233      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34234      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34235      409556 :          pack_tmp = ISHFT(pack_tmp, 0)
   34236      409556 :          idata = idata + 1
   34237      409556 :          data_tmp = full_data(idata)
   34238             :          data_tmp = ISHFT(data_tmp, 20)
   34239      409556 :          data_tmp = IAND(data_tmp, mask_left(0))
   34240      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34241      409556 :          ipack = ipack + 1
   34242      409556 :          packed_data(ipack) = pack_tmp
   34243      409556 :          data_tmp = full_data(idata)
   34244      409556 :          pack_tmp = ISHFT(data_tmp, 20)
   34245      409556 :          pack_tmp = ISHFT(pack_tmp, -20)
   34246      409556 :          idata = idata + 1
   34247      409556 :          data_tmp = full_data(idata)
   34248      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34249      409556 :          data_tmp = IAND(data_tmp, mask_left(20))
   34250      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34251      409556 :          ipack = ipack + 1
   34252      409556 :          packed_data(ipack) = pack_tmp
   34253      409556 :          data_tmp = full_data(idata)
   34254      409556 :          pack_tmp = ISHFT(data_tmp, 40)
   34255      409556 :          pack_tmp = ISHFT(pack_tmp, -40)
   34256      409556 :          idata = idata + 1
   34257      409556 :          data_tmp = full_data(idata)
   34258      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34259      409556 :          data_tmp = IAND(data_tmp, mask_left(40))
   34260      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34261      409556 :          ipack = ipack + 1
   34262      409556 :          packed_data(ipack) = pack_tmp
   34263      409556 :          data_tmp = full_data(idata)
   34264      409556 :          pack_tmp = ISHFT(data_tmp, 60)
   34265      409556 :          pack_tmp = ISHFT(pack_tmp, -44)
   34266      409556 :          idata = idata + 1
   34267      409556 :          data_tmp = full_data(idata)
   34268      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34269      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34270      409556 :          pack_tmp = ISHFT(pack_tmp, -16)
   34271      409556 :          idata = idata + 1
   34272      409556 :          data_tmp = full_data(idata)
   34273      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34274      409556 :          data_tmp = IAND(data_tmp, mask_left(16))
   34275      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34276      409556 :          ipack = ipack + 1
   34277      409556 :          packed_data(ipack) = pack_tmp
   34278      409556 :          data_tmp = full_data(idata)
   34279      409556 :          pack_tmp = ISHFT(data_tmp, 36)
   34280      409556 :          pack_tmp = ISHFT(pack_tmp, -36)
   34281      409556 :          idata = idata + 1
   34282      409556 :          data_tmp = full_data(idata)
   34283      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34284      409556 :          data_tmp = IAND(data_tmp, mask_left(36))
   34285      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34286      409556 :          ipack = ipack + 1
   34287      409556 :          packed_data(ipack) = pack_tmp
   34288      409556 :          data_tmp = full_data(idata)
   34289      409556 :          pack_tmp = ISHFT(data_tmp, 56)
   34290      409556 :          pack_tmp = ISHFT(pack_tmp, -44)
   34291      409556 :          idata = idata + 1
   34292      409556 :          data_tmp = full_data(idata)
   34293      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34294      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34295      409556 :          pack_tmp = ISHFT(pack_tmp, -12)
   34296      409556 :          idata = idata + 1
   34297      409556 :          data_tmp = full_data(idata)
   34298      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34299      409556 :          data_tmp = IAND(data_tmp, mask_left(12))
   34300      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34301      409556 :          ipack = ipack + 1
   34302      409556 :          packed_data(ipack) = pack_tmp
   34303      409556 :          data_tmp = full_data(idata)
   34304      409556 :          pack_tmp = ISHFT(data_tmp, 32)
   34305      409556 :          pack_tmp = ISHFT(pack_tmp, -32)
   34306      409556 :          idata = idata + 1
   34307      409556 :          data_tmp = full_data(idata)
   34308      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34309      409556 :          data_tmp = IAND(data_tmp, mask_left(32))
   34310      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34311      409556 :          ipack = ipack + 1
   34312      409556 :          packed_data(ipack) = pack_tmp
   34313      409556 :          data_tmp = full_data(idata)
   34314      409556 :          pack_tmp = ISHFT(data_tmp, 52)
   34315      409556 :          pack_tmp = ISHFT(pack_tmp, -44)
   34316      409556 :          idata = idata + 1
   34317      409556 :          data_tmp = full_data(idata)
   34318      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34319      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34320      409556 :          pack_tmp = ISHFT(pack_tmp, -8)
   34321      409556 :          idata = idata + 1
   34322      409556 :          data_tmp = full_data(idata)
   34323      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34324      409556 :          data_tmp = IAND(data_tmp, mask_left(8))
   34325      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34326      409556 :          ipack = ipack + 1
   34327      409556 :          packed_data(ipack) = pack_tmp
   34328      409556 :          data_tmp = full_data(idata)
   34329      409556 :          pack_tmp = ISHFT(data_tmp, 28)
   34330      409556 :          pack_tmp = ISHFT(pack_tmp, -28)
   34331      409556 :          idata = idata + 1
   34332      409556 :          data_tmp = full_data(idata)
   34333      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34334      409556 :          data_tmp = IAND(data_tmp, mask_left(28))
   34335      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34336      409556 :          ipack = ipack + 1
   34337      409556 :          packed_data(ipack) = pack_tmp
   34338      409556 :          data_tmp = full_data(idata)
   34339      409556 :          pack_tmp = ISHFT(data_tmp, 48)
   34340      409556 :          pack_tmp = ISHFT(pack_tmp, -44)
   34341      409556 :          idata = idata + 1
   34342      409556 :          data_tmp = full_data(idata)
   34343      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34344      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34345      409556 :          pack_tmp = ISHFT(pack_tmp, -4)
   34346      409556 :          idata = idata + 1
   34347      409556 :          data_tmp = full_data(idata)
   34348      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34349      409556 :          data_tmp = IAND(data_tmp, mask_left(4))
   34350      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34351      409556 :          ipack = ipack + 1
   34352      409556 :          packed_data(ipack) = pack_tmp
   34353      409556 :          data_tmp = full_data(idata)
   34354      409556 :          pack_tmp = ISHFT(data_tmp, 24)
   34355      409556 :          pack_tmp = ISHFT(pack_tmp, -24)
   34356      409556 :          idata = idata + 1
   34357      409556 :          data_tmp = full_data(idata)
   34358      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34359      409556 :          data_tmp = IAND(data_tmp, mask_left(24))
   34360      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34361      409556 :          ipack = ipack + 1
   34362      409556 :          packed_data(ipack) = pack_tmp
   34363      409556 :          data_tmp = full_data(idata)
   34364      409556 :          pack_tmp = ISHFT(data_tmp, 44)
   34365      409556 :          pack_tmp = ISHFT(pack_tmp, -44)
   34366      409556 :          idata = idata + 1
   34367      409556 :          data_tmp = full_data(idata)
   34368      409556 :          data_tmp = ISHFT(data_tmp, 20)
   34369      409556 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34370             :          pack_tmp = ISHFT(pack_tmp, 0)
   34371      409556 :          pack_tmp = ISHFT(pack_tmp, 0)
   34372      409556 :          ipack = ipack + 1
   34373      409569 :          packed_data(ipack) = pack_tmp
   34374             :       END DO
   34375       27514 :       IF (Ndata_rep < Ndata) THEN
   34376        3608 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   34377             :       END IF
   34378       27514 :    END SUBROUTINE ints2bits_44
   34379             : 
   34380             : ! **************************************************************************************************
   34381             : !> \brief ...
   34382             : !> \param Ndata ...
   34383             : !> \param packed_data ...
   34384             : !> \param full_data ...
   34385             : ! **************************************************************************************************
   34386      123361 :    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      123361 :       ipack = 0
   34397      123361 :       idata = 0
   34398      123361 :       pack_tmp = 0
   34399      123361 :       Ndata_rep = (Ndata/64)*64
   34400      123361 :       DO kdata = 1, Ndata_rep, 64
   34401     1766801 :          idata = idata + 1
   34402     1766801 :          data_tmp = ISHFT(pack_tmp, 44)
   34403     1766801 :          ipack = ipack + 1
   34404     1766801 :          pack_tmp = packed_data(ipack)
   34405     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   34406     1766801 :          pack_tmp = ISHFT(pack_tmp, -44)
   34407     1766801 :          idata = idata + 1
   34408     1766801 :          data_tmp = ISHFT(pack_tmp, 24)
   34409     1766801 :          ipack = ipack + 1
   34410     1766801 :          pack_tmp = packed_data(ipack)
   34411     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   34412     1766801 :          pack_tmp = ISHFT(pack_tmp, -24)
   34413     1766801 :          idata = idata + 1
   34414     1766801 :          data_tmp = ISHFT(pack_tmp, 4)
   34415     1766801 :          ipack = ipack + 1
   34416     1766801 :          pack_tmp = packed_data(ipack)
   34417     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   34418     1766801 :          pack_tmp = ISHFT(pack_tmp, -4)
   34419     1766801 :          idata = idata + 1
   34420     1766801 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34421     1766801 :          full_data(idata) = data_tmp
   34422     1766801 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34423     1766801 :          idata = idata + 1
   34424     1766801 :          data_tmp = ISHFT(pack_tmp, 28)
   34425     1766801 :          ipack = ipack + 1
   34426     1766801 :          pack_tmp = packed_data(ipack)
   34427     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   34428     1766801 :          pack_tmp = ISHFT(pack_tmp, -28)
   34429     1766801 :          idata = idata + 1
   34430     1766801 :          data_tmp = ISHFT(pack_tmp, 8)
   34431     1766801 :          ipack = ipack + 1
   34432     1766801 :          pack_tmp = packed_data(ipack)
   34433     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   34434     1766801 :          pack_tmp = ISHFT(pack_tmp, -8)
   34435     1766801 :          idata = idata + 1
   34436     1766801 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34437     1766801 :          full_data(idata) = data_tmp
   34438     1766801 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34439     1766801 :          idata = idata + 1
   34440     1766801 :          data_tmp = ISHFT(pack_tmp, 32)
   34441     1766801 :          ipack = ipack + 1
   34442     1766801 :          pack_tmp = packed_data(ipack)
   34443     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   34444     1766801 :          pack_tmp = ISHFT(pack_tmp, -32)
   34445     1766801 :          idata = idata + 1
   34446     1766801 :          data_tmp = ISHFT(pack_tmp, 12)
   34447     1766801 :          ipack = ipack + 1
   34448     1766801 :          pack_tmp = packed_data(ipack)
   34449     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   34450     1766801 :          pack_tmp = ISHFT(pack_tmp, -12)
   34451     1766801 :          idata = idata + 1
   34452     1766801 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34453     1766801 :          full_data(idata) = data_tmp
   34454     1766801 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34455     1766801 :          idata = idata + 1
   34456     1766801 :          data_tmp = ISHFT(pack_tmp, 36)
   34457     1766801 :          ipack = ipack + 1
   34458     1766801 :          pack_tmp = packed_data(ipack)
   34459     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   34460     1766801 :          pack_tmp = ISHFT(pack_tmp, -36)
   34461     1766801 :          idata = idata + 1
   34462     1766801 :          data_tmp = ISHFT(pack_tmp, 16)
   34463     1766801 :          ipack = ipack + 1
   34464     1766801 :          pack_tmp = packed_data(ipack)
   34465     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   34466     1766801 :          pack_tmp = ISHFT(pack_tmp, -16)
   34467     1766801 :          idata = idata + 1
   34468     1766801 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34469     1766801 :          full_data(idata) = data_tmp
   34470     1766801 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34471     1766801 :          idata = idata + 1
   34472     1766801 :          data_tmp = ISHFT(pack_tmp, 40)
   34473     1766801 :          ipack = ipack + 1
   34474     1766801 :          pack_tmp = packed_data(ipack)
   34475     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   34476     1766801 :          pack_tmp = ISHFT(pack_tmp, -40)
   34477     1766801 :          idata = idata + 1
   34478     1766801 :          data_tmp = ISHFT(pack_tmp, 20)
   34479     1766801 :          ipack = ipack + 1
   34480     1766801 :          pack_tmp = packed_data(ipack)
   34481     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   34482     1766801 :          pack_tmp = ISHFT(pack_tmp, -20)
   34483     1766801 :          idata = idata + 1
   34484     1766801 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34485     1766801 :          full_data(idata) = data_tmp
   34486     1766801 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34487     1766801 :          idata = idata + 1
   34488     1766801 :          data_tmp = ISHFT(pack_tmp, 44)
   34489     1766801 :          ipack = ipack + 1
   34490     1766801 :          pack_tmp = packed_data(ipack)
   34491     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   34492     1766801 :          pack_tmp = ISHFT(pack_tmp, -44)
   34493     1766801 :          idata = idata + 1
   34494     1766801 :          data_tmp = ISHFT(pack_tmp, 24)
   34495     1766801 :          ipack = ipack + 1
   34496     1766801 :          pack_tmp = packed_data(ipack)
   34497     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   34498     1766801 :          pack_tmp = ISHFT(pack_tmp, -24)
   34499     1766801 :          idata = idata + 1
   34500     1766801 :          data_tmp = ISHFT(pack_tmp, 4)
   34501     1766801 :          ipack = ipack + 1
   34502     1766801 :          pack_tmp = packed_data(ipack)
   34503     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   34504     1766801 :          pack_tmp = ISHFT(pack_tmp, -4)
   34505     1766801 :          idata = idata + 1
   34506     1766801 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34507     1766801 :          full_data(idata) = data_tmp
   34508     1766801 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34509     1766801 :          idata = idata + 1
   34510     1766801 :          data_tmp = ISHFT(pack_tmp, 28)
   34511     1766801 :          ipack = ipack + 1
   34512     1766801 :          pack_tmp = packed_data(ipack)
   34513     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   34514     1766801 :          pack_tmp = ISHFT(pack_tmp, -28)
   34515     1766801 :          idata = idata + 1
   34516     1766801 :          data_tmp = ISHFT(pack_tmp, 8)
   34517     1766801 :          ipack = ipack + 1
   34518     1766801 :          pack_tmp = packed_data(ipack)
   34519     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   34520     1766801 :          pack_tmp = ISHFT(pack_tmp, -8)
   34521     1766801 :          idata = idata + 1
   34522     1766801 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34523     1766801 :          full_data(idata) = data_tmp
   34524     1766801 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34525     1766801 :          idata = idata + 1
   34526     1766801 :          data_tmp = ISHFT(pack_tmp, 32)
   34527     1766801 :          ipack = ipack + 1
   34528     1766801 :          pack_tmp = packed_data(ipack)
   34529     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   34530     1766801 :          pack_tmp = ISHFT(pack_tmp, -32)
   34531     1766801 :          idata = idata + 1
   34532     1766801 :          data_tmp = ISHFT(pack_tmp, 12)
   34533     1766801 :          ipack = ipack + 1
   34534     1766801 :          pack_tmp = packed_data(ipack)
   34535     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   34536     1766801 :          pack_tmp = ISHFT(pack_tmp, -12)
   34537     1766801 :          idata = idata + 1
   34538     1766801 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34539     1766801 :          full_data(idata) = data_tmp
   34540     1766801 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34541     1766801 :          idata = idata + 1
   34542     1766801 :          data_tmp = ISHFT(pack_tmp, 36)
   34543     1766801 :          ipack = ipack + 1
   34544     1766801 :          pack_tmp = packed_data(ipack)
   34545     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   34546     1766801 :          pack_tmp = ISHFT(pack_tmp, -36)
   34547     1766801 :          idata = idata + 1
   34548     1766801 :          data_tmp = ISHFT(pack_tmp, 16)
   34549     1766801 :          ipack = ipack + 1
   34550     1766801 :          pack_tmp = packed_data(ipack)
   34551     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   34552     1766801 :          pack_tmp = ISHFT(pack_tmp, -16)
   34553     1766801 :          idata = idata + 1
   34554     1766801 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34555     1766801 :          full_data(idata) = data_tmp
   34556     1766801 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34557     1766801 :          idata = idata + 1
   34558     1766801 :          data_tmp = ISHFT(pack_tmp, 40)
   34559     1766801 :          ipack = ipack + 1
   34560     1766801 :          pack_tmp = packed_data(ipack)
   34561     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   34562     1766801 :          pack_tmp = ISHFT(pack_tmp, -40)
   34563     1766801 :          idata = idata + 1
   34564     1766801 :          data_tmp = ISHFT(pack_tmp, 20)
   34565     1766801 :          ipack = ipack + 1
   34566     1766801 :          pack_tmp = packed_data(ipack)
   34567     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   34568     1766801 :          pack_tmp = ISHFT(pack_tmp, -20)
   34569     1766801 :          idata = idata + 1
   34570     1766801 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34571     1766801 :          full_data(idata) = data_tmp
   34572     1766801 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34573     1766801 :          idata = idata + 1
   34574     1766801 :          data_tmp = ISHFT(pack_tmp, 44)
   34575     1766801 :          ipack = ipack + 1
   34576     1766801 :          pack_tmp = packed_data(ipack)
   34577     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   34578     1766801 :          pack_tmp = ISHFT(pack_tmp, -44)
   34579     1766801 :          idata = idata + 1
   34580     1766801 :          data_tmp = ISHFT(pack_tmp, 24)
   34581     1766801 :          ipack = ipack + 1
   34582     1766801 :          pack_tmp = packed_data(ipack)
   34583     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   34584     1766801 :          pack_tmp = ISHFT(pack_tmp, -24)
   34585     1766801 :          idata = idata + 1
   34586     1766801 :          data_tmp = ISHFT(pack_tmp, 4)
   34587     1766801 :          ipack = ipack + 1
   34588     1766801 :          pack_tmp = packed_data(ipack)
   34589     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   34590     1766801 :          pack_tmp = ISHFT(pack_tmp, -4)
   34591     1766801 :          idata = idata + 1
   34592     1766801 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34593     1766801 :          full_data(idata) = data_tmp
   34594     1766801 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34595     1766801 :          idata = idata + 1
   34596     1766801 :          data_tmp = ISHFT(pack_tmp, 28)
   34597     1766801 :          ipack = ipack + 1
   34598     1766801 :          pack_tmp = packed_data(ipack)
   34599     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   34600     1766801 :          pack_tmp = ISHFT(pack_tmp, -28)
   34601     1766801 :          idata = idata + 1
   34602     1766801 :          data_tmp = ISHFT(pack_tmp, 8)
   34603     1766801 :          ipack = ipack + 1
   34604     1766801 :          pack_tmp = packed_data(ipack)
   34605     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   34606     1766801 :          pack_tmp = ISHFT(pack_tmp, -8)
   34607     1766801 :          idata = idata + 1
   34608     1766801 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34609     1766801 :          full_data(idata) = data_tmp
   34610     1766801 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34611     1766801 :          idata = idata + 1
   34612     1766801 :          data_tmp = ISHFT(pack_tmp, 32)
   34613     1766801 :          ipack = ipack + 1
   34614     1766801 :          pack_tmp = packed_data(ipack)
   34615     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   34616     1766801 :          pack_tmp = ISHFT(pack_tmp, -32)
   34617     1766801 :          idata = idata + 1
   34618     1766801 :          data_tmp = ISHFT(pack_tmp, 12)
   34619     1766801 :          ipack = ipack + 1
   34620     1766801 :          pack_tmp = packed_data(ipack)
   34621     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   34622     1766801 :          pack_tmp = ISHFT(pack_tmp, -12)
   34623     1766801 :          idata = idata + 1
   34624     1766801 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34625     1766801 :          full_data(idata) = data_tmp
   34626     1766801 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34627     1766801 :          idata = idata + 1
   34628     1766801 :          data_tmp = ISHFT(pack_tmp, 36)
   34629     1766801 :          ipack = ipack + 1
   34630     1766801 :          pack_tmp = packed_data(ipack)
   34631     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   34632     1766801 :          pack_tmp = ISHFT(pack_tmp, -36)
   34633     1766801 :          idata = idata + 1
   34634     1766801 :          data_tmp = ISHFT(pack_tmp, 16)
   34635     1766801 :          ipack = ipack + 1
   34636     1766801 :          pack_tmp = packed_data(ipack)
   34637     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   34638     1766801 :          pack_tmp = ISHFT(pack_tmp, -16)
   34639     1766801 :          idata = idata + 1
   34640     1766801 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34641     1766801 :          full_data(idata) = data_tmp
   34642     1766801 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34643     1766801 :          idata = idata + 1
   34644     1766801 :          data_tmp = ISHFT(pack_tmp, 40)
   34645     1766801 :          ipack = ipack + 1
   34646     1766801 :          pack_tmp = packed_data(ipack)
   34647     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   34648     1766801 :          pack_tmp = ISHFT(pack_tmp, -40)
   34649     1766801 :          idata = idata + 1
   34650     1766801 :          data_tmp = ISHFT(pack_tmp, 20)
   34651     1766801 :          ipack = ipack + 1
   34652     1766801 :          pack_tmp = packed_data(ipack)
   34653     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   34654     1766801 :          pack_tmp = ISHFT(pack_tmp, -20)
   34655     1766801 :          idata = idata + 1
   34656     1766801 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34657     1766801 :          full_data(idata) = data_tmp
   34658     1766801 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34659     1766801 :          idata = idata + 1
   34660     1766801 :          data_tmp = ISHFT(pack_tmp, 44)
   34661     1766801 :          ipack = ipack + 1
   34662     1766801 :          pack_tmp = packed_data(ipack)
   34663     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   34664     1766801 :          pack_tmp = ISHFT(pack_tmp, -44)
   34665     1766801 :          idata = idata + 1
   34666     1766801 :          data_tmp = ISHFT(pack_tmp, 24)
   34667     1766801 :          ipack = ipack + 1
   34668     1766801 :          pack_tmp = packed_data(ipack)
   34669     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   34670     1766801 :          pack_tmp = ISHFT(pack_tmp, -24)
   34671     1766801 :          idata = idata + 1
   34672     1766801 :          data_tmp = ISHFT(pack_tmp, 4)
   34673     1766801 :          ipack = ipack + 1
   34674     1766801 :          pack_tmp = packed_data(ipack)
   34675     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   34676     1766801 :          pack_tmp = ISHFT(pack_tmp, -4)
   34677     1766801 :          idata = idata + 1
   34678     1766801 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34679     1766801 :          full_data(idata) = data_tmp
   34680     1766801 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34681     1766801 :          idata = idata + 1
   34682     1766801 :          data_tmp = ISHFT(pack_tmp, 28)
   34683     1766801 :          ipack = ipack + 1
   34684     1766801 :          pack_tmp = packed_data(ipack)
   34685     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   34686     1766801 :          pack_tmp = ISHFT(pack_tmp, -28)
   34687     1766801 :          idata = idata + 1
   34688     1766801 :          data_tmp = ISHFT(pack_tmp, 8)
   34689     1766801 :          ipack = ipack + 1
   34690     1766801 :          pack_tmp = packed_data(ipack)
   34691     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   34692     1766801 :          pack_tmp = ISHFT(pack_tmp, -8)
   34693     1766801 :          idata = idata + 1
   34694     1766801 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34695     1766801 :          full_data(idata) = data_tmp
   34696     1766801 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34697     1766801 :          idata = idata + 1
   34698     1766801 :          data_tmp = ISHFT(pack_tmp, 32)
   34699     1766801 :          ipack = ipack + 1
   34700     1766801 :          pack_tmp = packed_data(ipack)
   34701     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   34702     1766801 :          pack_tmp = ISHFT(pack_tmp, -32)
   34703     1766801 :          idata = idata + 1
   34704     1766801 :          data_tmp = ISHFT(pack_tmp, 12)
   34705     1766801 :          ipack = ipack + 1
   34706     1766801 :          pack_tmp = packed_data(ipack)
   34707     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   34708     1766801 :          pack_tmp = ISHFT(pack_tmp, -12)
   34709     1766801 :          idata = idata + 1
   34710     1766801 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34711     1766801 :          full_data(idata) = data_tmp
   34712     1766801 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34713     1766801 :          idata = idata + 1
   34714     1766801 :          data_tmp = ISHFT(pack_tmp, 36)
   34715     1766801 :          ipack = ipack + 1
   34716     1766801 :          pack_tmp = packed_data(ipack)
   34717     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   34718     1766801 :          pack_tmp = ISHFT(pack_tmp, -36)
   34719     1766801 :          idata = idata + 1
   34720     1766801 :          data_tmp = ISHFT(pack_tmp, 16)
   34721     1766801 :          ipack = ipack + 1
   34722     1766801 :          pack_tmp = packed_data(ipack)
   34723     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   34724     1766801 :          pack_tmp = ISHFT(pack_tmp, -16)
   34725     1766801 :          idata = idata + 1
   34726     1766801 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34727     1766801 :          full_data(idata) = data_tmp
   34728     1766801 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34729     1766801 :          idata = idata + 1
   34730     1766801 :          data_tmp = ISHFT(pack_tmp, 40)
   34731     1766801 :          ipack = ipack + 1
   34732     1766801 :          pack_tmp = packed_data(ipack)
   34733     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   34734     1766801 :          pack_tmp = ISHFT(pack_tmp, -40)
   34735     1766801 :          idata = idata + 1
   34736     1766801 :          data_tmp = ISHFT(pack_tmp, 20)
   34737     1766801 :          ipack = ipack + 1
   34738     1766801 :          pack_tmp = packed_data(ipack)
   34739     1766801 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   34740     1766801 :          pack_tmp = ISHFT(pack_tmp, -20)
   34741     1766801 :          idata = idata + 1
   34742     1766801 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34743     1766801 :          full_data(idata) = data_tmp
   34744     1767053 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34745             :       END DO
   34746      123361 :       IF (Ndata_rep < Ndata) THEN
   34747       24350 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   34748             :       END IF
   34749      123361 :    END SUBROUTINE bits2ints_44
   34750             : 
   34751             : ! **************************************************************************************************
   34752             : !> \brief ...
   34753             : !> \param Ndata ...
   34754             : !> \param packed_data ...
   34755             : !> \param full_data ...
   34756             : ! **************************************************************************************************
   34757       29149 :    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       29149 :       idata = 0
   34768       29149 :       ipack = 0
   34769       29149 :       Ndata_rep = (Ndata/64)*64
   34770       29149 :       DO kdata = 1, Ndata_rep, 64
   34771      424003 :          pack_tmp = 0
   34772      424003 :          idata = idata + 1
   34773      424003 :          data_tmp = full_data(idata)
   34774      424003 :          data_tmp = ISHFT(data_tmp, 19)
   34775      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34776      424003 :          pack_tmp = ISHFT(pack_tmp, -19)
   34777      424003 :          idata = idata + 1
   34778      424003 :          data_tmp = full_data(idata)
   34779      424003 :          data_tmp = ISHFT(data_tmp, 19)
   34780      424003 :          data_tmp = IAND(data_tmp, mask_left(19))
   34781      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34782      424003 :          ipack = ipack + 1
   34783      424003 :          packed_data(ipack) = pack_tmp
   34784      424003 :          data_tmp = full_data(idata)
   34785      424003 :          pack_tmp = ISHFT(data_tmp, 38)
   34786      424003 :          pack_tmp = ISHFT(pack_tmp, -38)
   34787      424003 :          idata = idata + 1
   34788      424003 :          data_tmp = full_data(idata)
   34789      424003 :          data_tmp = ISHFT(data_tmp, 19)
   34790      424003 :          data_tmp = IAND(data_tmp, mask_left(38))
   34791      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34792      424003 :          ipack = ipack + 1
   34793      424003 :          packed_data(ipack) = pack_tmp
   34794      424003 :          data_tmp = full_data(idata)
   34795      424003 :          pack_tmp = ISHFT(data_tmp, 57)
   34796      424003 :          pack_tmp = ISHFT(pack_tmp, -45)
   34797      424003 :          idata = idata + 1
   34798      424003 :          data_tmp = full_data(idata)
   34799      424003 :          data_tmp = ISHFT(data_tmp, 19)
   34800      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34801      424003 :          pack_tmp = ISHFT(pack_tmp, -12)
   34802      424003 :          idata = idata + 1
   34803      424003 :          data_tmp = full_data(idata)
   34804      424003 :          data_tmp = ISHFT(data_tmp, 19)
   34805      424003 :          data_tmp = IAND(data_tmp, mask_left(12))
   34806      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34807      424003 :          ipack = ipack + 1
   34808      424003 :          packed_data(ipack) = pack_tmp
   34809      424003 :          data_tmp = full_data(idata)
   34810      424003 :          pack_tmp = ISHFT(data_tmp, 31)
   34811      424003 :          pack_tmp = ISHFT(pack_tmp, -31)
   34812      424003 :          idata = idata + 1
   34813      424003 :          data_tmp = full_data(idata)
   34814      424003 :          data_tmp = ISHFT(data_tmp, 19)
   34815      424003 :          data_tmp = IAND(data_tmp, mask_left(31))
   34816      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34817      424003 :          ipack = ipack + 1
   34818      424003 :          packed_data(ipack) = pack_tmp
   34819      424003 :          data_tmp = full_data(idata)
   34820      424003 :          pack_tmp = ISHFT(data_tmp, 50)
   34821      424003 :          pack_tmp = ISHFT(pack_tmp, -45)
   34822      424003 :          idata = idata + 1
   34823      424003 :          data_tmp = full_data(idata)
   34824      424003 :          data_tmp = ISHFT(data_tmp, 19)
   34825      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34826      424003 :          pack_tmp = ISHFT(pack_tmp, -5)
   34827      424003 :          idata = idata + 1
   34828      424003 :          data_tmp = full_data(idata)
   34829      424003 :          data_tmp = ISHFT(data_tmp, 19)
   34830      424003 :          data_tmp = IAND(data_tmp, mask_left(5))
   34831      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34832      424003 :          ipack = ipack + 1
   34833      424003 :          packed_data(ipack) = pack_tmp
   34834      424003 :          data_tmp = full_data(idata)
   34835      424003 :          pack_tmp = ISHFT(data_tmp, 24)
   34836      424003 :          pack_tmp = ISHFT(pack_tmp, -24)
   34837      424003 :          idata = idata + 1
   34838      424003 :          data_tmp = full_data(idata)
   34839      424003 :          data_tmp = ISHFT(data_tmp, 19)
   34840      424003 :          data_tmp = IAND(data_tmp, mask_left(24))
   34841      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34842      424003 :          ipack = ipack + 1
   34843      424003 :          packed_data(ipack) = pack_tmp
   34844      424003 :          data_tmp = full_data(idata)
   34845      424003 :          pack_tmp = ISHFT(data_tmp, 43)
   34846      424003 :          pack_tmp = ISHFT(pack_tmp, -43)
   34847      424003 :          idata = idata + 1
   34848      424003 :          data_tmp = full_data(idata)
   34849      424003 :          data_tmp = ISHFT(data_tmp, 19)
   34850      424003 :          data_tmp = IAND(data_tmp, mask_left(43))
   34851      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34852      424003 :          ipack = ipack + 1
   34853      424003 :          packed_data(ipack) = pack_tmp
   34854      424003 :          data_tmp = full_data(idata)
   34855      424003 :          pack_tmp = ISHFT(data_tmp, 62)
   34856      424003 :          pack_tmp = ISHFT(pack_tmp, -45)
   34857      424003 :          idata = idata + 1
   34858      424003 :          data_tmp = full_data(idata)
   34859      424003 :          data_tmp = ISHFT(data_tmp, 19)
   34860      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34861      424003 :          pack_tmp = ISHFT(pack_tmp, -17)
   34862      424003 :          idata = idata + 1
   34863      424003 :          data_tmp = full_data(idata)
   34864      424003 :          data_tmp = ISHFT(data_tmp, 19)
   34865      424003 :          data_tmp = IAND(data_tmp, mask_left(17))
   34866      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34867      424003 :          ipack = ipack + 1
   34868      424003 :          packed_data(ipack) = pack_tmp
   34869      424003 :          data_tmp = full_data(idata)
   34870      424003 :          pack_tmp = ISHFT(data_tmp, 36)
   34871      424003 :          pack_tmp = ISHFT(pack_tmp, -36)
   34872      424003 :          idata = idata + 1
   34873      424003 :          data_tmp = full_data(idata)
   34874      424003 :          data_tmp = ISHFT(data_tmp, 19)
   34875      424003 :          data_tmp = IAND(data_tmp, mask_left(36))
   34876      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34877      424003 :          ipack = ipack + 1
   34878      424003 :          packed_data(ipack) = pack_tmp
   34879      424003 :          data_tmp = full_data(idata)
   34880      424003 :          pack_tmp = ISHFT(data_tmp, 55)
   34881      424003 :          pack_tmp = ISHFT(pack_tmp, -45)
   34882      424003 :          idata = idata + 1
   34883      424003 :          data_tmp = full_data(idata)
   34884      424003 :          data_tmp = ISHFT(data_tmp, 19)
   34885      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34886      424003 :          pack_tmp = ISHFT(pack_tmp, -10)
   34887      424003 :          idata = idata + 1
   34888      424003 :          data_tmp = full_data(idata)
   34889      424003 :          data_tmp = ISHFT(data_tmp, 19)
   34890      424003 :          data_tmp = IAND(data_tmp, mask_left(10))
   34891      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34892      424003 :          ipack = ipack + 1
   34893      424003 :          packed_data(ipack) = pack_tmp
   34894      424003 :          data_tmp = full_data(idata)
   34895      424003 :          pack_tmp = ISHFT(data_tmp, 29)
   34896      424003 :          pack_tmp = ISHFT(pack_tmp, -29)
   34897      424003 :          idata = idata + 1
   34898      424003 :          data_tmp = full_data(idata)
   34899      424003 :          data_tmp = ISHFT(data_tmp, 19)
   34900      424003 :          data_tmp = IAND(data_tmp, mask_left(29))
   34901      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34902      424003 :          ipack = ipack + 1
   34903      424003 :          packed_data(ipack) = pack_tmp
   34904      424003 :          data_tmp = full_data(idata)
   34905      424003 :          pack_tmp = ISHFT(data_tmp, 48)
   34906      424003 :          pack_tmp = ISHFT(pack_tmp, -45)
   34907      424003 :          idata = idata + 1
   34908      424003 :          data_tmp = full_data(idata)
   34909      424003 :          data_tmp = ISHFT(data_tmp, 19)
   34910      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34911      424003 :          pack_tmp = ISHFT(pack_tmp, -3)
   34912      424003 :          idata = idata + 1
   34913      424003 :          data_tmp = full_data(idata)
   34914      424003 :          data_tmp = ISHFT(data_tmp, 19)
   34915      424003 :          data_tmp = IAND(data_tmp, mask_left(3))
   34916      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34917      424003 :          ipack = ipack + 1
   34918      424003 :          packed_data(ipack) = pack_tmp
   34919      424003 :          data_tmp = full_data(idata)
   34920      424003 :          pack_tmp = ISHFT(data_tmp, 22)
   34921      424003 :          pack_tmp = ISHFT(pack_tmp, -22)
   34922      424003 :          idata = idata + 1
   34923      424003 :          data_tmp = full_data(idata)
   34924      424003 :          data_tmp = ISHFT(data_tmp, 19)
   34925      424003 :          data_tmp = IAND(data_tmp, mask_left(22))
   34926      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34927      424003 :          ipack = ipack + 1
   34928      424003 :          packed_data(ipack) = pack_tmp
   34929      424003 :          data_tmp = full_data(idata)
   34930      424003 :          pack_tmp = ISHFT(data_tmp, 41)
   34931      424003 :          pack_tmp = ISHFT(pack_tmp, -41)
   34932      424003 :          idata = idata + 1
   34933      424003 :          data_tmp = full_data(idata)
   34934      424003 :          data_tmp = ISHFT(data_tmp, 19)
   34935      424003 :          data_tmp = IAND(data_tmp, mask_left(41))
   34936      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34937      424003 :          ipack = ipack + 1
   34938      424003 :          packed_data(ipack) = pack_tmp
   34939      424003 :          data_tmp = full_data(idata)
   34940      424003 :          pack_tmp = ISHFT(data_tmp, 60)
   34941      424003 :          pack_tmp = ISHFT(pack_tmp, -45)
   34942      424003 :          idata = idata + 1
   34943      424003 :          data_tmp = full_data(idata)
   34944      424003 :          data_tmp = ISHFT(data_tmp, 19)
   34945      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34946      424003 :          pack_tmp = ISHFT(pack_tmp, -15)
   34947      424003 :          idata = idata + 1
   34948      424003 :          data_tmp = full_data(idata)
   34949      424003 :          data_tmp = ISHFT(data_tmp, 19)
   34950      424003 :          data_tmp = IAND(data_tmp, mask_left(15))
   34951      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34952      424003 :          ipack = ipack + 1
   34953      424003 :          packed_data(ipack) = pack_tmp
   34954      424003 :          data_tmp = full_data(idata)
   34955      424003 :          pack_tmp = ISHFT(data_tmp, 34)
   34956      424003 :          pack_tmp = ISHFT(pack_tmp, -34)
   34957      424003 :          idata = idata + 1
   34958      424003 :          data_tmp = full_data(idata)
   34959      424003 :          data_tmp = ISHFT(data_tmp, 19)
   34960      424003 :          data_tmp = IAND(data_tmp, mask_left(34))
   34961      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34962      424003 :          ipack = ipack + 1
   34963      424003 :          packed_data(ipack) = pack_tmp
   34964      424003 :          data_tmp = full_data(idata)
   34965      424003 :          pack_tmp = ISHFT(data_tmp, 53)
   34966      424003 :          pack_tmp = ISHFT(pack_tmp, -45)
   34967      424003 :          idata = idata + 1
   34968      424003 :          data_tmp = full_data(idata)
   34969      424003 :          data_tmp = ISHFT(data_tmp, 19)
   34970      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34971      424003 :          pack_tmp = ISHFT(pack_tmp, -8)
   34972      424003 :          idata = idata + 1
   34973      424003 :          data_tmp = full_data(idata)
   34974      424003 :          data_tmp = ISHFT(data_tmp, 19)
   34975      424003 :          data_tmp = IAND(data_tmp, mask_left(8))
   34976      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34977      424003 :          ipack = ipack + 1
   34978      424003 :          packed_data(ipack) = pack_tmp
   34979      424003 :          data_tmp = full_data(idata)
   34980      424003 :          pack_tmp = ISHFT(data_tmp, 27)
   34981      424003 :          pack_tmp = ISHFT(pack_tmp, -27)
   34982      424003 :          idata = idata + 1
   34983      424003 :          data_tmp = full_data(idata)
   34984      424003 :          data_tmp = ISHFT(data_tmp, 19)
   34985      424003 :          data_tmp = IAND(data_tmp, mask_left(27))
   34986      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34987      424003 :          ipack = ipack + 1
   34988      424003 :          packed_data(ipack) = pack_tmp
   34989      424003 :          data_tmp = full_data(idata)
   34990      424003 :          pack_tmp = ISHFT(data_tmp, 46)
   34991      424003 :          pack_tmp = ISHFT(pack_tmp, -45)
   34992      424003 :          idata = idata + 1
   34993      424003 :          data_tmp = full_data(idata)
   34994      424003 :          data_tmp = ISHFT(data_tmp, 19)
   34995      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34996      424003 :          pack_tmp = ISHFT(pack_tmp, -1)
   34997      424003 :          idata = idata + 1
   34998      424003 :          data_tmp = full_data(idata)
   34999      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35000      424003 :          data_tmp = IAND(data_tmp, mask_left(1))
   35001      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35002      424003 :          ipack = ipack + 1
   35003      424003 :          packed_data(ipack) = pack_tmp
   35004      424003 :          data_tmp = full_data(idata)
   35005      424003 :          pack_tmp = ISHFT(data_tmp, 20)
   35006      424003 :          pack_tmp = ISHFT(pack_tmp, -20)
   35007      424003 :          idata = idata + 1
   35008      424003 :          data_tmp = full_data(idata)
   35009      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35010      424003 :          data_tmp = IAND(data_tmp, mask_left(20))
   35011      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35012      424003 :          ipack = ipack + 1
   35013      424003 :          packed_data(ipack) = pack_tmp
   35014      424003 :          data_tmp = full_data(idata)
   35015      424003 :          pack_tmp = ISHFT(data_tmp, 39)
   35016      424003 :          pack_tmp = ISHFT(pack_tmp, -39)
   35017      424003 :          idata = idata + 1
   35018      424003 :          data_tmp = full_data(idata)
   35019      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35020      424003 :          data_tmp = IAND(data_tmp, mask_left(39))
   35021      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35022      424003 :          ipack = ipack + 1
   35023      424003 :          packed_data(ipack) = pack_tmp
   35024      424003 :          data_tmp = full_data(idata)
   35025      424003 :          pack_tmp = ISHFT(data_tmp, 58)
   35026      424003 :          pack_tmp = ISHFT(pack_tmp, -45)
   35027      424003 :          idata = idata + 1
   35028      424003 :          data_tmp = full_data(idata)
   35029      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35030      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35031      424003 :          pack_tmp = ISHFT(pack_tmp, -13)
   35032      424003 :          idata = idata + 1
   35033      424003 :          data_tmp = full_data(idata)
   35034      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35035      424003 :          data_tmp = IAND(data_tmp, mask_left(13))
   35036      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35037      424003 :          ipack = ipack + 1
   35038      424003 :          packed_data(ipack) = pack_tmp
   35039      424003 :          data_tmp = full_data(idata)
   35040      424003 :          pack_tmp = ISHFT(data_tmp, 32)
   35041      424003 :          pack_tmp = ISHFT(pack_tmp, -32)
   35042      424003 :          idata = idata + 1
   35043      424003 :          data_tmp = full_data(idata)
   35044      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35045      424003 :          data_tmp = IAND(data_tmp, mask_left(32))
   35046      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35047      424003 :          ipack = ipack + 1
   35048      424003 :          packed_data(ipack) = pack_tmp
   35049      424003 :          data_tmp = full_data(idata)
   35050      424003 :          pack_tmp = ISHFT(data_tmp, 51)
   35051      424003 :          pack_tmp = ISHFT(pack_tmp, -45)
   35052      424003 :          idata = idata + 1
   35053      424003 :          data_tmp = full_data(idata)
   35054      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35055      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35056      424003 :          pack_tmp = ISHFT(pack_tmp, -6)
   35057      424003 :          idata = idata + 1
   35058      424003 :          data_tmp = full_data(idata)
   35059      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35060      424003 :          data_tmp = IAND(data_tmp, mask_left(6))
   35061      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35062      424003 :          ipack = ipack + 1
   35063      424003 :          packed_data(ipack) = pack_tmp
   35064      424003 :          data_tmp = full_data(idata)
   35065      424003 :          pack_tmp = ISHFT(data_tmp, 25)
   35066      424003 :          pack_tmp = ISHFT(pack_tmp, -25)
   35067      424003 :          idata = idata + 1
   35068      424003 :          data_tmp = full_data(idata)
   35069      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35070      424003 :          data_tmp = IAND(data_tmp, mask_left(25))
   35071      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35072      424003 :          ipack = ipack + 1
   35073      424003 :          packed_data(ipack) = pack_tmp
   35074      424003 :          data_tmp = full_data(idata)
   35075      424003 :          pack_tmp = ISHFT(data_tmp, 44)
   35076      424003 :          pack_tmp = ISHFT(pack_tmp, -44)
   35077      424003 :          idata = idata + 1
   35078      424003 :          data_tmp = full_data(idata)
   35079      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35080      424003 :          data_tmp = IAND(data_tmp, mask_left(44))
   35081      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35082      424003 :          ipack = ipack + 1
   35083      424003 :          packed_data(ipack) = pack_tmp
   35084      424003 :          data_tmp = full_data(idata)
   35085      424003 :          pack_tmp = ISHFT(data_tmp, 63)
   35086      424003 :          pack_tmp = ISHFT(pack_tmp, -45)
   35087      424003 :          idata = idata + 1
   35088      424003 :          data_tmp = full_data(idata)
   35089      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35090      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35091      424003 :          pack_tmp = ISHFT(pack_tmp, -18)
   35092      424003 :          idata = idata + 1
   35093      424003 :          data_tmp = full_data(idata)
   35094      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35095      424003 :          data_tmp = IAND(data_tmp, mask_left(18))
   35096      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35097      424003 :          ipack = ipack + 1
   35098      424003 :          packed_data(ipack) = pack_tmp
   35099      424003 :          data_tmp = full_data(idata)
   35100      424003 :          pack_tmp = ISHFT(data_tmp, 37)
   35101      424003 :          pack_tmp = ISHFT(pack_tmp, -37)
   35102      424003 :          idata = idata + 1
   35103      424003 :          data_tmp = full_data(idata)
   35104      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35105      424003 :          data_tmp = IAND(data_tmp, mask_left(37))
   35106      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35107      424003 :          ipack = ipack + 1
   35108      424003 :          packed_data(ipack) = pack_tmp
   35109      424003 :          data_tmp = full_data(idata)
   35110      424003 :          pack_tmp = ISHFT(data_tmp, 56)
   35111      424003 :          pack_tmp = ISHFT(pack_tmp, -45)
   35112      424003 :          idata = idata + 1
   35113      424003 :          data_tmp = full_data(idata)
   35114      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35115      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35116      424003 :          pack_tmp = ISHFT(pack_tmp, -11)
   35117      424003 :          idata = idata + 1
   35118      424003 :          data_tmp = full_data(idata)
   35119      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35120      424003 :          data_tmp = IAND(data_tmp, mask_left(11))
   35121      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35122      424003 :          ipack = ipack + 1
   35123      424003 :          packed_data(ipack) = pack_tmp
   35124      424003 :          data_tmp = full_data(idata)
   35125      424003 :          pack_tmp = ISHFT(data_tmp, 30)
   35126      424003 :          pack_tmp = ISHFT(pack_tmp, -30)
   35127      424003 :          idata = idata + 1
   35128      424003 :          data_tmp = full_data(idata)
   35129      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35130      424003 :          data_tmp = IAND(data_tmp, mask_left(30))
   35131      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35132      424003 :          ipack = ipack + 1
   35133      424003 :          packed_data(ipack) = pack_tmp
   35134      424003 :          data_tmp = full_data(idata)
   35135      424003 :          pack_tmp = ISHFT(data_tmp, 49)
   35136      424003 :          pack_tmp = ISHFT(pack_tmp, -45)
   35137      424003 :          idata = idata + 1
   35138      424003 :          data_tmp = full_data(idata)
   35139      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35140      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35141      424003 :          pack_tmp = ISHFT(pack_tmp, -4)
   35142      424003 :          idata = idata + 1
   35143      424003 :          data_tmp = full_data(idata)
   35144      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35145      424003 :          data_tmp = IAND(data_tmp, mask_left(4))
   35146      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35147      424003 :          ipack = ipack + 1
   35148      424003 :          packed_data(ipack) = pack_tmp
   35149      424003 :          data_tmp = full_data(idata)
   35150      424003 :          pack_tmp = ISHFT(data_tmp, 23)
   35151      424003 :          pack_tmp = ISHFT(pack_tmp, -23)
   35152      424003 :          idata = idata + 1
   35153      424003 :          data_tmp = full_data(idata)
   35154      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35155      424003 :          data_tmp = IAND(data_tmp, mask_left(23))
   35156      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35157      424003 :          ipack = ipack + 1
   35158      424003 :          packed_data(ipack) = pack_tmp
   35159      424003 :          data_tmp = full_data(idata)
   35160      424003 :          pack_tmp = ISHFT(data_tmp, 42)
   35161      424003 :          pack_tmp = ISHFT(pack_tmp, -42)
   35162      424003 :          idata = idata + 1
   35163      424003 :          data_tmp = full_data(idata)
   35164      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35165      424003 :          data_tmp = IAND(data_tmp, mask_left(42))
   35166      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35167      424003 :          ipack = ipack + 1
   35168      424003 :          packed_data(ipack) = pack_tmp
   35169      424003 :          data_tmp = full_data(idata)
   35170      424003 :          pack_tmp = ISHFT(data_tmp, 61)
   35171      424003 :          pack_tmp = ISHFT(pack_tmp, -45)
   35172      424003 :          idata = idata + 1
   35173      424003 :          data_tmp = full_data(idata)
   35174      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35175      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35176      424003 :          pack_tmp = ISHFT(pack_tmp, -16)
   35177      424003 :          idata = idata + 1
   35178      424003 :          data_tmp = full_data(idata)
   35179      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35180      424003 :          data_tmp = IAND(data_tmp, mask_left(16))
   35181      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35182      424003 :          ipack = ipack + 1
   35183      424003 :          packed_data(ipack) = pack_tmp
   35184      424003 :          data_tmp = full_data(idata)
   35185      424003 :          pack_tmp = ISHFT(data_tmp, 35)
   35186      424003 :          pack_tmp = ISHFT(pack_tmp, -35)
   35187      424003 :          idata = idata + 1
   35188      424003 :          data_tmp = full_data(idata)
   35189      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35190      424003 :          data_tmp = IAND(data_tmp, mask_left(35))
   35191      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35192      424003 :          ipack = ipack + 1
   35193      424003 :          packed_data(ipack) = pack_tmp
   35194      424003 :          data_tmp = full_data(idata)
   35195      424003 :          pack_tmp = ISHFT(data_tmp, 54)
   35196      424003 :          pack_tmp = ISHFT(pack_tmp, -45)
   35197      424003 :          idata = idata + 1
   35198      424003 :          data_tmp = full_data(idata)
   35199      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35200      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35201      424003 :          pack_tmp = ISHFT(pack_tmp, -9)
   35202      424003 :          idata = idata + 1
   35203      424003 :          data_tmp = full_data(idata)
   35204      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35205      424003 :          data_tmp = IAND(data_tmp, mask_left(9))
   35206      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35207      424003 :          ipack = ipack + 1
   35208      424003 :          packed_data(ipack) = pack_tmp
   35209      424003 :          data_tmp = full_data(idata)
   35210      424003 :          pack_tmp = ISHFT(data_tmp, 28)
   35211      424003 :          pack_tmp = ISHFT(pack_tmp, -28)
   35212      424003 :          idata = idata + 1
   35213      424003 :          data_tmp = full_data(idata)
   35214      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35215      424003 :          data_tmp = IAND(data_tmp, mask_left(28))
   35216      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35217      424003 :          ipack = ipack + 1
   35218      424003 :          packed_data(ipack) = pack_tmp
   35219      424003 :          data_tmp = full_data(idata)
   35220      424003 :          pack_tmp = ISHFT(data_tmp, 47)
   35221      424003 :          pack_tmp = ISHFT(pack_tmp, -45)
   35222      424003 :          idata = idata + 1
   35223      424003 :          data_tmp = full_data(idata)
   35224      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35225      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35226      424003 :          pack_tmp = ISHFT(pack_tmp, -2)
   35227      424003 :          idata = idata + 1
   35228      424003 :          data_tmp = full_data(idata)
   35229      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35230      424003 :          data_tmp = IAND(data_tmp, mask_left(2))
   35231      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35232      424003 :          ipack = ipack + 1
   35233      424003 :          packed_data(ipack) = pack_tmp
   35234      424003 :          data_tmp = full_data(idata)
   35235      424003 :          pack_tmp = ISHFT(data_tmp, 21)
   35236      424003 :          pack_tmp = ISHFT(pack_tmp, -21)
   35237      424003 :          idata = idata + 1
   35238      424003 :          data_tmp = full_data(idata)
   35239      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35240      424003 :          data_tmp = IAND(data_tmp, mask_left(21))
   35241      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35242      424003 :          ipack = ipack + 1
   35243      424003 :          packed_data(ipack) = pack_tmp
   35244      424003 :          data_tmp = full_data(idata)
   35245      424003 :          pack_tmp = ISHFT(data_tmp, 40)
   35246      424003 :          pack_tmp = ISHFT(pack_tmp, -40)
   35247      424003 :          idata = idata + 1
   35248      424003 :          data_tmp = full_data(idata)
   35249      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35250      424003 :          data_tmp = IAND(data_tmp, mask_left(40))
   35251      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35252      424003 :          ipack = ipack + 1
   35253      424003 :          packed_data(ipack) = pack_tmp
   35254      424003 :          data_tmp = full_data(idata)
   35255      424003 :          pack_tmp = ISHFT(data_tmp, 59)
   35256      424003 :          pack_tmp = ISHFT(pack_tmp, -45)
   35257      424003 :          idata = idata + 1
   35258      424003 :          data_tmp = full_data(idata)
   35259      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35260      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35261      424003 :          pack_tmp = ISHFT(pack_tmp, -14)
   35262      424003 :          idata = idata + 1
   35263      424003 :          data_tmp = full_data(idata)
   35264      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35265      424003 :          data_tmp = IAND(data_tmp, mask_left(14))
   35266      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35267      424003 :          ipack = ipack + 1
   35268      424003 :          packed_data(ipack) = pack_tmp
   35269      424003 :          data_tmp = full_data(idata)
   35270      424003 :          pack_tmp = ISHFT(data_tmp, 33)
   35271      424003 :          pack_tmp = ISHFT(pack_tmp, -33)
   35272      424003 :          idata = idata + 1
   35273      424003 :          data_tmp = full_data(idata)
   35274      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35275      424003 :          data_tmp = IAND(data_tmp, mask_left(33))
   35276      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35277      424003 :          ipack = ipack + 1
   35278      424003 :          packed_data(ipack) = pack_tmp
   35279      424003 :          data_tmp = full_data(idata)
   35280      424003 :          pack_tmp = ISHFT(data_tmp, 52)
   35281      424003 :          pack_tmp = ISHFT(pack_tmp, -45)
   35282      424003 :          idata = idata + 1
   35283      424003 :          data_tmp = full_data(idata)
   35284      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35285      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35286      424003 :          pack_tmp = ISHFT(pack_tmp, -7)
   35287      424003 :          idata = idata + 1
   35288      424003 :          data_tmp = full_data(idata)
   35289      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35290      424003 :          data_tmp = IAND(data_tmp, mask_left(7))
   35291      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35292      424003 :          ipack = ipack + 1
   35293      424003 :          packed_data(ipack) = pack_tmp
   35294      424003 :          data_tmp = full_data(idata)
   35295      424003 :          pack_tmp = ISHFT(data_tmp, 26)
   35296      424003 :          pack_tmp = ISHFT(pack_tmp, -26)
   35297      424003 :          idata = idata + 1
   35298      424003 :          data_tmp = full_data(idata)
   35299      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35300      424003 :          data_tmp = IAND(data_tmp, mask_left(26))
   35301      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35302      424003 :          ipack = ipack + 1
   35303      424003 :          packed_data(ipack) = pack_tmp
   35304      424003 :          data_tmp = full_data(idata)
   35305      424003 :          pack_tmp = ISHFT(data_tmp, 45)
   35306      424003 :          pack_tmp = ISHFT(pack_tmp, -45)
   35307      424003 :          idata = idata + 1
   35308      424003 :          data_tmp = full_data(idata)
   35309      424003 :          data_tmp = ISHFT(data_tmp, 19)
   35310      424003 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35311             :          pack_tmp = ISHFT(pack_tmp, 0)
   35312      424003 :          pack_tmp = ISHFT(pack_tmp, 0)
   35313      424003 :          ipack = ipack + 1
   35314      424054 :          packed_data(ipack) = pack_tmp
   35315             :       END DO
   35316       29149 :       IF (Ndata_rep < Ndata) THEN
   35317        4986 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   35318             :       END IF
   35319       29149 :    END SUBROUTINE ints2bits_45
   35320             : 
   35321             : ! **************************************************************************************************
   35322             : !> \brief ...
   35323             : !> \param Ndata ...
   35324             : !> \param packed_data ...
   35325             : !> \param full_data ...
   35326             : ! **************************************************************************************************
   35327      132071 :    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      132071 :       ipack = 0
   35338      132071 :       idata = 0
   35339      132071 :       pack_tmp = 0
   35340      132071 :       Ndata_rep = (Ndata/64)*64
   35341      132071 :       DO kdata = 1, Ndata_rep, 64
   35342     1845658 :          idata = idata + 1
   35343     1845658 :          data_tmp = ISHFT(pack_tmp, 45)
   35344     1845658 :          ipack = ipack + 1
   35345     1845658 :          pack_tmp = packed_data(ipack)
   35346     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   35347     1845658 :          pack_tmp = ISHFT(pack_tmp, -45)
   35348     1845658 :          idata = idata + 1
   35349     1845658 :          data_tmp = ISHFT(pack_tmp, 26)
   35350     1845658 :          ipack = ipack + 1
   35351     1845658 :          pack_tmp = packed_data(ipack)
   35352     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   35353     1845658 :          pack_tmp = ISHFT(pack_tmp, -26)
   35354     1845658 :          idata = idata + 1
   35355     1845658 :          data_tmp = ISHFT(pack_tmp, 7)
   35356     1845658 :          ipack = ipack + 1
   35357     1845658 :          pack_tmp = packed_data(ipack)
   35358     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   35359     1845658 :          pack_tmp = ISHFT(pack_tmp, -7)
   35360     1845658 :          idata = idata + 1
   35361     1845658 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35362     1845658 :          full_data(idata) = data_tmp
   35363     1845658 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35364     1845658 :          idata = idata + 1
   35365     1845658 :          data_tmp = ISHFT(pack_tmp, 33)
   35366     1845658 :          ipack = ipack + 1
   35367     1845658 :          pack_tmp = packed_data(ipack)
   35368     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   35369     1845658 :          pack_tmp = ISHFT(pack_tmp, -33)
   35370     1845658 :          idata = idata + 1
   35371     1845658 :          data_tmp = ISHFT(pack_tmp, 14)
   35372     1845658 :          ipack = ipack + 1
   35373     1845658 :          pack_tmp = packed_data(ipack)
   35374     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   35375     1845658 :          pack_tmp = ISHFT(pack_tmp, -14)
   35376     1845658 :          idata = idata + 1
   35377     1845658 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35378     1845658 :          full_data(idata) = data_tmp
   35379     1845658 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35380     1845658 :          idata = idata + 1
   35381     1845658 :          data_tmp = ISHFT(pack_tmp, 40)
   35382     1845658 :          ipack = ipack + 1
   35383     1845658 :          pack_tmp = packed_data(ipack)
   35384     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   35385     1845658 :          pack_tmp = ISHFT(pack_tmp, -40)
   35386     1845658 :          idata = idata + 1
   35387     1845658 :          data_tmp = ISHFT(pack_tmp, 21)
   35388     1845658 :          ipack = ipack + 1
   35389     1845658 :          pack_tmp = packed_data(ipack)
   35390     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   35391     1845658 :          pack_tmp = ISHFT(pack_tmp, -21)
   35392     1845658 :          idata = idata + 1
   35393     1845658 :          data_tmp = ISHFT(pack_tmp, 2)
   35394     1845658 :          ipack = ipack + 1
   35395     1845658 :          pack_tmp = packed_data(ipack)
   35396     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   35397     1845658 :          pack_tmp = ISHFT(pack_tmp, -2)
   35398     1845658 :          idata = idata + 1
   35399     1845658 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35400     1845658 :          full_data(idata) = data_tmp
   35401     1845658 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35402     1845658 :          idata = idata + 1
   35403     1845658 :          data_tmp = ISHFT(pack_tmp, 28)
   35404     1845658 :          ipack = ipack + 1
   35405     1845658 :          pack_tmp = packed_data(ipack)
   35406     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   35407     1845658 :          pack_tmp = ISHFT(pack_tmp, -28)
   35408     1845658 :          idata = idata + 1
   35409     1845658 :          data_tmp = ISHFT(pack_tmp, 9)
   35410     1845658 :          ipack = ipack + 1
   35411     1845658 :          pack_tmp = packed_data(ipack)
   35412     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   35413     1845658 :          pack_tmp = ISHFT(pack_tmp, -9)
   35414     1845658 :          idata = idata + 1
   35415     1845658 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35416     1845658 :          full_data(idata) = data_tmp
   35417     1845658 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35418     1845658 :          idata = idata + 1
   35419     1845658 :          data_tmp = ISHFT(pack_tmp, 35)
   35420     1845658 :          ipack = ipack + 1
   35421     1845658 :          pack_tmp = packed_data(ipack)
   35422     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   35423     1845658 :          pack_tmp = ISHFT(pack_tmp, -35)
   35424     1845658 :          idata = idata + 1
   35425     1845658 :          data_tmp = ISHFT(pack_tmp, 16)
   35426     1845658 :          ipack = ipack + 1
   35427     1845658 :          pack_tmp = packed_data(ipack)
   35428     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   35429     1845658 :          pack_tmp = ISHFT(pack_tmp, -16)
   35430     1845658 :          idata = idata + 1
   35431     1845658 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35432     1845658 :          full_data(idata) = data_tmp
   35433     1845658 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35434     1845658 :          idata = idata + 1
   35435     1845658 :          data_tmp = ISHFT(pack_tmp, 42)
   35436     1845658 :          ipack = ipack + 1
   35437     1845658 :          pack_tmp = packed_data(ipack)
   35438     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   35439     1845658 :          pack_tmp = ISHFT(pack_tmp, -42)
   35440     1845658 :          idata = idata + 1
   35441     1845658 :          data_tmp = ISHFT(pack_tmp, 23)
   35442     1845658 :          ipack = ipack + 1
   35443     1845658 :          pack_tmp = packed_data(ipack)
   35444     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   35445     1845658 :          pack_tmp = ISHFT(pack_tmp, -23)
   35446     1845658 :          idata = idata + 1
   35447     1845658 :          data_tmp = ISHFT(pack_tmp, 4)
   35448     1845658 :          ipack = ipack + 1
   35449     1845658 :          pack_tmp = packed_data(ipack)
   35450     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   35451     1845658 :          pack_tmp = ISHFT(pack_tmp, -4)
   35452     1845658 :          idata = idata + 1
   35453     1845658 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35454     1845658 :          full_data(idata) = data_tmp
   35455     1845658 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35456     1845658 :          idata = idata + 1
   35457     1845658 :          data_tmp = ISHFT(pack_tmp, 30)
   35458     1845658 :          ipack = ipack + 1
   35459     1845658 :          pack_tmp = packed_data(ipack)
   35460     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   35461     1845658 :          pack_tmp = ISHFT(pack_tmp, -30)
   35462     1845658 :          idata = idata + 1
   35463     1845658 :          data_tmp = ISHFT(pack_tmp, 11)
   35464     1845658 :          ipack = ipack + 1
   35465     1845658 :          pack_tmp = packed_data(ipack)
   35466     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   35467     1845658 :          pack_tmp = ISHFT(pack_tmp, -11)
   35468     1845658 :          idata = idata + 1
   35469     1845658 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35470     1845658 :          full_data(idata) = data_tmp
   35471     1845658 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35472     1845658 :          idata = idata + 1
   35473     1845658 :          data_tmp = ISHFT(pack_tmp, 37)
   35474     1845658 :          ipack = ipack + 1
   35475     1845658 :          pack_tmp = packed_data(ipack)
   35476     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   35477     1845658 :          pack_tmp = ISHFT(pack_tmp, -37)
   35478     1845658 :          idata = idata + 1
   35479     1845658 :          data_tmp = ISHFT(pack_tmp, 18)
   35480     1845658 :          ipack = ipack + 1
   35481     1845658 :          pack_tmp = packed_data(ipack)
   35482     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   35483     1845658 :          pack_tmp = ISHFT(pack_tmp, -18)
   35484     1845658 :          idata = idata + 1
   35485     1845658 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35486     1845658 :          full_data(idata) = data_tmp
   35487     1845658 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35488     1845658 :          idata = idata + 1
   35489     1845658 :          data_tmp = ISHFT(pack_tmp, 44)
   35490     1845658 :          ipack = ipack + 1
   35491     1845658 :          pack_tmp = packed_data(ipack)
   35492     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   35493     1845658 :          pack_tmp = ISHFT(pack_tmp, -44)
   35494     1845658 :          idata = idata + 1
   35495     1845658 :          data_tmp = ISHFT(pack_tmp, 25)
   35496     1845658 :          ipack = ipack + 1
   35497     1845658 :          pack_tmp = packed_data(ipack)
   35498     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   35499     1845658 :          pack_tmp = ISHFT(pack_tmp, -25)
   35500     1845658 :          idata = idata + 1
   35501     1845658 :          data_tmp = ISHFT(pack_tmp, 6)
   35502     1845658 :          ipack = ipack + 1
   35503     1845658 :          pack_tmp = packed_data(ipack)
   35504     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   35505     1845658 :          pack_tmp = ISHFT(pack_tmp, -6)
   35506     1845658 :          idata = idata + 1
   35507     1845658 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35508     1845658 :          full_data(idata) = data_tmp
   35509     1845658 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35510     1845658 :          idata = idata + 1
   35511     1845658 :          data_tmp = ISHFT(pack_tmp, 32)
   35512     1845658 :          ipack = ipack + 1
   35513     1845658 :          pack_tmp = packed_data(ipack)
   35514     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   35515     1845658 :          pack_tmp = ISHFT(pack_tmp, -32)
   35516     1845658 :          idata = idata + 1
   35517     1845658 :          data_tmp = ISHFT(pack_tmp, 13)
   35518     1845658 :          ipack = ipack + 1
   35519     1845658 :          pack_tmp = packed_data(ipack)
   35520     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   35521     1845658 :          pack_tmp = ISHFT(pack_tmp, -13)
   35522     1845658 :          idata = idata + 1
   35523     1845658 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35524     1845658 :          full_data(idata) = data_tmp
   35525     1845658 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35526     1845658 :          idata = idata + 1
   35527     1845658 :          data_tmp = ISHFT(pack_tmp, 39)
   35528     1845658 :          ipack = ipack + 1
   35529     1845658 :          pack_tmp = packed_data(ipack)
   35530     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   35531     1845658 :          pack_tmp = ISHFT(pack_tmp, -39)
   35532     1845658 :          idata = idata + 1
   35533     1845658 :          data_tmp = ISHFT(pack_tmp, 20)
   35534     1845658 :          ipack = ipack + 1
   35535     1845658 :          pack_tmp = packed_data(ipack)
   35536     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   35537     1845658 :          pack_tmp = ISHFT(pack_tmp, -20)
   35538     1845658 :          idata = idata + 1
   35539     1845658 :          data_tmp = ISHFT(pack_tmp, 1)
   35540     1845658 :          ipack = ipack + 1
   35541     1845658 :          pack_tmp = packed_data(ipack)
   35542     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   35543     1845658 :          pack_tmp = ISHFT(pack_tmp, -1)
   35544     1845658 :          idata = idata + 1
   35545     1845658 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35546     1845658 :          full_data(idata) = data_tmp
   35547     1845658 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35548     1845658 :          idata = idata + 1
   35549     1845658 :          data_tmp = ISHFT(pack_tmp, 27)
   35550     1845658 :          ipack = ipack + 1
   35551     1845658 :          pack_tmp = packed_data(ipack)
   35552     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   35553     1845658 :          pack_tmp = ISHFT(pack_tmp, -27)
   35554     1845658 :          idata = idata + 1
   35555     1845658 :          data_tmp = ISHFT(pack_tmp, 8)
   35556     1845658 :          ipack = ipack + 1
   35557     1845658 :          pack_tmp = packed_data(ipack)
   35558     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   35559     1845658 :          pack_tmp = ISHFT(pack_tmp, -8)
   35560     1845658 :          idata = idata + 1
   35561     1845658 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35562     1845658 :          full_data(idata) = data_tmp
   35563     1845658 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35564     1845658 :          idata = idata + 1
   35565     1845658 :          data_tmp = ISHFT(pack_tmp, 34)
   35566     1845658 :          ipack = ipack + 1
   35567     1845658 :          pack_tmp = packed_data(ipack)
   35568     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   35569     1845658 :          pack_tmp = ISHFT(pack_tmp, -34)
   35570     1845658 :          idata = idata + 1
   35571     1845658 :          data_tmp = ISHFT(pack_tmp, 15)
   35572     1845658 :          ipack = ipack + 1
   35573     1845658 :          pack_tmp = packed_data(ipack)
   35574     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   35575     1845658 :          pack_tmp = ISHFT(pack_tmp, -15)
   35576     1845658 :          idata = idata + 1
   35577     1845658 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35578     1845658 :          full_data(idata) = data_tmp
   35579     1845658 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35580     1845658 :          idata = idata + 1
   35581     1845658 :          data_tmp = ISHFT(pack_tmp, 41)
   35582     1845658 :          ipack = ipack + 1
   35583     1845658 :          pack_tmp = packed_data(ipack)
   35584     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   35585     1845658 :          pack_tmp = ISHFT(pack_tmp, -41)
   35586     1845658 :          idata = idata + 1
   35587     1845658 :          data_tmp = ISHFT(pack_tmp, 22)
   35588     1845658 :          ipack = ipack + 1
   35589     1845658 :          pack_tmp = packed_data(ipack)
   35590     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   35591     1845658 :          pack_tmp = ISHFT(pack_tmp, -22)
   35592     1845658 :          idata = idata + 1
   35593     1845658 :          data_tmp = ISHFT(pack_tmp, 3)
   35594     1845658 :          ipack = ipack + 1
   35595     1845658 :          pack_tmp = packed_data(ipack)
   35596     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   35597     1845658 :          pack_tmp = ISHFT(pack_tmp, -3)
   35598     1845658 :          idata = idata + 1
   35599     1845658 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35600     1845658 :          full_data(idata) = data_tmp
   35601     1845658 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35602     1845658 :          idata = idata + 1
   35603     1845658 :          data_tmp = ISHFT(pack_tmp, 29)
   35604     1845658 :          ipack = ipack + 1
   35605     1845658 :          pack_tmp = packed_data(ipack)
   35606     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   35607     1845658 :          pack_tmp = ISHFT(pack_tmp, -29)
   35608     1845658 :          idata = idata + 1
   35609     1845658 :          data_tmp = ISHFT(pack_tmp, 10)
   35610     1845658 :          ipack = ipack + 1
   35611     1845658 :          pack_tmp = packed_data(ipack)
   35612     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   35613     1845658 :          pack_tmp = ISHFT(pack_tmp, -10)
   35614     1845658 :          idata = idata + 1
   35615     1845658 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35616     1845658 :          full_data(idata) = data_tmp
   35617     1845658 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35618     1845658 :          idata = idata + 1
   35619     1845658 :          data_tmp = ISHFT(pack_tmp, 36)
   35620     1845658 :          ipack = ipack + 1
   35621     1845658 :          pack_tmp = packed_data(ipack)
   35622     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   35623     1845658 :          pack_tmp = ISHFT(pack_tmp, -36)
   35624     1845658 :          idata = idata + 1
   35625     1845658 :          data_tmp = ISHFT(pack_tmp, 17)
   35626     1845658 :          ipack = ipack + 1
   35627     1845658 :          pack_tmp = packed_data(ipack)
   35628     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   35629     1845658 :          pack_tmp = ISHFT(pack_tmp, -17)
   35630     1845658 :          idata = idata + 1
   35631     1845658 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35632     1845658 :          full_data(idata) = data_tmp
   35633     1845658 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35634     1845658 :          idata = idata + 1
   35635     1845658 :          data_tmp = ISHFT(pack_tmp, 43)
   35636     1845658 :          ipack = ipack + 1
   35637     1845658 :          pack_tmp = packed_data(ipack)
   35638     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   35639     1845658 :          pack_tmp = ISHFT(pack_tmp, -43)
   35640     1845658 :          idata = idata + 1
   35641     1845658 :          data_tmp = ISHFT(pack_tmp, 24)
   35642     1845658 :          ipack = ipack + 1
   35643     1845658 :          pack_tmp = packed_data(ipack)
   35644     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   35645     1845658 :          pack_tmp = ISHFT(pack_tmp, -24)
   35646     1845658 :          idata = idata + 1
   35647     1845658 :          data_tmp = ISHFT(pack_tmp, 5)
   35648     1845658 :          ipack = ipack + 1
   35649     1845658 :          pack_tmp = packed_data(ipack)
   35650     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   35651     1845658 :          pack_tmp = ISHFT(pack_tmp, -5)
   35652     1845658 :          idata = idata + 1
   35653     1845658 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35654     1845658 :          full_data(idata) = data_tmp
   35655     1845658 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35656     1845658 :          idata = idata + 1
   35657     1845658 :          data_tmp = ISHFT(pack_tmp, 31)
   35658     1845658 :          ipack = ipack + 1
   35659     1845658 :          pack_tmp = packed_data(ipack)
   35660     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   35661     1845658 :          pack_tmp = ISHFT(pack_tmp, -31)
   35662     1845658 :          idata = idata + 1
   35663     1845658 :          data_tmp = ISHFT(pack_tmp, 12)
   35664     1845658 :          ipack = ipack + 1
   35665     1845658 :          pack_tmp = packed_data(ipack)
   35666     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   35667     1845658 :          pack_tmp = ISHFT(pack_tmp, -12)
   35668     1845658 :          idata = idata + 1
   35669     1845658 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35670     1845658 :          full_data(idata) = data_tmp
   35671     1845658 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35672     1845658 :          idata = idata + 1
   35673     1845658 :          data_tmp = ISHFT(pack_tmp, 38)
   35674     1845658 :          ipack = ipack + 1
   35675     1845658 :          pack_tmp = packed_data(ipack)
   35676     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   35677     1845658 :          pack_tmp = ISHFT(pack_tmp, -38)
   35678     1845658 :          idata = idata + 1
   35679     1845658 :          data_tmp = ISHFT(pack_tmp, 19)
   35680     1845658 :          ipack = ipack + 1
   35681     1845658 :          pack_tmp = packed_data(ipack)
   35682     1845658 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   35683     1845658 :          pack_tmp = ISHFT(pack_tmp, -19)
   35684     1845658 :          idata = idata + 1
   35685     1845658 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35686     1845658 :          full_data(idata) = data_tmp
   35687     1846634 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35688             :       END DO
   35689      132071 :       IF (Ndata_rep < Ndata) THEN
   35690       31468 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   35691             :       END IF
   35692      132071 :    END SUBROUTINE bits2ints_45
   35693             : 
   35694             : ! **************************************************************************************************
   35695             : !> \brief ...
   35696             : !> \param Ndata ...
   35697             : !> \param packed_data ...
   35698             : !> \param full_data ...
   35699             : ! **************************************************************************************************
   35700       28680 :    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       28680 :       idata = 0
   35711       28680 :       ipack = 0
   35712       28680 :       Ndata_rep = (Ndata/64)*64
   35713       28680 :       DO kdata = 1, Ndata_rep, 64
   35714      419167 :          pack_tmp = 0
   35715      419167 :          idata = idata + 1
   35716      419167 :          data_tmp = full_data(idata)
   35717      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35718      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35719      419167 :          pack_tmp = ISHFT(pack_tmp, -18)
   35720      419167 :          idata = idata + 1
   35721      419167 :          data_tmp = full_data(idata)
   35722      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35723      419167 :          data_tmp = IAND(data_tmp, mask_left(18))
   35724      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35725      419167 :          ipack = ipack + 1
   35726      419167 :          packed_data(ipack) = pack_tmp
   35727      419167 :          data_tmp = full_data(idata)
   35728      419167 :          pack_tmp = ISHFT(data_tmp, 36)
   35729      419167 :          pack_tmp = ISHFT(pack_tmp, -36)
   35730      419167 :          idata = idata + 1
   35731      419167 :          data_tmp = full_data(idata)
   35732      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35733      419167 :          data_tmp = IAND(data_tmp, mask_left(36))
   35734      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35735      419167 :          ipack = ipack + 1
   35736      419167 :          packed_data(ipack) = pack_tmp
   35737      419167 :          data_tmp = full_data(idata)
   35738      419167 :          pack_tmp = ISHFT(data_tmp, 54)
   35739      419167 :          pack_tmp = ISHFT(pack_tmp, -46)
   35740      419167 :          idata = idata + 1
   35741      419167 :          data_tmp = full_data(idata)
   35742      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35743      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35744      419167 :          pack_tmp = ISHFT(pack_tmp, -8)
   35745      419167 :          idata = idata + 1
   35746      419167 :          data_tmp = full_data(idata)
   35747      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35748      419167 :          data_tmp = IAND(data_tmp, mask_left(8))
   35749      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35750      419167 :          ipack = ipack + 1
   35751      419167 :          packed_data(ipack) = pack_tmp
   35752      419167 :          data_tmp = full_data(idata)
   35753      419167 :          pack_tmp = ISHFT(data_tmp, 26)
   35754      419167 :          pack_tmp = ISHFT(pack_tmp, -26)
   35755      419167 :          idata = idata + 1
   35756      419167 :          data_tmp = full_data(idata)
   35757      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35758      419167 :          data_tmp = IAND(data_tmp, mask_left(26))
   35759      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35760      419167 :          ipack = ipack + 1
   35761      419167 :          packed_data(ipack) = pack_tmp
   35762      419167 :          data_tmp = full_data(idata)
   35763      419167 :          pack_tmp = ISHFT(data_tmp, 44)
   35764      419167 :          pack_tmp = ISHFT(pack_tmp, -44)
   35765      419167 :          idata = idata + 1
   35766      419167 :          data_tmp = full_data(idata)
   35767      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35768      419167 :          data_tmp = IAND(data_tmp, mask_left(44))
   35769      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35770      419167 :          ipack = ipack + 1
   35771      419167 :          packed_data(ipack) = pack_tmp
   35772      419167 :          data_tmp = full_data(idata)
   35773      419167 :          pack_tmp = ISHFT(data_tmp, 62)
   35774      419167 :          pack_tmp = ISHFT(pack_tmp, -46)
   35775      419167 :          idata = idata + 1
   35776      419167 :          data_tmp = full_data(idata)
   35777      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35778      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35779      419167 :          pack_tmp = ISHFT(pack_tmp, -16)
   35780      419167 :          idata = idata + 1
   35781      419167 :          data_tmp = full_data(idata)
   35782      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35783      419167 :          data_tmp = IAND(data_tmp, mask_left(16))
   35784      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35785      419167 :          ipack = ipack + 1
   35786      419167 :          packed_data(ipack) = pack_tmp
   35787      419167 :          data_tmp = full_data(idata)
   35788      419167 :          pack_tmp = ISHFT(data_tmp, 34)
   35789      419167 :          pack_tmp = ISHFT(pack_tmp, -34)
   35790      419167 :          idata = idata + 1
   35791      419167 :          data_tmp = full_data(idata)
   35792      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35793      419167 :          data_tmp = IAND(data_tmp, mask_left(34))
   35794      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35795      419167 :          ipack = ipack + 1
   35796      419167 :          packed_data(ipack) = pack_tmp
   35797      419167 :          data_tmp = full_data(idata)
   35798      419167 :          pack_tmp = ISHFT(data_tmp, 52)
   35799      419167 :          pack_tmp = ISHFT(pack_tmp, -46)
   35800      419167 :          idata = idata + 1
   35801      419167 :          data_tmp = full_data(idata)
   35802      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35803      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35804      419167 :          pack_tmp = ISHFT(pack_tmp, -6)
   35805      419167 :          idata = idata + 1
   35806      419167 :          data_tmp = full_data(idata)
   35807      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35808      419167 :          data_tmp = IAND(data_tmp, mask_left(6))
   35809      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35810      419167 :          ipack = ipack + 1
   35811      419167 :          packed_data(ipack) = pack_tmp
   35812      419167 :          data_tmp = full_data(idata)
   35813      419167 :          pack_tmp = ISHFT(data_tmp, 24)
   35814      419167 :          pack_tmp = ISHFT(pack_tmp, -24)
   35815      419167 :          idata = idata + 1
   35816      419167 :          data_tmp = full_data(idata)
   35817      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35818      419167 :          data_tmp = IAND(data_tmp, mask_left(24))
   35819      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35820      419167 :          ipack = ipack + 1
   35821      419167 :          packed_data(ipack) = pack_tmp
   35822      419167 :          data_tmp = full_data(idata)
   35823      419167 :          pack_tmp = ISHFT(data_tmp, 42)
   35824      419167 :          pack_tmp = ISHFT(pack_tmp, -42)
   35825      419167 :          idata = idata + 1
   35826      419167 :          data_tmp = full_data(idata)
   35827      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35828      419167 :          data_tmp = IAND(data_tmp, mask_left(42))
   35829      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35830      419167 :          ipack = ipack + 1
   35831      419167 :          packed_data(ipack) = pack_tmp
   35832      419167 :          data_tmp = full_data(idata)
   35833      419167 :          pack_tmp = ISHFT(data_tmp, 60)
   35834      419167 :          pack_tmp = ISHFT(pack_tmp, -46)
   35835      419167 :          idata = idata + 1
   35836      419167 :          data_tmp = full_data(idata)
   35837      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35838      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35839      419167 :          pack_tmp = ISHFT(pack_tmp, -14)
   35840      419167 :          idata = idata + 1
   35841      419167 :          data_tmp = full_data(idata)
   35842      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35843      419167 :          data_tmp = IAND(data_tmp, mask_left(14))
   35844      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35845      419167 :          ipack = ipack + 1
   35846      419167 :          packed_data(ipack) = pack_tmp
   35847      419167 :          data_tmp = full_data(idata)
   35848      419167 :          pack_tmp = ISHFT(data_tmp, 32)
   35849      419167 :          pack_tmp = ISHFT(pack_tmp, -32)
   35850      419167 :          idata = idata + 1
   35851      419167 :          data_tmp = full_data(idata)
   35852      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35853      419167 :          data_tmp = IAND(data_tmp, mask_left(32))
   35854      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35855      419167 :          ipack = ipack + 1
   35856      419167 :          packed_data(ipack) = pack_tmp
   35857      419167 :          data_tmp = full_data(idata)
   35858      419167 :          pack_tmp = ISHFT(data_tmp, 50)
   35859      419167 :          pack_tmp = ISHFT(pack_tmp, -46)
   35860      419167 :          idata = idata + 1
   35861      419167 :          data_tmp = full_data(idata)
   35862      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35863      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35864      419167 :          pack_tmp = ISHFT(pack_tmp, -4)
   35865      419167 :          idata = idata + 1
   35866      419167 :          data_tmp = full_data(idata)
   35867      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35868      419167 :          data_tmp = IAND(data_tmp, mask_left(4))
   35869      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35870      419167 :          ipack = ipack + 1
   35871      419167 :          packed_data(ipack) = pack_tmp
   35872      419167 :          data_tmp = full_data(idata)
   35873      419167 :          pack_tmp = ISHFT(data_tmp, 22)
   35874      419167 :          pack_tmp = ISHFT(pack_tmp, -22)
   35875      419167 :          idata = idata + 1
   35876      419167 :          data_tmp = full_data(idata)
   35877      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35878      419167 :          data_tmp = IAND(data_tmp, mask_left(22))
   35879      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35880      419167 :          ipack = ipack + 1
   35881      419167 :          packed_data(ipack) = pack_tmp
   35882      419167 :          data_tmp = full_data(idata)
   35883      419167 :          pack_tmp = ISHFT(data_tmp, 40)
   35884      419167 :          pack_tmp = ISHFT(pack_tmp, -40)
   35885      419167 :          idata = idata + 1
   35886      419167 :          data_tmp = full_data(idata)
   35887      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35888      419167 :          data_tmp = IAND(data_tmp, mask_left(40))
   35889      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35890      419167 :          ipack = ipack + 1
   35891      419167 :          packed_data(ipack) = pack_tmp
   35892      419167 :          data_tmp = full_data(idata)
   35893      419167 :          pack_tmp = ISHFT(data_tmp, 58)
   35894      419167 :          pack_tmp = ISHFT(pack_tmp, -46)
   35895      419167 :          idata = idata + 1
   35896      419167 :          data_tmp = full_data(idata)
   35897      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35898      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35899      419167 :          pack_tmp = ISHFT(pack_tmp, -12)
   35900      419167 :          idata = idata + 1
   35901      419167 :          data_tmp = full_data(idata)
   35902      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35903      419167 :          data_tmp = IAND(data_tmp, mask_left(12))
   35904      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35905      419167 :          ipack = ipack + 1
   35906      419167 :          packed_data(ipack) = pack_tmp
   35907      419167 :          data_tmp = full_data(idata)
   35908      419167 :          pack_tmp = ISHFT(data_tmp, 30)
   35909      419167 :          pack_tmp = ISHFT(pack_tmp, -30)
   35910      419167 :          idata = idata + 1
   35911      419167 :          data_tmp = full_data(idata)
   35912      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35913      419167 :          data_tmp = IAND(data_tmp, mask_left(30))
   35914      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35915      419167 :          ipack = ipack + 1
   35916      419167 :          packed_data(ipack) = pack_tmp
   35917      419167 :          data_tmp = full_data(idata)
   35918      419167 :          pack_tmp = ISHFT(data_tmp, 48)
   35919      419167 :          pack_tmp = ISHFT(pack_tmp, -46)
   35920      419167 :          idata = idata + 1
   35921      419167 :          data_tmp = full_data(idata)
   35922      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35923      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35924      419167 :          pack_tmp = ISHFT(pack_tmp, -2)
   35925      419167 :          idata = idata + 1
   35926      419167 :          data_tmp = full_data(idata)
   35927      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35928      419167 :          data_tmp = IAND(data_tmp, mask_left(2))
   35929      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35930      419167 :          ipack = ipack + 1
   35931      419167 :          packed_data(ipack) = pack_tmp
   35932      419167 :          data_tmp = full_data(idata)
   35933      419167 :          pack_tmp = ISHFT(data_tmp, 20)
   35934      419167 :          pack_tmp = ISHFT(pack_tmp, -20)
   35935      419167 :          idata = idata + 1
   35936      419167 :          data_tmp = full_data(idata)
   35937      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35938      419167 :          data_tmp = IAND(data_tmp, mask_left(20))
   35939      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35940      419167 :          ipack = ipack + 1
   35941      419167 :          packed_data(ipack) = pack_tmp
   35942      419167 :          data_tmp = full_data(idata)
   35943      419167 :          pack_tmp = ISHFT(data_tmp, 38)
   35944      419167 :          pack_tmp = ISHFT(pack_tmp, -38)
   35945      419167 :          idata = idata + 1
   35946      419167 :          data_tmp = full_data(idata)
   35947      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35948      419167 :          data_tmp = IAND(data_tmp, mask_left(38))
   35949      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35950      419167 :          ipack = ipack + 1
   35951      419167 :          packed_data(ipack) = pack_tmp
   35952      419167 :          data_tmp = full_data(idata)
   35953      419167 :          pack_tmp = ISHFT(data_tmp, 56)
   35954      419167 :          pack_tmp = ISHFT(pack_tmp, -46)
   35955      419167 :          idata = idata + 1
   35956      419167 :          data_tmp = full_data(idata)
   35957      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35958      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35959      419167 :          pack_tmp = ISHFT(pack_tmp, -10)
   35960      419167 :          idata = idata + 1
   35961      419167 :          data_tmp = full_data(idata)
   35962      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35963      419167 :          data_tmp = IAND(data_tmp, mask_left(10))
   35964      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35965      419167 :          ipack = ipack + 1
   35966      419167 :          packed_data(ipack) = pack_tmp
   35967      419167 :          data_tmp = full_data(idata)
   35968      419167 :          pack_tmp = ISHFT(data_tmp, 28)
   35969      419167 :          pack_tmp = ISHFT(pack_tmp, -28)
   35970      419167 :          idata = idata + 1
   35971      419167 :          data_tmp = full_data(idata)
   35972      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35973      419167 :          data_tmp = IAND(data_tmp, mask_left(28))
   35974      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35975      419167 :          ipack = ipack + 1
   35976      419167 :          packed_data(ipack) = pack_tmp
   35977      419167 :          data_tmp = full_data(idata)
   35978      419167 :          pack_tmp = ISHFT(data_tmp, 46)
   35979      419167 :          pack_tmp = ISHFT(pack_tmp, -46)
   35980      419167 :          idata = idata + 1
   35981      419167 :          data_tmp = full_data(idata)
   35982      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35983      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35984      419167 :          pack_tmp = ISHFT(pack_tmp, 0)
   35985      419167 :          idata = idata + 1
   35986      419167 :          data_tmp = full_data(idata)
   35987             :          data_tmp = ISHFT(data_tmp, 18)
   35988      419167 :          data_tmp = IAND(data_tmp, mask_left(0))
   35989      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35990      419167 :          ipack = ipack + 1
   35991      419167 :          packed_data(ipack) = pack_tmp
   35992      419167 :          data_tmp = full_data(idata)
   35993      419167 :          pack_tmp = ISHFT(data_tmp, 18)
   35994      419167 :          pack_tmp = ISHFT(pack_tmp, -18)
   35995      419167 :          idata = idata + 1
   35996      419167 :          data_tmp = full_data(idata)
   35997      419167 :          data_tmp = ISHFT(data_tmp, 18)
   35998      419167 :          data_tmp = IAND(data_tmp, mask_left(18))
   35999      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36000      419167 :          ipack = ipack + 1
   36001      419167 :          packed_data(ipack) = pack_tmp
   36002      419167 :          data_tmp = full_data(idata)
   36003      419167 :          pack_tmp = ISHFT(data_tmp, 36)
   36004      419167 :          pack_tmp = ISHFT(pack_tmp, -36)
   36005      419167 :          idata = idata + 1
   36006      419167 :          data_tmp = full_data(idata)
   36007      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36008      419167 :          data_tmp = IAND(data_tmp, mask_left(36))
   36009      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36010      419167 :          ipack = ipack + 1
   36011      419167 :          packed_data(ipack) = pack_tmp
   36012      419167 :          data_tmp = full_data(idata)
   36013      419167 :          pack_tmp = ISHFT(data_tmp, 54)
   36014      419167 :          pack_tmp = ISHFT(pack_tmp, -46)
   36015      419167 :          idata = idata + 1
   36016      419167 :          data_tmp = full_data(idata)
   36017      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36018      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36019      419167 :          pack_tmp = ISHFT(pack_tmp, -8)
   36020      419167 :          idata = idata + 1
   36021      419167 :          data_tmp = full_data(idata)
   36022      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36023      419167 :          data_tmp = IAND(data_tmp, mask_left(8))
   36024      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36025      419167 :          ipack = ipack + 1
   36026      419167 :          packed_data(ipack) = pack_tmp
   36027      419167 :          data_tmp = full_data(idata)
   36028      419167 :          pack_tmp = ISHFT(data_tmp, 26)
   36029      419167 :          pack_tmp = ISHFT(pack_tmp, -26)
   36030      419167 :          idata = idata + 1
   36031      419167 :          data_tmp = full_data(idata)
   36032      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36033      419167 :          data_tmp = IAND(data_tmp, mask_left(26))
   36034      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36035      419167 :          ipack = ipack + 1
   36036      419167 :          packed_data(ipack) = pack_tmp
   36037      419167 :          data_tmp = full_data(idata)
   36038      419167 :          pack_tmp = ISHFT(data_tmp, 44)
   36039      419167 :          pack_tmp = ISHFT(pack_tmp, -44)
   36040      419167 :          idata = idata + 1
   36041      419167 :          data_tmp = full_data(idata)
   36042      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36043      419167 :          data_tmp = IAND(data_tmp, mask_left(44))
   36044      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36045      419167 :          ipack = ipack + 1
   36046      419167 :          packed_data(ipack) = pack_tmp
   36047      419167 :          data_tmp = full_data(idata)
   36048      419167 :          pack_tmp = ISHFT(data_tmp, 62)
   36049      419167 :          pack_tmp = ISHFT(pack_tmp, -46)
   36050      419167 :          idata = idata + 1
   36051      419167 :          data_tmp = full_data(idata)
   36052      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36053      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36054      419167 :          pack_tmp = ISHFT(pack_tmp, -16)
   36055      419167 :          idata = idata + 1
   36056      419167 :          data_tmp = full_data(idata)
   36057      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36058      419167 :          data_tmp = IAND(data_tmp, mask_left(16))
   36059      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36060      419167 :          ipack = ipack + 1
   36061      419167 :          packed_data(ipack) = pack_tmp
   36062      419167 :          data_tmp = full_data(idata)
   36063      419167 :          pack_tmp = ISHFT(data_tmp, 34)
   36064      419167 :          pack_tmp = ISHFT(pack_tmp, -34)
   36065      419167 :          idata = idata + 1
   36066      419167 :          data_tmp = full_data(idata)
   36067      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36068      419167 :          data_tmp = IAND(data_tmp, mask_left(34))
   36069      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36070      419167 :          ipack = ipack + 1
   36071      419167 :          packed_data(ipack) = pack_tmp
   36072      419167 :          data_tmp = full_data(idata)
   36073      419167 :          pack_tmp = ISHFT(data_tmp, 52)
   36074      419167 :          pack_tmp = ISHFT(pack_tmp, -46)
   36075      419167 :          idata = idata + 1
   36076      419167 :          data_tmp = full_data(idata)
   36077      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36078      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36079      419167 :          pack_tmp = ISHFT(pack_tmp, -6)
   36080      419167 :          idata = idata + 1
   36081      419167 :          data_tmp = full_data(idata)
   36082      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36083      419167 :          data_tmp = IAND(data_tmp, mask_left(6))
   36084      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36085      419167 :          ipack = ipack + 1
   36086      419167 :          packed_data(ipack) = pack_tmp
   36087      419167 :          data_tmp = full_data(idata)
   36088      419167 :          pack_tmp = ISHFT(data_tmp, 24)
   36089      419167 :          pack_tmp = ISHFT(pack_tmp, -24)
   36090      419167 :          idata = idata + 1
   36091      419167 :          data_tmp = full_data(idata)
   36092      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36093      419167 :          data_tmp = IAND(data_tmp, mask_left(24))
   36094      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36095      419167 :          ipack = ipack + 1
   36096      419167 :          packed_data(ipack) = pack_tmp
   36097      419167 :          data_tmp = full_data(idata)
   36098      419167 :          pack_tmp = ISHFT(data_tmp, 42)
   36099      419167 :          pack_tmp = ISHFT(pack_tmp, -42)
   36100      419167 :          idata = idata + 1
   36101      419167 :          data_tmp = full_data(idata)
   36102      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36103      419167 :          data_tmp = IAND(data_tmp, mask_left(42))
   36104      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36105      419167 :          ipack = ipack + 1
   36106      419167 :          packed_data(ipack) = pack_tmp
   36107      419167 :          data_tmp = full_data(idata)
   36108      419167 :          pack_tmp = ISHFT(data_tmp, 60)
   36109      419167 :          pack_tmp = ISHFT(pack_tmp, -46)
   36110      419167 :          idata = idata + 1
   36111      419167 :          data_tmp = full_data(idata)
   36112      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36113      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36114      419167 :          pack_tmp = ISHFT(pack_tmp, -14)
   36115      419167 :          idata = idata + 1
   36116      419167 :          data_tmp = full_data(idata)
   36117      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36118      419167 :          data_tmp = IAND(data_tmp, mask_left(14))
   36119      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36120      419167 :          ipack = ipack + 1
   36121      419167 :          packed_data(ipack) = pack_tmp
   36122      419167 :          data_tmp = full_data(idata)
   36123      419167 :          pack_tmp = ISHFT(data_tmp, 32)
   36124      419167 :          pack_tmp = ISHFT(pack_tmp, -32)
   36125      419167 :          idata = idata + 1
   36126      419167 :          data_tmp = full_data(idata)
   36127      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36128      419167 :          data_tmp = IAND(data_tmp, mask_left(32))
   36129      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36130      419167 :          ipack = ipack + 1
   36131      419167 :          packed_data(ipack) = pack_tmp
   36132      419167 :          data_tmp = full_data(idata)
   36133      419167 :          pack_tmp = ISHFT(data_tmp, 50)
   36134      419167 :          pack_tmp = ISHFT(pack_tmp, -46)
   36135      419167 :          idata = idata + 1
   36136      419167 :          data_tmp = full_data(idata)
   36137      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36138      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36139      419167 :          pack_tmp = ISHFT(pack_tmp, -4)
   36140      419167 :          idata = idata + 1
   36141      419167 :          data_tmp = full_data(idata)
   36142      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36143      419167 :          data_tmp = IAND(data_tmp, mask_left(4))
   36144      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36145      419167 :          ipack = ipack + 1
   36146      419167 :          packed_data(ipack) = pack_tmp
   36147      419167 :          data_tmp = full_data(idata)
   36148      419167 :          pack_tmp = ISHFT(data_tmp, 22)
   36149      419167 :          pack_tmp = ISHFT(pack_tmp, -22)
   36150      419167 :          idata = idata + 1
   36151      419167 :          data_tmp = full_data(idata)
   36152      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36153      419167 :          data_tmp = IAND(data_tmp, mask_left(22))
   36154      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36155      419167 :          ipack = ipack + 1
   36156      419167 :          packed_data(ipack) = pack_tmp
   36157      419167 :          data_tmp = full_data(idata)
   36158      419167 :          pack_tmp = ISHFT(data_tmp, 40)
   36159      419167 :          pack_tmp = ISHFT(pack_tmp, -40)
   36160      419167 :          idata = idata + 1
   36161      419167 :          data_tmp = full_data(idata)
   36162      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36163      419167 :          data_tmp = IAND(data_tmp, mask_left(40))
   36164      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36165      419167 :          ipack = ipack + 1
   36166      419167 :          packed_data(ipack) = pack_tmp
   36167      419167 :          data_tmp = full_data(idata)
   36168      419167 :          pack_tmp = ISHFT(data_tmp, 58)
   36169      419167 :          pack_tmp = ISHFT(pack_tmp, -46)
   36170      419167 :          idata = idata + 1
   36171      419167 :          data_tmp = full_data(idata)
   36172      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36173      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36174      419167 :          pack_tmp = ISHFT(pack_tmp, -12)
   36175      419167 :          idata = idata + 1
   36176      419167 :          data_tmp = full_data(idata)
   36177      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36178      419167 :          data_tmp = IAND(data_tmp, mask_left(12))
   36179      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36180      419167 :          ipack = ipack + 1
   36181      419167 :          packed_data(ipack) = pack_tmp
   36182      419167 :          data_tmp = full_data(idata)
   36183      419167 :          pack_tmp = ISHFT(data_tmp, 30)
   36184      419167 :          pack_tmp = ISHFT(pack_tmp, -30)
   36185      419167 :          idata = idata + 1
   36186      419167 :          data_tmp = full_data(idata)
   36187      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36188      419167 :          data_tmp = IAND(data_tmp, mask_left(30))
   36189      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36190      419167 :          ipack = ipack + 1
   36191      419167 :          packed_data(ipack) = pack_tmp
   36192      419167 :          data_tmp = full_data(idata)
   36193      419167 :          pack_tmp = ISHFT(data_tmp, 48)
   36194      419167 :          pack_tmp = ISHFT(pack_tmp, -46)
   36195      419167 :          idata = idata + 1
   36196      419167 :          data_tmp = full_data(idata)
   36197      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36198      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36199      419167 :          pack_tmp = ISHFT(pack_tmp, -2)
   36200      419167 :          idata = idata + 1
   36201      419167 :          data_tmp = full_data(idata)
   36202      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36203      419167 :          data_tmp = IAND(data_tmp, mask_left(2))
   36204      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36205      419167 :          ipack = ipack + 1
   36206      419167 :          packed_data(ipack) = pack_tmp
   36207      419167 :          data_tmp = full_data(idata)
   36208      419167 :          pack_tmp = ISHFT(data_tmp, 20)
   36209      419167 :          pack_tmp = ISHFT(pack_tmp, -20)
   36210      419167 :          idata = idata + 1
   36211      419167 :          data_tmp = full_data(idata)
   36212      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36213      419167 :          data_tmp = IAND(data_tmp, mask_left(20))
   36214      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36215      419167 :          ipack = ipack + 1
   36216      419167 :          packed_data(ipack) = pack_tmp
   36217      419167 :          data_tmp = full_data(idata)
   36218      419167 :          pack_tmp = ISHFT(data_tmp, 38)
   36219      419167 :          pack_tmp = ISHFT(pack_tmp, -38)
   36220      419167 :          idata = idata + 1
   36221      419167 :          data_tmp = full_data(idata)
   36222      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36223      419167 :          data_tmp = IAND(data_tmp, mask_left(38))
   36224      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36225      419167 :          ipack = ipack + 1
   36226      419167 :          packed_data(ipack) = pack_tmp
   36227      419167 :          data_tmp = full_data(idata)
   36228      419167 :          pack_tmp = ISHFT(data_tmp, 56)
   36229      419167 :          pack_tmp = ISHFT(pack_tmp, -46)
   36230      419167 :          idata = idata + 1
   36231      419167 :          data_tmp = full_data(idata)
   36232      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36233      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36234      419167 :          pack_tmp = ISHFT(pack_tmp, -10)
   36235      419167 :          idata = idata + 1
   36236      419167 :          data_tmp = full_data(idata)
   36237      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36238      419167 :          data_tmp = IAND(data_tmp, mask_left(10))
   36239      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36240      419167 :          ipack = ipack + 1
   36241      419167 :          packed_data(ipack) = pack_tmp
   36242      419167 :          data_tmp = full_data(idata)
   36243      419167 :          pack_tmp = ISHFT(data_tmp, 28)
   36244      419167 :          pack_tmp = ISHFT(pack_tmp, -28)
   36245      419167 :          idata = idata + 1
   36246      419167 :          data_tmp = full_data(idata)
   36247      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36248      419167 :          data_tmp = IAND(data_tmp, mask_left(28))
   36249      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36250      419167 :          ipack = ipack + 1
   36251      419167 :          packed_data(ipack) = pack_tmp
   36252      419167 :          data_tmp = full_data(idata)
   36253      419167 :          pack_tmp = ISHFT(data_tmp, 46)
   36254      419167 :          pack_tmp = ISHFT(pack_tmp, -46)
   36255      419167 :          idata = idata + 1
   36256      419167 :          data_tmp = full_data(idata)
   36257      419167 :          data_tmp = ISHFT(data_tmp, 18)
   36258      419167 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36259             :          pack_tmp = ISHFT(pack_tmp, 0)
   36260      419167 :          pack_tmp = ISHFT(pack_tmp, 0)
   36261      419167 :          ipack = ipack + 1
   36262      419212 :          packed_data(ipack) = pack_tmp
   36263             :       END DO
   36264       28680 :       IF (Ndata_rep < Ndata) THEN
   36265        4546 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   36266             :       END IF
   36267       28680 :    END SUBROUTINE ints2bits_46
   36268             : 
   36269             : ! **************************************************************************************************
   36270             : !> \brief ...
   36271             : !> \param Ndata ...
   36272             : !> \param packed_data ...
   36273             : !> \param full_data ...
   36274             : ! **************************************************************************************************
   36275      120083 :    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      120083 :       ipack = 0
   36286      120083 :       idata = 0
   36287      120083 :       pack_tmp = 0
   36288      120083 :       Ndata_rep = (Ndata/64)*64
   36289      120083 :       DO kdata = 1, Ndata_rep, 64
   36290     1734403 :          idata = idata + 1
   36291     1734403 :          data_tmp = ISHFT(pack_tmp, 46)
   36292     1734403 :          ipack = ipack + 1
   36293     1734403 :          pack_tmp = packed_data(ipack)
   36294     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   36295     1734403 :          pack_tmp = ISHFT(pack_tmp, -46)
   36296     1734403 :          idata = idata + 1
   36297     1734403 :          data_tmp = ISHFT(pack_tmp, 28)
   36298     1734403 :          ipack = ipack + 1
   36299     1734403 :          pack_tmp = packed_data(ipack)
   36300     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   36301     1734403 :          pack_tmp = ISHFT(pack_tmp, -28)
   36302     1734403 :          idata = idata + 1
   36303     1734403 :          data_tmp = ISHFT(pack_tmp, 10)
   36304     1734403 :          ipack = ipack + 1
   36305     1734403 :          pack_tmp = packed_data(ipack)
   36306     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   36307     1734403 :          pack_tmp = ISHFT(pack_tmp, -10)
   36308     1734403 :          idata = idata + 1
   36309     1734403 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36310     1734403 :          full_data(idata) = data_tmp
   36311     1734403 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36312     1734403 :          idata = idata + 1
   36313     1734403 :          data_tmp = ISHFT(pack_tmp, 38)
   36314     1734403 :          ipack = ipack + 1
   36315     1734403 :          pack_tmp = packed_data(ipack)
   36316     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   36317     1734403 :          pack_tmp = ISHFT(pack_tmp, -38)
   36318     1734403 :          idata = idata + 1
   36319     1734403 :          data_tmp = ISHFT(pack_tmp, 20)
   36320     1734403 :          ipack = ipack + 1
   36321     1734403 :          pack_tmp = packed_data(ipack)
   36322     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   36323     1734403 :          pack_tmp = ISHFT(pack_tmp, -20)
   36324     1734403 :          idata = idata + 1
   36325     1734403 :          data_tmp = ISHFT(pack_tmp, 2)
   36326     1734403 :          ipack = ipack + 1
   36327     1734403 :          pack_tmp = packed_data(ipack)
   36328     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   36329     1734403 :          pack_tmp = ISHFT(pack_tmp, -2)
   36330     1734403 :          idata = idata + 1
   36331     1734403 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36332     1734403 :          full_data(idata) = data_tmp
   36333     1734403 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36334     1734403 :          idata = idata + 1
   36335     1734403 :          data_tmp = ISHFT(pack_tmp, 30)
   36336     1734403 :          ipack = ipack + 1
   36337     1734403 :          pack_tmp = packed_data(ipack)
   36338     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   36339     1734403 :          pack_tmp = ISHFT(pack_tmp, -30)
   36340     1734403 :          idata = idata + 1
   36341     1734403 :          data_tmp = ISHFT(pack_tmp, 12)
   36342     1734403 :          ipack = ipack + 1
   36343     1734403 :          pack_tmp = packed_data(ipack)
   36344     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   36345     1734403 :          pack_tmp = ISHFT(pack_tmp, -12)
   36346     1734403 :          idata = idata + 1
   36347     1734403 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36348     1734403 :          full_data(idata) = data_tmp
   36349     1734403 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36350     1734403 :          idata = idata + 1
   36351     1734403 :          data_tmp = ISHFT(pack_tmp, 40)
   36352     1734403 :          ipack = ipack + 1
   36353     1734403 :          pack_tmp = packed_data(ipack)
   36354     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   36355     1734403 :          pack_tmp = ISHFT(pack_tmp, -40)
   36356     1734403 :          idata = idata + 1
   36357     1734403 :          data_tmp = ISHFT(pack_tmp, 22)
   36358     1734403 :          ipack = ipack + 1
   36359     1734403 :          pack_tmp = packed_data(ipack)
   36360     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   36361     1734403 :          pack_tmp = ISHFT(pack_tmp, -22)
   36362     1734403 :          idata = idata + 1
   36363     1734403 :          data_tmp = ISHFT(pack_tmp, 4)
   36364     1734403 :          ipack = ipack + 1
   36365     1734403 :          pack_tmp = packed_data(ipack)
   36366     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   36367     1734403 :          pack_tmp = ISHFT(pack_tmp, -4)
   36368     1734403 :          idata = idata + 1
   36369     1734403 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36370     1734403 :          full_data(idata) = data_tmp
   36371     1734403 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36372     1734403 :          idata = idata + 1
   36373     1734403 :          data_tmp = ISHFT(pack_tmp, 32)
   36374     1734403 :          ipack = ipack + 1
   36375     1734403 :          pack_tmp = packed_data(ipack)
   36376     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   36377     1734403 :          pack_tmp = ISHFT(pack_tmp, -32)
   36378     1734403 :          idata = idata + 1
   36379     1734403 :          data_tmp = ISHFT(pack_tmp, 14)
   36380     1734403 :          ipack = ipack + 1
   36381     1734403 :          pack_tmp = packed_data(ipack)
   36382     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   36383     1734403 :          pack_tmp = ISHFT(pack_tmp, -14)
   36384     1734403 :          idata = idata + 1
   36385     1734403 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36386     1734403 :          full_data(idata) = data_tmp
   36387     1734403 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36388     1734403 :          idata = idata + 1
   36389     1734403 :          data_tmp = ISHFT(pack_tmp, 42)
   36390     1734403 :          ipack = ipack + 1
   36391     1734403 :          pack_tmp = packed_data(ipack)
   36392     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   36393     1734403 :          pack_tmp = ISHFT(pack_tmp, -42)
   36394     1734403 :          idata = idata + 1
   36395     1734403 :          data_tmp = ISHFT(pack_tmp, 24)
   36396     1734403 :          ipack = ipack + 1
   36397     1734403 :          pack_tmp = packed_data(ipack)
   36398     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   36399     1734403 :          pack_tmp = ISHFT(pack_tmp, -24)
   36400     1734403 :          idata = idata + 1
   36401     1734403 :          data_tmp = ISHFT(pack_tmp, 6)
   36402     1734403 :          ipack = ipack + 1
   36403     1734403 :          pack_tmp = packed_data(ipack)
   36404     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   36405     1734403 :          pack_tmp = ISHFT(pack_tmp, -6)
   36406     1734403 :          idata = idata + 1
   36407     1734403 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36408     1734403 :          full_data(idata) = data_tmp
   36409     1734403 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36410     1734403 :          idata = idata + 1
   36411     1734403 :          data_tmp = ISHFT(pack_tmp, 34)
   36412     1734403 :          ipack = ipack + 1
   36413     1734403 :          pack_tmp = packed_data(ipack)
   36414     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   36415     1734403 :          pack_tmp = ISHFT(pack_tmp, -34)
   36416     1734403 :          idata = idata + 1
   36417     1734403 :          data_tmp = ISHFT(pack_tmp, 16)
   36418     1734403 :          ipack = ipack + 1
   36419     1734403 :          pack_tmp = packed_data(ipack)
   36420     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   36421     1734403 :          pack_tmp = ISHFT(pack_tmp, -16)
   36422     1734403 :          idata = idata + 1
   36423     1734403 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36424     1734403 :          full_data(idata) = data_tmp
   36425     1734403 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36426     1734403 :          idata = idata + 1
   36427     1734403 :          data_tmp = ISHFT(pack_tmp, 44)
   36428     1734403 :          ipack = ipack + 1
   36429     1734403 :          pack_tmp = packed_data(ipack)
   36430     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   36431     1734403 :          pack_tmp = ISHFT(pack_tmp, -44)
   36432     1734403 :          idata = idata + 1
   36433     1734403 :          data_tmp = ISHFT(pack_tmp, 26)
   36434     1734403 :          ipack = ipack + 1
   36435     1734403 :          pack_tmp = packed_data(ipack)
   36436     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   36437     1734403 :          pack_tmp = ISHFT(pack_tmp, -26)
   36438     1734403 :          idata = idata + 1
   36439     1734403 :          data_tmp = ISHFT(pack_tmp, 8)
   36440     1734403 :          ipack = ipack + 1
   36441     1734403 :          pack_tmp = packed_data(ipack)
   36442     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   36443     1734403 :          pack_tmp = ISHFT(pack_tmp, -8)
   36444     1734403 :          idata = idata + 1
   36445     1734403 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36446     1734403 :          full_data(idata) = data_tmp
   36447     1734403 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36448     1734403 :          idata = idata + 1
   36449     1734403 :          data_tmp = ISHFT(pack_tmp, 36)
   36450     1734403 :          ipack = ipack + 1
   36451     1734403 :          pack_tmp = packed_data(ipack)
   36452     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   36453     1734403 :          pack_tmp = ISHFT(pack_tmp, -36)
   36454     1734403 :          idata = idata + 1
   36455     1734403 :          data_tmp = ISHFT(pack_tmp, 18)
   36456     1734403 :          ipack = ipack + 1
   36457     1734403 :          pack_tmp = packed_data(ipack)
   36458     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   36459     1734403 :          pack_tmp = ISHFT(pack_tmp, -18)
   36460     1734403 :          idata = idata + 1
   36461     1734403 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36462     1734403 :          full_data(idata) = data_tmp
   36463     1734403 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36464     1734403 :          idata = idata + 1
   36465     1734403 :          data_tmp = ISHFT(pack_tmp, 46)
   36466     1734403 :          ipack = ipack + 1
   36467     1734403 :          pack_tmp = packed_data(ipack)
   36468     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   36469     1734403 :          pack_tmp = ISHFT(pack_tmp, -46)
   36470     1734403 :          idata = idata + 1
   36471     1734403 :          data_tmp = ISHFT(pack_tmp, 28)
   36472     1734403 :          ipack = ipack + 1
   36473     1734403 :          pack_tmp = packed_data(ipack)
   36474     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   36475     1734403 :          pack_tmp = ISHFT(pack_tmp, -28)
   36476     1734403 :          idata = idata + 1
   36477     1734403 :          data_tmp = ISHFT(pack_tmp, 10)
   36478     1734403 :          ipack = ipack + 1
   36479     1734403 :          pack_tmp = packed_data(ipack)
   36480     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   36481     1734403 :          pack_tmp = ISHFT(pack_tmp, -10)
   36482     1734403 :          idata = idata + 1
   36483     1734403 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36484     1734403 :          full_data(idata) = data_tmp
   36485     1734403 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36486     1734403 :          idata = idata + 1
   36487     1734403 :          data_tmp = ISHFT(pack_tmp, 38)
   36488     1734403 :          ipack = ipack + 1
   36489     1734403 :          pack_tmp = packed_data(ipack)
   36490     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   36491     1734403 :          pack_tmp = ISHFT(pack_tmp, -38)
   36492     1734403 :          idata = idata + 1
   36493     1734403 :          data_tmp = ISHFT(pack_tmp, 20)
   36494     1734403 :          ipack = ipack + 1
   36495     1734403 :          pack_tmp = packed_data(ipack)
   36496     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   36497     1734403 :          pack_tmp = ISHFT(pack_tmp, -20)
   36498     1734403 :          idata = idata + 1
   36499     1734403 :          data_tmp = ISHFT(pack_tmp, 2)
   36500     1734403 :          ipack = ipack + 1
   36501     1734403 :          pack_tmp = packed_data(ipack)
   36502     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   36503     1734403 :          pack_tmp = ISHFT(pack_tmp, -2)
   36504     1734403 :          idata = idata + 1
   36505     1734403 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36506     1734403 :          full_data(idata) = data_tmp
   36507     1734403 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36508     1734403 :          idata = idata + 1
   36509     1734403 :          data_tmp = ISHFT(pack_tmp, 30)
   36510     1734403 :          ipack = ipack + 1
   36511     1734403 :          pack_tmp = packed_data(ipack)
   36512     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   36513     1734403 :          pack_tmp = ISHFT(pack_tmp, -30)
   36514     1734403 :          idata = idata + 1
   36515     1734403 :          data_tmp = ISHFT(pack_tmp, 12)
   36516     1734403 :          ipack = ipack + 1
   36517     1734403 :          pack_tmp = packed_data(ipack)
   36518     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   36519     1734403 :          pack_tmp = ISHFT(pack_tmp, -12)
   36520     1734403 :          idata = idata + 1
   36521     1734403 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36522     1734403 :          full_data(idata) = data_tmp
   36523     1734403 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36524     1734403 :          idata = idata + 1
   36525     1734403 :          data_tmp = ISHFT(pack_tmp, 40)
   36526     1734403 :          ipack = ipack + 1
   36527     1734403 :          pack_tmp = packed_data(ipack)
   36528     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   36529     1734403 :          pack_tmp = ISHFT(pack_tmp, -40)
   36530     1734403 :          idata = idata + 1
   36531     1734403 :          data_tmp = ISHFT(pack_tmp, 22)
   36532     1734403 :          ipack = ipack + 1
   36533     1734403 :          pack_tmp = packed_data(ipack)
   36534     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   36535     1734403 :          pack_tmp = ISHFT(pack_tmp, -22)
   36536     1734403 :          idata = idata + 1
   36537     1734403 :          data_tmp = ISHFT(pack_tmp, 4)
   36538     1734403 :          ipack = ipack + 1
   36539     1734403 :          pack_tmp = packed_data(ipack)
   36540     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   36541     1734403 :          pack_tmp = ISHFT(pack_tmp, -4)
   36542     1734403 :          idata = idata + 1
   36543     1734403 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36544     1734403 :          full_data(idata) = data_tmp
   36545     1734403 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36546     1734403 :          idata = idata + 1
   36547     1734403 :          data_tmp = ISHFT(pack_tmp, 32)
   36548     1734403 :          ipack = ipack + 1
   36549     1734403 :          pack_tmp = packed_data(ipack)
   36550     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   36551     1734403 :          pack_tmp = ISHFT(pack_tmp, -32)
   36552     1734403 :          idata = idata + 1
   36553     1734403 :          data_tmp = ISHFT(pack_tmp, 14)
   36554     1734403 :          ipack = ipack + 1
   36555     1734403 :          pack_tmp = packed_data(ipack)
   36556     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   36557     1734403 :          pack_tmp = ISHFT(pack_tmp, -14)
   36558     1734403 :          idata = idata + 1
   36559     1734403 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36560     1734403 :          full_data(idata) = data_tmp
   36561     1734403 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36562     1734403 :          idata = idata + 1
   36563     1734403 :          data_tmp = ISHFT(pack_tmp, 42)
   36564     1734403 :          ipack = ipack + 1
   36565     1734403 :          pack_tmp = packed_data(ipack)
   36566     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   36567     1734403 :          pack_tmp = ISHFT(pack_tmp, -42)
   36568     1734403 :          idata = idata + 1
   36569     1734403 :          data_tmp = ISHFT(pack_tmp, 24)
   36570     1734403 :          ipack = ipack + 1
   36571     1734403 :          pack_tmp = packed_data(ipack)
   36572     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   36573     1734403 :          pack_tmp = ISHFT(pack_tmp, -24)
   36574     1734403 :          idata = idata + 1
   36575     1734403 :          data_tmp = ISHFT(pack_tmp, 6)
   36576     1734403 :          ipack = ipack + 1
   36577     1734403 :          pack_tmp = packed_data(ipack)
   36578     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   36579     1734403 :          pack_tmp = ISHFT(pack_tmp, -6)
   36580     1734403 :          idata = idata + 1
   36581     1734403 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36582     1734403 :          full_data(idata) = data_tmp
   36583     1734403 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36584     1734403 :          idata = idata + 1
   36585     1734403 :          data_tmp = ISHFT(pack_tmp, 34)
   36586     1734403 :          ipack = ipack + 1
   36587     1734403 :          pack_tmp = packed_data(ipack)
   36588     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   36589     1734403 :          pack_tmp = ISHFT(pack_tmp, -34)
   36590     1734403 :          idata = idata + 1
   36591     1734403 :          data_tmp = ISHFT(pack_tmp, 16)
   36592     1734403 :          ipack = ipack + 1
   36593     1734403 :          pack_tmp = packed_data(ipack)
   36594     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   36595     1734403 :          pack_tmp = ISHFT(pack_tmp, -16)
   36596     1734403 :          idata = idata + 1
   36597     1734403 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36598     1734403 :          full_data(idata) = data_tmp
   36599     1734403 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36600     1734403 :          idata = idata + 1
   36601     1734403 :          data_tmp = ISHFT(pack_tmp, 44)
   36602     1734403 :          ipack = ipack + 1
   36603     1734403 :          pack_tmp = packed_data(ipack)
   36604     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   36605     1734403 :          pack_tmp = ISHFT(pack_tmp, -44)
   36606     1734403 :          idata = idata + 1
   36607     1734403 :          data_tmp = ISHFT(pack_tmp, 26)
   36608     1734403 :          ipack = ipack + 1
   36609     1734403 :          pack_tmp = packed_data(ipack)
   36610     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   36611     1734403 :          pack_tmp = ISHFT(pack_tmp, -26)
   36612     1734403 :          idata = idata + 1
   36613     1734403 :          data_tmp = ISHFT(pack_tmp, 8)
   36614     1734403 :          ipack = ipack + 1
   36615     1734403 :          pack_tmp = packed_data(ipack)
   36616     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   36617     1734403 :          pack_tmp = ISHFT(pack_tmp, -8)
   36618     1734403 :          idata = idata + 1
   36619     1734403 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36620     1734403 :          full_data(idata) = data_tmp
   36621     1734403 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36622     1734403 :          idata = idata + 1
   36623     1734403 :          data_tmp = ISHFT(pack_tmp, 36)
   36624     1734403 :          ipack = ipack + 1
   36625     1734403 :          pack_tmp = packed_data(ipack)
   36626     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   36627     1734403 :          pack_tmp = ISHFT(pack_tmp, -36)
   36628     1734403 :          idata = idata + 1
   36629     1734403 :          data_tmp = ISHFT(pack_tmp, 18)
   36630     1734403 :          ipack = ipack + 1
   36631     1734403 :          pack_tmp = packed_data(ipack)
   36632     1734403 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   36633     1734403 :          pack_tmp = ISHFT(pack_tmp, -18)
   36634     1734403 :          idata = idata + 1
   36635     1734403 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36636     1734403 :          full_data(idata) = data_tmp
   36637     1734849 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36638             :       END DO
   36639      120083 :       IF (Ndata_rep < Ndata) THEN
   36640       20474 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   36641             :       END IF
   36642      120083 :    END SUBROUTINE bits2ints_46
   36643             : 
   36644             : ! **************************************************************************************************
   36645             : !> \brief ...
   36646             : !> \param Ndata ...
   36647             : !> \param packed_data ...
   36648             : !> \param full_data ...
   36649             : ! **************************************************************************************************
   36650       26112 :    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       26112 :       idata = 0
   36661       26112 :       ipack = 0
   36662       26112 :       Ndata_rep = (Ndata/64)*64
   36663       26112 :       DO kdata = 1, Ndata_rep, 64
   36664      398633 :          pack_tmp = 0
   36665      398633 :          idata = idata + 1
   36666      398633 :          data_tmp = full_data(idata)
   36667      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36668      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36669      398633 :          pack_tmp = ISHFT(pack_tmp, -17)
   36670      398633 :          idata = idata + 1
   36671      398633 :          data_tmp = full_data(idata)
   36672      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36673      398633 :          data_tmp = IAND(data_tmp, mask_left(17))
   36674      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36675      398633 :          ipack = ipack + 1
   36676      398633 :          packed_data(ipack) = pack_tmp
   36677      398633 :          data_tmp = full_data(idata)
   36678      398633 :          pack_tmp = ISHFT(data_tmp, 34)
   36679      398633 :          pack_tmp = ISHFT(pack_tmp, -34)
   36680      398633 :          idata = idata + 1
   36681      398633 :          data_tmp = full_data(idata)
   36682      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36683      398633 :          data_tmp = IAND(data_tmp, mask_left(34))
   36684      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36685      398633 :          ipack = ipack + 1
   36686      398633 :          packed_data(ipack) = pack_tmp
   36687      398633 :          data_tmp = full_data(idata)
   36688      398633 :          pack_tmp = ISHFT(data_tmp, 51)
   36689      398633 :          pack_tmp = ISHFT(pack_tmp, -47)
   36690      398633 :          idata = idata + 1
   36691      398633 :          data_tmp = full_data(idata)
   36692      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36693      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36694      398633 :          pack_tmp = ISHFT(pack_tmp, -4)
   36695      398633 :          idata = idata + 1
   36696      398633 :          data_tmp = full_data(idata)
   36697      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36698      398633 :          data_tmp = IAND(data_tmp, mask_left(4))
   36699      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36700      398633 :          ipack = ipack + 1
   36701      398633 :          packed_data(ipack) = pack_tmp
   36702      398633 :          data_tmp = full_data(idata)
   36703      398633 :          pack_tmp = ISHFT(data_tmp, 21)
   36704      398633 :          pack_tmp = ISHFT(pack_tmp, -21)
   36705      398633 :          idata = idata + 1
   36706      398633 :          data_tmp = full_data(idata)
   36707      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36708      398633 :          data_tmp = IAND(data_tmp, mask_left(21))
   36709      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36710      398633 :          ipack = ipack + 1
   36711      398633 :          packed_data(ipack) = pack_tmp
   36712      398633 :          data_tmp = full_data(idata)
   36713      398633 :          pack_tmp = ISHFT(data_tmp, 38)
   36714      398633 :          pack_tmp = ISHFT(pack_tmp, -38)
   36715      398633 :          idata = idata + 1
   36716      398633 :          data_tmp = full_data(idata)
   36717      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36718      398633 :          data_tmp = IAND(data_tmp, mask_left(38))
   36719      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36720      398633 :          ipack = ipack + 1
   36721      398633 :          packed_data(ipack) = pack_tmp
   36722      398633 :          data_tmp = full_data(idata)
   36723      398633 :          pack_tmp = ISHFT(data_tmp, 55)
   36724      398633 :          pack_tmp = ISHFT(pack_tmp, -47)
   36725      398633 :          idata = idata + 1
   36726      398633 :          data_tmp = full_data(idata)
   36727      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36728      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36729      398633 :          pack_tmp = ISHFT(pack_tmp, -8)
   36730      398633 :          idata = idata + 1
   36731      398633 :          data_tmp = full_data(idata)
   36732      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36733      398633 :          data_tmp = IAND(data_tmp, mask_left(8))
   36734      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36735      398633 :          ipack = ipack + 1
   36736      398633 :          packed_data(ipack) = pack_tmp
   36737      398633 :          data_tmp = full_data(idata)
   36738      398633 :          pack_tmp = ISHFT(data_tmp, 25)
   36739      398633 :          pack_tmp = ISHFT(pack_tmp, -25)
   36740      398633 :          idata = idata + 1
   36741      398633 :          data_tmp = full_data(idata)
   36742      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36743      398633 :          data_tmp = IAND(data_tmp, mask_left(25))
   36744      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36745      398633 :          ipack = ipack + 1
   36746      398633 :          packed_data(ipack) = pack_tmp
   36747      398633 :          data_tmp = full_data(idata)
   36748      398633 :          pack_tmp = ISHFT(data_tmp, 42)
   36749      398633 :          pack_tmp = ISHFT(pack_tmp, -42)
   36750      398633 :          idata = idata + 1
   36751      398633 :          data_tmp = full_data(idata)
   36752      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36753      398633 :          data_tmp = IAND(data_tmp, mask_left(42))
   36754      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36755      398633 :          ipack = ipack + 1
   36756      398633 :          packed_data(ipack) = pack_tmp
   36757      398633 :          data_tmp = full_data(idata)
   36758      398633 :          pack_tmp = ISHFT(data_tmp, 59)
   36759      398633 :          pack_tmp = ISHFT(pack_tmp, -47)
   36760      398633 :          idata = idata + 1
   36761      398633 :          data_tmp = full_data(idata)
   36762      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36763      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36764      398633 :          pack_tmp = ISHFT(pack_tmp, -12)
   36765      398633 :          idata = idata + 1
   36766      398633 :          data_tmp = full_data(idata)
   36767      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36768      398633 :          data_tmp = IAND(data_tmp, mask_left(12))
   36769      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36770      398633 :          ipack = ipack + 1
   36771      398633 :          packed_data(ipack) = pack_tmp
   36772      398633 :          data_tmp = full_data(idata)
   36773      398633 :          pack_tmp = ISHFT(data_tmp, 29)
   36774      398633 :          pack_tmp = ISHFT(pack_tmp, -29)
   36775      398633 :          idata = idata + 1
   36776      398633 :          data_tmp = full_data(idata)
   36777      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36778      398633 :          data_tmp = IAND(data_tmp, mask_left(29))
   36779      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36780      398633 :          ipack = ipack + 1
   36781      398633 :          packed_data(ipack) = pack_tmp
   36782      398633 :          data_tmp = full_data(idata)
   36783      398633 :          pack_tmp = ISHFT(data_tmp, 46)
   36784      398633 :          pack_tmp = ISHFT(pack_tmp, -46)
   36785      398633 :          idata = idata + 1
   36786      398633 :          data_tmp = full_data(idata)
   36787      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36788      398633 :          data_tmp = IAND(data_tmp, mask_left(46))
   36789      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36790      398633 :          ipack = ipack + 1
   36791      398633 :          packed_data(ipack) = pack_tmp
   36792      398633 :          data_tmp = full_data(idata)
   36793      398633 :          pack_tmp = ISHFT(data_tmp, 63)
   36794      398633 :          pack_tmp = ISHFT(pack_tmp, -47)
   36795      398633 :          idata = idata + 1
   36796      398633 :          data_tmp = full_data(idata)
   36797      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36798      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36799      398633 :          pack_tmp = ISHFT(pack_tmp, -16)
   36800      398633 :          idata = idata + 1
   36801      398633 :          data_tmp = full_data(idata)
   36802      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36803      398633 :          data_tmp = IAND(data_tmp, mask_left(16))
   36804      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36805      398633 :          ipack = ipack + 1
   36806      398633 :          packed_data(ipack) = pack_tmp
   36807      398633 :          data_tmp = full_data(idata)
   36808      398633 :          pack_tmp = ISHFT(data_tmp, 33)
   36809      398633 :          pack_tmp = ISHFT(pack_tmp, -33)
   36810      398633 :          idata = idata + 1
   36811      398633 :          data_tmp = full_data(idata)
   36812      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36813      398633 :          data_tmp = IAND(data_tmp, mask_left(33))
   36814      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36815      398633 :          ipack = ipack + 1
   36816      398633 :          packed_data(ipack) = pack_tmp
   36817      398633 :          data_tmp = full_data(idata)
   36818      398633 :          pack_tmp = ISHFT(data_tmp, 50)
   36819      398633 :          pack_tmp = ISHFT(pack_tmp, -47)
   36820      398633 :          idata = idata + 1
   36821      398633 :          data_tmp = full_data(idata)
   36822      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36823      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36824      398633 :          pack_tmp = ISHFT(pack_tmp, -3)
   36825      398633 :          idata = idata + 1
   36826      398633 :          data_tmp = full_data(idata)
   36827      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36828      398633 :          data_tmp = IAND(data_tmp, mask_left(3))
   36829      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36830      398633 :          ipack = ipack + 1
   36831      398633 :          packed_data(ipack) = pack_tmp
   36832      398633 :          data_tmp = full_data(idata)
   36833      398633 :          pack_tmp = ISHFT(data_tmp, 20)
   36834      398633 :          pack_tmp = ISHFT(pack_tmp, -20)
   36835      398633 :          idata = idata + 1
   36836      398633 :          data_tmp = full_data(idata)
   36837      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36838      398633 :          data_tmp = IAND(data_tmp, mask_left(20))
   36839      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36840      398633 :          ipack = ipack + 1
   36841      398633 :          packed_data(ipack) = pack_tmp
   36842      398633 :          data_tmp = full_data(idata)
   36843      398633 :          pack_tmp = ISHFT(data_tmp, 37)
   36844      398633 :          pack_tmp = ISHFT(pack_tmp, -37)
   36845      398633 :          idata = idata + 1
   36846      398633 :          data_tmp = full_data(idata)
   36847      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36848      398633 :          data_tmp = IAND(data_tmp, mask_left(37))
   36849      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36850      398633 :          ipack = ipack + 1
   36851      398633 :          packed_data(ipack) = pack_tmp
   36852      398633 :          data_tmp = full_data(idata)
   36853      398633 :          pack_tmp = ISHFT(data_tmp, 54)
   36854      398633 :          pack_tmp = ISHFT(pack_tmp, -47)
   36855      398633 :          idata = idata + 1
   36856      398633 :          data_tmp = full_data(idata)
   36857      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36858      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36859      398633 :          pack_tmp = ISHFT(pack_tmp, -7)
   36860      398633 :          idata = idata + 1
   36861      398633 :          data_tmp = full_data(idata)
   36862      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36863      398633 :          data_tmp = IAND(data_tmp, mask_left(7))
   36864      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36865      398633 :          ipack = ipack + 1
   36866      398633 :          packed_data(ipack) = pack_tmp
   36867      398633 :          data_tmp = full_data(idata)
   36868      398633 :          pack_tmp = ISHFT(data_tmp, 24)
   36869      398633 :          pack_tmp = ISHFT(pack_tmp, -24)
   36870      398633 :          idata = idata + 1
   36871      398633 :          data_tmp = full_data(idata)
   36872      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36873      398633 :          data_tmp = IAND(data_tmp, mask_left(24))
   36874      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36875      398633 :          ipack = ipack + 1
   36876      398633 :          packed_data(ipack) = pack_tmp
   36877      398633 :          data_tmp = full_data(idata)
   36878      398633 :          pack_tmp = ISHFT(data_tmp, 41)
   36879      398633 :          pack_tmp = ISHFT(pack_tmp, -41)
   36880      398633 :          idata = idata + 1
   36881      398633 :          data_tmp = full_data(idata)
   36882      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36883      398633 :          data_tmp = IAND(data_tmp, mask_left(41))
   36884      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36885      398633 :          ipack = ipack + 1
   36886      398633 :          packed_data(ipack) = pack_tmp
   36887      398633 :          data_tmp = full_data(idata)
   36888      398633 :          pack_tmp = ISHFT(data_tmp, 58)
   36889      398633 :          pack_tmp = ISHFT(pack_tmp, -47)
   36890      398633 :          idata = idata + 1
   36891      398633 :          data_tmp = full_data(idata)
   36892      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36893      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36894      398633 :          pack_tmp = ISHFT(pack_tmp, -11)
   36895      398633 :          idata = idata + 1
   36896      398633 :          data_tmp = full_data(idata)
   36897      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36898      398633 :          data_tmp = IAND(data_tmp, mask_left(11))
   36899      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36900      398633 :          ipack = ipack + 1
   36901      398633 :          packed_data(ipack) = pack_tmp
   36902      398633 :          data_tmp = full_data(idata)
   36903      398633 :          pack_tmp = ISHFT(data_tmp, 28)
   36904      398633 :          pack_tmp = ISHFT(pack_tmp, -28)
   36905      398633 :          idata = idata + 1
   36906      398633 :          data_tmp = full_data(idata)
   36907      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36908      398633 :          data_tmp = IAND(data_tmp, mask_left(28))
   36909      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36910      398633 :          ipack = ipack + 1
   36911      398633 :          packed_data(ipack) = pack_tmp
   36912      398633 :          data_tmp = full_data(idata)
   36913      398633 :          pack_tmp = ISHFT(data_tmp, 45)
   36914      398633 :          pack_tmp = ISHFT(pack_tmp, -45)
   36915      398633 :          idata = idata + 1
   36916      398633 :          data_tmp = full_data(idata)
   36917      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36918      398633 :          data_tmp = IAND(data_tmp, mask_left(45))
   36919      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36920      398633 :          ipack = ipack + 1
   36921      398633 :          packed_data(ipack) = pack_tmp
   36922      398633 :          data_tmp = full_data(idata)
   36923      398633 :          pack_tmp = ISHFT(data_tmp, 62)
   36924      398633 :          pack_tmp = ISHFT(pack_tmp, -47)
   36925      398633 :          idata = idata + 1
   36926      398633 :          data_tmp = full_data(idata)
   36927      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36928      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36929      398633 :          pack_tmp = ISHFT(pack_tmp, -15)
   36930      398633 :          idata = idata + 1
   36931      398633 :          data_tmp = full_data(idata)
   36932      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36933      398633 :          data_tmp = IAND(data_tmp, mask_left(15))
   36934      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36935      398633 :          ipack = ipack + 1
   36936      398633 :          packed_data(ipack) = pack_tmp
   36937      398633 :          data_tmp = full_data(idata)
   36938      398633 :          pack_tmp = ISHFT(data_tmp, 32)
   36939      398633 :          pack_tmp = ISHFT(pack_tmp, -32)
   36940      398633 :          idata = idata + 1
   36941      398633 :          data_tmp = full_data(idata)
   36942      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36943      398633 :          data_tmp = IAND(data_tmp, mask_left(32))
   36944      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36945      398633 :          ipack = ipack + 1
   36946      398633 :          packed_data(ipack) = pack_tmp
   36947      398633 :          data_tmp = full_data(idata)
   36948      398633 :          pack_tmp = ISHFT(data_tmp, 49)
   36949      398633 :          pack_tmp = ISHFT(pack_tmp, -47)
   36950      398633 :          idata = idata + 1
   36951      398633 :          data_tmp = full_data(idata)
   36952      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36953      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36954      398633 :          pack_tmp = ISHFT(pack_tmp, -2)
   36955      398633 :          idata = idata + 1
   36956      398633 :          data_tmp = full_data(idata)
   36957      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36958      398633 :          data_tmp = IAND(data_tmp, mask_left(2))
   36959      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36960      398633 :          ipack = ipack + 1
   36961      398633 :          packed_data(ipack) = pack_tmp
   36962      398633 :          data_tmp = full_data(idata)
   36963      398633 :          pack_tmp = ISHFT(data_tmp, 19)
   36964      398633 :          pack_tmp = ISHFT(pack_tmp, -19)
   36965      398633 :          idata = idata + 1
   36966      398633 :          data_tmp = full_data(idata)
   36967      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36968      398633 :          data_tmp = IAND(data_tmp, mask_left(19))
   36969      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36970      398633 :          ipack = ipack + 1
   36971      398633 :          packed_data(ipack) = pack_tmp
   36972      398633 :          data_tmp = full_data(idata)
   36973      398633 :          pack_tmp = ISHFT(data_tmp, 36)
   36974      398633 :          pack_tmp = ISHFT(pack_tmp, -36)
   36975      398633 :          idata = idata + 1
   36976      398633 :          data_tmp = full_data(idata)
   36977      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36978      398633 :          data_tmp = IAND(data_tmp, mask_left(36))
   36979      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36980      398633 :          ipack = ipack + 1
   36981      398633 :          packed_data(ipack) = pack_tmp
   36982      398633 :          data_tmp = full_data(idata)
   36983      398633 :          pack_tmp = ISHFT(data_tmp, 53)
   36984      398633 :          pack_tmp = ISHFT(pack_tmp, -47)
   36985      398633 :          idata = idata + 1
   36986      398633 :          data_tmp = full_data(idata)
   36987      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36988      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36989      398633 :          pack_tmp = ISHFT(pack_tmp, -6)
   36990      398633 :          idata = idata + 1
   36991      398633 :          data_tmp = full_data(idata)
   36992      398633 :          data_tmp = ISHFT(data_tmp, 17)
   36993      398633 :          data_tmp = IAND(data_tmp, mask_left(6))
   36994      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36995      398633 :          ipack = ipack + 1
   36996      398633 :          packed_data(ipack) = pack_tmp
   36997      398633 :          data_tmp = full_data(idata)
   36998      398633 :          pack_tmp = ISHFT(data_tmp, 23)
   36999      398633 :          pack_tmp = ISHFT(pack_tmp, -23)
   37000      398633 :          idata = idata + 1
   37001      398633 :          data_tmp = full_data(idata)
   37002      398633 :          data_tmp = ISHFT(data_tmp, 17)
   37003      398633 :          data_tmp = IAND(data_tmp, mask_left(23))
   37004      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37005      398633 :          ipack = ipack + 1
   37006      398633 :          packed_data(ipack) = pack_tmp
   37007      398633 :          data_tmp = full_data(idata)
   37008      398633 :          pack_tmp = ISHFT(data_tmp, 40)
   37009      398633 :          pack_tmp = ISHFT(pack_tmp, -40)
   37010      398633 :          idata = idata + 1
   37011      398633 :          data_tmp = full_data(idata)
   37012      398633 :          data_tmp = ISHFT(data_tmp, 17)
   37013      398633 :          data_tmp = IAND(data_tmp, mask_left(40))
   37014      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37015      398633 :          ipack = ipack + 1
   37016      398633 :          packed_data(ipack) = pack_tmp
   37017      398633 :          data_tmp = full_data(idata)
   37018      398633 :          pack_tmp = ISHFT(data_tmp, 57)
   37019      398633 :          pack_tmp = ISHFT(pack_tmp, -47)
   37020      398633 :          idata = idata + 1
   37021      398633 :          data_tmp = full_data(idata)
   37022      398633 :          data_tmp = ISHFT(data_tmp, 17)
   37023      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37024      398633 :          pack_tmp = ISHFT(pack_tmp, -10)
   37025      398633 :          idata = idata + 1
   37026      398633 :          data_tmp = full_data(idata)
   37027      398633 :          data_tmp = ISHFT(data_tmp, 17)
   37028      398633 :          data_tmp = IAND(data_tmp, mask_left(10))
   37029      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37030      398633 :          ipack = ipack + 1
   37031      398633 :          packed_data(ipack) = pack_tmp
   37032      398633 :          data_tmp = full_data(idata)
   37033      398633 :          pack_tmp = ISHFT(data_tmp, 27)
   37034      398633 :          pack_tmp = ISHFT(pack_tmp, -27)
   37035      398633 :          idata = idata + 1
   37036      398633 :          data_tmp = full_data(idata)
   37037      398633 :          data_tmp = ISHFT(data_tmp, 17)
   37038      398633 :          data_tmp = IAND(data_tmp, mask_left(27))
   37039      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37040      398633 :          ipack = ipack + 1
   37041      398633 :          packed_data(ipack) = pack_tmp
   37042      398633 :          data_tmp = full_data(idata)
   37043      398633 :          pack_tmp = ISHFT(data_tmp, 44)
   37044      398633 :          pack_tmp = ISHFT(pack_tmp, -44)
   37045      398633 :          idata = idata + 1
   37046      398633 :          data_tmp = full_data(idata)
   37047      398633 :          data_tmp = ISHFT(data_tmp, 17)
   37048      398633 :          data_tmp = IAND(data_tmp, mask_left(44))
   37049      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37050      398633 :          ipack = ipack + 1
   37051      398633 :          packed_data(ipack) = pack_tmp
   37052      398633 :          data_tmp = full_data(idata)
   37053      398633 :          pack_tmp = ISHFT(data_tmp, 61)
   37054      398633 :          pack_tmp = ISHFT(pack_tmp, -47)
   37055      398633 :          idata = idata + 1
   37056      398633 :          data_tmp = full_data(idata)
   37057      398633 :          data_tmp = ISHFT(data_tmp, 17)
   37058      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37059      398633 :          pack_tmp = ISHFT(pack_tmp, -14)
   37060      398633 :          idata = idata + 1
   37061      398633 :          data_tmp = full_data(idata)
   37062      398633 :          data_tmp = ISHFT(data_tmp, 17)
   37063      398633 :          data_tmp = IAND(data_tmp, mask_left(14))
   37064      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37065      398633 :          ipack = ipack + 1
   37066      398633 :          packed_data(ipack) = pack_tmp
   37067      398633 :          data_tmp = full_data(idata)
   37068      398633 :          pack_tmp = ISHFT(data_tmp, 31)
   37069      398633 :          pack_tmp = ISHFT(pack_tmp, -31)
   37070      398633 :          idata = idata + 1
   37071      398633 :          data_tmp = full_data(idata)
   37072      398633 :          data_tmp = ISHFT(data_tmp, 17)
   37073      398633 :          data_tmp = IAND(data_tmp, mask_left(31))
   37074      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37075      398633 :          ipack = ipack + 1
   37076      398633 :          packed_data(ipack) = pack_tmp
   37077      398633 :          data_tmp = full_data(idata)
   37078      398633 :          pack_tmp = ISHFT(data_tmp, 48)
   37079      398633 :          pack_tmp = ISHFT(pack_tmp, -47)
   37080      398633 :          idata = idata + 1
   37081      398633 :          data_tmp = full_data(idata)
   37082      398633 :          data_tmp = ISHFT(data_tmp, 17)
   37083      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37084      398633 :          pack_tmp = ISHFT(pack_tmp, -1)
   37085      398633 :          idata = idata + 1
   37086      398633 :          data_tmp = full_data(idata)
   37087      398633 :          data_tmp = ISHFT(data_tmp, 17)
   37088      398633 :          data_tmp = IAND(data_tmp, mask_left(1))
   37089      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37090      398633 :          ipack = ipack + 1
   37091      398633 :          packed_data(ipack) = pack_tmp
   37092      398633 :          data_tmp = full_data(idata)
   37093      398633 :          pack_tmp = ISHFT(data_tmp, 18)
   37094      398633 :          pack_tmp = ISHFT(pack_tmp, -18)
   37095      398633 :          idata = idata + 1
   37096      398633 :          data_tmp = full_data(idata)
   37097      398633 :          data_tmp = ISHFT(data_tmp, 17)
   37098      398633 :          data_tmp = IAND(data_tmp, mask_left(18))
   37099      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37100      398633 :          ipack = ipack + 1
   37101      398633 :          packed_data(ipack) = pack_tmp
   37102      398633 :          data_tmp = full_data(idata)
   37103      398633 :          pack_tmp = ISHFT(data_tmp, 35)
   37104      398633 :          pack_tmp = ISHFT(pack_tmp, -35)
   37105      398633 :          idata = idata + 1
   37106      398633 :          data_tmp = full_data(idata)
   37107      398633 :          data_tmp = ISHFT(data_tmp, 17)
   37108      398633 :          data_tmp = IAND(data_tmp, mask_left(35))
   37109      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37110      398633 :          ipack = ipack + 1
   37111      398633 :          packed_data(ipack) = pack_tmp
   37112      398633 :          data_tmp = full_data(idata)
   37113      398633 :          pack_tmp = ISHFT(data_tmp, 52)
   37114      398633 :          pack_tmp = ISHFT(pack_tmp, -47)
   37115      398633 :          idata = idata + 1
   37116      398633 :          data_tmp = full_data(idata)
   37117      398633 :          data_tmp = ISHFT(data_tmp, 17)
   37118      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37119      398633 :          pack_tmp = ISHFT(pack_tmp, -5)
   37120      398633 :          idata = idata + 1
   37121      398633 :          data_tmp = full_data(idata)
   37122      398633 :          data_tmp = ISHFT(data_tmp, 17)
   37123      398633 :          data_tmp = IAND(data_tmp, mask_left(5))
   37124      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37125      398633 :          ipack = ipack + 1
   37126      398633 :          packed_data(ipack) = pack_tmp
   37127      398633 :          data_tmp = full_data(idata)
   37128      398633 :          pack_tmp = ISHFT(data_tmp, 22)
   37129      398633 :          pack_tmp = ISHFT(pack_tmp, -22)
   37130      398633 :          idata = idata + 1
   37131      398633 :          data_tmp = full_data(idata)
   37132      398633 :          data_tmp = ISHFT(data_tmp, 17)
   37133      398633 :          data_tmp = IAND(data_tmp, mask_left(22))
   37134      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37135      398633 :          ipack = ipack + 1
   37136      398633 :          packed_data(ipack) = pack_tmp
   37137      398633 :          data_tmp = full_data(idata)
   37138      398633 :          pack_tmp = ISHFT(data_tmp, 39)
   37139      398633 :          pack_tmp = ISHFT(pack_tmp, -39)
   37140      398633 :          idata = idata + 1
   37141      398633 :          data_tmp = full_data(idata)
   37142      398633 :          data_tmp = ISHFT(data_tmp, 17)
   37143      398633 :          data_tmp = IAND(data_tmp, mask_left(39))
   37144      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37145      398633 :          ipack = ipack + 1
   37146      398633 :          packed_data(ipack) = pack_tmp
   37147      398633 :          data_tmp = full_data(idata)
   37148      398633 :          pack_tmp = ISHFT(data_tmp, 56)
   37149      398633 :          pack_tmp = ISHFT(pack_tmp, -47)
   37150      398633 :          idata = idata + 1
   37151      398633 :          data_tmp = full_data(idata)
   37152      398633 :          data_tmp = ISHFT(data_tmp, 17)
   37153      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37154      398633 :          pack_tmp = ISHFT(pack_tmp, -9)
   37155      398633 :          idata = idata + 1
   37156      398633 :          data_tmp = full_data(idata)
   37157      398633 :          data_tmp = ISHFT(data_tmp, 17)
   37158      398633 :          data_tmp = IAND(data_tmp, mask_left(9))
   37159      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37160      398633 :          ipack = ipack + 1
   37161      398633 :          packed_data(ipack) = pack_tmp
   37162      398633 :          data_tmp = full_data(idata)
   37163      398633 :          pack_tmp = ISHFT(data_tmp, 26)
   37164      398633 :          pack_tmp = ISHFT(pack_tmp, -26)
   37165      398633 :          idata = idata + 1
   37166      398633 :          data_tmp = full_data(idata)
   37167      398633 :          data_tmp = ISHFT(data_tmp, 17)
   37168      398633 :          data_tmp = IAND(data_tmp, mask_left(26))
   37169      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37170      398633 :          ipack = ipack + 1
   37171      398633 :          packed_data(ipack) = pack_tmp
   37172      398633 :          data_tmp = full_data(idata)
   37173      398633 :          pack_tmp = ISHFT(data_tmp, 43)
   37174      398633 :          pack_tmp = ISHFT(pack_tmp, -43)
   37175      398633 :          idata = idata + 1
   37176      398633 :          data_tmp = full_data(idata)
   37177      398633 :          data_tmp = ISHFT(data_tmp, 17)
   37178      398633 :          data_tmp = IAND(data_tmp, mask_left(43))
   37179      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37180      398633 :          ipack = ipack + 1
   37181      398633 :          packed_data(ipack) = pack_tmp
   37182      398633 :          data_tmp = full_data(idata)
   37183      398633 :          pack_tmp = ISHFT(data_tmp, 60)
   37184      398633 :          pack_tmp = ISHFT(pack_tmp, -47)
   37185      398633 :          idata = idata + 1
   37186      398633 :          data_tmp = full_data(idata)
   37187      398633 :          data_tmp = ISHFT(data_tmp, 17)
   37188      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37189      398633 :          pack_tmp = ISHFT(pack_tmp, -13)
   37190      398633 :          idata = idata + 1
   37191      398633 :          data_tmp = full_data(idata)
   37192      398633 :          data_tmp = ISHFT(data_tmp, 17)
   37193      398633 :          data_tmp = IAND(data_tmp, mask_left(13))
   37194      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37195      398633 :          ipack = ipack + 1
   37196      398633 :          packed_data(ipack) = pack_tmp
   37197      398633 :          data_tmp = full_data(idata)
   37198      398633 :          pack_tmp = ISHFT(data_tmp, 30)
   37199      398633 :          pack_tmp = ISHFT(pack_tmp, -30)
   37200      398633 :          idata = idata + 1
   37201      398633 :          data_tmp = full_data(idata)
   37202      398633 :          data_tmp = ISHFT(data_tmp, 17)
   37203      398633 :          data_tmp = IAND(data_tmp, mask_left(30))
   37204      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37205      398633 :          ipack = ipack + 1
   37206      398633 :          packed_data(ipack) = pack_tmp
   37207      398633 :          data_tmp = full_data(idata)
   37208      398633 :          pack_tmp = ISHFT(data_tmp, 47)
   37209      398633 :          pack_tmp = ISHFT(pack_tmp, -47)
   37210      398633 :          idata = idata + 1
   37211      398633 :          data_tmp = full_data(idata)
   37212      398633 :          data_tmp = ISHFT(data_tmp, 17)
   37213      398633 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37214             :          pack_tmp = ISHFT(pack_tmp, 0)
   37215      398633 :          pack_tmp = ISHFT(pack_tmp, 0)
   37216      398633 :          ipack = ipack + 1
   37217      398637 :          packed_data(ipack) = pack_tmp
   37218             :       END DO
   37219       26112 :       IF (Ndata_rep < Ndata) THEN
   37220        2254 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   37221             :       END IF
   37222       26112 :    END SUBROUTINE ints2bits_47
   37223             : 
   37224             : ! **************************************************************************************************
   37225             : !> \brief ...
   37226             : !> \param Ndata ...
   37227             : !> \param packed_data ...
   37228             : !> \param full_data ...
   37229             : ! **************************************************************************************************
   37230      114725 :    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      114725 :       ipack = 0
   37241      114725 :       idata = 0
   37242      114725 :       pack_tmp = 0
   37243      114725 :       Ndata_rep = (Ndata/64)*64
   37244      114725 :       DO kdata = 1, Ndata_rep, 64
   37245     1689366 :          idata = idata + 1
   37246     1689366 :          data_tmp = ISHFT(pack_tmp, 47)
   37247     1689366 :          ipack = ipack + 1
   37248     1689366 :          pack_tmp = packed_data(ipack)
   37249     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   37250     1689366 :          pack_tmp = ISHFT(pack_tmp, -47)
   37251     1689366 :          idata = idata + 1
   37252     1689366 :          data_tmp = ISHFT(pack_tmp, 30)
   37253     1689366 :          ipack = ipack + 1
   37254     1689366 :          pack_tmp = packed_data(ipack)
   37255     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   37256     1689366 :          pack_tmp = ISHFT(pack_tmp, -30)
   37257     1689366 :          idata = idata + 1
   37258     1689366 :          data_tmp = ISHFT(pack_tmp, 13)
   37259     1689366 :          ipack = ipack + 1
   37260     1689366 :          pack_tmp = packed_data(ipack)
   37261     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   37262     1689366 :          pack_tmp = ISHFT(pack_tmp, -13)
   37263     1689366 :          idata = idata + 1
   37264     1689366 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37265     1689366 :          full_data(idata) = data_tmp
   37266     1689366 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37267     1689366 :          idata = idata + 1
   37268     1689366 :          data_tmp = ISHFT(pack_tmp, 43)
   37269     1689366 :          ipack = ipack + 1
   37270     1689366 :          pack_tmp = packed_data(ipack)
   37271     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   37272     1689366 :          pack_tmp = ISHFT(pack_tmp, -43)
   37273     1689366 :          idata = idata + 1
   37274     1689366 :          data_tmp = ISHFT(pack_tmp, 26)
   37275     1689366 :          ipack = ipack + 1
   37276     1689366 :          pack_tmp = packed_data(ipack)
   37277     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   37278     1689366 :          pack_tmp = ISHFT(pack_tmp, -26)
   37279     1689366 :          idata = idata + 1
   37280     1689366 :          data_tmp = ISHFT(pack_tmp, 9)
   37281     1689366 :          ipack = ipack + 1
   37282     1689366 :          pack_tmp = packed_data(ipack)
   37283     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   37284     1689366 :          pack_tmp = ISHFT(pack_tmp, -9)
   37285     1689366 :          idata = idata + 1
   37286     1689366 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37287     1689366 :          full_data(idata) = data_tmp
   37288     1689366 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37289     1689366 :          idata = idata + 1
   37290     1689366 :          data_tmp = ISHFT(pack_tmp, 39)
   37291     1689366 :          ipack = ipack + 1
   37292     1689366 :          pack_tmp = packed_data(ipack)
   37293     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   37294     1689366 :          pack_tmp = ISHFT(pack_tmp, -39)
   37295     1689366 :          idata = idata + 1
   37296     1689366 :          data_tmp = ISHFT(pack_tmp, 22)
   37297     1689366 :          ipack = ipack + 1
   37298     1689366 :          pack_tmp = packed_data(ipack)
   37299     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   37300     1689366 :          pack_tmp = ISHFT(pack_tmp, -22)
   37301     1689366 :          idata = idata + 1
   37302     1689366 :          data_tmp = ISHFT(pack_tmp, 5)
   37303     1689366 :          ipack = ipack + 1
   37304     1689366 :          pack_tmp = packed_data(ipack)
   37305     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   37306     1689366 :          pack_tmp = ISHFT(pack_tmp, -5)
   37307     1689366 :          idata = idata + 1
   37308     1689366 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37309     1689366 :          full_data(idata) = data_tmp
   37310     1689366 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37311     1689366 :          idata = idata + 1
   37312     1689366 :          data_tmp = ISHFT(pack_tmp, 35)
   37313     1689366 :          ipack = ipack + 1
   37314     1689366 :          pack_tmp = packed_data(ipack)
   37315     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   37316     1689366 :          pack_tmp = ISHFT(pack_tmp, -35)
   37317     1689366 :          idata = idata + 1
   37318     1689366 :          data_tmp = ISHFT(pack_tmp, 18)
   37319     1689366 :          ipack = ipack + 1
   37320     1689366 :          pack_tmp = packed_data(ipack)
   37321     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   37322     1689366 :          pack_tmp = ISHFT(pack_tmp, -18)
   37323     1689366 :          idata = idata + 1
   37324     1689366 :          data_tmp = ISHFT(pack_tmp, 1)
   37325     1689366 :          ipack = ipack + 1
   37326     1689366 :          pack_tmp = packed_data(ipack)
   37327     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   37328     1689366 :          pack_tmp = ISHFT(pack_tmp, -1)
   37329     1689366 :          idata = idata + 1
   37330     1689366 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37331     1689366 :          full_data(idata) = data_tmp
   37332     1689366 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37333     1689366 :          idata = idata + 1
   37334     1689366 :          data_tmp = ISHFT(pack_tmp, 31)
   37335     1689366 :          ipack = ipack + 1
   37336     1689366 :          pack_tmp = packed_data(ipack)
   37337     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   37338     1689366 :          pack_tmp = ISHFT(pack_tmp, -31)
   37339     1689366 :          idata = idata + 1
   37340     1689366 :          data_tmp = ISHFT(pack_tmp, 14)
   37341     1689366 :          ipack = ipack + 1
   37342     1689366 :          pack_tmp = packed_data(ipack)
   37343     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   37344     1689366 :          pack_tmp = ISHFT(pack_tmp, -14)
   37345     1689366 :          idata = idata + 1
   37346     1689366 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37347     1689366 :          full_data(idata) = data_tmp
   37348     1689366 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37349     1689366 :          idata = idata + 1
   37350     1689366 :          data_tmp = ISHFT(pack_tmp, 44)
   37351     1689366 :          ipack = ipack + 1
   37352     1689366 :          pack_tmp = packed_data(ipack)
   37353     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   37354     1689366 :          pack_tmp = ISHFT(pack_tmp, -44)
   37355     1689366 :          idata = idata + 1
   37356     1689366 :          data_tmp = ISHFT(pack_tmp, 27)
   37357     1689366 :          ipack = ipack + 1
   37358     1689366 :          pack_tmp = packed_data(ipack)
   37359     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   37360     1689366 :          pack_tmp = ISHFT(pack_tmp, -27)
   37361     1689366 :          idata = idata + 1
   37362     1689366 :          data_tmp = ISHFT(pack_tmp, 10)
   37363     1689366 :          ipack = ipack + 1
   37364     1689366 :          pack_tmp = packed_data(ipack)
   37365     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   37366     1689366 :          pack_tmp = ISHFT(pack_tmp, -10)
   37367     1689366 :          idata = idata + 1
   37368     1689366 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37369     1689366 :          full_data(idata) = data_tmp
   37370     1689366 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37371     1689366 :          idata = idata + 1
   37372     1689366 :          data_tmp = ISHFT(pack_tmp, 40)
   37373     1689366 :          ipack = ipack + 1
   37374     1689366 :          pack_tmp = packed_data(ipack)
   37375     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   37376     1689366 :          pack_tmp = ISHFT(pack_tmp, -40)
   37377     1689366 :          idata = idata + 1
   37378     1689366 :          data_tmp = ISHFT(pack_tmp, 23)
   37379     1689366 :          ipack = ipack + 1
   37380     1689366 :          pack_tmp = packed_data(ipack)
   37381     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   37382     1689366 :          pack_tmp = ISHFT(pack_tmp, -23)
   37383     1689366 :          idata = idata + 1
   37384     1689366 :          data_tmp = ISHFT(pack_tmp, 6)
   37385     1689366 :          ipack = ipack + 1
   37386     1689366 :          pack_tmp = packed_data(ipack)
   37387     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   37388     1689366 :          pack_tmp = ISHFT(pack_tmp, -6)
   37389     1689366 :          idata = idata + 1
   37390     1689366 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37391     1689366 :          full_data(idata) = data_tmp
   37392     1689366 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37393     1689366 :          idata = idata + 1
   37394     1689366 :          data_tmp = ISHFT(pack_tmp, 36)
   37395     1689366 :          ipack = ipack + 1
   37396     1689366 :          pack_tmp = packed_data(ipack)
   37397     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   37398     1689366 :          pack_tmp = ISHFT(pack_tmp, -36)
   37399     1689366 :          idata = idata + 1
   37400     1689366 :          data_tmp = ISHFT(pack_tmp, 19)
   37401     1689366 :          ipack = ipack + 1
   37402     1689366 :          pack_tmp = packed_data(ipack)
   37403     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   37404     1689366 :          pack_tmp = ISHFT(pack_tmp, -19)
   37405     1689366 :          idata = idata + 1
   37406     1689366 :          data_tmp = ISHFT(pack_tmp, 2)
   37407     1689366 :          ipack = ipack + 1
   37408     1689366 :          pack_tmp = packed_data(ipack)
   37409     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   37410     1689366 :          pack_tmp = ISHFT(pack_tmp, -2)
   37411     1689366 :          idata = idata + 1
   37412     1689366 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37413     1689366 :          full_data(idata) = data_tmp
   37414     1689366 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37415     1689366 :          idata = idata + 1
   37416     1689366 :          data_tmp = ISHFT(pack_tmp, 32)
   37417     1689366 :          ipack = ipack + 1
   37418     1689366 :          pack_tmp = packed_data(ipack)
   37419     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   37420     1689366 :          pack_tmp = ISHFT(pack_tmp, -32)
   37421     1689366 :          idata = idata + 1
   37422     1689366 :          data_tmp = ISHFT(pack_tmp, 15)
   37423     1689366 :          ipack = ipack + 1
   37424     1689366 :          pack_tmp = packed_data(ipack)
   37425     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   37426     1689366 :          pack_tmp = ISHFT(pack_tmp, -15)
   37427     1689366 :          idata = idata + 1
   37428     1689366 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37429     1689366 :          full_data(idata) = data_tmp
   37430     1689366 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37431     1689366 :          idata = idata + 1
   37432     1689366 :          data_tmp = ISHFT(pack_tmp, 45)
   37433     1689366 :          ipack = ipack + 1
   37434     1689366 :          pack_tmp = packed_data(ipack)
   37435     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   37436     1689366 :          pack_tmp = ISHFT(pack_tmp, -45)
   37437     1689366 :          idata = idata + 1
   37438     1689366 :          data_tmp = ISHFT(pack_tmp, 28)
   37439     1689366 :          ipack = ipack + 1
   37440     1689366 :          pack_tmp = packed_data(ipack)
   37441     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   37442     1689366 :          pack_tmp = ISHFT(pack_tmp, -28)
   37443     1689366 :          idata = idata + 1
   37444     1689366 :          data_tmp = ISHFT(pack_tmp, 11)
   37445     1689366 :          ipack = ipack + 1
   37446     1689366 :          pack_tmp = packed_data(ipack)
   37447     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   37448     1689366 :          pack_tmp = ISHFT(pack_tmp, -11)
   37449     1689366 :          idata = idata + 1
   37450     1689366 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37451     1689366 :          full_data(idata) = data_tmp
   37452     1689366 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37453     1689366 :          idata = idata + 1
   37454     1689366 :          data_tmp = ISHFT(pack_tmp, 41)
   37455     1689366 :          ipack = ipack + 1
   37456     1689366 :          pack_tmp = packed_data(ipack)
   37457     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   37458     1689366 :          pack_tmp = ISHFT(pack_tmp, -41)
   37459     1689366 :          idata = idata + 1
   37460     1689366 :          data_tmp = ISHFT(pack_tmp, 24)
   37461     1689366 :          ipack = ipack + 1
   37462     1689366 :          pack_tmp = packed_data(ipack)
   37463     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   37464     1689366 :          pack_tmp = ISHFT(pack_tmp, -24)
   37465     1689366 :          idata = idata + 1
   37466     1689366 :          data_tmp = ISHFT(pack_tmp, 7)
   37467     1689366 :          ipack = ipack + 1
   37468     1689366 :          pack_tmp = packed_data(ipack)
   37469     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   37470     1689366 :          pack_tmp = ISHFT(pack_tmp, -7)
   37471     1689366 :          idata = idata + 1
   37472     1689366 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37473     1689366 :          full_data(idata) = data_tmp
   37474     1689366 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37475     1689366 :          idata = idata + 1
   37476     1689366 :          data_tmp = ISHFT(pack_tmp, 37)
   37477     1689366 :          ipack = ipack + 1
   37478     1689366 :          pack_tmp = packed_data(ipack)
   37479     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   37480     1689366 :          pack_tmp = ISHFT(pack_tmp, -37)
   37481     1689366 :          idata = idata + 1
   37482     1689366 :          data_tmp = ISHFT(pack_tmp, 20)
   37483     1689366 :          ipack = ipack + 1
   37484     1689366 :          pack_tmp = packed_data(ipack)
   37485     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   37486     1689366 :          pack_tmp = ISHFT(pack_tmp, -20)
   37487     1689366 :          idata = idata + 1
   37488     1689366 :          data_tmp = ISHFT(pack_tmp, 3)
   37489     1689366 :          ipack = ipack + 1
   37490     1689366 :          pack_tmp = packed_data(ipack)
   37491     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   37492     1689366 :          pack_tmp = ISHFT(pack_tmp, -3)
   37493     1689366 :          idata = idata + 1
   37494     1689366 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37495     1689366 :          full_data(idata) = data_tmp
   37496     1689366 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37497     1689366 :          idata = idata + 1
   37498     1689366 :          data_tmp = ISHFT(pack_tmp, 33)
   37499     1689366 :          ipack = ipack + 1
   37500     1689366 :          pack_tmp = packed_data(ipack)
   37501     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   37502     1689366 :          pack_tmp = ISHFT(pack_tmp, -33)
   37503     1689366 :          idata = idata + 1
   37504     1689366 :          data_tmp = ISHFT(pack_tmp, 16)
   37505     1689366 :          ipack = ipack + 1
   37506     1689366 :          pack_tmp = packed_data(ipack)
   37507     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   37508     1689366 :          pack_tmp = ISHFT(pack_tmp, -16)
   37509     1689366 :          idata = idata + 1
   37510     1689366 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37511     1689366 :          full_data(idata) = data_tmp
   37512     1689366 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37513     1689366 :          idata = idata + 1
   37514     1689366 :          data_tmp = ISHFT(pack_tmp, 46)
   37515     1689366 :          ipack = ipack + 1
   37516     1689366 :          pack_tmp = packed_data(ipack)
   37517     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   37518     1689366 :          pack_tmp = ISHFT(pack_tmp, -46)
   37519     1689366 :          idata = idata + 1
   37520     1689366 :          data_tmp = ISHFT(pack_tmp, 29)
   37521     1689366 :          ipack = ipack + 1
   37522     1689366 :          pack_tmp = packed_data(ipack)
   37523     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   37524     1689366 :          pack_tmp = ISHFT(pack_tmp, -29)
   37525     1689366 :          idata = idata + 1
   37526     1689366 :          data_tmp = ISHFT(pack_tmp, 12)
   37527     1689366 :          ipack = ipack + 1
   37528     1689366 :          pack_tmp = packed_data(ipack)
   37529     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   37530     1689366 :          pack_tmp = ISHFT(pack_tmp, -12)
   37531     1689366 :          idata = idata + 1
   37532     1689366 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37533     1689366 :          full_data(idata) = data_tmp
   37534     1689366 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37535     1689366 :          idata = idata + 1
   37536     1689366 :          data_tmp = ISHFT(pack_tmp, 42)
   37537     1689366 :          ipack = ipack + 1
   37538     1689366 :          pack_tmp = packed_data(ipack)
   37539     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   37540     1689366 :          pack_tmp = ISHFT(pack_tmp, -42)
   37541     1689366 :          idata = idata + 1
   37542     1689366 :          data_tmp = ISHFT(pack_tmp, 25)
   37543     1689366 :          ipack = ipack + 1
   37544     1689366 :          pack_tmp = packed_data(ipack)
   37545     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   37546     1689366 :          pack_tmp = ISHFT(pack_tmp, -25)
   37547     1689366 :          idata = idata + 1
   37548     1689366 :          data_tmp = ISHFT(pack_tmp, 8)
   37549     1689366 :          ipack = ipack + 1
   37550     1689366 :          pack_tmp = packed_data(ipack)
   37551     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   37552     1689366 :          pack_tmp = ISHFT(pack_tmp, -8)
   37553     1689366 :          idata = idata + 1
   37554     1689366 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37555     1689366 :          full_data(idata) = data_tmp
   37556     1689366 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37557     1689366 :          idata = idata + 1
   37558     1689366 :          data_tmp = ISHFT(pack_tmp, 38)
   37559     1689366 :          ipack = ipack + 1
   37560     1689366 :          pack_tmp = packed_data(ipack)
   37561     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   37562     1689366 :          pack_tmp = ISHFT(pack_tmp, -38)
   37563     1689366 :          idata = idata + 1
   37564     1689366 :          data_tmp = ISHFT(pack_tmp, 21)
   37565     1689366 :          ipack = ipack + 1
   37566     1689366 :          pack_tmp = packed_data(ipack)
   37567     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   37568     1689366 :          pack_tmp = ISHFT(pack_tmp, -21)
   37569     1689366 :          idata = idata + 1
   37570     1689366 :          data_tmp = ISHFT(pack_tmp, 4)
   37571     1689366 :          ipack = ipack + 1
   37572     1689366 :          pack_tmp = packed_data(ipack)
   37573     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   37574     1689366 :          pack_tmp = ISHFT(pack_tmp, -4)
   37575     1689366 :          idata = idata + 1
   37576     1689366 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37577     1689366 :          full_data(idata) = data_tmp
   37578     1689366 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37579     1689366 :          idata = idata + 1
   37580     1689366 :          data_tmp = ISHFT(pack_tmp, 34)
   37581     1689366 :          ipack = ipack + 1
   37582     1689366 :          pack_tmp = packed_data(ipack)
   37583     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   37584     1689366 :          pack_tmp = ISHFT(pack_tmp, -34)
   37585     1689366 :          idata = idata + 1
   37586     1689366 :          data_tmp = ISHFT(pack_tmp, 17)
   37587     1689366 :          ipack = ipack + 1
   37588     1689366 :          pack_tmp = packed_data(ipack)
   37589     1689366 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   37590     1689366 :          pack_tmp = ISHFT(pack_tmp, -17)
   37591     1689366 :          idata = idata + 1
   37592     1689366 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37593     1689366 :          full_data(idata) = data_tmp
   37594     1689446 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37595             :       END DO
   37596      114725 :       IF (Ndata_rep < Ndata) THEN
   37597       17204 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   37598             :       END IF
   37599      114725 :    END SUBROUTINE bits2ints_47
   37600             : 
   37601             : ! **************************************************************************************************
   37602             : !> \brief ...
   37603             : !> \param Ndata ...
   37604             : !> \param packed_data ...
   37605             : !> \param full_data ...
   37606             : ! **************************************************************************************************
   37607       26673 :    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       26673 :       idata = 0
   37618       26673 :       ipack = 0
   37619       26673 :       Ndata_rep = (Ndata/64)*64
   37620       26673 :       DO kdata = 1, Ndata_rep, 64
   37621      402084 :          pack_tmp = 0
   37622      402084 :          idata = idata + 1
   37623      402084 :          data_tmp = full_data(idata)
   37624      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37625      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37626      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   37627      402084 :          idata = idata + 1
   37628      402084 :          data_tmp = full_data(idata)
   37629      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37630      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   37631      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37632      402084 :          ipack = ipack + 1
   37633      402084 :          packed_data(ipack) = pack_tmp
   37634      402084 :          data_tmp = full_data(idata)
   37635      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   37636      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   37637      402084 :          idata = idata + 1
   37638      402084 :          data_tmp = full_data(idata)
   37639      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37640      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   37641      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37642      402084 :          ipack = ipack + 1
   37643      402084 :          packed_data(ipack) = pack_tmp
   37644      402084 :          data_tmp = full_data(idata)
   37645      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   37646      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   37647      402084 :          idata = idata + 1
   37648      402084 :          data_tmp = full_data(idata)
   37649      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37650      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37651      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   37652      402084 :          idata = idata + 1
   37653      402084 :          data_tmp = full_data(idata)
   37654             :          data_tmp = ISHFT(data_tmp, 16)
   37655      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   37656      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37657      402084 :          ipack = ipack + 1
   37658      402084 :          packed_data(ipack) = pack_tmp
   37659      402084 :          data_tmp = full_data(idata)
   37660      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   37661      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   37662      402084 :          idata = idata + 1
   37663      402084 :          data_tmp = full_data(idata)
   37664      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37665      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   37666      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37667      402084 :          ipack = ipack + 1
   37668      402084 :          packed_data(ipack) = pack_tmp
   37669      402084 :          data_tmp = full_data(idata)
   37670      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   37671      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   37672      402084 :          idata = idata + 1
   37673      402084 :          data_tmp = full_data(idata)
   37674      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37675      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   37676      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37677      402084 :          ipack = ipack + 1
   37678      402084 :          packed_data(ipack) = pack_tmp
   37679      402084 :          data_tmp = full_data(idata)
   37680      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   37681      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   37682      402084 :          idata = idata + 1
   37683      402084 :          data_tmp = full_data(idata)
   37684      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37685      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37686      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   37687      402084 :          idata = idata + 1
   37688      402084 :          data_tmp = full_data(idata)
   37689             :          data_tmp = ISHFT(data_tmp, 16)
   37690      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   37691      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37692      402084 :          ipack = ipack + 1
   37693      402084 :          packed_data(ipack) = pack_tmp
   37694      402084 :          data_tmp = full_data(idata)
   37695      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   37696      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   37697      402084 :          idata = idata + 1
   37698      402084 :          data_tmp = full_data(idata)
   37699      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37700      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   37701      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37702      402084 :          ipack = ipack + 1
   37703      402084 :          packed_data(ipack) = pack_tmp
   37704      402084 :          data_tmp = full_data(idata)
   37705      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   37706      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   37707      402084 :          idata = idata + 1
   37708      402084 :          data_tmp = full_data(idata)
   37709      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37710      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   37711      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37712      402084 :          ipack = ipack + 1
   37713      402084 :          packed_data(ipack) = pack_tmp
   37714      402084 :          data_tmp = full_data(idata)
   37715      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   37716      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   37717      402084 :          idata = idata + 1
   37718      402084 :          data_tmp = full_data(idata)
   37719      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37720      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37721      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   37722      402084 :          idata = idata + 1
   37723      402084 :          data_tmp = full_data(idata)
   37724             :          data_tmp = ISHFT(data_tmp, 16)
   37725      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   37726      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37727      402084 :          ipack = ipack + 1
   37728      402084 :          packed_data(ipack) = pack_tmp
   37729      402084 :          data_tmp = full_data(idata)
   37730      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   37731      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   37732      402084 :          idata = idata + 1
   37733      402084 :          data_tmp = full_data(idata)
   37734      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37735      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   37736      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37737      402084 :          ipack = ipack + 1
   37738      402084 :          packed_data(ipack) = pack_tmp
   37739      402084 :          data_tmp = full_data(idata)
   37740      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   37741      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   37742      402084 :          idata = idata + 1
   37743      402084 :          data_tmp = full_data(idata)
   37744      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37745      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   37746      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37747      402084 :          ipack = ipack + 1
   37748      402084 :          packed_data(ipack) = pack_tmp
   37749      402084 :          data_tmp = full_data(idata)
   37750      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   37751      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   37752      402084 :          idata = idata + 1
   37753      402084 :          data_tmp = full_data(idata)
   37754      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37755      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37756      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   37757      402084 :          idata = idata + 1
   37758      402084 :          data_tmp = full_data(idata)
   37759             :          data_tmp = ISHFT(data_tmp, 16)
   37760      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   37761      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37762      402084 :          ipack = ipack + 1
   37763      402084 :          packed_data(ipack) = pack_tmp
   37764      402084 :          data_tmp = full_data(idata)
   37765      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   37766      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   37767      402084 :          idata = idata + 1
   37768      402084 :          data_tmp = full_data(idata)
   37769      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37770      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   37771      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37772      402084 :          ipack = ipack + 1
   37773      402084 :          packed_data(ipack) = pack_tmp
   37774      402084 :          data_tmp = full_data(idata)
   37775      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   37776      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   37777      402084 :          idata = idata + 1
   37778      402084 :          data_tmp = full_data(idata)
   37779      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37780      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   37781      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37782      402084 :          ipack = ipack + 1
   37783      402084 :          packed_data(ipack) = pack_tmp
   37784      402084 :          data_tmp = full_data(idata)
   37785      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   37786      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   37787      402084 :          idata = idata + 1
   37788      402084 :          data_tmp = full_data(idata)
   37789      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37790      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37791      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   37792      402084 :          idata = idata + 1
   37793      402084 :          data_tmp = full_data(idata)
   37794             :          data_tmp = ISHFT(data_tmp, 16)
   37795      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   37796      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37797      402084 :          ipack = ipack + 1
   37798      402084 :          packed_data(ipack) = pack_tmp
   37799      402084 :          data_tmp = full_data(idata)
   37800      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   37801      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   37802      402084 :          idata = idata + 1
   37803      402084 :          data_tmp = full_data(idata)
   37804      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37805      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   37806      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37807      402084 :          ipack = ipack + 1
   37808      402084 :          packed_data(ipack) = pack_tmp
   37809      402084 :          data_tmp = full_data(idata)
   37810      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   37811      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   37812      402084 :          idata = idata + 1
   37813      402084 :          data_tmp = full_data(idata)
   37814      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37815      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   37816      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37817      402084 :          ipack = ipack + 1
   37818      402084 :          packed_data(ipack) = pack_tmp
   37819      402084 :          data_tmp = full_data(idata)
   37820      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   37821      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   37822      402084 :          idata = idata + 1
   37823      402084 :          data_tmp = full_data(idata)
   37824      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37825      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37826      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   37827      402084 :          idata = idata + 1
   37828      402084 :          data_tmp = full_data(idata)
   37829             :          data_tmp = ISHFT(data_tmp, 16)
   37830      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   37831      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37832      402084 :          ipack = ipack + 1
   37833      402084 :          packed_data(ipack) = pack_tmp
   37834      402084 :          data_tmp = full_data(idata)
   37835      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   37836      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   37837      402084 :          idata = idata + 1
   37838      402084 :          data_tmp = full_data(idata)
   37839      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37840      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   37841      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37842      402084 :          ipack = ipack + 1
   37843      402084 :          packed_data(ipack) = pack_tmp
   37844      402084 :          data_tmp = full_data(idata)
   37845      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   37846      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   37847      402084 :          idata = idata + 1
   37848      402084 :          data_tmp = full_data(idata)
   37849      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37850      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   37851      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37852      402084 :          ipack = ipack + 1
   37853      402084 :          packed_data(ipack) = pack_tmp
   37854      402084 :          data_tmp = full_data(idata)
   37855      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   37856      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   37857      402084 :          idata = idata + 1
   37858      402084 :          data_tmp = full_data(idata)
   37859      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37860      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37861      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   37862      402084 :          idata = idata + 1
   37863      402084 :          data_tmp = full_data(idata)
   37864             :          data_tmp = ISHFT(data_tmp, 16)
   37865      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   37866      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37867      402084 :          ipack = ipack + 1
   37868      402084 :          packed_data(ipack) = pack_tmp
   37869      402084 :          data_tmp = full_data(idata)
   37870      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   37871      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   37872      402084 :          idata = idata + 1
   37873      402084 :          data_tmp = full_data(idata)
   37874      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37875      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   37876      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37877      402084 :          ipack = ipack + 1
   37878      402084 :          packed_data(ipack) = pack_tmp
   37879      402084 :          data_tmp = full_data(idata)
   37880      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   37881      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   37882      402084 :          idata = idata + 1
   37883      402084 :          data_tmp = full_data(idata)
   37884      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37885      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   37886      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37887      402084 :          ipack = ipack + 1
   37888      402084 :          packed_data(ipack) = pack_tmp
   37889      402084 :          data_tmp = full_data(idata)
   37890      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   37891      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   37892      402084 :          idata = idata + 1
   37893      402084 :          data_tmp = full_data(idata)
   37894      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37895      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37896      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   37897      402084 :          idata = idata + 1
   37898      402084 :          data_tmp = full_data(idata)
   37899             :          data_tmp = ISHFT(data_tmp, 16)
   37900      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   37901      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37902      402084 :          ipack = ipack + 1
   37903      402084 :          packed_data(ipack) = pack_tmp
   37904      402084 :          data_tmp = full_data(idata)
   37905      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   37906      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   37907      402084 :          idata = idata + 1
   37908      402084 :          data_tmp = full_data(idata)
   37909      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37910      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   37911      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37912      402084 :          ipack = ipack + 1
   37913      402084 :          packed_data(ipack) = pack_tmp
   37914      402084 :          data_tmp = full_data(idata)
   37915      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   37916      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   37917      402084 :          idata = idata + 1
   37918      402084 :          data_tmp = full_data(idata)
   37919      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37920      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   37921      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37922      402084 :          ipack = ipack + 1
   37923      402084 :          packed_data(ipack) = pack_tmp
   37924      402084 :          data_tmp = full_data(idata)
   37925      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   37926      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   37927      402084 :          idata = idata + 1
   37928      402084 :          data_tmp = full_data(idata)
   37929      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37930      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37931      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   37932      402084 :          idata = idata + 1
   37933      402084 :          data_tmp = full_data(idata)
   37934             :          data_tmp = ISHFT(data_tmp, 16)
   37935      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   37936      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37937      402084 :          ipack = ipack + 1
   37938      402084 :          packed_data(ipack) = pack_tmp
   37939      402084 :          data_tmp = full_data(idata)
   37940      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   37941      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   37942      402084 :          idata = idata + 1
   37943      402084 :          data_tmp = full_data(idata)
   37944      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37945      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   37946      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37947      402084 :          ipack = ipack + 1
   37948      402084 :          packed_data(ipack) = pack_tmp
   37949      402084 :          data_tmp = full_data(idata)
   37950      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   37951      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   37952      402084 :          idata = idata + 1
   37953      402084 :          data_tmp = full_data(idata)
   37954      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37955      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   37956      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37957      402084 :          ipack = ipack + 1
   37958      402084 :          packed_data(ipack) = pack_tmp
   37959      402084 :          data_tmp = full_data(idata)
   37960      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   37961      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   37962      402084 :          idata = idata + 1
   37963      402084 :          data_tmp = full_data(idata)
   37964      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37965      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37966      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   37967      402084 :          idata = idata + 1
   37968      402084 :          data_tmp = full_data(idata)
   37969             :          data_tmp = ISHFT(data_tmp, 16)
   37970      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   37971      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37972      402084 :          ipack = ipack + 1
   37973      402084 :          packed_data(ipack) = pack_tmp
   37974      402084 :          data_tmp = full_data(idata)
   37975      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   37976      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   37977      402084 :          idata = idata + 1
   37978      402084 :          data_tmp = full_data(idata)
   37979      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37980      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   37981      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37982      402084 :          ipack = ipack + 1
   37983      402084 :          packed_data(ipack) = pack_tmp
   37984      402084 :          data_tmp = full_data(idata)
   37985      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   37986      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   37987      402084 :          idata = idata + 1
   37988      402084 :          data_tmp = full_data(idata)
   37989      402084 :          data_tmp = ISHFT(data_tmp, 16)
   37990      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   37991      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37992      402084 :          ipack = ipack + 1
   37993      402084 :          packed_data(ipack) = pack_tmp
   37994      402084 :          data_tmp = full_data(idata)
   37995      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   37996      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   37997      402084 :          idata = idata + 1
   37998      402084 :          data_tmp = full_data(idata)
   37999      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38000      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38001      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   38002      402084 :          idata = idata + 1
   38003      402084 :          data_tmp = full_data(idata)
   38004             :          data_tmp = ISHFT(data_tmp, 16)
   38005      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   38006      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38007      402084 :          ipack = ipack + 1
   38008      402084 :          packed_data(ipack) = pack_tmp
   38009      402084 :          data_tmp = full_data(idata)
   38010      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   38011      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   38012      402084 :          idata = idata + 1
   38013      402084 :          data_tmp = full_data(idata)
   38014      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38015      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   38016      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38017      402084 :          ipack = ipack + 1
   38018      402084 :          packed_data(ipack) = pack_tmp
   38019      402084 :          data_tmp = full_data(idata)
   38020      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   38021      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   38022      402084 :          idata = idata + 1
   38023      402084 :          data_tmp = full_data(idata)
   38024      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38025      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   38026      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38027      402084 :          ipack = ipack + 1
   38028      402084 :          packed_data(ipack) = pack_tmp
   38029      402084 :          data_tmp = full_data(idata)
   38030      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   38031      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   38032      402084 :          idata = idata + 1
   38033      402084 :          data_tmp = full_data(idata)
   38034      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38035      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38036      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   38037      402084 :          idata = idata + 1
   38038      402084 :          data_tmp = full_data(idata)
   38039             :          data_tmp = ISHFT(data_tmp, 16)
   38040      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   38041      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38042      402084 :          ipack = ipack + 1
   38043      402084 :          packed_data(ipack) = pack_tmp
   38044      402084 :          data_tmp = full_data(idata)
   38045      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   38046      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   38047      402084 :          idata = idata + 1
   38048      402084 :          data_tmp = full_data(idata)
   38049      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38050      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   38051      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38052      402084 :          ipack = ipack + 1
   38053      402084 :          packed_data(ipack) = pack_tmp
   38054      402084 :          data_tmp = full_data(idata)
   38055      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   38056      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   38057      402084 :          idata = idata + 1
   38058      402084 :          data_tmp = full_data(idata)
   38059      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38060      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   38061      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38062      402084 :          ipack = ipack + 1
   38063      402084 :          packed_data(ipack) = pack_tmp
   38064      402084 :          data_tmp = full_data(idata)
   38065      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   38066      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   38067      402084 :          idata = idata + 1
   38068      402084 :          data_tmp = full_data(idata)
   38069      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38070      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38071      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   38072      402084 :          idata = idata + 1
   38073      402084 :          data_tmp = full_data(idata)
   38074             :          data_tmp = ISHFT(data_tmp, 16)
   38075      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   38076      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38077      402084 :          ipack = ipack + 1
   38078      402084 :          packed_data(ipack) = pack_tmp
   38079      402084 :          data_tmp = full_data(idata)
   38080      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   38081      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   38082      402084 :          idata = idata + 1
   38083      402084 :          data_tmp = full_data(idata)
   38084      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38085      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   38086      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38087      402084 :          ipack = ipack + 1
   38088      402084 :          packed_data(ipack) = pack_tmp
   38089      402084 :          data_tmp = full_data(idata)
   38090      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   38091      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   38092      402084 :          idata = idata + 1
   38093      402084 :          data_tmp = full_data(idata)
   38094      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38095      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   38096      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38097      402084 :          ipack = ipack + 1
   38098      402084 :          packed_data(ipack) = pack_tmp
   38099      402084 :          data_tmp = full_data(idata)
   38100      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   38101      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   38102      402084 :          idata = idata + 1
   38103      402084 :          data_tmp = full_data(idata)
   38104      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38105      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38106      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   38107      402084 :          idata = idata + 1
   38108      402084 :          data_tmp = full_data(idata)
   38109             :          data_tmp = ISHFT(data_tmp, 16)
   38110      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   38111      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38112      402084 :          ipack = ipack + 1
   38113      402084 :          packed_data(ipack) = pack_tmp
   38114      402084 :          data_tmp = full_data(idata)
   38115      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   38116      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   38117      402084 :          idata = idata + 1
   38118      402084 :          data_tmp = full_data(idata)
   38119      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38120      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   38121      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38122      402084 :          ipack = ipack + 1
   38123      402084 :          packed_data(ipack) = pack_tmp
   38124      402084 :          data_tmp = full_data(idata)
   38125      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   38126      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   38127      402084 :          idata = idata + 1
   38128      402084 :          data_tmp = full_data(idata)
   38129      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38130      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   38131      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38132      402084 :          ipack = ipack + 1
   38133      402084 :          packed_data(ipack) = pack_tmp
   38134      402084 :          data_tmp = full_data(idata)
   38135      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   38136      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   38137      402084 :          idata = idata + 1
   38138      402084 :          data_tmp = full_data(idata)
   38139      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38140      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38141      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   38142      402084 :          idata = idata + 1
   38143      402084 :          data_tmp = full_data(idata)
   38144             :          data_tmp = ISHFT(data_tmp, 16)
   38145      402084 :          data_tmp = IAND(data_tmp, mask_left(0))
   38146      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38147      402084 :          ipack = ipack + 1
   38148      402084 :          packed_data(ipack) = pack_tmp
   38149      402084 :          data_tmp = full_data(idata)
   38150      402084 :          pack_tmp = ISHFT(data_tmp, 16)
   38151      402084 :          pack_tmp = ISHFT(pack_tmp, -16)
   38152      402084 :          idata = idata + 1
   38153      402084 :          data_tmp = full_data(idata)
   38154      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38155      402084 :          data_tmp = IAND(data_tmp, mask_left(16))
   38156      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38157      402084 :          ipack = ipack + 1
   38158      402084 :          packed_data(ipack) = pack_tmp
   38159      402084 :          data_tmp = full_data(idata)
   38160      402084 :          pack_tmp = ISHFT(data_tmp, 32)
   38161      402084 :          pack_tmp = ISHFT(pack_tmp, -32)
   38162      402084 :          idata = idata + 1
   38163      402084 :          data_tmp = full_data(idata)
   38164      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38165      402084 :          data_tmp = IAND(data_tmp, mask_left(32))
   38166      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38167      402084 :          ipack = ipack + 1
   38168      402084 :          packed_data(ipack) = pack_tmp
   38169      402084 :          data_tmp = full_data(idata)
   38170      402084 :          pack_tmp = ISHFT(data_tmp, 48)
   38171      402084 :          pack_tmp = ISHFT(pack_tmp, -48)
   38172      402084 :          idata = idata + 1
   38173      402084 :          data_tmp = full_data(idata)
   38174      402084 :          data_tmp = ISHFT(data_tmp, 16)
   38175      402084 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38176             :          pack_tmp = ISHFT(pack_tmp, 0)
   38177      402084 :          pack_tmp = ISHFT(pack_tmp, 0)
   38178      402084 :          ipack = ipack + 1
   38179      402318 :          packed_data(ipack) = pack_tmp
   38180             :       END DO
   38181       26673 :       IF (Ndata_rep < Ndata) THEN
   38182        2904 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   38183             :       END IF
   38184       26673 :    END SUBROUTINE ints2bits_48
   38185             : 
   38186             : ! **************************************************************************************************
   38187             : !> \brief ...
   38188             : !> \param Ndata ...
   38189             : !> \param packed_data ...
   38190             : !> \param full_data ...
   38191             : ! **************************************************************************************************
   38192      112296 :    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      112296 :       ipack = 0
   38203      112296 :       idata = 0
   38204      112296 :       pack_tmp = 0
   38205      112296 :       Ndata_rep = (Ndata/64)*64
   38206      112296 :       DO kdata = 1, Ndata_rep, 64
   38207     1662011 :          idata = idata + 1
   38208     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38209     1662011 :          ipack = ipack + 1
   38210     1662011 :          pack_tmp = packed_data(ipack)
   38211     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38212     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38213     1662011 :          idata = idata + 1
   38214     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38215     1662011 :          ipack = ipack + 1
   38216     1662011 :          pack_tmp = packed_data(ipack)
   38217     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38218     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38219     1662011 :          idata = idata + 1
   38220     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38221     1662011 :          ipack = ipack + 1
   38222     1662011 :          pack_tmp = packed_data(ipack)
   38223     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38224     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38225     1662011 :          idata = idata + 1
   38226     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38227     1662011 :          full_data(idata) = data_tmp
   38228     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38229     1662011 :          idata = idata + 1
   38230     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38231     1662011 :          ipack = ipack + 1
   38232     1662011 :          pack_tmp = packed_data(ipack)
   38233     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38234     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38235     1662011 :          idata = idata + 1
   38236     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38237     1662011 :          ipack = ipack + 1
   38238     1662011 :          pack_tmp = packed_data(ipack)
   38239     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38240     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38241     1662011 :          idata = idata + 1
   38242     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38243     1662011 :          ipack = ipack + 1
   38244     1662011 :          pack_tmp = packed_data(ipack)
   38245     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38246     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38247     1662011 :          idata = idata + 1
   38248     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38249     1662011 :          full_data(idata) = data_tmp
   38250     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38251     1662011 :          idata = idata + 1
   38252     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38253     1662011 :          ipack = ipack + 1
   38254     1662011 :          pack_tmp = packed_data(ipack)
   38255     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38256     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38257     1662011 :          idata = idata + 1
   38258     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38259     1662011 :          ipack = ipack + 1
   38260     1662011 :          pack_tmp = packed_data(ipack)
   38261     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38262     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38263     1662011 :          idata = idata + 1
   38264     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38265     1662011 :          ipack = ipack + 1
   38266     1662011 :          pack_tmp = packed_data(ipack)
   38267     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38268     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38269     1662011 :          idata = idata + 1
   38270     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38271     1662011 :          full_data(idata) = data_tmp
   38272     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38273     1662011 :          idata = idata + 1
   38274     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38275     1662011 :          ipack = ipack + 1
   38276     1662011 :          pack_tmp = packed_data(ipack)
   38277     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38278     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38279     1662011 :          idata = idata + 1
   38280     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38281     1662011 :          ipack = ipack + 1
   38282     1662011 :          pack_tmp = packed_data(ipack)
   38283     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38284     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38285     1662011 :          idata = idata + 1
   38286     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38287     1662011 :          ipack = ipack + 1
   38288     1662011 :          pack_tmp = packed_data(ipack)
   38289     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38290     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38291     1662011 :          idata = idata + 1
   38292     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38293     1662011 :          full_data(idata) = data_tmp
   38294     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38295     1662011 :          idata = idata + 1
   38296     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38297     1662011 :          ipack = ipack + 1
   38298     1662011 :          pack_tmp = packed_data(ipack)
   38299     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38300     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38301     1662011 :          idata = idata + 1
   38302     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38303     1662011 :          ipack = ipack + 1
   38304     1662011 :          pack_tmp = packed_data(ipack)
   38305     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38306     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38307     1662011 :          idata = idata + 1
   38308     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38309     1662011 :          ipack = ipack + 1
   38310     1662011 :          pack_tmp = packed_data(ipack)
   38311     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38312     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38313     1662011 :          idata = idata + 1
   38314     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38315     1662011 :          full_data(idata) = data_tmp
   38316     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38317     1662011 :          idata = idata + 1
   38318     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38319     1662011 :          ipack = ipack + 1
   38320     1662011 :          pack_tmp = packed_data(ipack)
   38321     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38322     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38323     1662011 :          idata = idata + 1
   38324     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38325     1662011 :          ipack = ipack + 1
   38326     1662011 :          pack_tmp = packed_data(ipack)
   38327     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38328     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38329     1662011 :          idata = idata + 1
   38330     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38331     1662011 :          ipack = ipack + 1
   38332     1662011 :          pack_tmp = packed_data(ipack)
   38333     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38334     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38335     1662011 :          idata = idata + 1
   38336     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38337     1662011 :          full_data(idata) = data_tmp
   38338     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38339     1662011 :          idata = idata + 1
   38340     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38341     1662011 :          ipack = ipack + 1
   38342     1662011 :          pack_tmp = packed_data(ipack)
   38343     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38344     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38345     1662011 :          idata = idata + 1
   38346     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38347     1662011 :          ipack = ipack + 1
   38348     1662011 :          pack_tmp = packed_data(ipack)
   38349     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38350     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38351     1662011 :          idata = idata + 1
   38352     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38353     1662011 :          ipack = ipack + 1
   38354     1662011 :          pack_tmp = packed_data(ipack)
   38355     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38356     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38357     1662011 :          idata = idata + 1
   38358     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38359     1662011 :          full_data(idata) = data_tmp
   38360     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38361     1662011 :          idata = idata + 1
   38362     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38363     1662011 :          ipack = ipack + 1
   38364     1662011 :          pack_tmp = packed_data(ipack)
   38365     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38366     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38367     1662011 :          idata = idata + 1
   38368     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38369     1662011 :          ipack = ipack + 1
   38370     1662011 :          pack_tmp = packed_data(ipack)
   38371     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38372     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38373     1662011 :          idata = idata + 1
   38374     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38375     1662011 :          ipack = ipack + 1
   38376     1662011 :          pack_tmp = packed_data(ipack)
   38377     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38378     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38379     1662011 :          idata = idata + 1
   38380     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38381     1662011 :          full_data(idata) = data_tmp
   38382     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38383     1662011 :          idata = idata + 1
   38384     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38385     1662011 :          ipack = ipack + 1
   38386     1662011 :          pack_tmp = packed_data(ipack)
   38387     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38388     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38389     1662011 :          idata = idata + 1
   38390     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38391     1662011 :          ipack = ipack + 1
   38392     1662011 :          pack_tmp = packed_data(ipack)
   38393     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38394     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38395     1662011 :          idata = idata + 1
   38396     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38397     1662011 :          ipack = ipack + 1
   38398     1662011 :          pack_tmp = packed_data(ipack)
   38399     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38400     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38401     1662011 :          idata = idata + 1
   38402     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38403     1662011 :          full_data(idata) = data_tmp
   38404     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38405     1662011 :          idata = idata + 1
   38406     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38407     1662011 :          ipack = ipack + 1
   38408     1662011 :          pack_tmp = packed_data(ipack)
   38409     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38410     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38411     1662011 :          idata = idata + 1
   38412     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38413     1662011 :          ipack = ipack + 1
   38414     1662011 :          pack_tmp = packed_data(ipack)
   38415     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38416     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38417     1662011 :          idata = idata + 1
   38418     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38419     1662011 :          ipack = ipack + 1
   38420     1662011 :          pack_tmp = packed_data(ipack)
   38421     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38422     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38423     1662011 :          idata = idata + 1
   38424     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38425     1662011 :          full_data(idata) = data_tmp
   38426     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38427     1662011 :          idata = idata + 1
   38428     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38429     1662011 :          ipack = ipack + 1
   38430     1662011 :          pack_tmp = packed_data(ipack)
   38431     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38432     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38433     1662011 :          idata = idata + 1
   38434     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38435     1662011 :          ipack = ipack + 1
   38436     1662011 :          pack_tmp = packed_data(ipack)
   38437     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38438     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38439     1662011 :          idata = idata + 1
   38440     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38441     1662011 :          ipack = ipack + 1
   38442     1662011 :          pack_tmp = packed_data(ipack)
   38443     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38444     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38445     1662011 :          idata = idata + 1
   38446     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38447     1662011 :          full_data(idata) = data_tmp
   38448     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38449     1662011 :          idata = idata + 1
   38450     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38451     1662011 :          ipack = ipack + 1
   38452     1662011 :          pack_tmp = packed_data(ipack)
   38453     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38454     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38455     1662011 :          idata = idata + 1
   38456     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38457     1662011 :          ipack = ipack + 1
   38458     1662011 :          pack_tmp = packed_data(ipack)
   38459     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38460     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38461     1662011 :          idata = idata + 1
   38462     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38463     1662011 :          ipack = ipack + 1
   38464     1662011 :          pack_tmp = packed_data(ipack)
   38465     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38466     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38467     1662011 :          idata = idata + 1
   38468     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38469     1662011 :          full_data(idata) = data_tmp
   38470     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38471     1662011 :          idata = idata + 1
   38472     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38473     1662011 :          ipack = ipack + 1
   38474     1662011 :          pack_tmp = packed_data(ipack)
   38475     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38476     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38477     1662011 :          idata = idata + 1
   38478     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38479     1662011 :          ipack = ipack + 1
   38480     1662011 :          pack_tmp = packed_data(ipack)
   38481     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38482     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38483     1662011 :          idata = idata + 1
   38484     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38485     1662011 :          ipack = ipack + 1
   38486     1662011 :          pack_tmp = packed_data(ipack)
   38487     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38488     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38489     1662011 :          idata = idata + 1
   38490     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38491     1662011 :          full_data(idata) = data_tmp
   38492     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38493     1662011 :          idata = idata + 1
   38494     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38495     1662011 :          ipack = ipack + 1
   38496     1662011 :          pack_tmp = packed_data(ipack)
   38497     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38498     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38499     1662011 :          idata = idata + 1
   38500     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38501     1662011 :          ipack = ipack + 1
   38502     1662011 :          pack_tmp = packed_data(ipack)
   38503     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38504     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38505     1662011 :          idata = idata + 1
   38506     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38507     1662011 :          ipack = ipack + 1
   38508     1662011 :          pack_tmp = packed_data(ipack)
   38509     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38510     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38511     1662011 :          idata = idata + 1
   38512     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38513     1662011 :          full_data(idata) = data_tmp
   38514     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38515     1662011 :          idata = idata + 1
   38516     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38517     1662011 :          ipack = ipack + 1
   38518     1662011 :          pack_tmp = packed_data(ipack)
   38519     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38520     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38521     1662011 :          idata = idata + 1
   38522     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38523     1662011 :          ipack = ipack + 1
   38524     1662011 :          pack_tmp = packed_data(ipack)
   38525     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38526     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38527     1662011 :          idata = idata + 1
   38528     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38529     1662011 :          ipack = ipack + 1
   38530     1662011 :          pack_tmp = packed_data(ipack)
   38531     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38532     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38533     1662011 :          idata = idata + 1
   38534     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38535     1662011 :          full_data(idata) = data_tmp
   38536     1662011 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38537     1662011 :          idata = idata + 1
   38538     1662011 :          data_tmp = ISHFT(pack_tmp, 48)
   38539     1662011 :          ipack = ipack + 1
   38540     1662011 :          pack_tmp = packed_data(ipack)
   38541     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38542     1662011 :          pack_tmp = ISHFT(pack_tmp, -48)
   38543     1662011 :          idata = idata + 1
   38544     1662011 :          data_tmp = ISHFT(pack_tmp, 32)
   38545     1662011 :          ipack = ipack + 1
   38546     1662011 :          pack_tmp = packed_data(ipack)
   38547     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38548     1662011 :          pack_tmp = ISHFT(pack_tmp, -32)
   38549     1662011 :          idata = idata + 1
   38550     1662011 :          data_tmp = ISHFT(pack_tmp, 16)
   38551     1662011 :          ipack = ipack + 1
   38552     1662011 :          pack_tmp = packed_data(ipack)
   38553     1662011 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38554     1662011 :          pack_tmp = ISHFT(pack_tmp, -16)
   38555     1662011 :          idata = idata + 1
   38556     1662011 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38557     1662011 :          full_data(idata) = data_tmp
   38558     1663576 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38559             :       END DO
   38560      112296 :       IF (Ndata_rep < Ndata) THEN
   38561       15850 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   38562             :       END IF
   38563      112296 :    END SUBROUTINE bits2ints_48
   38564             : 
   38565             : ! **************************************************************************************************
   38566             : !> \brief ...
   38567             : !> \param Ndata ...
   38568             : !> \param packed_data ...
   38569             : !> \param full_data ...
   38570             : ! **************************************************************************************************
   38571       25532 :    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       25532 :       idata = 0
   38582       25532 :       ipack = 0
   38583       25532 :       Ndata_rep = (Ndata/64)*64
   38584       25532 :       DO kdata = 1, Ndata_rep, 64
   38585      393229 :          pack_tmp = 0
   38586      393229 :          idata = idata + 1
   38587      393229 :          data_tmp = full_data(idata)
   38588      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38589      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38590      393229 :          pack_tmp = ISHFT(pack_tmp, -15)
   38591      393229 :          idata = idata + 1
   38592      393229 :          data_tmp = full_data(idata)
   38593      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38594      393229 :          data_tmp = IAND(data_tmp, mask_left(15))
   38595      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38596      393229 :          ipack = ipack + 1
   38597      393229 :          packed_data(ipack) = pack_tmp
   38598      393229 :          data_tmp = full_data(idata)
   38599      393229 :          pack_tmp = ISHFT(data_tmp, 30)
   38600      393229 :          pack_tmp = ISHFT(pack_tmp, -30)
   38601      393229 :          idata = idata + 1
   38602      393229 :          data_tmp = full_data(idata)
   38603      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38604      393229 :          data_tmp = IAND(data_tmp, mask_left(30))
   38605      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38606      393229 :          ipack = ipack + 1
   38607      393229 :          packed_data(ipack) = pack_tmp
   38608      393229 :          data_tmp = full_data(idata)
   38609      393229 :          pack_tmp = ISHFT(data_tmp, 45)
   38610      393229 :          pack_tmp = ISHFT(pack_tmp, -45)
   38611      393229 :          idata = idata + 1
   38612      393229 :          data_tmp = full_data(idata)
   38613      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38614      393229 :          data_tmp = IAND(data_tmp, mask_left(45))
   38615      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38616      393229 :          ipack = ipack + 1
   38617      393229 :          packed_data(ipack) = pack_tmp
   38618      393229 :          data_tmp = full_data(idata)
   38619      393229 :          pack_tmp = ISHFT(data_tmp, 60)
   38620      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   38621      393229 :          idata = idata + 1
   38622      393229 :          data_tmp = full_data(idata)
   38623      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38624      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38625      393229 :          pack_tmp = ISHFT(pack_tmp, -11)
   38626      393229 :          idata = idata + 1
   38627      393229 :          data_tmp = full_data(idata)
   38628      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38629      393229 :          data_tmp = IAND(data_tmp, mask_left(11))
   38630      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38631      393229 :          ipack = ipack + 1
   38632      393229 :          packed_data(ipack) = pack_tmp
   38633      393229 :          data_tmp = full_data(idata)
   38634      393229 :          pack_tmp = ISHFT(data_tmp, 26)
   38635      393229 :          pack_tmp = ISHFT(pack_tmp, -26)
   38636      393229 :          idata = idata + 1
   38637      393229 :          data_tmp = full_data(idata)
   38638      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38639      393229 :          data_tmp = IAND(data_tmp, mask_left(26))
   38640      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38641      393229 :          ipack = ipack + 1
   38642      393229 :          packed_data(ipack) = pack_tmp
   38643      393229 :          data_tmp = full_data(idata)
   38644      393229 :          pack_tmp = ISHFT(data_tmp, 41)
   38645      393229 :          pack_tmp = ISHFT(pack_tmp, -41)
   38646      393229 :          idata = idata + 1
   38647      393229 :          data_tmp = full_data(idata)
   38648      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38649      393229 :          data_tmp = IAND(data_tmp, mask_left(41))
   38650      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38651      393229 :          ipack = ipack + 1
   38652      393229 :          packed_data(ipack) = pack_tmp
   38653      393229 :          data_tmp = full_data(idata)
   38654      393229 :          pack_tmp = ISHFT(data_tmp, 56)
   38655      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   38656      393229 :          idata = idata + 1
   38657      393229 :          data_tmp = full_data(idata)
   38658      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38659      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38660      393229 :          pack_tmp = ISHFT(pack_tmp, -7)
   38661      393229 :          idata = idata + 1
   38662      393229 :          data_tmp = full_data(idata)
   38663      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38664      393229 :          data_tmp = IAND(data_tmp, mask_left(7))
   38665      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38666      393229 :          ipack = ipack + 1
   38667      393229 :          packed_data(ipack) = pack_tmp
   38668      393229 :          data_tmp = full_data(idata)
   38669      393229 :          pack_tmp = ISHFT(data_tmp, 22)
   38670      393229 :          pack_tmp = ISHFT(pack_tmp, -22)
   38671      393229 :          idata = idata + 1
   38672      393229 :          data_tmp = full_data(idata)
   38673      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38674      393229 :          data_tmp = IAND(data_tmp, mask_left(22))
   38675      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38676      393229 :          ipack = ipack + 1
   38677      393229 :          packed_data(ipack) = pack_tmp
   38678      393229 :          data_tmp = full_data(idata)
   38679      393229 :          pack_tmp = ISHFT(data_tmp, 37)
   38680      393229 :          pack_tmp = ISHFT(pack_tmp, -37)
   38681      393229 :          idata = idata + 1
   38682      393229 :          data_tmp = full_data(idata)
   38683      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38684      393229 :          data_tmp = IAND(data_tmp, mask_left(37))
   38685      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38686      393229 :          ipack = ipack + 1
   38687      393229 :          packed_data(ipack) = pack_tmp
   38688      393229 :          data_tmp = full_data(idata)
   38689      393229 :          pack_tmp = ISHFT(data_tmp, 52)
   38690      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   38691      393229 :          idata = idata + 1
   38692      393229 :          data_tmp = full_data(idata)
   38693      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38694      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38695      393229 :          pack_tmp = ISHFT(pack_tmp, -3)
   38696      393229 :          idata = idata + 1
   38697      393229 :          data_tmp = full_data(idata)
   38698      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38699      393229 :          data_tmp = IAND(data_tmp, mask_left(3))
   38700      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38701      393229 :          ipack = ipack + 1
   38702      393229 :          packed_data(ipack) = pack_tmp
   38703      393229 :          data_tmp = full_data(idata)
   38704      393229 :          pack_tmp = ISHFT(data_tmp, 18)
   38705      393229 :          pack_tmp = ISHFT(pack_tmp, -18)
   38706      393229 :          idata = idata + 1
   38707      393229 :          data_tmp = full_data(idata)
   38708      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38709      393229 :          data_tmp = IAND(data_tmp, mask_left(18))
   38710      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38711      393229 :          ipack = ipack + 1
   38712      393229 :          packed_data(ipack) = pack_tmp
   38713      393229 :          data_tmp = full_data(idata)
   38714      393229 :          pack_tmp = ISHFT(data_tmp, 33)
   38715      393229 :          pack_tmp = ISHFT(pack_tmp, -33)
   38716      393229 :          idata = idata + 1
   38717      393229 :          data_tmp = full_data(idata)
   38718      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38719      393229 :          data_tmp = IAND(data_tmp, mask_left(33))
   38720      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38721      393229 :          ipack = ipack + 1
   38722      393229 :          packed_data(ipack) = pack_tmp
   38723      393229 :          data_tmp = full_data(idata)
   38724      393229 :          pack_tmp = ISHFT(data_tmp, 48)
   38725      393229 :          pack_tmp = ISHFT(pack_tmp, -48)
   38726      393229 :          idata = idata + 1
   38727      393229 :          data_tmp = full_data(idata)
   38728      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38729      393229 :          data_tmp = IAND(data_tmp, mask_left(48))
   38730      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38731      393229 :          ipack = ipack + 1
   38732      393229 :          packed_data(ipack) = pack_tmp
   38733      393229 :          data_tmp = full_data(idata)
   38734      393229 :          pack_tmp = ISHFT(data_tmp, 63)
   38735      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   38736      393229 :          idata = idata + 1
   38737      393229 :          data_tmp = full_data(idata)
   38738      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38739      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38740      393229 :          pack_tmp = ISHFT(pack_tmp, -14)
   38741      393229 :          idata = idata + 1
   38742      393229 :          data_tmp = full_data(idata)
   38743      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38744      393229 :          data_tmp = IAND(data_tmp, mask_left(14))
   38745      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38746      393229 :          ipack = ipack + 1
   38747      393229 :          packed_data(ipack) = pack_tmp
   38748      393229 :          data_tmp = full_data(idata)
   38749      393229 :          pack_tmp = ISHFT(data_tmp, 29)
   38750      393229 :          pack_tmp = ISHFT(pack_tmp, -29)
   38751      393229 :          idata = idata + 1
   38752      393229 :          data_tmp = full_data(idata)
   38753      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38754      393229 :          data_tmp = IAND(data_tmp, mask_left(29))
   38755      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38756      393229 :          ipack = ipack + 1
   38757      393229 :          packed_data(ipack) = pack_tmp
   38758      393229 :          data_tmp = full_data(idata)
   38759      393229 :          pack_tmp = ISHFT(data_tmp, 44)
   38760      393229 :          pack_tmp = ISHFT(pack_tmp, -44)
   38761      393229 :          idata = idata + 1
   38762      393229 :          data_tmp = full_data(idata)
   38763      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38764      393229 :          data_tmp = IAND(data_tmp, mask_left(44))
   38765      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38766      393229 :          ipack = ipack + 1
   38767      393229 :          packed_data(ipack) = pack_tmp
   38768      393229 :          data_tmp = full_data(idata)
   38769      393229 :          pack_tmp = ISHFT(data_tmp, 59)
   38770      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   38771      393229 :          idata = idata + 1
   38772      393229 :          data_tmp = full_data(idata)
   38773      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38774      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38775      393229 :          pack_tmp = ISHFT(pack_tmp, -10)
   38776      393229 :          idata = idata + 1
   38777      393229 :          data_tmp = full_data(idata)
   38778      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38779      393229 :          data_tmp = IAND(data_tmp, mask_left(10))
   38780      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38781      393229 :          ipack = ipack + 1
   38782      393229 :          packed_data(ipack) = pack_tmp
   38783      393229 :          data_tmp = full_data(idata)
   38784      393229 :          pack_tmp = ISHFT(data_tmp, 25)
   38785      393229 :          pack_tmp = ISHFT(pack_tmp, -25)
   38786      393229 :          idata = idata + 1
   38787      393229 :          data_tmp = full_data(idata)
   38788      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38789      393229 :          data_tmp = IAND(data_tmp, mask_left(25))
   38790      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38791      393229 :          ipack = ipack + 1
   38792      393229 :          packed_data(ipack) = pack_tmp
   38793      393229 :          data_tmp = full_data(idata)
   38794      393229 :          pack_tmp = ISHFT(data_tmp, 40)
   38795      393229 :          pack_tmp = ISHFT(pack_tmp, -40)
   38796      393229 :          idata = idata + 1
   38797      393229 :          data_tmp = full_data(idata)
   38798      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38799      393229 :          data_tmp = IAND(data_tmp, mask_left(40))
   38800      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38801      393229 :          ipack = ipack + 1
   38802      393229 :          packed_data(ipack) = pack_tmp
   38803      393229 :          data_tmp = full_data(idata)
   38804      393229 :          pack_tmp = ISHFT(data_tmp, 55)
   38805      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   38806      393229 :          idata = idata + 1
   38807      393229 :          data_tmp = full_data(idata)
   38808      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38809      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38810      393229 :          pack_tmp = ISHFT(pack_tmp, -6)
   38811      393229 :          idata = idata + 1
   38812      393229 :          data_tmp = full_data(idata)
   38813      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38814      393229 :          data_tmp = IAND(data_tmp, mask_left(6))
   38815      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38816      393229 :          ipack = ipack + 1
   38817      393229 :          packed_data(ipack) = pack_tmp
   38818      393229 :          data_tmp = full_data(idata)
   38819      393229 :          pack_tmp = ISHFT(data_tmp, 21)
   38820      393229 :          pack_tmp = ISHFT(pack_tmp, -21)
   38821      393229 :          idata = idata + 1
   38822      393229 :          data_tmp = full_data(idata)
   38823      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38824      393229 :          data_tmp = IAND(data_tmp, mask_left(21))
   38825      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38826      393229 :          ipack = ipack + 1
   38827      393229 :          packed_data(ipack) = pack_tmp
   38828      393229 :          data_tmp = full_data(idata)
   38829      393229 :          pack_tmp = ISHFT(data_tmp, 36)
   38830      393229 :          pack_tmp = ISHFT(pack_tmp, -36)
   38831      393229 :          idata = idata + 1
   38832      393229 :          data_tmp = full_data(idata)
   38833      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38834      393229 :          data_tmp = IAND(data_tmp, mask_left(36))
   38835      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38836      393229 :          ipack = ipack + 1
   38837      393229 :          packed_data(ipack) = pack_tmp
   38838      393229 :          data_tmp = full_data(idata)
   38839      393229 :          pack_tmp = ISHFT(data_tmp, 51)
   38840      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   38841      393229 :          idata = idata + 1
   38842      393229 :          data_tmp = full_data(idata)
   38843      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38844      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38845      393229 :          pack_tmp = ISHFT(pack_tmp, -2)
   38846      393229 :          idata = idata + 1
   38847      393229 :          data_tmp = full_data(idata)
   38848      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38849      393229 :          data_tmp = IAND(data_tmp, mask_left(2))
   38850      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38851      393229 :          ipack = ipack + 1
   38852      393229 :          packed_data(ipack) = pack_tmp
   38853      393229 :          data_tmp = full_data(idata)
   38854      393229 :          pack_tmp = ISHFT(data_tmp, 17)
   38855      393229 :          pack_tmp = ISHFT(pack_tmp, -17)
   38856      393229 :          idata = idata + 1
   38857      393229 :          data_tmp = full_data(idata)
   38858      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38859      393229 :          data_tmp = IAND(data_tmp, mask_left(17))
   38860      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38861      393229 :          ipack = ipack + 1
   38862      393229 :          packed_data(ipack) = pack_tmp
   38863      393229 :          data_tmp = full_data(idata)
   38864      393229 :          pack_tmp = ISHFT(data_tmp, 32)
   38865      393229 :          pack_tmp = ISHFT(pack_tmp, -32)
   38866      393229 :          idata = idata + 1
   38867      393229 :          data_tmp = full_data(idata)
   38868      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38869      393229 :          data_tmp = IAND(data_tmp, mask_left(32))
   38870      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38871      393229 :          ipack = ipack + 1
   38872      393229 :          packed_data(ipack) = pack_tmp
   38873      393229 :          data_tmp = full_data(idata)
   38874      393229 :          pack_tmp = ISHFT(data_tmp, 47)
   38875      393229 :          pack_tmp = ISHFT(pack_tmp, -47)
   38876      393229 :          idata = idata + 1
   38877      393229 :          data_tmp = full_data(idata)
   38878      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38879      393229 :          data_tmp = IAND(data_tmp, mask_left(47))
   38880      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38881      393229 :          ipack = ipack + 1
   38882      393229 :          packed_data(ipack) = pack_tmp
   38883      393229 :          data_tmp = full_data(idata)
   38884      393229 :          pack_tmp = ISHFT(data_tmp, 62)
   38885      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   38886      393229 :          idata = idata + 1
   38887      393229 :          data_tmp = full_data(idata)
   38888      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38889      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38890      393229 :          pack_tmp = ISHFT(pack_tmp, -13)
   38891      393229 :          idata = idata + 1
   38892      393229 :          data_tmp = full_data(idata)
   38893      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38894      393229 :          data_tmp = IAND(data_tmp, mask_left(13))
   38895      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38896      393229 :          ipack = ipack + 1
   38897      393229 :          packed_data(ipack) = pack_tmp
   38898      393229 :          data_tmp = full_data(idata)
   38899      393229 :          pack_tmp = ISHFT(data_tmp, 28)
   38900      393229 :          pack_tmp = ISHFT(pack_tmp, -28)
   38901      393229 :          idata = idata + 1
   38902      393229 :          data_tmp = full_data(idata)
   38903      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38904      393229 :          data_tmp = IAND(data_tmp, mask_left(28))
   38905      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38906      393229 :          ipack = ipack + 1
   38907      393229 :          packed_data(ipack) = pack_tmp
   38908      393229 :          data_tmp = full_data(idata)
   38909      393229 :          pack_tmp = ISHFT(data_tmp, 43)
   38910      393229 :          pack_tmp = ISHFT(pack_tmp, -43)
   38911      393229 :          idata = idata + 1
   38912      393229 :          data_tmp = full_data(idata)
   38913      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38914      393229 :          data_tmp = IAND(data_tmp, mask_left(43))
   38915      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38916      393229 :          ipack = ipack + 1
   38917      393229 :          packed_data(ipack) = pack_tmp
   38918      393229 :          data_tmp = full_data(idata)
   38919      393229 :          pack_tmp = ISHFT(data_tmp, 58)
   38920      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   38921      393229 :          idata = idata + 1
   38922      393229 :          data_tmp = full_data(idata)
   38923      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38924      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38925      393229 :          pack_tmp = ISHFT(pack_tmp, -9)
   38926      393229 :          idata = idata + 1
   38927      393229 :          data_tmp = full_data(idata)
   38928      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38929      393229 :          data_tmp = IAND(data_tmp, mask_left(9))
   38930      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38931      393229 :          ipack = ipack + 1
   38932      393229 :          packed_data(ipack) = pack_tmp
   38933      393229 :          data_tmp = full_data(idata)
   38934      393229 :          pack_tmp = ISHFT(data_tmp, 24)
   38935      393229 :          pack_tmp = ISHFT(pack_tmp, -24)
   38936      393229 :          idata = idata + 1
   38937      393229 :          data_tmp = full_data(idata)
   38938      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38939      393229 :          data_tmp = IAND(data_tmp, mask_left(24))
   38940      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38941      393229 :          ipack = ipack + 1
   38942      393229 :          packed_data(ipack) = pack_tmp
   38943      393229 :          data_tmp = full_data(idata)
   38944      393229 :          pack_tmp = ISHFT(data_tmp, 39)
   38945      393229 :          pack_tmp = ISHFT(pack_tmp, -39)
   38946      393229 :          idata = idata + 1
   38947      393229 :          data_tmp = full_data(idata)
   38948      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38949      393229 :          data_tmp = IAND(data_tmp, mask_left(39))
   38950      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38951      393229 :          ipack = ipack + 1
   38952      393229 :          packed_data(ipack) = pack_tmp
   38953      393229 :          data_tmp = full_data(idata)
   38954      393229 :          pack_tmp = ISHFT(data_tmp, 54)
   38955      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   38956      393229 :          idata = idata + 1
   38957      393229 :          data_tmp = full_data(idata)
   38958      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38959      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38960      393229 :          pack_tmp = ISHFT(pack_tmp, -5)
   38961      393229 :          idata = idata + 1
   38962      393229 :          data_tmp = full_data(idata)
   38963      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38964      393229 :          data_tmp = IAND(data_tmp, mask_left(5))
   38965      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38966      393229 :          ipack = ipack + 1
   38967      393229 :          packed_data(ipack) = pack_tmp
   38968      393229 :          data_tmp = full_data(idata)
   38969      393229 :          pack_tmp = ISHFT(data_tmp, 20)
   38970      393229 :          pack_tmp = ISHFT(pack_tmp, -20)
   38971      393229 :          idata = idata + 1
   38972      393229 :          data_tmp = full_data(idata)
   38973      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38974      393229 :          data_tmp = IAND(data_tmp, mask_left(20))
   38975      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38976      393229 :          ipack = ipack + 1
   38977      393229 :          packed_data(ipack) = pack_tmp
   38978      393229 :          data_tmp = full_data(idata)
   38979      393229 :          pack_tmp = ISHFT(data_tmp, 35)
   38980      393229 :          pack_tmp = ISHFT(pack_tmp, -35)
   38981      393229 :          idata = idata + 1
   38982      393229 :          data_tmp = full_data(idata)
   38983      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38984      393229 :          data_tmp = IAND(data_tmp, mask_left(35))
   38985      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38986      393229 :          ipack = ipack + 1
   38987      393229 :          packed_data(ipack) = pack_tmp
   38988      393229 :          data_tmp = full_data(idata)
   38989      393229 :          pack_tmp = ISHFT(data_tmp, 50)
   38990      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   38991      393229 :          idata = idata + 1
   38992      393229 :          data_tmp = full_data(idata)
   38993      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38994      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38995      393229 :          pack_tmp = ISHFT(pack_tmp, -1)
   38996      393229 :          idata = idata + 1
   38997      393229 :          data_tmp = full_data(idata)
   38998      393229 :          data_tmp = ISHFT(data_tmp, 15)
   38999      393229 :          data_tmp = IAND(data_tmp, mask_left(1))
   39000      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39001      393229 :          ipack = ipack + 1
   39002      393229 :          packed_data(ipack) = pack_tmp
   39003      393229 :          data_tmp = full_data(idata)
   39004      393229 :          pack_tmp = ISHFT(data_tmp, 16)
   39005      393229 :          pack_tmp = ISHFT(pack_tmp, -16)
   39006      393229 :          idata = idata + 1
   39007      393229 :          data_tmp = full_data(idata)
   39008      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39009      393229 :          data_tmp = IAND(data_tmp, mask_left(16))
   39010      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39011      393229 :          ipack = ipack + 1
   39012      393229 :          packed_data(ipack) = pack_tmp
   39013      393229 :          data_tmp = full_data(idata)
   39014      393229 :          pack_tmp = ISHFT(data_tmp, 31)
   39015      393229 :          pack_tmp = ISHFT(pack_tmp, -31)
   39016      393229 :          idata = idata + 1
   39017      393229 :          data_tmp = full_data(idata)
   39018      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39019      393229 :          data_tmp = IAND(data_tmp, mask_left(31))
   39020      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39021      393229 :          ipack = ipack + 1
   39022      393229 :          packed_data(ipack) = pack_tmp
   39023      393229 :          data_tmp = full_data(idata)
   39024      393229 :          pack_tmp = ISHFT(data_tmp, 46)
   39025      393229 :          pack_tmp = ISHFT(pack_tmp, -46)
   39026      393229 :          idata = idata + 1
   39027      393229 :          data_tmp = full_data(idata)
   39028      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39029      393229 :          data_tmp = IAND(data_tmp, mask_left(46))
   39030      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39031      393229 :          ipack = ipack + 1
   39032      393229 :          packed_data(ipack) = pack_tmp
   39033      393229 :          data_tmp = full_data(idata)
   39034      393229 :          pack_tmp = ISHFT(data_tmp, 61)
   39035      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   39036      393229 :          idata = idata + 1
   39037      393229 :          data_tmp = full_data(idata)
   39038      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39039      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39040      393229 :          pack_tmp = ISHFT(pack_tmp, -12)
   39041      393229 :          idata = idata + 1
   39042      393229 :          data_tmp = full_data(idata)
   39043      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39044      393229 :          data_tmp = IAND(data_tmp, mask_left(12))
   39045      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39046      393229 :          ipack = ipack + 1
   39047      393229 :          packed_data(ipack) = pack_tmp
   39048      393229 :          data_tmp = full_data(idata)
   39049      393229 :          pack_tmp = ISHFT(data_tmp, 27)
   39050      393229 :          pack_tmp = ISHFT(pack_tmp, -27)
   39051      393229 :          idata = idata + 1
   39052      393229 :          data_tmp = full_data(idata)
   39053      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39054      393229 :          data_tmp = IAND(data_tmp, mask_left(27))
   39055      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39056      393229 :          ipack = ipack + 1
   39057      393229 :          packed_data(ipack) = pack_tmp
   39058      393229 :          data_tmp = full_data(idata)
   39059      393229 :          pack_tmp = ISHFT(data_tmp, 42)
   39060      393229 :          pack_tmp = ISHFT(pack_tmp, -42)
   39061      393229 :          idata = idata + 1
   39062      393229 :          data_tmp = full_data(idata)
   39063      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39064      393229 :          data_tmp = IAND(data_tmp, mask_left(42))
   39065      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39066      393229 :          ipack = ipack + 1
   39067      393229 :          packed_data(ipack) = pack_tmp
   39068      393229 :          data_tmp = full_data(idata)
   39069      393229 :          pack_tmp = ISHFT(data_tmp, 57)
   39070      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   39071      393229 :          idata = idata + 1
   39072      393229 :          data_tmp = full_data(idata)
   39073      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39074      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39075      393229 :          pack_tmp = ISHFT(pack_tmp, -8)
   39076      393229 :          idata = idata + 1
   39077      393229 :          data_tmp = full_data(idata)
   39078      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39079      393229 :          data_tmp = IAND(data_tmp, mask_left(8))
   39080      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39081      393229 :          ipack = ipack + 1
   39082      393229 :          packed_data(ipack) = pack_tmp
   39083      393229 :          data_tmp = full_data(idata)
   39084      393229 :          pack_tmp = ISHFT(data_tmp, 23)
   39085      393229 :          pack_tmp = ISHFT(pack_tmp, -23)
   39086      393229 :          idata = idata + 1
   39087      393229 :          data_tmp = full_data(idata)
   39088      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39089      393229 :          data_tmp = IAND(data_tmp, mask_left(23))
   39090      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39091      393229 :          ipack = ipack + 1
   39092      393229 :          packed_data(ipack) = pack_tmp
   39093      393229 :          data_tmp = full_data(idata)
   39094      393229 :          pack_tmp = ISHFT(data_tmp, 38)
   39095      393229 :          pack_tmp = ISHFT(pack_tmp, -38)
   39096      393229 :          idata = idata + 1
   39097      393229 :          data_tmp = full_data(idata)
   39098      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39099      393229 :          data_tmp = IAND(data_tmp, mask_left(38))
   39100      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39101      393229 :          ipack = ipack + 1
   39102      393229 :          packed_data(ipack) = pack_tmp
   39103      393229 :          data_tmp = full_data(idata)
   39104      393229 :          pack_tmp = ISHFT(data_tmp, 53)
   39105      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   39106      393229 :          idata = idata + 1
   39107      393229 :          data_tmp = full_data(idata)
   39108      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39109      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39110      393229 :          pack_tmp = ISHFT(pack_tmp, -4)
   39111      393229 :          idata = idata + 1
   39112      393229 :          data_tmp = full_data(idata)
   39113      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39114      393229 :          data_tmp = IAND(data_tmp, mask_left(4))
   39115      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39116      393229 :          ipack = ipack + 1
   39117      393229 :          packed_data(ipack) = pack_tmp
   39118      393229 :          data_tmp = full_data(idata)
   39119      393229 :          pack_tmp = ISHFT(data_tmp, 19)
   39120      393229 :          pack_tmp = ISHFT(pack_tmp, -19)
   39121      393229 :          idata = idata + 1
   39122      393229 :          data_tmp = full_data(idata)
   39123      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39124      393229 :          data_tmp = IAND(data_tmp, mask_left(19))
   39125      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39126      393229 :          ipack = ipack + 1
   39127      393229 :          packed_data(ipack) = pack_tmp
   39128      393229 :          data_tmp = full_data(idata)
   39129      393229 :          pack_tmp = ISHFT(data_tmp, 34)
   39130      393229 :          pack_tmp = ISHFT(pack_tmp, -34)
   39131      393229 :          idata = idata + 1
   39132      393229 :          data_tmp = full_data(idata)
   39133      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39134      393229 :          data_tmp = IAND(data_tmp, mask_left(34))
   39135      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39136      393229 :          ipack = ipack + 1
   39137      393229 :          packed_data(ipack) = pack_tmp
   39138      393229 :          data_tmp = full_data(idata)
   39139      393229 :          pack_tmp = ISHFT(data_tmp, 49)
   39140      393229 :          pack_tmp = ISHFT(pack_tmp, -49)
   39141      393229 :          idata = idata + 1
   39142      393229 :          data_tmp = full_data(idata)
   39143      393229 :          data_tmp = ISHFT(data_tmp, 15)
   39144      393229 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39145             :          pack_tmp = ISHFT(pack_tmp, 0)
   39146      393229 :          pack_tmp = ISHFT(pack_tmp, 0)
   39147      393229 :          ipack = ipack + 1
   39148      393233 :          packed_data(ipack) = pack_tmp
   39149             :       END DO
   39150       25532 :       IF (Ndata_rep < Ndata) THEN
   39151        1798 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   39152             :       END IF
   39153       25532 :    END SUBROUTINE ints2bits_49
   39154             : 
   39155             : ! **************************************************************************************************
   39156             : !> \brief ...
   39157             : !> \param Ndata ...
   39158             : !> \param packed_data ...
   39159             : !> \param full_data ...
   39160             : ! **************************************************************************************************
   39161      101717 :    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      101717 :       ipack = 0
   39172      101717 :       idata = 0
   39173      101717 :       pack_tmp = 0
   39174      101717 :       Ndata_rep = (Ndata/64)*64
   39175      101717 :       DO kdata = 1, Ndata_rep, 64
   39176     1575537 :          idata = idata + 1
   39177     1575537 :          data_tmp = ISHFT(pack_tmp, 49)
   39178     1575537 :          ipack = ipack + 1
   39179     1575537 :          pack_tmp = packed_data(ipack)
   39180     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   39181     1575537 :          pack_tmp = ISHFT(pack_tmp, -49)
   39182     1575537 :          idata = idata + 1
   39183     1575537 :          data_tmp = ISHFT(pack_tmp, 34)
   39184     1575537 :          ipack = ipack + 1
   39185     1575537 :          pack_tmp = packed_data(ipack)
   39186     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   39187     1575537 :          pack_tmp = ISHFT(pack_tmp, -34)
   39188     1575537 :          idata = idata + 1
   39189     1575537 :          data_tmp = ISHFT(pack_tmp, 19)
   39190     1575537 :          ipack = ipack + 1
   39191     1575537 :          pack_tmp = packed_data(ipack)
   39192     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   39193     1575537 :          pack_tmp = ISHFT(pack_tmp, -19)
   39194     1575537 :          idata = idata + 1
   39195     1575537 :          data_tmp = ISHFT(pack_tmp, 4)
   39196     1575537 :          ipack = ipack + 1
   39197     1575537 :          pack_tmp = packed_data(ipack)
   39198     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   39199     1575537 :          pack_tmp = ISHFT(pack_tmp, -4)
   39200     1575537 :          idata = idata + 1
   39201     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39202     1575537 :          full_data(idata) = data_tmp
   39203     1575537 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39204     1575537 :          idata = idata + 1
   39205     1575537 :          data_tmp = ISHFT(pack_tmp, 38)
   39206     1575537 :          ipack = ipack + 1
   39207     1575537 :          pack_tmp = packed_data(ipack)
   39208     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   39209     1575537 :          pack_tmp = ISHFT(pack_tmp, -38)
   39210     1575537 :          idata = idata + 1
   39211     1575537 :          data_tmp = ISHFT(pack_tmp, 23)
   39212     1575537 :          ipack = ipack + 1
   39213     1575537 :          pack_tmp = packed_data(ipack)
   39214     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   39215     1575537 :          pack_tmp = ISHFT(pack_tmp, -23)
   39216     1575537 :          idata = idata + 1
   39217     1575537 :          data_tmp = ISHFT(pack_tmp, 8)
   39218     1575537 :          ipack = ipack + 1
   39219     1575537 :          pack_tmp = packed_data(ipack)
   39220     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   39221     1575537 :          pack_tmp = ISHFT(pack_tmp, -8)
   39222     1575537 :          idata = idata + 1
   39223     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39224     1575537 :          full_data(idata) = data_tmp
   39225     1575537 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39226     1575537 :          idata = idata + 1
   39227     1575537 :          data_tmp = ISHFT(pack_tmp, 42)
   39228     1575537 :          ipack = ipack + 1
   39229     1575537 :          pack_tmp = packed_data(ipack)
   39230     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   39231     1575537 :          pack_tmp = ISHFT(pack_tmp, -42)
   39232     1575537 :          idata = idata + 1
   39233     1575537 :          data_tmp = ISHFT(pack_tmp, 27)
   39234     1575537 :          ipack = ipack + 1
   39235     1575537 :          pack_tmp = packed_data(ipack)
   39236     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   39237     1575537 :          pack_tmp = ISHFT(pack_tmp, -27)
   39238     1575537 :          idata = idata + 1
   39239     1575537 :          data_tmp = ISHFT(pack_tmp, 12)
   39240     1575537 :          ipack = ipack + 1
   39241     1575537 :          pack_tmp = packed_data(ipack)
   39242     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   39243     1575537 :          pack_tmp = ISHFT(pack_tmp, -12)
   39244     1575537 :          idata = idata + 1
   39245     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39246     1575537 :          full_data(idata) = data_tmp
   39247     1575537 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39248     1575537 :          idata = idata + 1
   39249     1575537 :          data_tmp = ISHFT(pack_tmp, 46)
   39250     1575537 :          ipack = ipack + 1
   39251     1575537 :          pack_tmp = packed_data(ipack)
   39252     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   39253     1575537 :          pack_tmp = ISHFT(pack_tmp, -46)
   39254     1575537 :          idata = idata + 1
   39255     1575537 :          data_tmp = ISHFT(pack_tmp, 31)
   39256     1575537 :          ipack = ipack + 1
   39257     1575537 :          pack_tmp = packed_data(ipack)
   39258     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   39259     1575537 :          pack_tmp = ISHFT(pack_tmp, -31)
   39260     1575537 :          idata = idata + 1
   39261     1575537 :          data_tmp = ISHFT(pack_tmp, 16)
   39262     1575537 :          ipack = ipack + 1
   39263     1575537 :          pack_tmp = packed_data(ipack)
   39264     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   39265     1575537 :          pack_tmp = ISHFT(pack_tmp, -16)
   39266     1575537 :          idata = idata + 1
   39267     1575537 :          data_tmp = ISHFT(pack_tmp, 1)
   39268     1575537 :          ipack = ipack + 1
   39269     1575537 :          pack_tmp = packed_data(ipack)
   39270     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   39271     1575537 :          pack_tmp = ISHFT(pack_tmp, -1)
   39272     1575537 :          idata = idata + 1
   39273     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39274     1575537 :          full_data(idata) = data_tmp
   39275     1575537 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39276     1575537 :          idata = idata + 1
   39277     1575537 :          data_tmp = ISHFT(pack_tmp, 35)
   39278     1575537 :          ipack = ipack + 1
   39279     1575537 :          pack_tmp = packed_data(ipack)
   39280     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   39281     1575537 :          pack_tmp = ISHFT(pack_tmp, -35)
   39282     1575537 :          idata = idata + 1
   39283     1575537 :          data_tmp = ISHFT(pack_tmp, 20)
   39284     1575537 :          ipack = ipack + 1
   39285     1575537 :          pack_tmp = packed_data(ipack)
   39286     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   39287     1575537 :          pack_tmp = ISHFT(pack_tmp, -20)
   39288     1575537 :          idata = idata + 1
   39289     1575537 :          data_tmp = ISHFT(pack_tmp, 5)
   39290     1575537 :          ipack = ipack + 1
   39291     1575537 :          pack_tmp = packed_data(ipack)
   39292     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   39293     1575537 :          pack_tmp = ISHFT(pack_tmp, -5)
   39294     1575537 :          idata = idata + 1
   39295     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39296     1575537 :          full_data(idata) = data_tmp
   39297     1575537 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39298     1575537 :          idata = idata + 1
   39299     1575537 :          data_tmp = ISHFT(pack_tmp, 39)
   39300     1575537 :          ipack = ipack + 1
   39301     1575537 :          pack_tmp = packed_data(ipack)
   39302     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   39303     1575537 :          pack_tmp = ISHFT(pack_tmp, -39)
   39304     1575537 :          idata = idata + 1
   39305     1575537 :          data_tmp = ISHFT(pack_tmp, 24)
   39306     1575537 :          ipack = ipack + 1
   39307     1575537 :          pack_tmp = packed_data(ipack)
   39308     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   39309     1575537 :          pack_tmp = ISHFT(pack_tmp, -24)
   39310     1575537 :          idata = idata + 1
   39311     1575537 :          data_tmp = ISHFT(pack_tmp, 9)
   39312     1575537 :          ipack = ipack + 1
   39313     1575537 :          pack_tmp = packed_data(ipack)
   39314     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   39315     1575537 :          pack_tmp = ISHFT(pack_tmp, -9)
   39316     1575537 :          idata = idata + 1
   39317     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39318     1575537 :          full_data(idata) = data_tmp
   39319     1575537 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39320     1575537 :          idata = idata + 1
   39321     1575537 :          data_tmp = ISHFT(pack_tmp, 43)
   39322     1575537 :          ipack = ipack + 1
   39323     1575537 :          pack_tmp = packed_data(ipack)
   39324     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   39325     1575537 :          pack_tmp = ISHFT(pack_tmp, -43)
   39326     1575537 :          idata = idata + 1
   39327     1575537 :          data_tmp = ISHFT(pack_tmp, 28)
   39328     1575537 :          ipack = ipack + 1
   39329     1575537 :          pack_tmp = packed_data(ipack)
   39330     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   39331     1575537 :          pack_tmp = ISHFT(pack_tmp, -28)
   39332     1575537 :          idata = idata + 1
   39333     1575537 :          data_tmp = ISHFT(pack_tmp, 13)
   39334     1575537 :          ipack = ipack + 1
   39335     1575537 :          pack_tmp = packed_data(ipack)
   39336     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   39337     1575537 :          pack_tmp = ISHFT(pack_tmp, -13)
   39338     1575537 :          idata = idata + 1
   39339     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39340     1575537 :          full_data(idata) = data_tmp
   39341     1575537 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39342     1575537 :          idata = idata + 1
   39343     1575537 :          data_tmp = ISHFT(pack_tmp, 47)
   39344     1575537 :          ipack = ipack + 1
   39345     1575537 :          pack_tmp = packed_data(ipack)
   39346     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   39347     1575537 :          pack_tmp = ISHFT(pack_tmp, -47)
   39348     1575537 :          idata = idata + 1
   39349     1575537 :          data_tmp = ISHFT(pack_tmp, 32)
   39350     1575537 :          ipack = ipack + 1
   39351     1575537 :          pack_tmp = packed_data(ipack)
   39352     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   39353     1575537 :          pack_tmp = ISHFT(pack_tmp, -32)
   39354     1575537 :          idata = idata + 1
   39355     1575537 :          data_tmp = ISHFT(pack_tmp, 17)
   39356     1575537 :          ipack = ipack + 1
   39357     1575537 :          pack_tmp = packed_data(ipack)
   39358     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   39359     1575537 :          pack_tmp = ISHFT(pack_tmp, -17)
   39360     1575537 :          idata = idata + 1
   39361     1575537 :          data_tmp = ISHFT(pack_tmp, 2)
   39362     1575537 :          ipack = ipack + 1
   39363     1575537 :          pack_tmp = packed_data(ipack)
   39364     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   39365     1575537 :          pack_tmp = ISHFT(pack_tmp, -2)
   39366     1575537 :          idata = idata + 1
   39367     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39368     1575537 :          full_data(idata) = data_tmp
   39369     1575537 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39370     1575537 :          idata = idata + 1
   39371     1575537 :          data_tmp = ISHFT(pack_tmp, 36)
   39372     1575537 :          ipack = ipack + 1
   39373     1575537 :          pack_tmp = packed_data(ipack)
   39374     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   39375     1575537 :          pack_tmp = ISHFT(pack_tmp, -36)
   39376     1575537 :          idata = idata + 1
   39377     1575537 :          data_tmp = ISHFT(pack_tmp, 21)
   39378     1575537 :          ipack = ipack + 1
   39379     1575537 :          pack_tmp = packed_data(ipack)
   39380     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   39381     1575537 :          pack_tmp = ISHFT(pack_tmp, -21)
   39382     1575537 :          idata = idata + 1
   39383     1575537 :          data_tmp = ISHFT(pack_tmp, 6)
   39384     1575537 :          ipack = ipack + 1
   39385     1575537 :          pack_tmp = packed_data(ipack)
   39386     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   39387     1575537 :          pack_tmp = ISHFT(pack_tmp, -6)
   39388     1575537 :          idata = idata + 1
   39389     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39390     1575537 :          full_data(idata) = data_tmp
   39391     1575537 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39392     1575537 :          idata = idata + 1
   39393     1575537 :          data_tmp = ISHFT(pack_tmp, 40)
   39394     1575537 :          ipack = ipack + 1
   39395     1575537 :          pack_tmp = packed_data(ipack)
   39396     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   39397     1575537 :          pack_tmp = ISHFT(pack_tmp, -40)
   39398     1575537 :          idata = idata + 1
   39399     1575537 :          data_tmp = ISHFT(pack_tmp, 25)
   39400     1575537 :          ipack = ipack + 1
   39401     1575537 :          pack_tmp = packed_data(ipack)
   39402     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   39403     1575537 :          pack_tmp = ISHFT(pack_tmp, -25)
   39404     1575537 :          idata = idata + 1
   39405     1575537 :          data_tmp = ISHFT(pack_tmp, 10)
   39406     1575537 :          ipack = ipack + 1
   39407     1575537 :          pack_tmp = packed_data(ipack)
   39408     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   39409     1575537 :          pack_tmp = ISHFT(pack_tmp, -10)
   39410     1575537 :          idata = idata + 1
   39411     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39412     1575537 :          full_data(idata) = data_tmp
   39413     1575537 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39414     1575537 :          idata = idata + 1
   39415     1575537 :          data_tmp = ISHFT(pack_tmp, 44)
   39416     1575537 :          ipack = ipack + 1
   39417     1575537 :          pack_tmp = packed_data(ipack)
   39418     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   39419     1575537 :          pack_tmp = ISHFT(pack_tmp, -44)
   39420     1575537 :          idata = idata + 1
   39421     1575537 :          data_tmp = ISHFT(pack_tmp, 29)
   39422     1575537 :          ipack = ipack + 1
   39423     1575537 :          pack_tmp = packed_data(ipack)
   39424     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   39425     1575537 :          pack_tmp = ISHFT(pack_tmp, -29)
   39426     1575537 :          idata = idata + 1
   39427     1575537 :          data_tmp = ISHFT(pack_tmp, 14)
   39428     1575537 :          ipack = ipack + 1
   39429     1575537 :          pack_tmp = packed_data(ipack)
   39430     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   39431     1575537 :          pack_tmp = ISHFT(pack_tmp, -14)
   39432     1575537 :          idata = idata + 1
   39433     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39434     1575537 :          full_data(idata) = data_tmp
   39435     1575537 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39436     1575537 :          idata = idata + 1
   39437     1575537 :          data_tmp = ISHFT(pack_tmp, 48)
   39438     1575537 :          ipack = ipack + 1
   39439     1575537 :          pack_tmp = packed_data(ipack)
   39440     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   39441     1575537 :          pack_tmp = ISHFT(pack_tmp, -48)
   39442     1575537 :          idata = idata + 1
   39443     1575537 :          data_tmp = ISHFT(pack_tmp, 33)
   39444     1575537 :          ipack = ipack + 1
   39445     1575537 :          pack_tmp = packed_data(ipack)
   39446     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   39447     1575537 :          pack_tmp = ISHFT(pack_tmp, -33)
   39448     1575537 :          idata = idata + 1
   39449     1575537 :          data_tmp = ISHFT(pack_tmp, 18)
   39450     1575537 :          ipack = ipack + 1
   39451     1575537 :          pack_tmp = packed_data(ipack)
   39452     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   39453     1575537 :          pack_tmp = ISHFT(pack_tmp, -18)
   39454     1575537 :          idata = idata + 1
   39455     1575537 :          data_tmp = ISHFT(pack_tmp, 3)
   39456     1575537 :          ipack = ipack + 1
   39457     1575537 :          pack_tmp = packed_data(ipack)
   39458     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   39459     1575537 :          pack_tmp = ISHFT(pack_tmp, -3)
   39460     1575537 :          idata = idata + 1
   39461     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39462     1575537 :          full_data(idata) = data_tmp
   39463     1575537 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39464     1575537 :          idata = idata + 1
   39465     1575537 :          data_tmp = ISHFT(pack_tmp, 37)
   39466     1575537 :          ipack = ipack + 1
   39467     1575537 :          pack_tmp = packed_data(ipack)
   39468     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   39469     1575537 :          pack_tmp = ISHFT(pack_tmp, -37)
   39470     1575537 :          idata = idata + 1
   39471     1575537 :          data_tmp = ISHFT(pack_tmp, 22)
   39472     1575537 :          ipack = ipack + 1
   39473     1575537 :          pack_tmp = packed_data(ipack)
   39474     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   39475     1575537 :          pack_tmp = ISHFT(pack_tmp, -22)
   39476     1575537 :          idata = idata + 1
   39477     1575537 :          data_tmp = ISHFT(pack_tmp, 7)
   39478     1575537 :          ipack = ipack + 1
   39479     1575537 :          pack_tmp = packed_data(ipack)
   39480     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   39481     1575537 :          pack_tmp = ISHFT(pack_tmp, -7)
   39482     1575537 :          idata = idata + 1
   39483     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39484     1575537 :          full_data(idata) = data_tmp
   39485     1575537 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39486     1575537 :          idata = idata + 1
   39487     1575537 :          data_tmp = ISHFT(pack_tmp, 41)
   39488     1575537 :          ipack = ipack + 1
   39489     1575537 :          pack_tmp = packed_data(ipack)
   39490     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   39491     1575537 :          pack_tmp = ISHFT(pack_tmp, -41)
   39492     1575537 :          idata = idata + 1
   39493     1575537 :          data_tmp = ISHFT(pack_tmp, 26)
   39494     1575537 :          ipack = ipack + 1
   39495     1575537 :          pack_tmp = packed_data(ipack)
   39496     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   39497     1575537 :          pack_tmp = ISHFT(pack_tmp, -26)
   39498     1575537 :          idata = idata + 1
   39499     1575537 :          data_tmp = ISHFT(pack_tmp, 11)
   39500     1575537 :          ipack = ipack + 1
   39501     1575537 :          pack_tmp = packed_data(ipack)
   39502     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   39503     1575537 :          pack_tmp = ISHFT(pack_tmp, -11)
   39504     1575537 :          idata = idata + 1
   39505     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39506     1575537 :          full_data(idata) = data_tmp
   39507     1575537 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39508     1575537 :          idata = idata + 1
   39509     1575537 :          data_tmp = ISHFT(pack_tmp, 45)
   39510     1575537 :          ipack = ipack + 1
   39511     1575537 :          pack_tmp = packed_data(ipack)
   39512     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   39513     1575537 :          pack_tmp = ISHFT(pack_tmp, -45)
   39514     1575537 :          idata = idata + 1
   39515     1575537 :          data_tmp = ISHFT(pack_tmp, 30)
   39516     1575537 :          ipack = ipack + 1
   39517     1575537 :          pack_tmp = packed_data(ipack)
   39518     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   39519     1575537 :          pack_tmp = ISHFT(pack_tmp, -30)
   39520     1575537 :          idata = idata + 1
   39521     1575537 :          data_tmp = ISHFT(pack_tmp, 15)
   39522     1575537 :          ipack = ipack + 1
   39523     1575537 :          pack_tmp = packed_data(ipack)
   39524     1575537 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   39525     1575537 :          pack_tmp = ISHFT(pack_tmp, -15)
   39526     1575537 :          idata = idata + 1
   39527     1575537 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39528     1575537 :          full_data(idata) = data_tmp
   39529     1575553 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39530             :       END DO
   39531      101717 :       IF (Ndata_rep < Ndata) THEN
   39532        6110 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   39533             :       END IF
   39534      101717 :    END SUBROUTINE bits2ints_49
   39535             : 
   39536             : ! **************************************************************************************************
   39537             : !> \brief ...
   39538             : !> \param Ndata ...
   39539             : !> \param packed_data ...
   39540             : !> \param full_data ...
   39541             : ! **************************************************************************************************
   39542       25110 :    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       25110 :       idata = 0
   39553       25110 :       ipack = 0
   39554       25110 :       Ndata_rep = (Ndata/64)*64
   39555       25110 :       DO kdata = 1, Ndata_rep, 64
   39556      389775 :          pack_tmp = 0
   39557      389775 :          idata = idata + 1
   39558      389775 :          data_tmp = full_data(idata)
   39559      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39560      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39561      389775 :          pack_tmp = ISHFT(pack_tmp, -14)
   39562      389775 :          idata = idata + 1
   39563      389775 :          data_tmp = full_data(idata)
   39564      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39565      389775 :          data_tmp = IAND(data_tmp, mask_left(14))
   39566      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39567      389775 :          ipack = ipack + 1
   39568      389775 :          packed_data(ipack) = pack_tmp
   39569      389775 :          data_tmp = full_data(idata)
   39570      389775 :          pack_tmp = ISHFT(data_tmp, 28)
   39571      389775 :          pack_tmp = ISHFT(pack_tmp, -28)
   39572      389775 :          idata = idata + 1
   39573      389775 :          data_tmp = full_data(idata)
   39574      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39575      389775 :          data_tmp = IAND(data_tmp, mask_left(28))
   39576      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39577      389775 :          ipack = ipack + 1
   39578      389775 :          packed_data(ipack) = pack_tmp
   39579      389775 :          data_tmp = full_data(idata)
   39580      389775 :          pack_tmp = ISHFT(data_tmp, 42)
   39581      389775 :          pack_tmp = ISHFT(pack_tmp, -42)
   39582      389775 :          idata = idata + 1
   39583      389775 :          data_tmp = full_data(idata)
   39584      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39585      389775 :          data_tmp = IAND(data_tmp, mask_left(42))
   39586      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39587      389775 :          ipack = ipack + 1
   39588      389775 :          packed_data(ipack) = pack_tmp
   39589      389775 :          data_tmp = full_data(idata)
   39590      389775 :          pack_tmp = ISHFT(data_tmp, 56)
   39591      389775 :          pack_tmp = ISHFT(pack_tmp, -50)
   39592      389775 :          idata = idata + 1
   39593      389775 :          data_tmp = full_data(idata)
   39594      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39595      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39596      389775 :          pack_tmp = ISHFT(pack_tmp, -6)
   39597      389775 :          idata = idata + 1
   39598      389775 :          data_tmp = full_data(idata)
   39599      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39600      389775 :          data_tmp = IAND(data_tmp, mask_left(6))
   39601      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39602      389775 :          ipack = ipack + 1
   39603      389775 :          packed_data(ipack) = pack_tmp
   39604      389775 :          data_tmp = full_data(idata)
   39605      389775 :          pack_tmp = ISHFT(data_tmp, 20)
   39606      389775 :          pack_tmp = ISHFT(pack_tmp, -20)
   39607      389775 :          idata = idata + 1
   39608      389775 :          data_tmp = full_data(idata)
   39609      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39610      389775 :          data_tmp = IAND(data_tmp, mask_left(20))
   39611      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39612      389775 :          ipack = ipack + 1
   39613      389775 :          packed_data(ipack) = pack_tmp
   39614      389775 :          data_tmp = full_data(idata)
   39615      389775 :          pack_tmp = ISHFT(data_tmp, 34)
   39616      389775 :          pack_tmp = ISHFT(pack_tmp, -34)
   39617      389775 :          idata = idata + 1
   39618      389775 :          data_tmp = full_data(idata)
   39619      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39620      389775 :          data_tmp = IAND(data_tmp, mask_left(34))
   39621      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39622      389775 :          ipack = ipack + 1
   39623      389775 :          packed_data(ipack) = pack_tmp
   39624      389775 :          data_tmp = full_data(idata)
   39625      389775 :          pack_tmp = ISHFT(data_tmp, 48)
   39626      389775 :          pack_tmp = ISHFT(pack_tmp, -48)
   39627      389775 :          idata = idata + 1
   39628      389775 :          data_tmp = full_data(idata)
   39629      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39630      389775 :          data_tmp = IAND(data_tmp, mask_left(48))
   39631      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39632      389775 :          ipack = ipack + 1
   39633      389775 :          packed_data(ipack) = pack_tmp
   39634      389775 :          data_tmp = full_data(idata)
   39635      389775 :          pack_tmp = ISHFT(data_tmp, 62)
   39636      389775 :          pack_tmp = ISHFT(pack_tmp, -50)
   39637      389775 :          idata = idata + 1
   39638      389775 :          data_tmp = full_data(idata)
   39639      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39640      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39641      389775 :          pack_tmp = ISHFT(pack_tmp, -12)
   39642      389775 :          idata = idata + 1
   39643      389775 :          data_tmp = full_data(idata)
   39644      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39645      389775 :          data_tmp = IAND(data_tmp, mask_left(12))
   39646      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39647      389775 :          ipack = ipack + 1
   39648      389775 :          packed_data(ipack) = pack_tmp
   39649      389775 :          data_tmp = full_data(idata)
   39650      389775 :          pack_tmp = ISHFT(data_tmp, 26)
   39651      389775 :          pack_tmp = ISHFT(pack_tmp, -26)
   39652      389775 :          idata = idata + 1
   39653      389775 :          data_tmp = full_data(idata)
   39654      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39655      389775 :          data_tmp = IAND(data_tmp, mask_left(26))
   39656      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39657      389775 :          ipack = ipack + 1
   39658      389775 :          packed_data(ipack) = pack_tmp
   39659      389775 :          data_tmp = full_data(idata)
   39660      389775 :          pack_tmp = ISHFT(data_tmp, 40)
   39661      389775 :          pack_tmp = ISHFT(pack_tmp, -40)
   39662      389775 :          idata = idata + 1
   39663      389775 :          data_tmp = full_data(idata)
   39664      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39665      389775 :          data_tmp = IAND(data_tmp, mask_left(40))
   39666      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39667      389775 :          ipack = ipack + 1
   39668      389775 :          packed_data(ipack) = pack_tmp
   39669      389775 :          data_tmp = full_data(idata)
   39670      389775 :          pack_tmp = ISHFT(data_tmp, 54)
   39671      389775 :          pack_tmp = ISHFT(pack_tmp, -50)
   39672      389775 :          idata = idata + 1
   39673      389775 :          data_tmp = full_data(idata)
   39674      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39675      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39676      389775 :          pack_tmp = ISHFT(pack_tmp, -4)
   39677      389775 :          idata = idata + 1
   39678      389775 :          data_tmp = full_data(idata)
   39679      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39680      389775 :          data_tmp = IAND(data_tmp, mask_left(4))
   39681      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39682      389775 :          ipack = ipack + 1
   39683      389775 :          packed_data(ipack) = pack_tmp
   39684      389775 :          data_tmp = full_data(idata)
   39685      389775 :          pack_tmp = ISHFT(data_tmp, 18)
   39686      389775 :          pack_tmp = ISHFT(pack_tmp, -18)
   39687      389775 :          idata = idata + 1
   39688      389775 :          data_tmp = full_data(idata)
   39689      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39690      389775 :          data_tmp = IAND(data_tmp, mask_left(18))
   39691      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39692      389775 :          ipack = ipack + 1
   39693      389775 :          packed_data(ipack) = pack_tmp
   39694      389775 :          data_tmp = full_data(idata)
   39695      389775 :          pack_tmp = ISHFT(data_tmp, 32)
   39696      389775 :          pack_tmp = ISHFT(pack_tmp, -32)
   39697      389775 :          idata = idata + 1
   39698      389775 :          data_tmp = full_data(idata)
   39699      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39700      389775 :          data_tmp = IAND(data_tmp, mask_left(32))
   39701      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39702      389775 :          ipack = ipack + 1
   39703      389775 :          packed_data(ipack) = pack_tmp
   39704      389775 :          data_tmp = full_data(idata)
   39705      389775 :          pack_tmp = ISHFT(data_tmp, 46)
   39706      389775 :          pack_tmp = ISHFT(pack_tmp, -46)
   39707      389775 :          idata = idata + 1
   39708      389775 :          data_tmp = full_data(idata)
   39709      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39710      389775 :          data_tmp = IAND(data_tmp, mask_left(46))
   39711      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39712      389775 :          ipack = ipack + 1
   39713      389775 :          packed_data(ipack) = pack_tmp
   39714      389775 :          data_tmp = full_data(idata)
   39715      389775 :          pack_tmp = ISHFT(data_tmp, 60)
   39716      389775 :          pack_tmp = ISHFT(pack_tmp, -50)
   39717      389775 :          idata = idata + 1
   39718      389775 :          data_tmp = full_data(idata)
   39719      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39720      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39721      389775 :          pack_tmp = ISHFT(pack_tmp, -10)
   39722      389775 :          idata = idata + 1
   39723      389775 :          data_tmp = full_data(idata)
   39724      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39725      389775 :          data_tmp = IAND(data_tmp, mask_left(10))
   39726      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39727      389775 :          ipack = ipack + 1
   39728      389775 :          packed_data(ipack) = pack_tmp
   39729      389775 :          data_tmp = full_data(idata)
   39730      389775 :          pack_tmp = ISHFT(data_tmp, 24)
   39731      389775 :          pack_tmp = ISHFT(pack_tmp, -24)
   39732      389775 :          idata = idata + 1
   39733      389775 :          data_tmp = full_data(idata)
   39734      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39735      389775 :          data_tmp = IAND(data_tmp, mask_left(24))
   39736      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39737      389775 :          ipack = ipack + 1
   39738      389775 :          packed_data(ipack) = pack_tmp
   39739      389775 :          data_tmp = full_data(idata)
   39740      389775 :          pack_tmp = ISHFT(data_tmp, 38)
   39741      389775 :          pack_tmp = ISHFT(pack_tmp, -38)
   39742      389775 :          idata = idata + 1
   39743      389775 :          data_tmp = full_data(idata)
   39744      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39745      389775 :          data_tmp = IAND(data_tmp, mask_left(38))
   39746      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39747      389775 :          ipack = ipack + 1
   39748      389775 :          packed_data(ipack) = pack_tmp
   39749      389775 :          data_tmp = full_data(idata)
   39750      389775 :          pack_tmp = ISHFT(data_tmp, 52)
   39751      389775 :          pack_tmp = ISHFT(pack_tmp, -50)
   39752      389775 :          idata = idata + 1
   39753      389775 :          data_tmp = full_data(idata)
   39754      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39755      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39756      389775 :          pack_tmp = ISHFT(pack_tmp, -2)
   39757      389775 :          idata = idata + 1
   39758      389775 :          data_tmp = full_data(idata)
   39759      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39760      389775 :          data_tmp = IAND(data_tmp, mask_left(2))
   39761      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39762      389775 :          ipack = ipack + 1
   39763      389775 :          packed_data(ipack) = pack_tmp
   39764      389775 :          data_tmp = full_data(idata)
   39765      389775 :          pack_tmp = ISHFT(data_tmp, 16)
   39766      389775 :          pack_tmp = ISHFT(pack_tmp, -16)
   39767      389775 :          idata = idata + 1
   39768      389775 :          data_tmp = full_data(idata)
   39769      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39770      389775 :          data_tmp = IAND(data_tmp, mask_left(16))
   39771      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39772      389775 :          ipack = ipack + 1
   39773      389775 :          packed_data(ipack) = pack_tmp
   39774      389775 :          data_tmp = full_data(idata)
   39775      389775 :          pack_tmp = ISHFT(data_tmp, 30)
   39776      389775 :          pack_tmp = ISHFT(pack_tmp, -30)
   39777      389775 :          idata = idata + 1
   39778      389775 :          data_tmp = full_data(idata)
   39779      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39780      389775 :          data_tmp = IAND(data_tmp, mask_left(30))
   39781      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39782      389775 :          ipack = ipack + 1
   39783      389775 :          packed_data(ipack) = pack_tmp
   39784      389775 :          data_tmp = full_data(idata)
   39785      389775 :          pack_tmp = ISHFT(data_tmp, 44)
   39786      389775 :          pack_tmp = ISHFT(pack_tmp, -44)
   39787      389775 :          idata = idata + 1
   39788      389775 :          data_tmp = full_data(idata)
   39789      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39790      389775 :          data_tmp = IAND(data_tmp, mask_left(44))
   39791      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39792      389775 :          ipack = ipack + 1
   39793      389775 :          packed_data(ipack) = pack_tmp
   39794      389775 :          data_tmp = full_data(idata)
   39795      389775 :          pack_tmp = ISHFT(data_tmp, 58)
   39796      389775 :          pack_tmp = ISHFT(pack_tmp, -50)
   39797      389775 :          idata = idata + 1
   39798      389775 :          data_tmp = full_data(idata)
   39799      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39800      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39801      389775 :          pack_tmp = ISHFT(pack_tmp, -8)
   39802      389775 :          idata = idata + 1
   39803      389775 :          data_tmp = full_data(idata)
   39804      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39805      389775 :          data_tmp = IAND(data_tmp, mask_left(8))
   39806      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39807      389775 :          ipack = ipack + 1
   39808      389775 :          packed_data(ipack) = pack_tmp
   39809      389775 :          data_tmp = full_data(idata)
   39810      389775 :          pack_tmp = ISHFT(data_tmp, 22)
   39811      389775 :          pack_tmp = ISHFT(pack_tmp, -22)
   39812      389775 :          idata = idata + 1
   39813      389775 :          data_tmp = full_data(idata)
   39814      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39815      389775 :          data_tmp = IAND(data_tmp, mask_left(22))
   39816      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39817      389775 :          ipack = ipack + 1
   39818      389775 :          packed_data(ipack) = pack_tmp
   39819      389775 :          data_tmp = full_data(idata)
   39820      389775 :          pack_tmp = ISHFT(data_tmp, 36)
   39821      389775 :          pack_tmp = ISHFT(pack_tmp, -36)
   39822      389775 :          idata = idata + 1
   39823      389775 :          data_tmp = full_data(idata)
   39824      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39825      389775 :          data_tmp = IAND(data_tmp, mask_left(36))
   39826      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39827      389775 :          ipack = ipack + 1
   39828      389775 :          packed_data(ipack) = pack_tmp
   39829      389775 :          data_tmp = full_data(idata)
   39830      389775 :          pack_tmp = ISHFT(data_tmp, 50)
   39831      389775 :          pack_tmp = ISHFT(pack_tmp, -50)
   39832      389775 :          idata = idata + 1
   39833      389775 :          data_tmp = full_data(idata)
   39834      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39835      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39836      389775 :          pack_tmp = ISHFT(pack_tmp, 0)
   39837      389775 :          idata = idata + 1
   39838      389775 :          data_tmp = full_data(idata)
   39839             :          data_tmp = ISHFT(data_tmp, 14)
   39840      389775 :          data_tmp = IAND(data_tmp, mask_left(0))
   39841      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39842      389775 :          ipack = ipack + 1
   39843      389775 :          packed_data(ipack) = pack_tmp
   39844      389775 :          data_tmp = full_data(idata)
   39845      389775 :          pack_tmp = ISHFT(data_tmp, 14)
   39846      389775 :          pack_tmp = ISHFT(pack_tmp, -14)
   39847      389775 :          idata = idata + 1
   39848      389775 :          data_tmp = full_data(idata)
   39849      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39850      389775 :          data_tmp = IAND(data_tmp, mask_left(14))
   39851      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39852      389775 :          ipack = ipack + 1
   39853      389775 :          packed_data(ipack) = pack_tmp
   39854      389775 :          data_tmp = full_data(idata)
   39855      389775 :          pack_tmp = ISHFT(data_tmp, 28)
   39856      389775 :          pack_tmp = ISHFT(pack_tmp, -28)
   39857      389775 :          idata = idata + 1
   39858      389775 :          data_tmp = full_data(idata)
   39859      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39860      389775 :          data_tmp = IAND(data_tmp, mask_left(28))
   39861      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39862      389775 :          ipack = ipack + 1
   39863      389775 :          packed_data(ipack) = pack_tmp
   39864      389775 :          data_tmp = full_data(idata)
   39865      389775 :          pack_tmp = ISHFT(data_tmp, 42)
   39866      389775 :          pack_tmp = ISHFT(pack_tmp, -42)
   39867      389775 :          idata = idata + 1
   39868      389775 :          data_tmp = full_data(idata)
   39869      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39870      389775 :          data_tmp = IAND(data_tmp, mask_left(42))
   39871      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39872      389775 :          ipack = ipack + 1
   39873      389775 :          packed_data(ipack) = pack_tmp
   39874      389775 :          data_tmp = full_data(idata)
   39875      389775 :          pack_tmp = ISHFT(data_tmp, 56)
   39876      389775 :          pack_tmp = ISHFT(pack_tmp, -50)
   39877      389775 :          idata = idata + 1
   39878      389775 :          data_tmp = full_data(idata)
   39879      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39880      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39881      389775 :          pack_tmp = ISHFT(pack_tmp, -6)
   39882      389775 :          idata = idata + 1
   39883      389775 :          data_tmp = full_data(idata)
   39884      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39885      389775 :          data_tmp = IAND(data_tmp, mask_left(6))
   39886      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39887      389775 :          ipack = ipack + 1
   39888      389775 :          packed_data(ipack) = pack_tmp
   39889      389775 :          data_tmp = full_data(idata)
   39890      389775 :          pack_tmp = ISHFT(data_tmp, 20)
   39891      389775 :          pack_tmp = ISHFT(pack_tmp, -20)
   39892      389775 :          idata = idata + 1
   39893      389775 :          data_tmp = full_data(idata)
   39894      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39895      389775 :          data_tmp = IAND(data_tmp, mask_left(20))
   39896      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39897      389775 :          ipack = ipack + 1
   39898      389775 :          packed_data(ipack) = pack_tmp
   39899      389775 :          data_tmp = full_data(idata)
   39900      389775 :          pack_tmp = ISHFT(data_tmp, 34)
   39901      389775 :          pack_tmp = ISHFT(pack_tmp, -34)
   39902      389775 :          idata = idata + 1
   39903      389775 :          data_tmp = full_data(idata)
   39904      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39905      389775 :          data_tmp = IAND(data_tmp, mask_left(34))
   39906      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39907      389775 :          ipack = ipack + 1
   39908      389775 :          packed_data(ipack) = pack_tmp
   39909      389775 :          data_tmp = full_data(idata)
   39910      389775 :          pack_tmp = ISHFT(data_tmp, 48)
   39911      389775 :          pack_tmp = ISHFT(pack_tmp, -48)
   39912      389775 :          idata = idata + 1
   39913      389775 :          data_tmp = full_data(idata)
   39914      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39915      389775 :          data_tmp = IAND(data_tmp, mask_left(48))
   39916      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39917      389775 :          ipack = ipack + 1
   39918      389775 :          packed_data(ipack) = pack_tmp
   39919      389775 :          data_tmp = full_data(idata)
   39920      389775 :          pack_tmp = ISHFT(data_tmp, 62)
   39921      389775 :          pack_tmp = ISHFT(pack_tmp, -50)
   39922      389775 :          idata = idata + 1
   39923      389775 :          data_tmp = full_data(idata)
   39924      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39925      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39926      389775 :          pack_tmp = ISHFT(pack_tmp, -12)
   39927      389775 :          idata = idata + 1
   39928      389775 :          data_tmp = full_data(idata)
   39929      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39930      389775 :          data_tmp = IAND(data_tmp, mask_left(12))
   39931      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39932      389775 :          ipack = ipack + 1
   39933      389775 :          packed_data(ipack) = pack_tmp
   39934      389775 :          data_tmp = full_data(idata)
   39935      389775 :          pack_tmp = ISHFT(data_tmp, 26)
   39936      389775 :          pack_tmp = ISHFT(pack_tmp, -26)
   39937      389775 :          idata = idata + 1
   39938      389775 :          data_tmp = full_data(idata)
   39939      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39940      389775 :          data_tmp = IAND(data_tmp, mask_left(26))
   39941      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39942      389775 :          ipack = ipack + 1
   39943      389775 :          packed_data(ipack) = pack_tmp
   39944      389775 :          data_tmp = full_data(idata)
   39945      389775 :          pack_tmp = ISHFT(data_tmp, 40)
   39946      389775 :          pack_tmp = ISHFT(pack_tmp, -40)
   39947      389775 :          idata = idata + 1
   39948      389775 :          data_tmp = full_data(idata)
   39949      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39950      389775 :          data_tmp = IAND(data_tmp, mask_left(40))
   39951      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39952      389775 :          ipack = ipack + 1
   39953      389775 :          packed_data(ipack) = pack_tmp
   39954      389775 :          data_tmp = full_data(idata)
   39955      389775 :          pack_tmp = ISHFT(data_tmp, 54)
   39956      389775 :          pack_tmp = ISHFT(pack_tmp, -50)
   39957      389775 :          idata = idata + 1
   39958      389775 :          data_tmp = full_data(idata)
   39959      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39960      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39961      389775 :          pack_tmp = ISHFT(pack_tmp, -4)
   39962      389775 :          idata = idata + 1
   39963      389775 :          data_tmp = full_data(idata)
   39964      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39965      389775 :          data_tmp = IAND(data_tmp, mask_left(4))
   39966      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39967      389775 :          ipack = ipack + 1
   39968      389775 :          packed_data(ipack) = pack_tmp
   39969      389775 :          data_tmp = full_data(idata)
   39970      389775 :          pack_tmp = ISHFT(data_tmp, 18)
   39971      389775 :          pack_tmp = ISHFT(pack_tmp, -18)
   39972      389775 :          idata = idata + 1
   39973      389775 :          data_tmp = full_data(idata)
   39974      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39975      389775 :          data_tmp = IAND(data_tmp, mask_left(18))
   39976      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39977      389775 :          ipack = ipack + 1
   39978      389775 :          packed_data(ipack) = pack_tmp
   39979      389775 :          data_tmp = full_data(idata)
   39980      389775 :          pack_tmp = ISHFT(data_tmp, 32)
   39981      389775 :          pack_tmp = ISHFT(pack_tmp, -32)
   39982      389775 :          idata = idata + 1
   39983      389775 :          data_tmp = full_data(idata)
   39984      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39985      389775 :          data_tmp = IAND(data_tmp, mask_left(32))
   39986      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39987      389775 :          ipack = ipack + 1
   39988      389775 :          packed_data(ipack) = pack_tmp
   39989      389775 :          data_tmp = full_data(idata)
   39990      389775 :          pack_tmp = ISHFT(data_tmp, 46)
   39991      389775 :          pack_tmp = ISHFT(pack_tmp, -46)
   39992      389775 :          idata = idata + 1
   39993      389775 :          data_tmp = full_data(idata)
   39994      389775 :          data_tmp = ISHFT(data_tmp, 14)
   39995      389775 :          data_tmp = IAND(data_tmp, mask_left(46))
   39996      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39997      389775 :          ipack = ipack + 1
   39998      389775 :          packed_data(ipack) = pack_tmp
   39999      389775 :          data_tmp = full_data(idata)
   40000      389775 :          pack_tmp = ISHFT(data_tmp, 60)
   40001      389775 :          pack_tmp = ISHFT(pack_tmp, -50)
   40002      389775 :          idata = idata + 1
   40003      389775 :          data_tmp = full_data(idata)
   40004      389775 :          data_tmp = ISHFT(data_tmp, 14)
   40005      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40006      389775 :          pack_tmp = ISHFT(pack_tmp, -10)
   40007      389775 :          idata = idata + 1
   40008      389775 :          data_tmp = full_data(idata)
   40009      389775 :          data_tmp = ISHFT(data_tmp, 14)
   40010      389775 :          data_tmp = IAND(data_tmp, mask_left(10))
   40011      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40012      389775 :          ipack = ipack + 1
   40013      389775 :          packed_data(ipack) = pack_tmp
   40014      389775 :          data_tmp = full_data(idata)
   40015      389775 :          pack_tmp = ISHFT(data_tmp, 24)
   40016      389775 :          pack_tmp = ISHFT(pack_tmp, -24)
   40017      389775 :          idata = idata + 1
   40018      389775 :          data_tmp = full_data(idata)
   40019      389775 :          data_tmp = ISHFT(data_tmp, 14)
   40020      389775 :          data_tmp = IAND(data_tmp, mask_left(24))
   40021      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40022      389775 :          ipack = ipack + 1
   40023      389775 :          packed_data(ipack) = pack_tmp
   40024      389775 :          data_tmp = full_data(idata)
   40025      389775 :          pack_tmp = ISHFT(data_tmp, 38)
   40026      389775 :          pack_tmp = ISHFT(pack_tmp, -38)
   40027      389775 :          idata = idata + 1
   40028      389775 :          data_tmp = full_data(idata)
   40029      389775 :          data_tmp = ISHFT(data_tmp, 14)
   40030      389775 :          data_tmp = IAND(data_tmp, mask_left(38))
   40031      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40032      389775 :          ipack = ipack + 1
   40033      389775 :          packed_data(ipack) = pack_tmp
   40034      389775 :          data_tmp = full_data(idata)
   40035      389775 :          pack_tmp = ISHFT(data_tmp, 52)
   40036      389775 :          pack_tmp = ISHFT(pack_tmp, -50)
   40037      389775 :          idata = idata + 1
   40038      389775 :          data_tmp = full_data(idata)
   40039      389775 :          data_tmp = ISHFT(data_tmp, 14)
   40040      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40041      389775 :          pack_tmp = ISHFT(pack_tmp, -2)
   40042      389775 :          idata = idata + 1
   40043      389775 :          data_tmp = full_data(idata)
   40044      389775 :          data_tmp = ISHFT(data_tmp, 14)
   40045      389775 :          data_tmp = IAND(data_tmp, mask_left(2))
   40046      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40047      389775 :          ipack = ipack + 1
   40048      389775 :          packed_data(ipack) = pack_tmp
   40049      389775 :          data_tmp = full_data(idata)
   40050      389775 :          pack_tmp = ISHFT(data_tmp, 16)
   40051      389775 :          pack_tmp = ISHFT(pack_tmp, -16)
   40052      389775 :          idata = idata + 1
   40053      389775 :          data_tmp = full_data(idata)
   40054      389775 :          data_tmp = ISHFT(data_tmp, 14)
   40055      389775 :          data_tmp = IAND(data_tmp, mask_left(16))
   40056      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40057      389775 :          ipack = ipack + 1
   40058      389775 :          packed_data(ipack) = pack_tmp
   40059      389775 :          data_tmp = full_data(idata)
   40060      389775 :          pack_tmp = ISHFT(data_tmp, 30)
   40061      389775 :          pack_tmp = ISHFT(pack_tmp, -30)
   40062      389775 :          idata = idata + 1
   40063      389775 :          data_tmp = full_data(idata)
   40064      389775 :          data_tmp = ISHFT(data_tmp, 14)
   40065      389775 :          data_tmp = IAND(data_tmp, mask_left(30))
   40066      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40067      389775 :          ipack = ipack + 1
   40068      389775 :          packed_data(ipack) = pack_tmp
   40069      389775 :          data_tmp = full_data(idata)
   40070      389775 :          pack_tmp = ISHFT(data_tmp, 44)
   40071      389775 :          pack_tmp = ISHFT(pack_tmp, -44)
   40072      389775 :          idata = idata + 1
   40073      389775 :          data_tmp = full_data(idata)
   40074      389775 :          data_tmp = ISHFT(data_tmp, 14)
   40075      389775 :          data_tmp = IAND(data_tmp, mask_left(44))
   40076      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40077      389775 :          ipack = ipack + 1
   40078      389775 :          packed_data(ipack) = pack_tmp
   40079      389775 :          data_tmp = full_data(idata)
   40080      389775 :          pack_tmp = ISHFT(data_tmp, 58)
   40081      389775 :          pack_tmp = ISHFT(pack_tmp, -50)
   40082      389775 :          idata = idata + 1
   40083      389775 :          data_tmp = full_data(idata)
   40084      389775 :          data_tmp = ISHFT(data_tmp, 14)
   40085      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40086      389775 :          pack_tmp = ISHFT(pack_tmp, -8)
   40087      389775 :          idata = idata + 1
   40088      389775 :          data_tmp = full_data(idata)
   40089      389775 :          data_tmp = ISHFT(data_tmp, 14)
   40090      389775 :          data_tmp = IAND(data_tmp, mask_left(8))
   40091      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40092      389775 :          ipack = ipack + 1
   40093      389775 :          packed_data(ipack) = pack_tmp
   40094      389775 :          data_tmp = full_data(idata)
   40095      389775 :          pack_tmp = ISHFT(data_tmp, 22)
   40096      389775 :          pack_tmp = ISHFT(pack_tmp, -22)
   40097      389775 :          idata = idata + 1
   40098      389775 :          data_tmp = full_data(idata)
   40099      389775 :          data_tmp = ISHFT(data_tmp, 14)
   40100      389775 :          data_tmp = IAND(data_tmp, mask_left(22))
   40101      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40102      389775 :          ipack = ipack + 1
   40103      389775 :          packed_data(ipack) = pack_tmp
   40104      389775 :          data_tmp = full_data(idata)
   40105      389775 :          pack_tmp = ISHFT(data_tmp, 36)
   40106      389775 :          pack_tmp = ISHFT(pack_tmp, -36)
   40107      389775 :          idata = idata + 1
   40108      389775 :          data_tmp = full_data(idata)
   40109      389775 :          data_tmp = ISHFT(data_tmp, 14)
   40110      389775 :          data_tmp = IAND(data_tmp, mask_left(36))
   40111      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40112      389775 :          ipack = ipack + 1
   40113      389775 :          packed_data(ipack) = pack_tmp
   40114      389775 :          data_tmp = full_data(idata)
   40115      389775 :          pack_tmp = ISHFT(data_tmp, 50)
   40116      389775 :          pack_tmp = ISHFT(pack_tmp, -50)
   40117      389775 :          idata = idata + 1
   40118      389775 :          data_tmp = full_data(idata)
   40119      389775 :          data_tmp = ISHFT(data_tmp, 14)
   40120      389775 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40121             :          pack_tmp = ISHFT(pack_tmp, 0)
   40122      389775 :          pack_tmp = ISHFT(pack_tmp, 0)
   40123      389775 :          ipack = ipack + 1
   40124      389783 :          packed_data(ipack) = pack_tmp
   40125             :       END DO
   40126       25110 :       IF (Ndata_rep < Ndata) THEN
   40127        1410 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   40128             :       END IF
   40129       25110 :    END SUBROUTINE ints2bits_50
   40130             : 
   40131             : ! **************************************************************************************************
   40132             : !> \brief ...
   40133             : !> \param Ndata ...
   40134             : !> \param packed_data ...
   40135             : !> \param full_data ...
   40136             : ! **************************************************************************************************
   40137       99829 :    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       99829 :       ipack = 0
   40148       99829 :       idata = 0
   40149       99829 :       pack_tmp = 0
   40150       99829 :       Ndata_rep = (Ndata/64)*64
   40151       99829 :       DO kdata = 1, Ndata_rep, 64
   40152     1560357 :          idata = idata + 1
   40153     1560357 :          data_tmp = ISHFT(pack_tmp, 50)
   40154     1560357 :          ipack = ipack + 1
   40155     1560357 :          pack_tmp = packed_data(ipack)
   40156     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   40157     1560357 :          pack_tmp = ISHFT(pack_tmp, -50)
   40158     1560357 :          idata = idata + 1
   40159     1560357 :          data_tmp = ISHFT(pack_tmp, 36)
   40160     1560357 :          ipack = ipack + 1
   40161     1560357 :          pack_tmp = packed_data(ipack)
   40162     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   40163     1560357 :          pack_tmp = ISHFT(pack_tmp, -36)
   40164     1560357 :          idata = idata + 1
   40165     1560357 :          data_tmp = ISHFT(pack_tmp, 22)
   40166     1560357 :          ipack = ipack + 1
   40167     1560357 :          pack_tmp = packed_data(ipack)
   40168     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   40169     1560357 :          pack_tmp = ISHFT(pack_tmp, -22)
   40170     1560357 :          idata = idata + 1
   40171     1560357 :          data_tmp = ISHFT(pack_tmp, 8)
   40172     1560357 :          ipack = ipack + 1
   40173     1560357 :          pack_tmp = packed_data(ipack)
   40174     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   40175     1560357 :          pack_tmp = ISHFT(pack_tmp, -8)
   40176     1560357 :          idata = idata + 1
   40177     1560357 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40178     1560357 :          full_data(idata) = data_tmp
   40179     1560357 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40180     1560357 :          idata = idata + 1
   40181     1560357 :          data_tmp = ISHFT(pack_tmp, 44)
   40182     1560357 :          ipack = ipack + 1
   40183     1560357 :          pack_tmp = packed_data(ipack)
   40184     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   40185     1560357 :          pack_tmp = ISHFT(pack_tmp, -44)
   40186     1560357 :          idata = idata + 1
   40187     1560357 :          data_tmp = ISHFT(pack_tmp, 30)
   40188     1560357 :          ipack = ipack + 1
   40189     1560357 :          pack_tmp = packed_data(ipack)
   40190     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   40191     1560357 :          pack_tmp = ISHFT(pack_tmp, -30)
   40192     1560357 :          idata = idata + 1
   40193     1560357 :          data_tmp = ISHFT(pack_tmp, 16)
   40194     1560357 :          ipack = ipack + 1
   40195     1560357 :          pack_tmp = packed_data(ipack)
   40196     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   40197     1560357 :          pack_tmp = ISHFT(pack_tmp, -16)
   40198     1560357 :          idata = idata + 1
   40199     1560357 :          data_tmp = ISHFT(pack_tmp, 2)
   40200     1560357 :          ipack = ipack + 1
   40201     1560357 :          pack_tmp = packed_data(ipack)
   40202     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   40203     1560357 :          pack_tmp = ISHFT(pack_tmp, -2)
   40204     1560357 :          idata = idata + 1
   40205     1560357 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40206     1560357 :          full_data(idata) = data_tmp
   40207     1560357 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40208     1560357 :          idata = idata + 1
   40209     1560357 :          data_tmp = ISHFT(pack_tmp, 38)
   40210     1560357 :          ipack = ipack + 1
   40211     1560357 :          pack_tmp = packed_data(ipack)
   40212     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   40213     1560357 :          pack_tmp = ISHFT(pack_tmp, -38)
   40214     1560357 :          idata = idata + 1
   40215     1560357 :          data_tmp = ISHFT(pack_tmp, 24)
   40216     1560357 :          ipack = ipack + 1
   40217     1560357 :          pack_tmp = packed_data(ipack)
   40218     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   40219     1560357 :          pack_tmp = ISHFT(pack_tmp, -24)
   40220     1560357 :          idata = idata + 1
   40221     1560357 :          data_tmp = ISHFT(pack_tmp, 10)
   40222     1560357 :          ipack = ipack + 1
   40223     1560357 :          pack_tmp = packed_data(ipack)
   40224     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   40225     1560357 :          pack_tmp = ISHFT(pack_tmp, -10)
   40226     1560357 :          idata = idata + 1
   40227     1560357 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40228     1560357 :          full_data(idata) = data_tmp
   40229     1560357 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40230     1560357 :          idata = idata + 1
   40231     1560357 :          data_tmp = ISHFT(pack_tmp, 46)
   40232     1560357 :          ipack = ipack + 1
   40233     1560357 :          pack_tmp = packed_data(ipack)
   40234     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   40235     1560357 :          pack_tmp = ISHFT(pack_tmp, -46)
   40236     1560357 :          idata = idata + 1
   40237     1560357 :          data_tmp = ISHFT(pack_tmp, 32)
   40238     1560357 :          ipack = ipack + 1
   40239     1560357 :          pack_tmp = packed_data(ipack)
   40240     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   40241     1560357 :          pack_tmp = ISHFT(pack_tmp, -32)
   40242     1560357 :          idata = idata + 1
   40243     1560357 :          data_tmp = ISHFT(pack_tmp, 18)
   40244     1560357 :          ipack = ipack + 1
   40245     1560357 :          pack_tmp = packed_data(ipack)
   40246     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   40247     1560357 :          pack_tmp = ISHFT(pack_tmp, -18)
   40248     1560357 :          idata = idata + 1
   40249     1560357 :          data_tmp = ISHFT(pack_tmp, 4)
   40250     1560357 :          ipack = ipack + 1
   40251     1560357 :          pack_tmp = packed_data(ipack)
   40252     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   40253     1560357 :          pack_tmp = ISHFT(pack_tmp, -4)
   40254     1560357 :          idata = idata + 1
   40255     1560357 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40256     1560357 :          full_data(idata) = data_tmp
   40257     1560357 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40258     1560357 :          idata = idata + 1
   40259     1560357 :          data_tmp = ISHFT(pack_tmp, 40)
   40260     1560357 :          ipack = ipack + 1
   40261     1560357 :          pack_tmp = packed_data(ipack)
   40262     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   40263     1560357 :          pack_tmp = ISHFT(pack_tmp, -40)
   40264     1560357 :          idata = idata + 1
   40265     1560357 :          data_tmp = ISHFT(pack_tmp, 26)
   40266     1560357 :          ipack = ipack + 1
   40267     1560357 :          pack_tmp = packed_data(ipack)
   40268     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   40269     1560357 :          pack_tmp = ISHFT(pack_tmp, -26)
   40270     1560357 :          idata = idata + 1
   40271     1560357 :          data_tmp = ISHFT(pack_tmp, 12)
   40272     1560357 :          ipack = ipack + 1
   40273     1560357 :          pack_tmp = packed_data(ipack)
   40274     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   40275     1560357 :          pack_tmp = ISHFT(pack_tmp, -12)
   40276     1560357 :          idata = idata + 1
   40277     1560357 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40278     1560357 :          full_data(idata) = data_tmp
   40279     1560357 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40280     1560357 :          idata = idata + 1
   40281     1560357 :          data_tmp = ISHFT(pack_tmp, 48)
   40282     1560357 :          ipack = ipack + 1
   40283     1560357 :          pack_tmp = packed_data(ipack)
   40284     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   40285     1560357 :          pack_tmp = ISHFT(pack_tmp, -48)
   40286     1560357 :          idata = idata + 1
   40287     1560357 :          data_tmp = ISHFT(pack_tmp, 34)
   40288     1560357 :          ipack = ipack + 1
   40289     1560357 :          pack_tmp = packed_data(ipack)
   40290     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   40291     1560357 :          pack_tmp = ISHFT(pack_tmp, -34)
   40292     1560357 :          idata = idata + 1
   40293     1560357 :          data_tmp = ISHFT(pack_tmp, 20)
   40294     1560357 :          ipack = ipack + 1
   40295     1560357 :          pack_tmp = packed_data(ipack)
   40296     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   40297     1560357 :          pack_tmp = ISHFT(pack_tmp, -20)
   40298     1560357 :          idata = idata + 1
   40299     1560357 :          data_tmp = ISHFT(pack_tmp, 6)
   40300     1560357 :          ipack = ipack + 1
   40301     1560357 :          pack_tmp = packed_data(ipack)
   40302     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   40303     1560357 :          pack_tmp = ISHFT(pack_tmp, -6)
   40304     1560357 :          idata = idata + 1
   40305     1560357 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40306     1560357 :          full_data(idata) = data_tmp
   40307     1560357 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40308     1560357 :          idata = idata + 1
   40309     1560357 :          data_tmp = ISHFT(pack_tmp, 42)
   40310     1560357 :          ipack = ipack + 1
   40311     1560357 :          pack_tmp = packed_data(ipack)
   40312     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   40313     1560357 :          pack_tmp = ISHFT(pack_tmp, -42)
   40314     1560357 :          idata = idata + 1
   40315     1560357 :          data_tmp = ISHFT(pack_tmp, 28)
   40316     1560357 :          ipack = ipack + 1
   40317     1560357 :          pack_tmp = packed_data(ipack)
   40318     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   40319     1560357 :          pack_tmp = ISHFT(pack_tmp, -28)
   40320     1560357 :          idata = idata + 1
   40321     1560357 :          data_tmp = ISHFT(pack_tmp, 14)
   40322     1560357 :          ipack = ipack + 1
   40323     1560357 :          pack_tmp = packed_data(ipack)
   40324     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   40325     1560357 :          pack_tmp = ISHFT(pack_tmp, -14)
   40326     1560357 :          idata = idata + 1
   40327     1560357 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40328     1560357 :          full_data(idata) = data_tmp
   40329     1560357 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40330     1560357 :          idata = idata + 1
   40331     1560357 :          data_tmp = ISHFT(pack_tmp, 50)
   40332     1560357 :          ipack = ipack + 1
   40333     1560357 :          pack_tmp = packed_data(ipack)
   40334     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   40335     1560357 :          pack_tmp = ISHFT(pack_tmp, -50)
   40336     1560357 :          idata = idata + 1
   40337     1560357 :          data_tmp = ISHFT(pack_tmp, 36)
   40338     1560357 :          ipack = ipack + 1
   40339     1560357 :          pack_tmp = packed_data(ipack)
   40340     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   40341     1560357 :          pack_tmp = ISHFT(pack_tmp, -36)
   40342     1560357 :          idata = idata + 1
   40343     1560357 :          data_tmp = ISHFT(pack_tmp, 22)
   40344     1560357 :          ipack = ipack + 1
   40345     1560357 :          pack_tmp = packed_data(ipack)
   40346     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   40347     1560357 :          pack_tmp = ISHFT(pack_tmp, -22)
   40348     1560357 :          idata = idata + 1
   40349     1560357 :          data_tmp = ISHFT(pack_tmp, 8)
   40350     1560357 :          ipack = ipack + 1
   40351     1560357 :          pack_tmp = packed_data(ipack)
   40352     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   40353     1560357 :          pack_tmp = ISHFT(pack_tmp, -8)
   40354     1560357 :          idata = idata + 1
   40355     1560357 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40356     1560357 :          full_data(idata) = data_tmp
   40357     1560357 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40358     1560357 :          idata = idata + 1
   40359     1560357 :          data_tmp = ISHFT(pack_tmp, 44)
   40360     1560357 :          ipack = ipack + 1
   40361     1560357 :          pack_tmp = packed_data(ipack)
   40362     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   40363     1560357 :          pack_tmp = ISHFT(pack_tmp, -44)
   40364     1560357 :          idata = idata + 1
   40365     1560357 :          data_tmp = ISHFT(pack_tmp, 30)
   40366     1560357 :          ipack = ipack + 1
   40367     1560357 :          pack_tmp = packed_data(ipack)
   40368     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   40369     1560357 :          pack_tmp = ISHFT(pack_tmp, -30)
   40370     1560357 :          idata = idata + 1
   40371     1560357 :          data_tmp = ISHFT(pack_tmp, 16)
   40372     1560357 :          ipack = ipack + 1
   40373     1560357 :          pack_tmp = packed_data(ipack)
   40374     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   40375     1560357 :          pack_tmp = ISHFT(pack_tmp, -16)
   40376     1560357 :          idata = idata + 1
   40377     1560357 :          data_tmp = ISHFT(pack_tmp, 2)
   40378     1560357 :          ipack = ipack + 1
   40379     1560357 :          pack_tmp = packed_data(ipack)
   40380     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   40381     1560357 :          pack_tmp = ISHFT(pack_tmp, -2)
   40382     1560357 :          idata = idata + 1
   40383     1560357 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40384     1560357 :          full_data(idata) = data_tmp
   40385     1560357 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40386     1560357 :          idata = idata + 1
   40387     1560357 :          data_tmp = ISHFT(pack_tmp, 38)
   40388     1560357 :          ipack = ipack + 1
   40389     1560357 :          pack_tmp = packed_data(ipack)
   40390     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   40391     1560357 :          pack_tmp = ISHFT(pack_tmp, -38)
   40392     1560357 :          idata = idata + 1
   40393     1560357 :          data_tmp = ISHFT(pack_tmp, 24)
   40394     1560357 :          ipack = ipack + 1
   40395     1560357 :          pack_tmp = packed_data(ipack)
   40396     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   40397     1560357 :          pack_tmp = ISHFT(pack_tmp, -24)
   40398     1560357 :          idata = idata + 1
   40399     1560357 :          data_tmp = ISHFT(pack_tmp, 10)
   40400     1560357 :          ipack = ipack + 1
   40401     1560357 :          pack_tmp = packed_data(ipack)
   40402     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   40403     1560357 :          pack_tmp = ISHFT(pack_tmp, -10)
   40404     1560357 :          idata = idata + 1
   40405     1560357 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40406     1560357 :          full_data(idata) = data_tmp
   40407     1560357 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40408     1560357 :          idata = idata + 1
   40409     1560357 :          data_tmp = ISHFT(pack_tmp, 46)
   40410     1560357 :          ipack = ipack + 1
   40411     1560357 :          pack_tmp = packed_data(ipack)
   40412     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   40413     1560357 :          pack_tmp = ISHFT(pack_tmp, -46)
   40414     1560357 :          idata = idata + 1
   40415     1560357 :          data_tmp = ISHFT(pack_tmp, 32)
   40416     1560357 :          ipack = ipack + 1
   40417     1560357 :          pack_tmp = packed_data(ipack)
   40418     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   40419     1560357 :          pack_tmp = ISHFT(pack_tmp, -32)
   40420     1560357 :          idata = idata + 1
   40421     1560357 :          data_tmp = ISHFT(pack_tmp, 18)
   40422     1560357 :          ipack = ipack + 1
   40423     1560357 :          pack_tmp = packed_data(ipack)
   40424     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   40425     1560357 :          pack_tmp = ISHFT(pack_tmp, -18)
   40426     1560357 :          idata = idata + 1
   40427     1560357 :          data_tmp = ISHFT(pack_tmp, 4)
   40428     1560357 :          ipack = ipack + 1
   40429     1560357 :          pack_tmp = packed_data(ipack)
   40430     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   40431     1560357 :          pack_tmp = ISHFT(pack_tmp, -4)
   40432     1560357 :          idata = idata + 1
   40433     1560357 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40434     1560357 :          full_data(idata) = data_tmp
   40435     1560357 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40436     1560357 :          idata = idata + 1
   40437     1560357 :          data_tmp = ISHFT(pack_tmp, 40)
   40438     1560357 :          ipack = ipack + 1
   40439     1560357 :          pack_tmp = packed_data(ipack)
   40440     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   40441     1560357 :          pack_tmp = ISHFT(pack_tmp, -40)
   40442     1560357 :          idata = idata + 1
   40443     1560357 :          data_tmp = ISHFT(pack_tmp, 26)
   40444     1560357 :          ipack = ipack + 1
   40445     1560357 :          pack_tmp = packed_data(ipack)
   40446     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   40447     1560357 :          pack_tmp = ISHFT(pack_tmp, -26)
   40448     1560357 :          idata = idata + 1
   40449     1560357 :          data_tmp = ISHFT(pack_tmp, 12)
   40450     1560357 :          ipack = ipack + 1
   40451     1560357 :          pack_tmp = packed_data(ipack)
   40452     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   40453     1560357 :          pack_tmp = ISHFT(pack_tmp, -12)
   40454     1560357 :          idata = idata + 1
   40455     1560357 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40456     1560357 :          full_data(idata) = data_tmp
   40457     1560357 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40458     1560357 :          idata = idata + 1
   40459     1560357 :          data_tmp = ISHFT(pack_tmp, 48)
   40460     1560357 :          ipack = ipack + 1
   40461     1560357 :          pack_tmp = packed_data(ipack)
   40462     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   40463     1560357 :          pack_tmp = ISHFT(pack_tmp, -48)
   40464     1560357 :          idata = idata + 1
   40465     1560357 :          data_tmp = ISHFT(pack_tmp, 34)
   40466     1560357 :          ipack = ipack + 1
   40467     1560357 :          pack_tmp = packed_data(ipack)
   40468     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   40469     1560357 :          pack_tmp = ISHFT(pack_tmp, -34)
   40470     1560357 :          idata = idata + 1
   40471     1560357 :          data_tmp = ISHFT(pack_tmp, 20)
   40472     1560357 :          ipack = ipack + 1
   40473     1560357 :          pack_tmp = packed_data(ipack)
   40474     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   40475     1560357 :          pack_tmp = ISHFT(pack_tmp, -20)
   40476     1560357 :          idata = idata + 1
   40477     1560357 :          data_tmp = ISHFT(pack_tmp, 6)
   40478     1560357 :          ipack = ipack + 1
   40479     1560357 :          pack_tmp = packed_data(ipack)
   40480     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   40481     1560357 :          pack_tmp = ISHFT(pack_tmp, -6)
   40482     1560357 :          idata = idata + 1
   40483     1560357 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40484     1560357 :          full_data(idata) = data_tmp
   40485     1560357 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40486     1560357 :          idata = idata + 1
   40487     1560357 :          data_tmp = ISHFT(pack_tmp, 42)
   40488     1560357 :          ipack = ipack + 1
   40489     1560357 :          pack_tmp = packed_data(ipack)
   40490     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   40491     1560357 :          pack_tmp = ISHFT(pack_tmp, -42)
   40492     1560357 :          idata = idata + 1
   40493     1560357 :          data_tmp = ISHFT(pack_tmp, 28)
   40494     1560357 :          ipack = ipack + 1
   40495     1560357 :          pack_tmp = packed_data(ipack)
   40496     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   40497     1560357 :          pack_tmp = ISHFT(pack_tmp, -28)
   40498     1560357 :          idata = idata + 1
   40499     1560357 :          data_tmp = ISHFT(pack_tmp, 14)
   40500     1560357 :          ipack = ipack + 1
   40501     1560357 :          pack_tmp = packed_data(ipack)
   40502     1560357 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   40503     1560357 :          pack_tmp = ISHFT(pack_tmp, -14)
   40504     1560357 :          idata = idata + 1
   40505     1560357 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40506     1560357 :          full_data(idata) = data_tmp
   40507     1560373 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40508             :       END DO
   40509       99829 :       IF (Ndata_rep < Ndata) THEN
   40510        4342 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   40511             :       END IF
   40512       99829 :    END SUBROUTINE bits2ints_50
   40513             : 
   40514             : ! **************************************************************************************************
   40515             : !> \brief ...
   40516             : !> \param Ndata ...
   40517             : !> \param packed_data ...
   40518             : !> \param full_data ...
   40519             : ! **************************************************************************************************
   40520       24160 :    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       24160 :       idata = 0
   40531       24160 :       ipack = 0
   40532       24160 :       Ndata_rep = (Ndata/64)*64
   40533       24160 :       DO kdata = 1, Ndata_rep, 64
   40534      382854 :          pack_tmp = 0
   40535      382854 :          idata = idata + 1
   40536      382854 :          data_tmp = full_data(idata)
   40537      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40538      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40539      382854 :          pack_tmp = ISHFT(pack_tmp, -13)
   40540      382854 :          idata = idata + 1
   40541      382854 :          data_tmp = full_data(idata)
   40542      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40543      382854 :          data_tmp = IAND(data_tmp, mask_left(13))
   40544      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40545      382854 :          ipack = ipack + 1
   40546      382854 :          packed_data(ipack) = pack_tmp
   40547      382854 :          data_tmp = full_data(idata)
   40548      382854 :          pack_tmp = ISHFT(data_tmp, 26)
   40549      382854 :          pack_tmp = ISHFT(pack_tmp, -26)
   40550      382854 :          idata = idata + 1
   40551      382854 :          data_tmp = full_data(idata)
   40552      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40553      382854 :          data_tmp = IAND(data_tmp, mask_left(26))
   40554      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40555      382854 :          ipack = ipack + 1
   40556      382854 :          packed_data(ipack) = pack_tmp
   40557      382854 :          data_tmp = full_data(idata)
   40558      382854 :          pack_tmp = ISHFT(data_tmp, 39)
   40559      382854 :          pack_tmp = ISHFT(pack_tmp, -39)
   40560      382854 :          idata = idata + 1
   40561      382854 :          data_tmp = full_data(idata)
   40562      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40563      382854 :          data_tmp = IAND(data_tmp, mask_left(39))
   40564      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40565      382854 :          ipack = ipack + 1
   40566      382854 :          packed_data(ipack) = pack_tmp
   40567      382854 :          data_tmp = full_data(idata)
   40568      382854 :          pack_tmp = ISHFT(data_tmp, 52)
   40569      382854 :          pack_tmp = ISHFT(pack_tmp, -51)
   40570      382854 :          idata = idata + 1
   40571      382854 :          data_tmp = full_data(idata)
   40572      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40573      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40574      382854 :          pack_tmp = ISHFT(pack_tmp, -1)
   40575      382854 :          idata = idata + 1
   40576      382854 :          data_tmp = full_data(idata)
   40577      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40578      382854 :          data_tmp = IAND(data_tmp, mask_left(1))
   40579      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40580      382854 :          ipack = ipack + 1
   40581      382854 :          packed_data(ipack) = pack_tmp
   40582      382854 :          data_tmp = full_data(idata)
   40583      382854 :          pack_tmp = ISHFT(data_tmp, 14)
   40584      382854 :          pack_tmp = ISHFT(pack_tmp, -14)
   40585      382854 :          idata = idata + 1
   40586      382854 :          data_tmp = full_data(idata)
   40587      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40588      382854 :          data_tmp = IAND(data_tmp, mask_left(14))
   40589      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40590      382854 :          ipack = ipack + 1
   40591      382854 :          packed_data(ipack) = pack_tmp
   40592      382854 :          data_tmp = full_data(idata)
   40593      382854 :          pack_tmp = ISHFT(data_tmp, 27)
   40594      382854 :          pack_tmp = ISHFT(pack_tmp, -27)
   40595      382854 :          idata = idata + 1
   40596      382854 :          data_tmp = full_data(idata)
   40597      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40598      382854 :          data_tmp = IAND(data_tmp, mask_left(27))
   40599      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40600      382854 :          ipack = ipack + 1
   40601      382854 :          packed_data(ipack) = pack_tmp
   40602      382854 :          data_tmp = full_data(idata)
   40603      382854 :          pack_tmp = ISHFT(data_tmp, 40)
   40604      382854 :          pack_tmp = ISHFT(pack_tmp, -40)
   40605      382854 :          idata = idata + 1
   40606      382854 :          data_tmp = full_data(idata)
   40607      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40608      382854 :          data_tmp = IAND(data_tmp, mask_left(40))
   40609      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40610      382854 :          ipack = ipack + 1
   40611      382854 :          packed_data(ipack) = pack_tmp
   40612      382854 :          data_tmp = full_data(idata)
   40613      382854 :          pack_tmp = ISHFT(data_tmp, 53)
   40614      382854 :          pack_tmp = ISHFT(pack_tmp, -51)
   40615      382854 :          idata = idata + 1
   40616      382854 :          data_tmp = full_data(idata)
   40617      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40618      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40619      382854 :          pack_tmp = ISHFT(pack_tmp, -2)
   40620      382854 :          idata = idata + 1
   40621      382854 :          data_tmp = full_data(idata)
   40622      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40623      382854 :          data_tmp = IAND(data_tmp, mask_left(2))
   40624      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40625      382854 :          ipack = ipack + 1
   40626      382854 :          packed_data(ipack) = pack_tmp
   40627      382854 :          data_tmp = full_data(idata)
   40628      382854 :          pack_tmp = ISHFT(data_tmp, 15)
   40629      382854 :          pack_tmp = ISHFT(pack_tmp, -15)
   40630      382854 :          idata = idata + 1
   40631      382854 :          data_tmp = full_data(idata)
   40632      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40633      382854 :          data_tmp = IAND(data_tmp, mask_left(15))
   40634      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40635      382854 :          ipack = ipack + 1
   40636      382854 :          packed_data(ipack) = pack_tmp
   40637      382854 :          data_tmp = full_data(idata)
   40638      382854 :          pack_tmp = ISHFT(data_tmp, 28)
   40639      382854 :          pack_tmp = ISHFT(pack_tmp, -28)
   40640      382854 :          idata = idata + 1
   40641      382854 :          data_tmp = full_data(idata)
   40642      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40643      382854 :          data_tmp = IAND(data_tmp, mask_left(28))
   40644      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40645      382854 :          ipack = ipack + 1
   40646      382854 :          packed_data(ipack) = pack_tmp
   40647      382854 :          data_tmp = full_data(idata)
   40648      382854 :          pack_tmp = ISHFT(data_tmp, 41)
   40649      382854 :          pack_tmp = ISHFT(pack_tmp, -41)
   40650      382854 :          idata = idata + 1
   40651      382854 :          data_tmp = full_data(idata)
   40652      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40653      382854 :          data_tmp = IAND(data_tmp, mask_left(41))
   40654      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40655      382854 :          ipack = ipack + 1
   40656      382854 :          packed_data(ipack) = pack_tmp
   40657      382854 :          data_tmp = full_data(idata)
   40658      382854 :          pack_tmp = ISHFT(data_tmp, 54)
   40659      382854 :          pack_tmp = ISHFT(pack_tmp, -51)
   40660      382854 :          idata = idata + 1
   40661      382854 :          data_tmp = full_data(idata)
   40662      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40663      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40664      382854 :          pack_tmp = ISHFT(pack_tmp, -3)
   40665      382854 :          idata = idata + 1
   40666      382854 :          data_tmp = full_data(idata)
   40667      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40668      382854 :          data_tmp = IAND(data_tmp, mask_left(3))
   40669      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40670      382854 :          ipack = ipack + 1
   40671      382854 :          packed_data(ipack) = pack_tmp
   40672      382854 :          data_tmp = full_data(idata)
   40673      382854 :          pack_tmp = ISHFT(data_tmp, 16)
   40674      382854 :          pack_tmp = ISHFT(pack_tmp, -16)
   40675      382854 :          idata = idata + 1
   40676      382854 :          data_tmp = full_data(idata)
   40677      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40678      382854 :          data_tmp = IAND(data_tmp, mask_left(16))
   40679      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40680      382854 :          ipack = ipack + 1
   40681      382854 :          packed_data(ipack) = pack_tmp
   40682      382854 :          data_tmp = full_data(idata)
   40683      382854 :          pack_tmp = ISHFT(data_tmp, 29)
   40684      382854 :          pack_tmp = ISHFT(pack_tmp, -29)
   40685      382854 :          idata = idata + 1
   40686      382854 :          data_tmp = full_data(idata)
   40687      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40688      382854 :          data_tmp = IAND(data_tmp, mask_left(29))
   40689      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40690      382854 :          ipack = ipack + 1
   40691      382854 :          packed_data(ipack) = pack_tmp
   40692      382854 :          data_tmp = full_data(idata)
   40693      382854 :          pack_tmp = ISHFT(data_tmp, 42)
   40694      382854 :          pack_tmp = ISHFT(pack_tmp, -42)
   40695      382854 :          idata = idata + 1
   40696      382854 :          data_tmp = full_data(idata)
   40697      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40698      382854 :          data_tmp = IAND(data_tmp, mask_left(42))
   40699      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40700      382854 :          ipack = ipack + 1
   40701      382854 :          packed_data(ipack) = pack_tmp
   40702      382854 :          data_tmp = full_data(idata)
   40703      382854 :          pack_tmp = ISHFT(data_tmp, 55)
   40704      382854 :          pack_tmp = ISHFT(pack_tmp, -51)
   40705      382854 :          idata = idata + 1
   40706      382854 :          data_tmp = full_data(idata)
   40707      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40708      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40709      382854 :          pack_tmp = ISHFT(pack_tmp, -4)
   40710      382854 :          idata = idata + 1
   40711      382854 :          data_tmp = full_data(idata)
   40712      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40713      382854 :          data_tmp = IAND(data_tmp, mask_left(4))
   40714      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40715      382854 :          ipack = ipack + 1
   40716      382854 :          packed_data(ipack) = pack_tmp
   40717      382854 :          data_tmp = full_data(idata)
   40718      382854 :          pack_tmp = ISHFT(data_tmp, 17)
   40719      382854 :          pack_tmp = ISHFT(pack_tmp, -17)
   40720      382854 :          idata = idata + 1
   40721      382854 :          data_tmp = full_data(idata)
   40722      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40723      382854 :          data_tmp = IAND(data_tmp, mask_left(17))
   40724      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40725      382854 :          ipack = ipack + 1
   40726      382854 :          packed_data(ipack) = pack_tmp
   40727      382854 :          data_tmp = full_data(idata)
   40728      382854 :          pack_tmp = ISHFT(data_tmp, 30)
   40729      382854 :          pack_tmp = ISHFT(pack_tmp, -30)
   40730      382854 :          idata = idata + 1
   40731      382854 :          data_tmp = full_data(idata)
   40732      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40733      382854 :          data_tmp = IAND(data_tmp, mask_left(30))
   40734      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40735      382854 :          ipack = ipack + 1
   40736      382854 :          packed_data(ipack) = pack_tmp
   40737      382854 :          data_tmp = full_data(idata)
   40738      382854 :          pack_tmp = ISHFT(data_tmp, 43)
   40739      382854 :          pack_tmp = ISHFT(pack_tmp, -43)
   40740      382854 :          idata = idata + 1
   40741      382854 :          data_tmp = full_data(idata)
   40742      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40743      382854 :          data_tmp = IAND(data_tmp, mask_left(43))
   40744      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40745      382854 :          ipack = ipack + 1
   40746      382854 :          packed_data(ipack) = pack_tmp
   40747      382854 :          data_tmp = full_data(idata)
   40748      382854 :          pack_tmp = ISHFT(data_tmp, 56)
   40749      382854 :          pack_tmp = ISHFT(pack_tmp, -51)
   40750      382854 :          idata = idata + 1
   40751      382854 :          data_tmp = full_data(idata)
   40752      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40753      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40754      382854 :          pack_tmp = ISHFT(pack_tmp, -5)
   40755      382854 :          idata = idata + 1
   40756      382854 :          data_tmp = full_data(idata)
   40757      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40758      382854 :          data_tmp = IAND(data_tmp, mask_left(5))
   40759      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40760      382854 :          ipack = ipack + 1
   40761      382854 :          packed_data(ipack) = pack_tmp
   40762      382854 :          data_tmp = full_data(idata)
   40763      382854 :          pack_tmp = ISHFT(data_tmp, 18)
   40764      382854 :          pack_tmp = ISHFT(pack_tmp, -18)
   40765      382854 :          idata = idata + 1
   40766      382854 :          data_tmp = full_data(idata)
   40767      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40768      382854 :          data_tmp = IAND(data_tmp, mask_left(18))
   40769      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40770      382854 :          ipack = ipack + 1
   40771      382854 :          packed_data(ipack) = pack_tmp
   40772      382854 :          data_tmp = full_data(idata)
   40773      382854 :          pack_tmp = ISHFT(data_tmp, 31)
   40774      382854 :          pack_tmp = ISHFT(pack_tmp, -31)
   40775      382854 :          idata = idata + 1
   40776      382854 :          data_tmp = full_data(idata)
   40777      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40778      382854 :          data_tmp = IAND(data_tmp, mask_left(31))
   40779      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40780      382854 :          ipack = ipack + 1
   40781      382854 :          packed_data(ipack) = pack_tmp
   40782      382854 :          data_tmp = full_data(idata)
   40783      382854 :          pack_tmp = ISHFT(data_tmp, 44)
   40784      382854 :          pack_tmp = ISHFT(pack_tmp, -44)
   40785      382854 :          idata = idata + 1
   40786      382854 :          data_tmp = full_data(idata)
   40787      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40788      382854 :          data_tmp = IAND(data_tmp, mask_left(44))
   40789      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40790      382854 :          ipack = ipack + 1
   40791      382854 :          packed_data(ipack) = pack_tmp
   40792      382854 :          data_tmp = full_data(idata)
   40793      382854 :          pack_tmp = ISHFT(data_tmp, 57)
   40794      382854 :          pack_tmp = ISHFT(pack_tmp, -51)
   40795      382854 :          idata = idata + 1
   40796      382854 :          data_tmp = full_data(idata)
   40797      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40798      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40799      382854 :          pack_tmp = ISHFT(pack_tmp, -6)
   40800      382854 :          idata = idata + 1
   40801      382854 :          data_tmp = full_data(idata)
   40802      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40803      382854 :          data_tmp = IAND(data_tmp, mask_left(6))
   40804      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40805      382854 :          ipack = ipack + 1
   40806      382854 :          packed_data(ipack) = pack_tmp
   40807      382854 :          data_tmp = full_data(idata)
   40808      382854 :          pack_tmp = ISHFT(data_tmp, 19)
   40809      382854 :          pack_tmp = ISHFT(pack_tmp, -19)
   40810      382854 :          idata = idata + 1
   40811      382854 :          data_tmp = full_data(idata)
   40812      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40813      382854 :          data_tmp = IAND(data_tmp, mask_left(19))
   40814      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40815      382854 :          ipack = ipack + 1
   40816      382854 :          packed_data(ipack) = pack_tmp
   40817      382854 :          data_tmp = full_data(idata)
   40818      382854 :          pack_tmp = ISHFT(data_tmp, 32)
   40819      382854 :          pack_tmp = ISHFT(pack_tmp, -32)
   40820      382854 :          idata = idata + 1
   40821      382854 :          data_tmp = full_data(idata)
   40822      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40823      382854 :          data_tmp = IAND(data_tmp, mask_left(32))
   40824      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40825      382854 :          ipack = ipack + 1
   40826      382854 :          packed_data(ipack) = pack_tmp
   40827      382854 :          data_tmp = full_data(idata)
   40828      382854 :          pack_tmp = ISHFT(data_tmp, 45)
   40829      382854 :          pack_tmp = ISHFT(pack_tmp, -45)
   40830      382854 :          idata = idata + 1
   40831      382854 :          data_tmp = full_data(idata)
   40832      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40833      382854 :          data_tmp = IAND(data_tmp, mask_left(45))
   40834      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40835      382854 :          ipack = ipack + 1
   40836      382854 :          packed_data(ipack) = pack_tmp
   40837      382854 :          data_tmp = full_data(idata)
   40838      382854 :          pack_tmp = ISHFT(data_tmp, 58)
   40839      382854 :          pack_tmp = ISHFT(pack_tmp, -51)
   40840      382854 :          idata = idata + 1
   40841      382854 :          data_tmp = full_data(idata)
   40842      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40843      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40844      382854 :          pack_tmp = ISHFT(pack_tmp, -7)
   40845      382854 :          idata = idata + 1
   40846      382854 :          data_tmp = full_data(idata)
   40847      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40848      382854 :          data_tmp = IAND(data_tmp, mask_left(7))
   40849      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40850      382854 :          ipack = ipack + 1
   40851      382854 :          packed_data(ipack) = pack_tmp
   40852      382854 :          data_tmp = full_data(idata)
   40853      382854 :          pack_tmp = ISHFT(data_tmp, 20)
   40854      382854 :          pack_tmp = ISHFT(pack_tmp, -20)
   40855      382854 :          idata = idata + 1
   40856      382854 :          data_tmp = full_data(idata)
   40857      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40858      382854 :          data_tmp = IAND(data_tmp, mask_left(20))
   40859      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40860      382854 :          ipack = ipack + 1
   40861      382854 :          packed_data(ipack) = pack_tmp
   40862      382854 :          data_tmp = full_data(idata)
   40863      382854 :          pack_tmp = ISHFT(data_tmp, 33)
   40864      382854 :          pack_tmp = ISHFT(pack_tmp, -33)
   40865      382854 :          idata = idata + 1
   40866      382854 :          data_tmp = full_data(idata)
   40867      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40868      382854 :          data_tmp = IAND(data_tmp, mask_left(33))
   40869      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40870      382854 :          ipack = ipack + 1
   40871      382854 :          packed_data(ipack) = pack_tmp
   40872      382854 :          data_tmp = full_data(idata)
   40873      382854 :          pack_tmp = ISHFT(data_tmp, 46)
   40874      382854 :          pack_tmp = ISHFT(pack_tmp, -46)
   40875      382854 :          idata = idata + 1
   40876      382854 :          data_tmp = full_data(idata)
   40877      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40878      382854 :          data_tmp = IAND(data_tmp, mask_left(46))
   40879      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40880      382854 :          ipack = ipack + 1
   40881      382854 :          packed_data(ipack) = pack_tmp
   40882      382854 :          data_tmp = full_data(idata)
   40883      382854 :          pack_tmp = ISHFT(data_tmp, 59)
   40884      382854 :          pack_tmp = ISHFT(pack_tmp, -51)
   40885      382854 :          idata = idata + 1
   40886      382854 :          data_tmp = full_data(idata)
   40887      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40888      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40889      382854 :          pack_tmp = ISHFT(pack_tmp, -8)
   40890      382854 :          idata = idata + 1
   40891      382854 :          data_tmp = full_data(idata)
   40892      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40893      382854 :          data_tmp = IAND(data_tmp, mask_left(8))
   40894      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40895      382854 :          ipack = ipack + 1
   40896      382854 :          packed_data(ipack) = pack_tmp
   40897      382854 :          data_tmp = full_data(idata)
   40898      382854 :          pack_tmp = ISHFT(data_tmp, 21)
   40899      382854 :          pack_tmp = ISHFT(pack_tmp, -21)
   40900      382854 :          idata = idata + 1
   40901      382854 :          data_tmp = full_data(idata)
   40902      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40903      382854 :          data_tmp = IAND(data_tmp, mask_left(21))
   40904      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40905      382854 :          ipack = ipack + 1
   40906      382854 :          packed_data(ipack) = pack_tmp
   40907      382854 :          data_tmp = full_data(idata)
   40908      382854 :          pack_tmp = ISHFT(data_tmp, 34)
   40909      382854 :          pack_tmp = ISHFT(pack_tmp, -34)
   40910      382854 :          idata = idata + 1
   40911      382854 :          data_tmp = full_data(idata)
   40912      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40913      382854 :          data_tmp = IAND(data_tmp, mask_left(34))
   40914      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40915      382854 :          ipack = ipack + 1
   40916      382854 :          packed_data(ipack) = pack_tmp
   40917      382854 :          data_tmp = full_data(idata)
   40918      382854 :          pack_tmp = ISHFT(data_tmp, 47)
   40919      382854 :          pack_tmp = ISHFT(pack_tmp, -47)
   40920      382854 :          idata = idata + 1
   40921      382854 :          data_tmp = full_data(idata)
   40922      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40923      382854 :          data_tmp = IAND(data_tmp, mask_left(47))
   40924      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40925      382854 :          ipack = ipack + 1
   40926      382854 :          packed_data(ipack) = pack_tmp
   40927      382854 :          data_tmp = full_data(idata)
   40928      382854 :          pack_tmp = ISHFT(data_tmp, 60)
   40929      382854 :          pack_tmp = ISHFT(pack_tmp, -51)
   40930      382854 :          idata = idata + 1
   40931      382854 :          data_tmp = full_data(idata)
   40932      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40933      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40934      382854 :          pack_tmp = ISHFT(pack_tmp, -9)
   40935      382854 :          idata = idata + 1
   40936      382854 :          data_tmp = full_data(idata)
   40937      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40938      382854 :          data_tmp = IAND(data_tmp, mask_left(9))
   40939      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40940      382854 :          ipack = ipack + 1
   40941      382854 :          packed_data(ipack) = pack_tmp
   40942      382854 :          data_tmp = full_data(idata)
   40943      382854 :          pack_tmp = ISHFT(data_tmp, 22)
   40944      382854 :          pack_tmp = ISHFT(pack_tmp, -22)
   40945      382854 :          idata = idata + 1
   40946      382854 :          data_tmp = full_data(idata)
   40947      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40948      382854 :          data_tmp = IAND(data_tmp, mask_left(22))
   40949      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40950      382854 :          ipack = ipack + 1
   40951      382854 :          packed_data(ipack) = pack_tmp
   40952      382854 :          data_tmp = full_data(idata)
   40953      382854 :          pack_tmp = ISHFT(data_tmp, 35)
   40954      382854 :          pack_tmp = ISHFT(pack_tmp, -35)
   40955      382854 :          idata = idata + 1
   40956      382854 :          data_tmp = full_data(idata)
   40957      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40958      382854 :          data_tmp = IAND(data_tmp, mask_left(35))
   40959      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40960      382854 :          ipack = ipack + 1
   40961      382854 :          packed_data(ipack) = pack_tmp
   40962      382854 :          data_tmp = full_data(idata)
   40963      382854 :          pack_tmp = ISHFT(data_tmp, 48)
   40964      382854 :          pack_tmp = ISHFT(pack_tmp, -48)
   40965      382854 :          idata = idata + 1
   40966      382854 :          data_tmp = full_data(idata)
   40967      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40968      382854 :          data_tmp = IAND(data_tmp, mask_left(48))
   40969      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40970      382854 :          ipack = ipack + 1
   40971      382854 :          packed_data(ipack) = pack_tmp
   40972      382854 :          data_tmp = full_data(idata)
   40973      382854 :          pack_tmp = ISHFT(data_tmp, 61)
   40974      382854 :          pack_tmp = ISHFT(pack_tmp, -51)
   40975      382854 :          idata = idata + 1
   40976      382854 :          data_tmp = full_data(idata)
   40977      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40978      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40979      382854 :          pack_tmp = ISHFT(pack_tmp, -10)
   40980      382854 :          idata = idata + 1
   40981      382854 :          data_tmp = full_data(idata)
   40982      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40983      382854 :          data_tmp = IAND(data_tmp, mask_left(10))
   40984      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40985      382854 :          ipack = ipack + 1
   40986      382854 :          packed_data(ipack) = pack_tmp
   40987      382854 :          data_tmp = full_data(idata)
   40988      382854 :          pack_tmp = ISHFT(data_tmp, 23)
   40989      382854 :          pack_tmp = ISHFT(pack_tmp, -23)
   40990      382854 :          idata = idata + 1
   40991      382854 :          data_tmp = full_data(idata)
   40992      382854 :          data_tmp = ISHFT(data_tmp, 13)
   40993      382854 :          data_tmp = IAND(data_tmp, mask_left(23))
   40994      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40995      382854 :          ipack = ipack + 1
   40996      382854 :          packed_data(ipack) = pack_tmp
   40997      382854 :          data_tmp = full_data(idata)
   40998      382854 :          pack_tmp = ISHFT(data_tmp, 36)
   40999      382854 :          pack_tmp = ISHFT(pack_tmp, -36)
   41000      382854 :          idata = idata + 1
   41001      382854 :          data_tmp = full_data(idata)
   41002      382854 :          data_tmp = ISHFT(data_tmp, 13)
   41003      382854 :          data_tmp = IAND(data_tmp, mask_left(36))
   41004      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41005      382854 :          ipack = ipack + 1
   41006      382854 :          packed_data(ipack) = pack_tmp
   41007      382854 :          data_tmp = full_data(idata)
   41008      382854 :          pack_tmp = ISHFT(data_tmp, 49)
   41009      382854 :          pack_tmp = ISHFT(pack_tmp, -49)
   41010      382854 :          idata = idata + 1
   41011      382854 :          data_tmp = full_data(idata)
   41012      382854 :          data_tmp = ISHFT(data_tmp, 13)
   41013      382854 :          data_tmp = IAND(data_tmp, mask_left(49))
   41014      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41015      382854 :          ipack = ipack + 1
   41016      382854 :          packed_data(ipack) = pack_tmp
   41017      382854 :          data_tmp = full_data(idata)
   41018      382854 :          pack_tmp = ISHFT(data_tmp, 62)
   41019      382854 :          pack_tmp = ISHFT(pack_tmp, -51)
   41020      382854 :          idata = idata + 1
   41021      382854 :          data_tmp = full_data(idata)
   41022      382854 :          data_tmp = ISHFT(data_tmp, 13)
   41023      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41024      382854 :          pack_tmp = ISHFT(pack_tmp, -11)
   41025      382854 :          idata = idata + 1
   41026      382854 :          data_tmp = full_data(idata)
   41027      382854 :          data_tmp = ISHFT(data_tmp, 13)
   41028      382854 :          data_tmp = IAND(data_tmp, mask_left(11))
   41029      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41030      382854 :          ipack = ipack + 1
   41031      382854 :          packed_data(ipack) = pack_tmp
   41032      382854 :          data_tmp = full_data(idata)
   41033      382854 :          pack_tmp = ISHFT(data_tmp, 24)
   41034      382854 :          pack_tmp = ISHFT(pack_tmp, -24)
   41035      382854 :          idata = idata + 1
   41036      382854 :          data_tmp = full_data(idata)
   41037      382854 :          data_tmp = ISHFT(data_tmp, 13)
   41038      382854 :          data_tmp = IAND(data_tmp, mask_left(24))
   41039      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41040      382854 :          ipack = ipack + 1
   41041      382854 :          packed_data(ipack) = pack_tmp
   41042      382854 :          data_tmp = full_data(idata)
   41043      382854 :          pack_tmp = ISHFT(data_tmp, 37)
   41044      382854 :          pack_tmp = ISHFT(pack_tmp, -37)
   41045      382854 :          idata = idata + 1
   41046      382854 :          data_tmp = full_data(idata)
   41047      382854 :          data_tmp = ISHFT(data_tmp, 13)
   41048      382854 :          data_tmp = IAND(data_tmp, mask_left(37))
   41049      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41050      382854 :          ipack = ipack + 1
   41051      382854 :          packed_data(ipack) = pack_tmp
   41052      382854 :          data_tmp = full_data(idata)
   41053      382854 :          pack_tmp = ISHFT(data_tmp, 50)
   41054      382854 :          pack_tmp = ISHFT(pack_tmp, -50)
   41055      382854 :          idata = idata + 1
   41056      382854 :          data_tmp = full_data(idata)
   41057      382854 :          data_tmp = ISHFT(data_tmp, 13)
   41058      382854 :          data_tmp = IAND(data_tmp, mask_left(50))
   41059      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41060      382854 :          ipack = ipack + 1
   41061      382854 :          packed_data(ipack) = pack_tmp
   41062      382854 :          data_tmp = full_data(idata)
   41063      382854 :          pack_tmp = ISHFT(data_tmp, 63)
   41064      382854 :          pack_tmp = ISHFT(pack_tmp, -51)
   41065      382854 :          idata = idata + 1
   41066      382854 :          data_tmp = full_data(idata)
   41067      382854 :          data_tmp = ISHFT(data_tmp, 13)
   41068      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41069      382854 :          pack_tmp = ISHFT(pack_tmp, -12)
   41070      382854 :          idata = idata + 1
   41071      382854 :          data_tmp = full_data(idata)
   41072      382854 :          data_tmp = ISHFT(data_tmp, 13)
   41073      382854 :          data_tmp = IAND(data_tmp, mask_left(12))
   41074      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41075      382854 :          ipack = ipack + 1
   41076      382854 :          packed_data(ipack) = pack_tmp
   41077      382854 :          data_tmp = full_data(idata)
   41078      382854 :          pack_tmp = ISHFT(data_tmp, 25)
   41079      382854 :          pack_tmp = ISHFT(pack_tmp, -25)
   41080      382854 :          idata = idata + 1
   41081      382854 :          data_tmp = full_data(idata)
   41082      382854 :          data_tmp = ISHFT(data_tmp, 13)
   41083      382854 :          data_tmp = IAND(data_tmp, mask_left(25))
   41084      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41085      382854 :          ipack = ipack + 1
   41086      382854 :          packed_data(ipack) = pack_tmp
   41087      382854 :          data_tmp = full_data(idata)
   41088      382854 :          pack_tmp = ISHFT(data_tmp, 38)
   41089      382854 :          pack_tmp = ISHFT(pack_tmp, -38)
   41090      382854 :          idata = idata + 1
   41091      382854 :          data_tmp = full_data(idata)
   41092      382854 :          data_tmp = ISHFT(data_tmp, 13)
   41093      382854 :          data_tmp = IAND(data_tmp, mask_left(38))
   41094      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41095      382854 :          ipack = ipack + 1
   41096      382854 :          packed_data(ipack) = pack_tmp
   41097      382854 :          data_tmp = full_data(idata)
   41098      382854 :          pack_tmp = ISHFT(data_tmp, 51)
   41099      382854 :          pack_tmp = ISHFT(pack_tmp, -51)
   41100      382854 :          idata = idata + 1
   41101      382854 :          data_tmp = full_data(idata)
   41102      382854 :          data_tmp = ISHFT(data_tmp, 13)
   41103      382854 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41104             :          pack_tmp = ISHFT(pack_tmp, 0)
   41105      382854 :          pack_tmp = ISHFT(pack_tmp, 0)
   41106      382854 :          ipack = ipack + 1
   41107      382898 :          packed_data(ipack) = pack_tmp
   41108             :       END DO
   41109       24160 :       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       24160 :    END SUBROUTINE ints2bits_51
   41113             : 
   41114             : ! **************************************************************************************************
   41115             : !> \brief ...
   41116             : !> \param Ndata ...
   41117             : !> \param packed_data ...
   41118             : !> \param full_data ...
   41119             : ! **************************************************************************************************
   41120       98507 :    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       98507 :       ipack = 0
   41131       98507 :       idata = 0
   41132       98507 :       pack_tmp = 0
   41133       98507 :       Ndata_rep = (Ndata/64)*64
   41134       98507 :       DO kdata = 1, Ndata_rep, 64
   41135     1552754 :          idata = idata + 1
   41136     1552754 :          data_tmp = ISHFT(pack_tmp, 51)
   41137     1552754 :          ipack = ipack + 1
   41138     1552754 :          pack_tmp = packed_data(ipack)
   41139     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   41140     1552754 :          pack_tmp = ISHFT(pack_tmp, -51)
   41141     1552754 :          idata = idata + 1
   41142     1552754 :          data_tmp = ISHFT(pack_tmp, 38)
   41143     1552754 :          ipack = ipack + 1
   41144     1552754 :          pack_tmp = packed_data(ipack)
   41145     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   41146     1552754 :          pack_tmp = ISHFT(pack_tmp, -38)
   41147     1552754 :          idata = idata + 1
   41148     1552754 :          data_tmp = ISHFT(pack_tmp, 25)
   41149     1552754 :          ipack = ipack + 1
   41150     1552754 :          pack_tmp = packed_data(ipack)
   41151     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   41152     1552754 :          pack_tmp = ISHFT(pack_tmp, -25)
   41153     1552754 :          idata = idata + 1
   41154     1552754 :          data_tmp = ISHFT(pack_tmp, 12)
   41155     1552754 :          ipack = ipack + 1
   41156     1552754 :          pack_tmp = packed_data(ipack)
   41157     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   41158     1552754 :          pack_tmp = ISHFT(pack_tmp, -12)
   41159     1552754 :          idata = idata + 1
   41160     1552754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41161     1552754 :          full_data(idata) = data_tmp
   41162     1552754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41163     1552754 :          idata = idata + 1
   41164     1552754 :          data_tmp = ISHFT(pack_tmp, 50)
   41165     1552754 :          ipack = ipack + 1
   41166     1552754 :          pack_tmp = packed_data(ipack)
   41167     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   41168     1552754 :          pack_tmp = ISHFT(pack_tmp, -50)
   41169     1552754 :          idata = idata + 1
   41170     1552754 :          data_tmp = ISHFT(pack_tmp, 37)
   41171     1552754 :          ipack = ipack + 1
   41172     1552754 :          pack_tmp = packed_data(ipack)
   41173     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   41174     1552754 :          pack_tmp = ISHFT(pack_tmp, -37)
   41175     1552754 :          idata = idata + 1
   41176     1552754 :          data_tmp = ISHFT(pack_tmp, 24)
   41177     1552754 :          ipack = ipack + 1
   41178     1552754 :          pack_tmp = packed_data(ipack)
   41179     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   41180     1552754 :          pack_tmp = ISHFT(pack_tmp, -24)
   41181     1552754 :          idata = idata + 1
   41182     1552754 :          data_tmp = ISHFT(pack_tmp, 11)
   41183     1552754 :          ipack = ipack + 1
   41184     1552754 :          pack_tmp = packed_data(ipack)
   41185     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   41186     1552754 :          pack_tmp = ISHFT(pack_tmp, -11)
   41187     1552754 :          idata = idata + 1
   41188     1552754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41189     1552754 :          full_data(idata) = data_tmp
   41190     1552754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41191     1552754 :          idata = idata + 1
   41192     1552754 :          data_tmp = ISHFT(pack_tmp, 49)
   41193     1552754 :          ipack = ipack + 1
   41194     1552754 :          pack_tmp = packed_data(ipack)
   41195     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   41196     1552754 :          pack_tmp = ISHFT(pack_tmp, -49)
   41197     1552754 :          idata = idata + 1
   41198     1552754 :          data_tmp = ISHFT(pack_tmp, 36)
   41199     1552754 :          ipack = ipack + 1
   41200     1552754 :          pack_tmp = packed_data(ipack)
   41201     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   41202     1552754 :          pack_tmp = ISHFT(pack_tmp, -36)
   41203     1552754 :          idata = idata + 1
   41204     1552754 :          data_tmp = ISHFT(pack_tmp, 23)
   41205     1552754 :          ipack = ipack + 1
   41206     1552754 :          pack_tmp = packed_data(ipack)
   41207     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   41208     1552754 :          pack_tmp = ISHFT(pack_tmp, -23)
   41209     1552754 :          idata = idata + 1
   41210     1552754 :          data_tmp = ISHFT(pack_tmp, 10)
   41211     1552754 :          ipack = ipack + 1
   41212     1552754 :          pack_tmp = packed_data(ipack)
   41213     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   41214     1552754 :          pack_tmp = ISHFT(pack_tmp, -10)
   41215     1552754 :          idata = idata + 1
   41216     1552754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41217     1552754 :          full_data(idata) = data_tmp
   41218     1552754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41219     1552754 :          idata = idata + 1
   41220     1552754 :          data_tmp = ISHFT(pack_tmp, 48)
   41221     1552754 :          ipack = ipack + 1
   41222     1552754 :          pack_tmp = packed_data(ipack)
   41223     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   41224     1552754 :          pack_tmp = ISHFT(pack_tmp, -48)
   41225     1552754 :          idata = idata + 1
   41226     1552754 :          data_tmp = ISHFT(pack_tmp, 35)
   41227     1552754 :          ipack = ipack + 1
   41228     1552754 :          pack_tmp = packed_data(ipack)
   41229     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   41230     1552754 :          pack_tmp = ISHFT(pack_tmp, -35)
   41231     1552754 :          idata = idata + 1
   41232     1552754 :          data_tmp = ISHFT(pack_tmp, 22)
   41233     1552754 :          ipack = ipack + 1
   41234     1552754 :          pack_tmp = packed_data(ipack)
   41235     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   41236     1552754 :          pack_tmp = ISHFT(pack_tmp, -22)
   41237     1552754 :          idata = idata + 1
   41238     1552754 :          data_tmp = ISHFT(pack_tmp, 9)
   41239     1552754 :          ipack = ipack + 1
   41240     1552754 :          pack_tmp = packed_data(ipack)
   41241     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   41242     1552754 :          pack_tmp = ISHFT(pack_tmp, -9)
   41243     1552754 :          idata = idata + 1
   41244     1552754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41245     1552754 :          full_data(idata) = data_tmp
   41246     1552754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41247     1552754 :          idata = idata + 1
   41248     1552754 :          data_tmp = ISHFT(pack_tmp, 47)
   41249     1552754 :          ipack = ipack + 1
   41250     1552754 :          pack_tmp = packed_data(ipack)
   41251     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   41252     1552754 :          pack_tmp = ISHFT(pack_tmp, -47)
   41253     1552754 :          idata = idata + 1
   41254     1552754 :          data_tmp = ISHFT(pack_tmp, 34)
   41255     1552754 :          ipack = ipack + 1
   41256     1552754 :          pack_tmp = packed_data(ipack)
   41257     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   41258     1552754 :          pack_tmp = ISHFT(pack_tmp, -34)
   41259     1552754 :          idata = idata + 1
   41260     1552754 :          data_tmp = ISHFT(pack_tmp, 21)
   41261     1552754 :          ipack = ipack + 1
   41262     1552754 :          pack_tmp = packed_data(ipack)
   41263     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   41264     1552754 :          pack_tmp = ISHFT(pack_tmp, -21)
   41265     1552754 :          idata = idata + 1
   41266     1552754 :          data_tmp = ISHFT(pack_tmp, 8)
   41267     1552754 :          ipack = ipack + 1
   41268     1552754 :          pack_tmp = packed_data(ipack)
   41269     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   41270     1552754 :          pack_tmp = ISHFT(pack_tmp, -8)
   41271     1552754 :          idata = idata + 1
   41272     1552754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41273     1552754 :          full_data(idata) = data_tmp
   41274     1552754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41275     1552754 :          idata = idata + 1
   41276     1552754 :          data_tmp = ISHFT(pack_tmp, 46)
   41277     1552754 :          ipack = ipack + 1
   41278     1552754 :          pack_tmp = packed_data(ipack)
   41279     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   41280     1552754 :          pack_tmp = ISHFT(pack_tmp, -46)
   41281     1552754 :          idata = idata + 1
   41282     1552754 :          data_tmp = ISHFT(pack_tmp, 33)
   41283     1552754 :          ipack = ipack + 1
   41284     1552754 :          pack_tmp = packed_data(ipack)
   41285     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   41286     1552754 :          pack_tmp = ISHFT(pack_tmp, -33)
   41287     1552754 :          idata = idata + 1
   41288     1552754 :          data_tmp = ISHFT(pack_tmp, 20)
   41289     1552754 :          ipack = ipack + 1
   41290     1552754 :          pack_tmp = packed_data(ipack)
   41291     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   41292     1552754 :          pack_tmp = ISHFT(pack_tmp, -20)
   41293     1552754 :          idata = idata + 1
   41294     1552754 :          data_tmp = ISHFT(pack_tmp, 7)
   41295     1552754 :          ipack = ipack + 1
   41296     1552754 :          pack_tmp = packed_data(ipack)
   41297     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   41298     1552754 :          pack_tmp = ISHFT(pack_tmp, -7)
   41299     1552754 :          idata = idata + 1
   41300     1552754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41301     1552754 :          full_data(idata) = data_tmp
   41302     1552754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41303     1552754 :          idata = idata + 1
   41304     1552754 :          data_tmp = ISHFT(pack_tmp, 45)
   41305     1552754 :          ipack = ipack + 1
   41306     1552754 :          pack_tmp = packed_data(ipack)
   41307     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   41308     1552754 :          pack_tmp = ISHFT(pack_tmp, -45)
   41309     1552754 :          idata = idata + 1
   41310     1552754 :          data_tmp = ISHFT(pack_tmp, 32)
   41311     1552754 :          ipack = ipack + 1
   41312     1552754 :          pack_tmp = packed_data(ipack)
   41313     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   41314     1552754 :          pack_tmp = ISHFT(pack_tmp, -32)
   41315     1552754 :          idata = idata + 1
   41316     1552754 :          data_tmp = ISHFT(pack_tmp, 19)
   41317     1552754 :          ipack = ipack + 1
   41318     1552754 :          pack_tmp = packed_data(ipack)
   41319     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   41320     1552754 :          pack_tmp = ISHFT(pack_tmp, -19)
   41321     1552754 :          idata = idata + 1
   41322     1552754 :          data_tmp = ISHFT(pack_tmp, 6)
   41323     1552754 :          ipack = ipack + 1
   41324     1552754 :          pack_tmp = packed_data(ipack)
   41325     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   41326     1552754 :          pack_tmp = ISHFT(pack_tmp, -6)
   41327     1552754 :          idata = idata + 1
   41328     1552754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41329     1552754 :          full_data(idata) = data_tmp
   41330     1552754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41331     1552754 :          idata = idata + 1
   41332     1552754 :          data_tmp = ISHFT(pack_tmp, 44)
   41333     1552754 :          ipack = ipack + 1
   41334     1552754 :          pack_tmp = packed_data(ipack)
   41335     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   41336     1552754 :          pack_tmp = ISHFT(pack_tmp, -44)
   41337     1552754 :          idata = idata + 1
   41338     1552754 :          data_tmp = ISHFT(pack_tmp, 31)
   41339     1552754 :          ipack = ipack + 1
   41340     1552754 :          pack_tmp = packed_data(ipack)
   41341     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   41342     1552754 :          pack_tmp = ISHFT(pack_tmp, -31)
   41343     1552754 :          idata = idata + 1
   41344     1552754 :          data_tmp = ISHFT(pack_tmp, 18)
   41345     1552754 :          ipack = ipack + 1
   41346     1552754 :          pack_tmp = packed_data(ipack)
   41347     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   41348     1552754 :          pack_tmp = ISHFT(pack_tmp, -18)
   41349     1552754 :          idata = idata + 1
   41350     1552754 :          data_tmp = ISHFT(pack_tmp, 5)
   41351     1552754 :          ipack = ipack + 1
   41352     1552754 :          pack_tmp = packed_data(ipack)
   41353     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   41354     1552754 :          pack_tmp = ISHFT(pack_tmp, -5)
   41355     1552754 :          idata = idata + 1
   41356     1552754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41357     1552754 :          full_data(idata) = data_tmp
   41358     1552754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41359     1552754 :          idata = idata + 1
   41360     1552754 :          data_tmp = ISHFT(pack_tmp, 43)
   41361     1552754 :          ipack = ipack + 1
   41362     1552754 :          pack_tmp = packed_data(ipack)
   41363     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   41364     1552754 :          pack_tmp = ISHFT(pack_tmp, -43)
   41365     1552754 :          idata = idata + 1
   41366     1552754 :          data_tmp = ISHFT(pack_tmp, 30)
   41367     1552754 :          ipack = ipack + 1
   41368     1552754 :          pack_tmp = packed_data(ipack)
   41369     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   41370     1552754 :          pack_tmp = ISHFT(pack_tmp, -30)
   41371     1552754 :          idata = idata + 1
   41372     1552754 :          data_tmp = ISHFT(pack_tmp, 17)
   41373     1552754 :          ipack = ipack + 1
   41374     1552754 :          pack_tmp = packed_data(ipack)
   41375     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   41376     1552754 :          pack_tmp = ISHFT(pack_tmp, -17)
   41377     1552754 :          idata = idata + 1
   41378     1552754 :          data_tmp = ISHFT(pack_tmp, 4)
   41379     1552754 :          ipack = ipack + 1
   41380     1552754 :          pack_tmp = packed_data(ipack)
   41381     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   41382     1552754 :          pack_tmp = ISHFT(pack_tmp, -4)
   41383     1552754 :          idata = idata + 1
   41384     1552754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41385     1552754 :          full_data(idata) = data_tmp
   41386     1552754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41387     1552754 :          idata = idata + 1
   41388     1552754 :          data_tmp = ISHFT(pack_tmp, 42)
   41389     1552754 :          ipack = ipack + 1
   41390     1552754 :          pack_tmp = packed_data(ipack)
   41391     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   41392     1552754 :          pack_tmp = ISHFT(pack_tmp, -42)
   41393     1552754 :          idata = idata + 1
   41394     1552754 :          data_tmp = ISHFT(pack_tmp, 29)
   41395     1552754 :          ipack = ipack + 1
   41396     1552754 :          pack_tmp = packed_data(ipack)
   41397     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   41398     1552754 :          pack_tmp = ISHFT(pack_tmp, -29)
   41399     1552754 :          idata = idata + 1
   41400     1552754 :          data_tmp = ISHFT(pack_tmp, 16)
   41401     1552754 :          ipack = ipack + 1
   41402     1552754 :          pack_tmp = packed_data(ipack)
   41403     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   41404     1552754 :          pack_tmp = ISHFT(pack_tmp, -16)
   41405     1552754 :          idata = idata + 1
   41406     1552754 :          data_tmp = ISHFT(pack_tmp, 3)
   41407     1552754 :          ipack = ipack + 1
   41408     1552754 :          pack_tmp = packed_data(ipack)
   41409     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   41410     1552754 :          pack_tmp = ISHFT(pack_tmp, -3)
   41411     1552754 :          idata = idata + 1
   41412     1552754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41413     1552754 :          full_data(idata) = data_tmp
   41414     1552754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41415     1552754 :          idata = idata + 1
   41416     1552754 :          data_tmp = ISHFT(pack_tmp, 41)
   41417     1552754 :          ipack = ipack + 1
   41418     1552754 :          pack_tmp = packed_data(ipack)
   41419     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   41420     1552754 :          pack_tmp = ISHFT(pack_tmp, -41)
   41421     1552754 :          idata = idata + 1
   41422     1552754 :          data_tmp = ISHFT(pack_tmp, 28)
   41423     1552754 :          ipack = ipack + 1
   41424     1552754 :          pack_tmp = packed_data(ipack)
   41425     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   41426     1552754 :          pack_tmp = ISHFT(pack_tmp, -28)
   41427     1552754 :          idata = idata + 1
   41428     1552754 :          data_tmp = ISHFT(pack_tmp, 15)
   41429     1552754 :          ipack = ipack + 1
   41430     1552754 :          pack_tmp = packed_data(ipack)
   41431     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   41432     1552754 :          pack_tmp = ISHFT(pack_tmp, -15)
   41433     1552754 :          idata = idata + 1
   41434     1552754 :          data_tmp = ISHFT(pack_tmp, 2)
   41435     1552754 :          ipack = ipack + 1
   41436     1552754 :          pack_tmp = packed_data(ipack)
   41437     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   41438     1552754 :          pack_tmp = ISHFT(pack_tmp, -2)
   41439     1552754 :          idata = idata + 1
   41440     1552754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41441     1552754 :          full_data(idata) = data_tmp
   41442     1552754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41443     1552754 :          idata = idata + 1
   41444     1552754 :          data_tmp = ISHFT(pack_tmp, 40)
   41445     1552754 :          ipack = ipack + 1
   41446     1552754 :          pack_tmp = packed_data(ipack)
   41447     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   41448     1552754 :          pack_tmp = ISHFT(pack_tmp, -40)
   41449     1552754 :          idata = idata + 1
   41450     1552754 :          data_tmp = ISHFT(pack_tmp, 27)
   41451     1552754 :          ipack = ipack + 1
   41452     1552754 :          pack_tmp = packed_data(ipack)
   41453     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   41454     1552754 :          pack_tmp = ISHFT(pack_tmp, -27)
   41455     1552754 :          idata = idata + 1
   41456     1552754 :          data_tmp = ISHFT(pack_tmp, 14)
   41457     1552754 :          ipack = ipack + 1
   41458     1552754 :          pack_tmp = packed_data(ipack)
   41459     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   41460     1552754 :          pack_tmp = ISHFT(pack_tmp, -14)
   41461     1552754 :          idata = idata + 1
   41462     1552754 :          data_tmp = ISHFT(pack_tmp, 1)
   41463     1552754 :          ipack = ipack + 1
   41464     1552754 :          pack_tmp = packed_data(ipack)
   41465     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   41466     1552754 :          pack_tmp = ISHFT(pack_tmp, -1)
   41467     1552754 :          idata = idata + 1
   41468     1552754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41469     1552754 :          full_data(idata) = data_tmp
   41470     1552754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41471     1552754 :          idata = idata + 1
   41472     1552754 :          data_tmp = ISHFT(pack_tmp, 39)
   41473     1552754 :          ipack = ipack + 1
   41474     1552754 :          pack_tmp = packed_data(ipack)
   41475     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   41476     1552754 :          pack_tmp = ISHFT(pack_tmp, -39)
   41477     1552754 :          idata = idata + 1
   41478     1552754 :          data_tmp = ISHFT(pack_tmp, 26)
   41479     1552754 :          ipack = ipack + 1
   41480     1552754 :          pack_tmp = packed_data(ipack)
   41481     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   41482     1552754 :          pack_tmp = ISHFT(pack_tmp, -26)
   41483     1552754 :          idata = idata + 1
   41484     1552754 :          data_tmp = ISHFT(pack_tmp, 13)
   41485     1552754 :          ipack = ipack + 1
   41486     1552754 :          pack_tmp = packed_data(ipack)
   41487     1552754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   41488     1552754 :          pack_tmp = ISHFT(pack_tmp, -13)
   41489     1552754 :          idata = idata + 1
   41490     1552754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41491     1552754 :          full_data(idata) = data_tmp
   41492     1553078 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41493             :       END DO
   41494       98507 :       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       98507 :    END SUBROUTINE bits2ints_51
   41498             : 
   41499             : ! **************************************************************************************************
   41500             : !> \brief ...
   41501             : !> \param Ndata ...
   41502             : !> \param packed_data ...
   41503             : !> \param full_data ...
   41504             : ! **************************************************************************************************
   41505       24186 :    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       24186 :       idata = 0
   41516       24186 :       ipack = 0
   41517       24186 :       Ndata_rep = (Ndata/64)*64
   41518       24186 :       DO kdata = 1, Ndata_rep, 64
   41519      383032 :          pack_tmp = 0
   41520      383032 :          idata = idata + 1
   41521      383032 :          data_tmp = full_data(idata)
   41522      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41523      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41524      383032 :          pack_tmp = ISHFT(pack_tmp, -12)
   41525      383032 :          idata = idata + 1
   41526      383032 :          data_tmp = full_data(idata)
   41527      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41528      383032 :          data_tmp = IAND(data_tmp, mask_left(12))
   41529      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41530      383032 :          ipack = ipack + 1
   41531      383032 :          packed_data(ipack) = pack_tmp
   41532      383032 :          data_tmp = full_data(idata)
   41533      383032 :          pack_tmp = ISHFT(data_tmp, 24)
   41534      383032 :          pack_tmp = ISHFT(pack_tmp, -24)
   41535      383032 :          idata = idata + 1
   41536      383032 :          data_tmp = full_data(idata)
   41537      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41538      383032 :          data_tmp = IAND(data_tmp, mask_left(24))
   41539      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41540      383032 :          ipack = ipack + 1
   41541      383032 :          packed_data(ipack) = pack_tmp
   41542      383032 :          data_tmp = full_data(idata)
   41543      383032 :          pack_tmp = ISHFT(data_tmp, 36)
   41544      383032 :          pack_tmp = ISHFT(pack_tmp, -36)
   41545      383032 :          idata = idata + 1
   41546      383032 :          data_tmp = full_data(idata)
   41547      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41548      383032 :          data_tmp = IAND(data_tmp, mask_left(36))
   41549      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41550      383032 :          ipack = ipack + 1
   41551      383032 :          packed_data(ipack) = pack_tmp
   41552      383032 :          data_tmp = full_data(idata)
   41553      383032 :          pack_tmp = ISHFT(data_tmp, 48)
   41554      383032 :          pack_tmp = ISHFT(pack_tmp, -48)
   41555      383032 :          idata = idata + 1
   41556      383032 :          data_tmp = full_data(idata)
   41557      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41558      383032 :          data_tmp = IAND(data_tmp, mask_left(48))
   41559      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41560      383032 :          ipack = ipack + 1
   41561      383032 :          packed_data(ipack) = pack_tmp
   41562      383032 :          data_tmp = full_data(idata)
   41563      383032 :          pack_tmp = ISHFT(data_tmp, 60)
   41564      383032 :          pack_tmp = ISHFT(pack_tmp, -52)
   41565      383032 :          idata = idata + 1
   41566      383032 :          data_tmp = full_data(idata)
   41567      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41568      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41569      383032 :          pack_tmp = ISHFT(pack_tmp, -8)
   41570      383032 :          idata = idata + 1
   41571      383032 :          data_tmp = full_data(idata)
   41572      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41573      383032 :          data_tmp = IAND(data_tmp, mask_left(8))
   41574      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41575      383032 :          ipack = ipack + 1
   41576      383032 :          packed_data(ipack) = pack_tmp
   41577      383032 :          data_tmp = full_data(idata)
   41578      383032 :          pack_tmp = ISHFT(data_tmp, 20)
   41579      383032 :          pack_tmp = ISHFT(pack_tmp, -20)
   41580      383032 :          idata = idata + 1
   41581      383032 :          data_tmp = full_data(idata)
   41582      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41583      383032 :          data_tmp = IAND(data_tmp, mask_left(20))
   41584      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41585      383032 :          ipack = ipack + 1
   41586      383032 :          packed_data(ipack) = pack_tmp
   41587      383032 :          data_tmp = full_data(idata)
   41588      383032 :          pack_tmp = ISHFT(data_tmp, 32)
   41589      383032 :          pack_tmp = ISHFT(pack_tmp, -32)
   41590      383032 :          idata = idata + 1
   41591      383032 :          data_tmp = full_data(idata)
   41592      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41593      383032 :          data_tmp = IAND(data_tmp, mask_left(32))
   41594      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41595      383032 :          ipack = ipack + 1
   41596      383032 :          packed_data(ipack) = pack_tmp
   41597      383032 :          data_tmp = full_data(idata)
   41598      383032 :          pack_tmp = ISHFT(data_tmp, 44)
   41599      383032 :          pack_tmp = ISHFT(pack_tmp, -44)
   41600      383032 :          idata = idata + 1
   41601      383032 :          data_tmp = full_data(idata)
   41602      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41603      383032 :          data_tmp = IAND(data_tmp, mask_left(44))
   41604      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41605      383032 :          ipack = ipack + 1
   41606      383032 :          packed_data(ipack) = pack_tmp
   41607      383032 :          data_tmp = full_data(idata)
   41608      383032 :          pack_tmp = ISHFT(data_tmp, 56)
   41609      383032 :          pack_tmp = ISHFT(pack_tmp, -52)
   41610      383032 :          idata = idata + 1
   41611      383032 :          data_tmp = full_data(idata)
   41612      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41613      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41614      383032 :          pack_tmp = ISHFT(pack_tmp, -4)
   41615      383032 :          idata = idata + 1
   41616      383032 :          data_tmp = full_data(idata)
   41617      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41618      383032 :          data_tmp = IAND(data_tmp, mask_left(4))
   41619      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41620      383032 :          ipack = ipack + 1
   41621      383032 :          packed_data(ipack) = pack_tmp
   41622      383032 :          data_tmp = full_data(idata)
   41623      383032 :          pack_tmp = ISHFT(data_tmp, 16)
   41624      383032 :          pack_tmp = ISHFT(pack_tmp, -16)
   41625      383032 :          idata = idata + 1
   41626      383032 :          data_tmp = full_data(idata)
   41627      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41628      383032 :          data_tmp = IAND(data_tmp, mask_left(16))
   41629      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41630      383032 :          ipack = ipack + 1
   41631      383032 :          packed_data(ipack) = pack_tmp
   41632      383032 :          data_tmp = full_data(idata)
   41633      383032 :          pack_tmp = ISHFT(data_tmp, 28)
   41634      383032 :          pack_tmp = ISHFT(pack_tmp, -28)
   41635      383032 :          idata = idata + 1
   41636      383032 :          data_tmp = full_data(idata)
   41637      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41638      383032 :          data_tmp = IAND(data_tmp, mask_left(28))
   41639      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41640      383032 :          ipack = ipack + 1
   41641      383032 :          packed_data(ipack) = pack_tmp
   41642      383032 :          data_tmp = full_data(idata)
   41643      383032 :          pack_tmp = ISHFT(data_tmp, 40)
   41644      383032 :          pack_tmp = ISHFT(pack_tmp, -40)
   41645      383032 :          idata = idata + 1
   41646      383032 :          data_tmp = full_data(idata)
   41647      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41648      383032 :          data_tmp = IAND(data_tmp, mask_left(40))
   41649      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41650      383032 :          ipack = ipack + 1
   41651      383032 :          packed_data(ipack) = pack_tmp
   41652      383032 :          data_tmp = full_data(idata)
   41653      383032 :          pack_tmp = ISHFT(data_tmp, 52)
   41654      383032 :          pack_tmp = ISHFT(pack_tmp, -52)
   41655      383032 :          idata = idata + 1
   41656      383032 :          data_tmp = full_data(idata)
   41657      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41658      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41659      383032 :          pack_tmp = ISHFT(pack_tmp, 0)
   41660      383032 :          idata = idata + 1
   41661      383032 :          data_tmp = full_data(idata)
   41662             :          data_tmp = ISHFT(data_tmp, 12)
   41663      383032 :          data_tmp = IAND(data_tmp, mask_left(0))
   41664      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41665      383032 :          ipack = ipack + 1
   41666      383032 :          packed_data(ipack) = pack_tmp
   41667      383032 :          data_tmp = full_data(idata)
   41668      383032 :          pack_tmp = ISHFT(data_tmp, 12)
   41669      383032 :          pack_tmp = ISHFT(pack_tmp, -12)
   41670      383032 :          idata = idata + 1
   41671      383032 :          data_tmp = full_data(idata)
   41672      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41673      383032 :          data_tmp = IAND(data_tmp, mask_left(12))
   41674      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41675      383032 :          ipack = ipack + 1
   41676      383032 :          packed_data(ipack) = pack_tmp
   41677      383032 :          data_tmp = full_data(idata)
   41678      383032 :          pack_tmp = ISHFT(data_tmp, 24)
   41679      383032 :          pack_tmp = ISHFT(pack_tmp, -24)
   41680      383032 :          idata = idata + 1
   41681      383032 :          data_tmp = full_data(idata)
   41682      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41683      383032 :          data_tmp = IAND(data_tmp, mask_left(24))
   41684      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41685      383032 :          ipack = ipack + 1
   41686      383032 :          packed_data(ipack) = pack_tmp
   41687      383032 :          data_tmp = full_data(idata)
   41688      383032 :          pack_tmp = ISHFT(data_tmp, 36)
   41689      383032 :          pack_tmp = ISHFT(pack_tmp, -36)
   41690      383032 :          idata = idata + 1
   41691      383032 :          data_tmp = full_data(idata)
   41692      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41693      383032 :          data_tmp = IAND(data_tmp, mask_left(36))
   41694      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41695      383032 :          ipack = ipack + 1
   41696      383032 :          packed_data(ipack) = pack_tmp
   41697      383032 :          data_tmp = full_data(idata)
   41698      383032 :          pack_tmp = ISHFT(data_tmp, 48)
   41699      383032 :          pack_tmp = ISHFT(pack_tmp, -48)
   41700      383032 :          idata = idata + 1
   41701      383032 :          data_tmp = full_data(idata)
   41702      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41703      383032 :          data_tmp = IAND(data_tmp, mask_left(48))
   41704      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41705      383032 :          ipack = ipack + 1
   41706      383032 :          packed_data(ipack) = pack_tmp
   41707      383032 :          data_tmp = full_data(idata)
   41708      383032 :          pack_tmp = ISHFT(data_tmp, 60)
   41709      383032 :          pack_tmp = ISHFT(pack_tmp, -52)
   41710      383032 :          idata = idata + 1
   41711      383032 :          data_tmp = full_data(idata)
   41712      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41713      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41714      383032 :          pack_tmp = ISHFT(pack_tmp, -8)
   41715      383032 :          idata = idata + 1
   41716      383032 :          data_tmp = full_data(idata)
   41717      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41718      383032 :          data_tmp = IAND(data_tmp, mask_left(8))
   41719      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41720      383032 :          ipack = ipack + 1
   41721      383032 :          packed_data(ipack) = pack_tmp
   41722      383032 :          data_tmp = full_data(idata)
   41723      383032 :          pack_tmp = ISHFT(data_tmp, 20)
   41724      383032 :          pack_tmp = ISHFT(pack_tmp, -20)
   41725      383032 :          idata = idata + 1
   41726      383032 :          data_tmp = full_data(idata)
   41727      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41728      383032 :          data_tmp = IAND(data_tmp, mask_left(20))
   41729      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41730      383032 :          ipack = ipack + 1
   41731      383032 :          packed_data(ipack) = pack_tmp
   41732      383032 :          data_tmp = full_data(idata)
   41733      383032 :          pack_tmp = ISHFT(data_tmp, 32)
   41734      383032 :          pack_tmp = ISHFT(pack_tmp, -32)
   41735      383032 :          idata = idata + 1
   41736      383032 :          data_tmp = full_data(idata)
   41737      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41738      383032 :          data_tmp = IAND(data_tmp, mask_left(32))
   41739      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41740      383032 :          ipack = ipack + 1
   41741      383032 :          packed_data(ipack) = pack_tmp
   41742      383032 :          data_tmp = full_data(idata)
   41743      383032 :          pack_tmp = ISHFT(data_tmp, 44)
   41744      383032 :          pack_tmp = ISHFT(pack_tmp, -44)
   41745      383032 :          idata = idata + 1
   41746      383032 :          data_tmp = full_data(idata)
   41747      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41748      383032 :          data_tmp = IAND(data_tmp, mask_left(44))
   41749      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41750      383032 :          ipack = ipack + 1
   41751      383032 :          packed_data(ipack) = pack_tmp
   41752      383032 :          data_tmp = full_data(idata)
   41753      383032 :          pack_tmp = ISHFT(data_tmp, 56)
   41754      383032 :          pack_tmp = ISHFT(pack_tmp, -52)
   41755      383032 :          idata = idata + 1
   41756      383032 :          data_tmp = full_data(idata)
   41757      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41758      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41759      383032 :          pack_tmp = ISHFT(pack_tmp, -4)
   41760      383032 :          idata = idata + 1
   41761      383032 :          data_tmp = full_data(idata)
   41762      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41763      383032 :          data_tmp = IAND(data_tmp, mask_left(4))
   41764      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41765      383032 :          ipack = ipack + 1
   41766      383032 :          packed_data(ipack) = pack_tmp
   41767      383032 :          data_tmp = full_data(idata)
   41768      383032 :          pack_tmp = ISHFT(data_tmp, 16)
   41769      383032 :          pack_tmp = ISHFT(pack_tmp, -16)
   41770      383032 :          idata = idata + 1
   41771      383032 :          data_tmp = full_data(idata)
   41772      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41773      383032 :          data_tmp = IAND(data_tmp, mask_left(16))
   41774      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41775      383032 :          ipack = ipack + 1
   41776      383032 :          packed_data(ipack) = pack_tmp
   41777      383032 :          data_tmp = full_data(idata)
   41778      383032 :          pack_tmp = ISHFT(data_tmp, 28)
   41779      383032 :          pack_tmp = ISHFT(pack_tmp, -28)
   41780      383032 :          idata = idata + 1
   41781      383032 :          data_tmp = full_data(idata)
   41782      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41783      383032 :          data_tmp = IAND(data_tmp, mask_left(28))
   41784      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41785      383032 :          ipack = ipack + 1
   41786      383032 :          packed_data(ipack) = pack_tmp
   41787      383032 :          data_tmp = full_data(idata)
   41788      383032 :          pack_tmp = ISHFT(data_tmp, 40)
   41789      383032 :          pack_tmp = ISHFT(pack_tmp, -40)
   41790      383032 :          idata = idata + 1
   41791      383032 :          data_tmp = full_data(idata)
   41792      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41793      383032 :          data_tmp = IAND(data_tmp, mask_left(40))
   41794      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41795      383032 :          ipack = ipack + 1
   41796      383032 :          packed_data(ipack) = pack_tmp
   41797      383032 :          data_tmp = full_data(idata)
   41798      383032 :          pack_tmp = ISHFT(data_tmp, 52)
   41799      383032 :          pack_tmp = ISHFT(pack_tmp, -52)
   41800      383032 :          idata = idata + 1
   41801      383032 :          data_tmp = full_data(idata)
   41802      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41803      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41804      383032 :          pack_tmp = ISHFT(pack_tmp, 0)
   41805      383032 :          idata = idata + 1
   41806      383032 :          data_tmp = full_data(idata)
   41807             :          data_tmp = ISHFT(data_tmp, 12)
   41808      383032 :          data_tmp = IAND(data_tmp, mask_left(0))
   41809      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41810      383032 :          ipack = ipack + 1
   41811      383032 :          packed_data(ipack) = pack_tmp
   41812      383032 :          data_tmp = full_data(idata)
   41813      383032 :          pack_tmp = ISHFT(data_tmp, 12)
   41814      383032 :          pack_tmp = ISHFT(pack_tmp, -12)
   41815      383032 :          idata = idata + 1
   41816      383032 :          data_tmp = full_data(idata)
   41817      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41818      383032 :          data_tmp = IAND(data_tmp, mask_left(12))
   41819      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41820      383032 :          ipack = ipack + 1
   41821      383032 :          packed_data(ipack) = pack_tmp
   41822      383032 :          data_tmp = full_data(idata)
   41823      383032 :          pack_tmp = ISHFT(data_tmp, 24)
   41824      383032 :          pack_tmp = ISHFT(pack_tmp, -24)
   41825      383032 :          idata = idata + 1
   41826      383032 :          data_tmp = full_data(idata)
   41827      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41828      383032 :          data_tmp = IAND(data_tmp, mask_left(24))
   41829      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41830      383032 :          ipack = ipack + 1
   41831      383032 :          packed_data(ipack) = pack_tmp
   41832      383032 :          data_tmp = full_data(idata)
   41833      383032 :          pack_tmp = ISHFT(data_tmp, 36)
   41834      383032 :          pack_tmp = ISHFT(pack_tmp, -36)
   41835      383032 :          idata = idata + 1
   41836      383032 :          data_tmp = full_data(idata)
   41837      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41838      383032 :          data_tmp = IAND(data_tmp, mask_left(36))
   41839      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41840      383032 :          ipack = ipack + 1
   41841      383032 :          packed_data(ipack) = pack_tmp
   41842      383032 :          data_tmp = full_data(idata)
   41843      383032 :          pack_tmp = ISHFT(data_tmp, 48)
   41844      383032 :          pack_tmp = ISHFT(pack_tmp, -48)
   41845      383032 :          idata = idata + 1
   41846      383032 :          data_tmp = full_data(idata)
   41847      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41848      383032 :          data_tmp = IAND(data_tmp, mask_left(48))
   41849      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41850      383032 :          ipack = ipack + 1
   41851      383032 :          packed_data(ipack) = pack_tmp
   41852      383032 :          data_tmp = full_data(idata)
   41853      383032 :          pack_tmp = ISHFT(data_tmp, 60)
   41854      383032 :          pack_tmp = ISHFT(pack_tmp, -52)
   41855      383032 :          idata = idata + 1
   41856      383032 :          data_tmp = full_data(idata)
   41857      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41858      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41859      383032 :          pack_tmp = ISHFT(pack_tmp, -8)
   41860      383032 :          idata = idata + 1
   41861      383032 :          data_tmp = full_data(idata)
   41862      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41863      383032 :          data_tmp = IAND(data_tmp, mask_left(8))
   41864      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41865      383032 :          ipack = ipack + 1
   41866      383032 :          packed_data(ipack) = pack_tmp
   41867      383032 :          data_tmp = full_data(idata)
   41868      383032 :          pack_tmp = ISHFT(data_tmp, 20)
   41869      383032 :          pack_tmp = ISHFT(pack_tmp, -20)
   41870      383032 :          idata = idata + 1
   41871      383032 :          data_tmp = full_data(idata)
   41872      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41873      383032 :          data_tmp = IAND(data_tmp, mask_left(20))
   41874      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41875      383032 :          ipack = ipack + 1
   41876      383032 :          packed_data(ipack) = pack_tmp
   41877      383032 :          data_tmp = full_data(idata)
   41878      383032 :          pack_tmp = ISHFT(data_tmp, 32)
   41879      383032 :          pack_tmp = ISHFT(pack_tmp, -32)
   41880      383032 :          idata = idata + 1
   41881      383032 :          data_tmp = full_data(idata)
   41882      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41883      383032 :          data_tmp = IAND(data_tmp, mask_left(32))
   41884      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41885      383032 :          ipack = ipack + 1
   41886      383032 :          packed_data(ipack) = pack_tmp
   41887      383032 :          data_tmp = full_data(idata)
   41888      383032 :          pack_tmp = ISHFT(data_tmp, 44)
   41889      383032 :          pack_tmp = ISHFT(pack_tmp, -44)
   41890      383032 :          idata = idata + 1
   41891      383032 :          data_tmp = full_data(idata)
   41892      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41893      383032 :          data_tmp = IAND(data_tmp, mask_left(44))
   41894      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41895      383032 :          ipack = ipack + 1
   41896      383032 :          packed_data(ipack) = pack_tmp
   41897      383032 :          data_tmp = full_data(idata)
   41898      383032 :          pack_tmp = ISHFT(data_tmp, 56)
   41899      383032 :          pack_tmp = ISHFT(pack_tmp, -52)
   41900      383032 :          idata = idata + 1
   41901      383032 :          data_tmp = full_data(idata)
   41902      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41903      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41904      383032 :          pack_tmp = ISHFT(pack_tmp, -4)
   41905      383032 :          idata = idata + 1
   41906      383032 :          data_tmp = full_data(idata)
   41907      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41908      383032 :          data_tmp = IAND(data_tmp, mask_left(4))
   41909      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41910      383032 :          ipack = ipack + 1
   41911      383032 :          packed_data(ipack) = pack_tmp
   41912      383032 :          data_tmp = full_data(idata)
   41913      383032 :          pack_tmp = ISHFT(data_tmp, 16)
   41914      383032 :          pack_tmp = ISHFT(pack_tmp, -16)
   41915      383032 :          idata = idata + 1
   41916      383032 :          data_tmp = full_data(idata)
   41917      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41918      383032 :          data_tmp = IAND(data_tmp, mask_left(16))
   41919      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41920      383032 :          ipack = ipack + 1
   41921      383032 :          packed_data(ipack) = pack_tmp
   41922      383032 :          data_tmp = full_data(idata)
   41923      383032 :          pack_tmp = ISHFT(data_tmp, 28)
   41924      383032 :          pack_tmp = ISHFT(pack_tmp, -28)
   41925      383032 :          idata = idata + 1
   41926      383032 :          data_tmp = full_data(idata)
   41927      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41928      383032 :          data_tmp = IAND(data_tmp, mask_left(28))
   41929      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41930      383032 :          ipack = ipack + 1
   41931      383032 :          packed_data(ipack) = pack_tmp
   41932      383032 :          data_tmp = full_data(idata)
   41933      383032 :          pack_tmp = ISHFT(data_tmp, 40)
   41934      383032 :          pack_tmp = ISHFT(pack_tmp, -40)
   41935      383032 :          idata = idata + 1
   41936      383032 :          data_tmp = full_data(idata)
   41937      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41938      383032 :          data_tmp = IAND(data_tmp, mask_left(40))
   41939      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41940      383032 :          ipack = ipack + 1
   41941      383032 :          packed_data(ipack) = pack_tmp
   41942      383032 :          data_tmp = full_data(idata)
   41943      383032 :          pack_tmp = ISHFT(data_tmp, 52)
   41944      383032 :          pack_tmp = ISHFT(pack_tmp, -52)
   41945      383032 :          idata = idata + 1
   41946      383032 :          data_tmp = full_data(idata)
   41947      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41948      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41949      383032 :          pack_tmp = ISHFT(pack_tmp, 0)
   41950      383032 :          idata = idata + 1
   41951      383032 :          data_tmp = full_data(idata)
   41952             :          data_tmp = ISHFT(data_tmp, 12)
   41953      383032 :          data_tmp = IAND(data_tmp, mask_left(0))
   41954      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41955      383032 :          ipack = ipack + 1
   41956      383032 :          packed_data(ipack) = pack_tmp
   41957      383032 :          data_tmp = full_data(idata)
   41958      383032 :          pack_tmp = ISHFT(data_tmp, 12)
   41959      383032 :          pack_tmp = ISHFT(pack_tmp, -12)
   41960      383032 :          idata = idata + 1
   41961      383032 :          data_tmp = full_data(idata)
   41962      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41963      383032 :          data_tmp = IAND(data_tmp, mask_left(12))
   41964      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41965      383032 :          ipack = ipack + 1
   41966      383032 :          packed_data(ipack) = pack_tmp
   41967      383032 :          data_tmp = full_data(idata)
   41968      383032 :          pack_tmp = ISHFT(data_tmp, 24)
   41969      383032 :          pack_tmp = ISHFT(pack_tmp, -24)
   41970      383032 :          idata = idata + 1
   41971      383032 :          data_tmp = full_data(idata)
   41972      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41973      383032 :          data_tmp = IAND(data_tmp, mask_left(24))
   41974      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41975      383032 :          ipack = ipack + 1
   41976      383032 :          packed_data(ipack) = pack_tmp
   41977      383032 :          data_tmp = full_data(idata)
   41978      383032 :          pack_tmp = ISHFT(data_tmp, 36)
   41979      383032 :          pack_tmp = ISHFT(pack_tmp, -36)
   41980      383032 :          idata = idata + 1
   41981      383032 :          data_tmp = full_data(idata)
   41982      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41983      383032 :          data_tmp = IAND(data_tmp, mask_left(36))
   41984      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41985      383032 :          ipack = ipack + 1
   41986      383032 :          packed_data(ipack) = pack_tmp
   41987      383032 :          data_tmp = full_data(idata)
   41988      383032 :          pack_tmp = ISHFT(data_tmp, 48)
   41989      383032 :          pack_tmp = ISHFT(pack_tmp, -48)
   41990      383032 :          idata = idata + 1
   41991      383032 :          data_tmp = full_data(idata)
   41992      383032 :          data_tmp = ISHFT(data_tmp, 12)
   41993      383032 :          data_tmp = IAND(data_tmp, mask_left(48))
   41994      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41995      383032 :          ipack = ipack + 1
   41996      383032 :          packed_data(ipack) = pack_tmp
   41997      383032 :          data_tmp = full_data(idata)
   41998      383032 :          pack_tmp = ISHFT(data_tmp, 60)
   41999      383032 :          pack_tmp = ISHFT(pack_tmp, -52)
   42000      383032 :          idata = idata + 1
   42001      383032 :          data_tmp = full_data(idata)
   42002      383032 :          data_tmp = ISHFT(data_tmp, 12)
   42003      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42004      383032 :          pack_tmp = ISHFT(pack_tmp, -8)
   42005      383032 :          idata = idata + 1
   42006      383032 :          data_tmp = full_data(idata)
   42007      383032 :          data_tmp = ISHFT(data_tmp, 12)
   42008      383032 :          data_tmp = IAND(data_tmp, mask_left(8))
   42009      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42010      383032 :          ipack = ipack + 1
   42011      383032 :          packed_data(ipack) = pack_tmp
   42012      383032 :          data_tmp = full_data(idata)
   42013      383032 :          pack_tmp = ISHFT(data_tmp, 20)
   42014      383032 :          pack_tmp = ISHFT(pack_tmp, -20)
   42015      383032 :          idata = idata + 1
   42016      383032 :          data_tmp = full_data(idata)
   42017      383032 :          data_tmp = ISHFT(data_tmp, 12)
   42018      383032 :          data_tmp = IAND(data_tmp, mask_left(20))
   42019      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42020      383032 :          ipack = ipack + 1
   42021      383032 :          packed_data(ipack) = pack_tmp
   42022      383032 :          data_tmp = full_data(idata)
   42023      383032 :          pack_tmp = ISHFT(data_tmp, 32)
   42024      383032 :          pack_tmp = ISHFT(pack_tmp, -32)
   42025      383032 :          idata = idata + 1
   42026      383032 :          data_tmp = full_data(idata)
   42027      383032 :          data_tmp = ISHFT(data_tmp, 12)
   42028      383032 :          data_tmp = IAND(data_tmp, mask_left(32))
   42029      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42030      383032 :          ipack = ipack + 1
   42031      383032 :          packed_data(ipack) = pack_tmp
   42032      383032 :          data_tmp = full_data(idata)
   42033      383032 :          pack_tmp = ISHFT(data_tmp, 44)
   42034      383032 :          pack_tmp = ISHFT(pack_tmp, -44)
   42035      383032 :          idata = idata + 1
   42036      383032 :          data_tmp = full_data(idata)
   42037      383032 :          data_tmp = ISHFT(data_tmp, 12)
   42038      383032 :          data_tmp = IAND(data_tmp, mask_left(44))
   42039      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42040      383032 :          ipack = ipack + 1
   42041      383032 :          packed_data(ipack) = pack_tmp
   42042      383032 :          data_tmp = full_data(idata)
   42043      383032 :          pack_tmp = ISHFT(data_tmp, 56)
   42044      383032 :          pack_tmp = ISHFT(pack_tmp, -52)
   42045      383032 :          idata = idata + 1
   42046      383032 :          data_tmp = full_data(idata)
   42047      383032 :          data_tmp = ISHFT(data_tmp, 12)
   42048      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42049      383032 :          pack_tmp = ISHFT(pack_tmp, -4)
   42050      383032 :          idata = idata + 1
   42051      383032 :          data_tmp = full_data(idata)
   42052      383032 :          data_tmp = ISHFT(data_tmp, 12)
   42053      383032 :          data_tmp = IAND(data_tmp, mask_left(4))
   42054      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42055      383032 :          ipack = ipack + 1
   42056      383032 :          packed_data(ipack) = pack_tmp
   42057      383032 :          data_tmp = full_data(idata)
   42058      383032 :          pack_tmp = ISHFT(data_tmp, 16)
   42059      383032 :          pack_tmp = ISHFT(pack_tmp, -16)
   42060      383032 :          idata = idata + 1
   42061      383032 :          data_tmp = full_data(idata)
   42062      383032 :          data_tmp = ISHFT(data_tmp, 12)
   42063      383032 :          data_tmp = IAND(data_tmp, mask_left(16))
   42064      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42065      383032 :          ipack = ipack + 1
   42066      383032 :          packed_data(ipack) = pack_tmp
   42067      383032 :          data_tmp = full_data(idata)
   42068      383032 :          pack_tmp = ISHFT(data_tmp, 28)
   42069      383032 :          pack_tmp = ISHFT(pack_tmp, -28)
   42070      383032 :          idata = idata + 1
   42071      383032 :          data_tmp = full_data(idata)
   42072      383032 :          data_tmp = ISHFT(data_tmp, 12)
   42073      383032 :          data_tmp = IAND(data_tmp, mask_left(28))
   42074      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42075      383032 :          ipack = ipack + 1
   42076      383032 :          packed_data(ipack) = pack_tmp
   42077      383032 :          data_tmp = full_data(idata)
   42078      383032 :          pack_tmp = ISHFT(data_tmp, 40)
   42079      383032 :          pack_tmp = ISHFT(pack_tmp, -40)
   42080      383032 :          idata = idata + 1
   42081      383032 :          data_tmp = full_data(idata)
   42082      383032 :          data_tmp = ISHFT(data_tmp, 12)
   42083      383032 :          data_tmp = IAND(data_tmp, mask_left(40))
   42084      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42085      383032 :          ipack = ipack + 1
   42086      383032 :          packed_data(ipack) = pack_tmp
   42087      383032 :          data_tmp = full_data(idata)
   42088      383032 :          pack_tmp = ISHFT(data_tmp, 52)
   42089      383032 :          pack_tmp = ISHFT(pack_tmp, -52)
   42090      383032 :          idata = idata + 1
   42091      383032 :          data_tmp = full_data(idata)
   42092      383032 :          data_tmp = ISHFT(data_tmp, 12)
   42093      383032 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42094             :          pack_tmp = ISHFT(pack_tmp, 0)
   42095      383032 :          pack_tmp = ISHFT(pack_tmp, 0)
   42096      383032 :          ipack = ipack + 1
   42097      383042 :          packed_data(ipack) = pack_tmp
   42098             :       END DO
   42099       24186 :       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       24186 :    END SUBROUTINE ints2bits_52
   42103             : 
   42104             : ! **************************************************************************************************
   42105             : !> \brief ...
   42106             : !> \param Ndata ...
   42107             : !> \param packed_data ...
   42108             : !> \param full_data ...
   42109             : ! **************************************************************************************************
   42110      100439 :    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      100439 :       ipack = 0
   42121      100439 :       idata = 0
   42122      100439 :       pack_tmp = 0
   42123      100439 :       Ndata_rep = (Ndata/64)*64
   42124      100439 :       DO kdata = 1, Ndata_rep, 64
   42125     1567176 :          idata = idata + 1
   42126     1567176 :          data_tmp = ISHFT(pack_tmp, 52)
   42127     1567176 :          ipack = ipack + 1
   42128     1567176 :          pack_tmp = packed_data(ipack)
   42129     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   42130     1567176 :          pack_tmp = ISHFT(pack_tmp, -52)
   42131     1567176 :          idata = idata + 1
   42132     1567176 :          data_tmp = ISHFT(pack_tmp, 40)
   42133     1567176 :          ipack = ipack + 1
   42134     1567176 :          pack_tmp = packed_data(ipack)
   42135     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   42136     1567176 :          pack_tmp = ISHFT(pack_tmp, -40)
   42137     1567176 :          idata = idata + 1
   42138     1567176 :          data_tmp = ISHFT(pack_tmp, 28)
   42139     1567176 :          ipack = ipack + 1
   42140     1567176 :          pack_tmp = packed_data(ipack)
   42141     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   42142     1567176 :          pack_tmp = ISHFT(pack_tmp, -28)
   42143     1567176 :          idata = idata + 1
   42144     1567176 :          data_tmp = ISHFT(pack_tmp, 16)
   42145     1567176 :          ipack = ipack + 1
   42146     1567176 :          pack_tmp = packed_data(ipack)
   42147     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   42148     1567176 :          pack_tmp = ISHFT(pack_tmp, -16)
   42149     1567176 :          idata = idata + 1
   42150     1567176 :          data_tmp = ISHFT(pack_tmp, 4)
   42151     1567176 :          ipack = ipack + 1
   42152     1567176 :          pack_tmp = packed_data(ipack)
   42153     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   42154     1567176 :          pack_tmp = ISHFT(pack_tmp, -4)
   42155     1567176 :          idata = idata + 1
   42156     1567176 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42157     1567176 :          full_data(idata) = data_tmp
   42158     1567176 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42159     1567176 :          idata = idata + 1
   42160     1567176 :          data_tmp = ISHFT(pack_tmp, 44)
   42161     1567176 :          ipack = ipack + 1
   42162     1567176 :          pack_tmp = packed_data(ipack)
   42163     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   42164     1567176 :          pack_tmp = ISHFT(pack_tmp, -44)
   42165     1567176 :          idata = idata + 1
   42166     1567176 :          data_tmp = ISHFT(pack_tmp, 32)
   42167     1567176 :          ipack = ipack + 1
   42168     1567176 :          pack_tmp = packed_data(ipack)
   42169     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   42170     1567176 :          pack_tmp = ISHFT(pack_tmp, -32)
   42171     1567176 :          idata = idata + 1
   42172     1567176 :          data_tmp = ISHFT(pack_tmp, 20)
   42173     1567176 :          ipack = ipack + 1
   42174     1567176 :          pack_tmp = packed_data(ipack)
   42175     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   42176     1567176 :          pack_tmp = ISHFT(pack_tmp, -20)
   42177     1567176 :          idata = idata + 1
   42178     1567176 :          data_tmp = ISHFT(pack_tmp, 8)
   42179     1567176 :          ipack = ipack + 1
   42180     1567176 :          pack_tmp = packed_data(ipack)
   42181     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   42182     1567176 :          pack_tmp = ISHFT(pack_tmp, -8)
   42183     1567176 :          idata = idata + 1
   42184     1567176 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42185     1567176 :          full_data(idata) = data_tmp
   42186     1567176 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42187     1567176 :          idata = idata + 1
   42188     1567176 :          data_tmp = ISHFT(pack_tmp, 48)
   42189     1567176 :          ipack = ipack + 1
   42190     1567176 :          pack_tmp = packed_data(ipack)
   42191     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   42192     1567176 :          pack_tmp = ISHFT(pack_tmp, -48)
   42193     1567176 :          idata = idata + 1
   42194     1567176 :          data_tmp = ISHFT(pack_tmp, 36)
   42195     1567176 :          ipack = ipack + 1
   42196     1567176 :          pack_tmp = packed_data(ipack)
   42197     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   42198     1567176 :          pack_tmp = ISHFT(pack_tmp, -36)
   42199     1567176 :          idata = idata + 1
   42200     1567176 :          data_tmp = ISHFT(pack_tmp, 24)
   42201     1567176 :          ipack = ipack + 1
   42202     1567176 :          pack_tmp = packed_data(ipack)
   42203     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   42204     1567176 :          pack_tmp = ISHFT(pack_tmp, -24)
   42205     1567176 :          idata = idata + 1
   42206     1567176 :          data_tmp = ISHFT(pack_tmp, 12)
   42207     1567176 :          ipack = ipack + 1
   42208     1567176 :          pack_tmp = packed_data(ipack)
   42209     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   42210     1567176 :          pack_tmp = ISHFT(pack_tmp, -12)
   42211     1567176 :          idata = idata + 1
   42212     1567176 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42213     1567176 :          full_data(idata) = data_tmp
   42214     1567176 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42215     1567176 :          idata = idata + 1
   42216     1567176 :          data_tmp = ISHFT(pack_tmp, 52)
   42217     1567176 :          ipack = ipack + 1
   42218     1567176 :          pack_tmp = packed_data(ipack)
   42219     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   42220     1567176 :          pack_tmp = ISHFT(pack_tmp, -52)
   42221     1567176 :          idata = idata + 1
   42222     1567176 :          data_tmp = ISHFT(pack_tmp, 40)
   42223     1567176 :          ipack = ipack + 1
   42224     1567176 :          pack_tmp = packed_data(ipack)
   42225     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   42226     1567176 :          pack_tmp = ISHFT(pack_tmp, -40)
   42227     1567176 :          idata = idata + 1
   42228     1567176 :          data_tmp = ISHFT(pack_tmp, 28)
   42229     1567176 :          ipack = ipack + 1
   42230     1567176 :          pack_tmp = packed_data(ipack)
   42231     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   42232     1567176 :          pack_tmp = ISHFT(pack_tmp, -28)
   42233     1567176 :          idata = idata + 1
   42234     1567176 :          data_tmp = ISHFT(pack_tmp, 16)
   42235     1567176 :          ipack = ipack + 1
   42236     1567176 :          pack_tmp = packed_data(ipack)
   42237     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   42238     1567176 :          pack_tmp = ISHFT(pack_tmp, -16)
   42239     1567176 :          idata = idata + 1
   42240     1567176 :          data_tmp = ISHFT(pack_tmp, 4)
   42241     1567176 :          ipack = ipack + 1
   42242     1567176 :          pack_tmp = packed_data(ipack)
   42243     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   42244     1567176 :          pack_tmp = ISHFT(pack_tmp, -4)
   42245     1567176 :          idata = idata + 1
   42246     1567176 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42247     1567176 :          full_data(idata) = data_tmp
   42248     1567176 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42249     1567176 :          idata = idata + 1
   42250     1567176 :          data_tmp = ISHFT(pack_tmp, 44)
   42251     1567176 :          ipack = ipack + 1
   42252     1567176 :          pack_tmp = packed_data(ipack)
   42253     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   42254     1567176 :          pack_tmp = ISHFT(pack_tmp, -44)
   42255     1567176 :          idata = idata + 1
   42256     1567176 :          data_tmp = ISHFT(pack_tmp, 32)
   42257     1567176 :          ipack = ipack + 1
   42258     1567176 :          pack_tmp = packed_data(ipack)
   42259     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   42260     1567176 :          pack_tmp = ISHFT(pack_tmp, -32)
   42261     1567176 :          idata = idata + 1
   42262     1567176 :          data_tmp = ISHFT(pack_tmp, 20)
   42263     1567176 :          ipack = ipack + 1
   42264     1567176 :          pack_tmp = packed_data(ipack)
   42265     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   42266     1567176 :          pack_tmp = ISHFT(pack_tmp, -20)
   42267     1567176 :          idata = idata + 1
   42268     1567176 :          data_tmp = ISHFT(pack_tmp, 8)
   42269     1567176 :          ipack = ipack + 1
   42270     1567176 :          pack_tmp = packed_data(ipack)
   42271     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   42272     1567176 :          pack_tmp = ISHFT(pack_tmp, -8)
   42273     1567176 :          idata = idata + 1
   42274     1567176 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42275     1567176 :          full_data(idata) = data_tmp
   42276     1567176 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42277     1567176 :          idata = idata + 1
   42278     1567176 :          data_tmp = ISHFT(pack_tmp, 48)
   42279     1567176 :          ipack = ipack + 1
   42280     1567176 :          pack_tmp = packed_data(ipack)
   42281     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   42282     1567176 :          pack_tmp = ISHFT(pack_tmp, -48)
   42283     1567176 :          idata = idata + 1
   42284     1567176 :          data_tmp = ISHFT(pack_tmp, 36)
   42285     1567176 :          ipack = ipack + 1
   42286     1567176 :          pack_tmp = packed_data(ipack)
   42287     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   42288     1567176 :          pack_tmp = ISHFT(pack_tmp, -36)
   42289     1567176 :          idata = idata + 1
   42290     1567176 :          data_tmp = ISHFT(pack_tmp, 24)
   42291     1567176 :          ipack = ipack + 1
   42292     1567176 :          pack_tmp = packed_data(ipack)
   42293     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   42294     1567176 :          pack_tmp = ISHFT(pack_tmp, -24)
   42295     1567176 :          idata = idata + 1
   42296     1567176 :          data_tmp = ISHFT(pack_tmp, 12)
   42297     1567176 :          ipack = ipack + 1
   42298     1567176 :          pack_tmp = packed_data(ipack)
   42299     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   42300     1567176 :          pack_tmp = ISHFT(pack_tmp, -12)
   42301     1567176 :          idata = idata + 1
   42302     1567176 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42303     1567176 :          full_data(idata) = data_tmp
   42304     1567176 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42305     1567176 :          idata = idata + 1
   42306     1567176 :          data_tmp = ISHFT(pack_tmp, 52)
   42307     1567176 :          ipack = ipack + 1
   42308     1567176 :          pack_tmp = packed_data(ipack)
   42309     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   42310     1567176 :          pack_tmp = ISHFT(pack_tmp, -52)
   42311     1567176 :          idata = idata + 1
   42312     1567176 :          data_tmp = ISHFT(pack_tmp, 40)
   42313     1567176 :          ipack = ipack + 1
   42314     1567176 :          pack_tmp = packed_data(ipack)
   42315     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   42316     1567176 :          pack_tmp = ISHFT(pack_tmp, -40)
   42317     1567176 :          idata = idata + 1
   42318     1567176 :          data_tmp = ISHFT(pack_tmp, 28)
   42319     1567176 :          ipack = ipack + 1
   42320     1567176 :          pack_tmp = packed_data(ipack)
   42321     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   42322     1567176 :          pack_tmp = ISHFT(pack_tmp, -28)
   42323     1567176 :          idata = idata + 1
   42324     1567176 :          data_tmp = ISHFT(pack_tmp, 16)
   42325     1567176 :          ipack = ipack + 1
   42326     1567176 :          pack_tmp = packed_data(ipack)
   42327     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   42328     1567176 :          pack_tmp = ISHFT(pack_tmp, -16)
   42329     1567176 :          idata = idata + 1
   42330     1567176 :          data_tmp = ISHFT(pack_tmp, 4)
   42331     1567176 :          ipack = ipack + 1
   42332     1567176 :          pack_tmp = packed_data(ipack)
   42333     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   42334     1567176 :          pack_tmp = ISHFT(pack_tmp, -4)
   42335     1567176 :          idata = idata + 1
   42336     1567176 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42337     1567176 :          full_data(idata) = data_tmp
   42338     1567176 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42339     1567176 :          idata = idata + 1
   42340     1567176 :          data_tmp = ISHFT(pack_tmp, 44)
   42341     1567176 :          ipack = ipack + 1
   42342     1567176 :          pack_tmp = packed_data(ipack)
   42343     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   42344     1567176 :          pack_tmp = ISHFT(pack_tmp, -44)
   42345     1567176 :          idata = idata + 1
   42346     1567176 :          data_tmp = ISHFT(pack_tmp, 32)
   42347     1567176 :          ipack = ipack + 1
   42348     1567176 :          pack_tmp = packed_data(ipack)
   42349     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   42350     1567176 :          pack_tmp = ISHFT(pack_tmp, -32)
   42351     1567176 :          idata = idata + 1
   42352     1567176 :          data_tmp = ISHFT(pack_tmp, 20)
   42353     1567176 :          ipack = ipack + 1
   42354     1567176 :          pack_tmp = packed_data(ipack)
   42355     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   42356     1567176 :          pack_tmp = ISHFT(pack_tmp, -20)
   42357     1567176 :          idata = idata + 1
   42358     1567176 :          data_tmp = ISHFT(pack_tmp, 8)
   42359     1567176 :          ipack = ipack + 1
   42360     1567176 :          pack_tmp = packed_data(ipack)
   42361     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   42362     1567176 :          pack_tmp = ISHFT(pack_tmp, -8)
   42363     1567176 :          idata = idata + 1
   42364     1567176 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42365     1567176 :          full_data(idata) = data_tmp
   42366     1567176 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42367     1567176 :          idata = idata + 1
   42368     1567176 :          data_tmp = ISHFT(pack_tmp, 48)
   42369     1567176 :          ipack = ipack + 1
   42370     1567176 :          pack_tmp = packed_data(ipack)
   42371     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   42372     1567176 :          pack_tmp = ISHFT(pack_tmp, -48)
   42373     1567176 :          idata = idata + 1
   42374     1567176 :          data_tmp = ISHFT(pack_tmp, 36)
   42375     1567176 :          ipack = ipack + 1
   42376     1567176 :          pack_tmp = packed_data(ipack)
   42377     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   42378     1567176 :          pack_tmp = ISHFT(pack_tmp, -36)
   42379     1567176 :          idata = idata + 1
   42380     1567176 :          data_tmp = ISHFT(pack_tmp, 24)
   42381     1567176 :          ipack = ipack + 1
   42382     1567176 :          pack_tmp = packed_data(ipack)
   42383     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   42384     1567176 :          pack_tmp = ISHFT(pack_tmp, -24)
   42385     1567176 :          idata = idata + 1
   42386     1567176 :          data_tmp = ISHFT(pack_tmp, 12)
   42387     1567176 :          ipack = ipack + 1
   42388     1567176 :          pack_tmp = packed_data(ipack)
   42389     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   42390     1567176 :          pack_tmp = ISHFT(pack_tmp, -12)
   42391     1567176 :          idata = idata + 1
   42392     1567176 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42393     1567176 :          full_data(idata) = data_tmp
   42394     1567176 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42395     1567176 :          idata = idata + 1
   42396     1567176 :          data_tmp = ISHFT(pack_tmp, 52)
   42397     1567176 :          ipack = ipack + 1
   42398     1567176 :          pack_tmp = packed_data(ipack)
   42399     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   42400     1567176 :          pack_tmp = ISHFT(pack_tmp, -52)
   42401     1567176 :          idata = idata + 1
   42402     1567176 :          data_tmp = ISHFT(pack_tmp, 40)
   42403     1567176 :          ipack = ipack + 1
   42404     1567176 :          pack_tmp = packed_data(ipack)
   42405     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   42406     1567176 :          pack_tmp = ISHFT(pack_tmp, -40)
   42407     1567176 :          idata = idata + 1
   42408     1567176 :          data_tmp = ISHFT(pack_tmp, 28)
   42409     1567176 :          ipack = ipack + 1
   42410     1567176 :          pack_tmp = packed_data(ipack)
   42411     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   42412     1567176 :          pack_tmp = ISHFT(pack_tmp, -28)
   42413     1567176 :          idata = idata + 1
   42414     1567176 :          data_tmp = ISHFT(pack_tmp, 16)
   42415     1567176 :          ipack = ipack + 1
   42416     1567176 :          pack_tmp = packed_data(ipack)
   42417     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   42418     1567176 :          pack_tmp = ISHFT(pack_tmp, -16)
   42419     1567176 :          idata = idata + 1
   42420     1567176 :          data_tmp = ISHFT(pack_tmp, 4)
   42421     1567176 :          ipack = ipack + 1
   42422     1567176 :          pack_tmp = packed_data(ipack)
   42423     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   42424     1567176 :          pack_tmp = ISHFT(pack_tmp, -4)
   42425     1567176 :          idata = idata + 1
   42426     1567176 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42427     1567176 :          full_data(idata) = data_tmp
   42428     1567176 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42429     1567176 :          idata = idata + 1
   42430     1567176 :          data_tmp = ISHFT(pack_tmp, 44)
   42431     1567176 :          ipack = ipack + 1
   42432     1567176 :          pack_tmp = packed_data(ipack)
   42433     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   42434     1567176 :          pack_tmp = ISHFT(pack_tmp, -44)
   42435     1567176 :          idata = idata + 1
   42436     1567176 :          data_tmp = ISHFT(pack_tmp, 32)
   42437     1567176 :          ipack = ipack + 1
   42438     1567176 :          pack_tmp = packed_data(ipack)
   42439     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   42440     1567176 :          pack_tmp = ISHFT(pack_tmp, -32)
   42441     1567176 :          idata = idata + 1
   42442     1567176 :          data_tmp = ISHFT(pack_tmp, 20)
   42443     1567176 :          ipack = ipack + 1
   42444     1567176 :          pack_tmp = packed_data(ipack)
   42445     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   42446     1567176 :          pack_tmp = ISHFT(pack_tmp, -20)
   42447     1567176 :          idata = idata + 1
   42448     1567176 :          data_tmp = ISHFT(pack_tmp, 8)
   42449     1567176 :          ipack = ipack + 1
   42450     1567176 :          pack_tmp = packed_data(ipack)
   42451     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   42452     1567176 :          pack_tmp = ISHFT(pack_tmp, -8)
   42453     1567176 :          idata = idata + 1
   42454     1567176 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42455     1567176 :          full_data(idata) = data_tmp
   42456     1567176 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42457     1567176 :          idata = idata + 1
   42458     1567176 :          data_tmp = ISHFT(pack_tmp, 48)
   42459     1567176 :          ipack = ipack + 1
   42460     1567176 :          pack_tmp = packed_data(ipack)
   42461     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   42462     1567176 :          pack_tmp = ISHFT(pack_tmp, -48)
   42463     1567176 :          idata = idata + 1
   42464     1567176 :          data_tmp = ISHFT(pack_tmp, 36)
   42465     1567176 :          ipack = ipack + 1
   42466     1567176 :          pack_tmp = packed_data(ipack)
   42467     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   42468     1567176 :          pack_tmp = ISHFT(pack_tmp, -36)
   42469     1567176 :          idata = idata + 1
   42470     1567176 :          data_tmp = ISHFT(pack_tmp, 24)
   42471     1567176 :          ipack = ipack + 1
   42472     1567176 :          pack_tmp = packed_data(ipack)
   42473     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   42474     1567176 :          pack_tmp = ISHFT(pack_tmp, -24)
   42475     1567176 :          idata = idata + 1
   42476     1567176 :          data_tmp = ISHFT(pack_tmp, 12)
   42477     1567176 :          ipack = ipack + 1
   42478     1567176 :          pack_tmp = packed_data(ipack)
   42479     1567176 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   42480     1567176 :          pack_tmp = ISHFT(pack_tmp, -12)
   42481     1567176 :          idata = idata + 1
   42482     1567176 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42483     1567176 :          full_data(idata) = data_tmp
   42484     1567196 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42485             :       END DO
   42486      100439 :       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      100439 :    END SUBROUTINE bits2ints_52
   42490             : 
   42491             : ! **************************************************************************************************
   42492             : !> \brief ...
   42493             : !> \param Ndata ...
   42494             : !> \param packed_data ...
   42495             : !> \param full_data ...
   42496             : ! **************************************************************************************************
   42497       24176 :    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       24176 :       idata = 0
   42508       24176 :       ipack = 0
   42509       24176 :       Ndata_rep = (Ndata/64)*64
   42510       24176 :       DO kdata = 1, Ndata_rep, 64
   42511      382872 :          pack_tmp = 0
   42512      382872 :          idata = idata + 1
   42513      382872 :          data_tmp = full_data(idata)
   42514      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42515      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42516      382872 :          pack_tmp = ISHFT(pack_tmp, -11)
   42517      382872 :          idata = idata + 1
   42518      382872 :          data_tmp = full_data(idata)
   42519      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42520      382872 :          data_tmp = IAND(data_tmp, mask_left(11))
   42521      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42522      382872 :          ipack = ipack + 1
   42523      382872 :          packed_data(ipack) = pack_tmp
   42524      382872 :          data_tmp = full_data(idata)
   42525      382872 :          pack_tmp = ISHFT(data_tmp, 22)
   42526      382872 :          pack_tmp = ISHFT(pack_tmp, -22)
   42527      382872 :          idata = idata + 1
   42528      382872 :          data_tmp = full_data(idata)
   42529      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42530      382872 :          data_tmp = IAND(data_tmp, mask_left(22))
   42531      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42532      382872 :          ipack = ipack + 1
   42533      382872 :          packed_data(ipack) = pack_tmp
   42534      382872 :          data_tmp = full_data(idata)
   42535      382872 :          pack_tmp = ISHFT(data_tmp, 33)
   42536      382872 :          pack_tmp = ISHFT(pack_tmp, -33)
   42537      382872 :          idata = idata + 1
   42538      382872 :          data_tmp = full_data(idata)
   42539      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42540      382872 :          data_tmp = IAND(data_tmp, mask_left(33))
   42541      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42542      382872 :          ipack = ipack + 1
   42543      382872 :          packed_data(ipack) = pack_tmp
   42544      382872 :          data_tmp = full_data(idata)
   42545      382872 :          pack_tmp = ISHFT(data_tmp, 44)
   42546      382872 :          pack_tmp = ISHFT(pack_tmp, -44)
   42547      382872 :          idata = idata + 1
   42548      382872 :          data_tmp = full_data(idata)
   42549      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42550      382872 :          data_tmp = IAND(data_tmp, mask_left(44))
   42551      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42552      382872 :          ipack = ipack + 1
   42553      382872 :          packed_data(ipack) = pack_tmp
   42554      382872 :          data_tmp = full_data(idata)
   42555      382872 :          pack_tmp = ISHFT(data_tmp, 55)
   42556      382872 :          pack_tmp = ISHFT(pack_tmp, -53)
   42557      382872 :          idata = idata + 1
   42558      382872 :          data_tmp = full_data(idata)
   42559      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42560      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42561      382872 :          pack_tmp = ISHFT(pack_tmp, -2)
   42562      382872 :          idata = idata + 1
   42563      382872 :          data_tmp = full_data(idata)
   42564      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42565      382872 :          data_tmp = IAND(data_tmp, mask_left(2))
   42566      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42567      382872 :          ipack = ipack + 1
   42568      382872 :          packed_data(ipack) = pack_tmp
   42569      382872 :          data_tmp = full_data(idata)
   42570      382872 :          pack_tmp = ISHFT(data_tmp, 13)
   42571      382872 :          pack_tmp = ISHFT(pack_tmp, -13)
   42572      382872 :          idata = idata + 1
   42573      382872 :          data_tmp = full_data(idata)
   42574      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42575      382872 :          data_tmp = IAND(data_tmp, mask_left(13))
   42576      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42577      382872 :          ipack = ipack + 1
   42578      382872 :          packed_data(ipack) = pack_tmp
   42579      382872 :          data_tmp = full_data(idata)
   42580      382872 :          pack_tmp = ISHFT(data_tmp, 24)
   42581      382872 :          pack_tmp = ISHFT(pack_tmp, -24)
   42582      382872 :          idata = idata + 1
   42583      382872 :          data_tmp = full_data(idata)
   42584      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42585      382872 :          data_tmp = IAND(data_tmp, mask_left(24))
   42586      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42587      382872 :          ipack = ipack + 1
   42588      382872 :          packed_data(ipack) = pack_tmp
   42589      382872 :          data_tmp = full_data(idata)
   42590      382872 :          pack_tmp = ISHFT(data_tmp, 35)
   42591      382872 :          pack_tmp = ISHFT(pack_tmp, -35)
   42592      382872 :          idata = idata + 1
   42593      382872 :          data_tmp = full_data(idata)
   42594      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42595      382872 :          data_tmp = IAND(data_tmp, mask_left(35))
   42596      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42597      382872 :          ipack = ipack + 1
   42598      382872 :          packed_data(ipack) = pack_tmp
   42599      382872 :          data_tmp = full_data(idata)
   42600      382872 :          pack_tmp = ISHFT(data_tmp, 46)
   42601      382872 :          pack_tmp = ISHFT(pack_tmp, -46)
   42602      382872 :          idata = idata + 1
   42603      382872 :          data_tmp = full_data(idata)
   42604      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42605      382872 :          data_tmp = IAND(data_tmp, mask_left(46))
   42606      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42607      382872 :          ipack = ipack + 1
   42608      382872 :          packed_data(ipack) = pack_tmp
   42609      382872 :          data_tmp = full_data(idata)
   42610      382872 :          pack_tmp = ISHFT(data_tmp, 57)
   42611      382872 :          pack_tmp = ISHFT(pack_tmp, -53)
   42612      382872 :          idata = idata + 1
   42613      382872 :          data_tmp = full_data(idata)
   42614      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42615      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42616      382872 :          pack_tmp = ISHFT(pack_tmp, -4)
   42617      382872 :          idata = idata + 1
   42618      382872 :          data_tmp = full_data(idata)
   42619      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42620      382872 :          data_tmp = IAND(data_tmp, mask_left(4))
   42621      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42622      382872 :          ipack = ipack + 1
   42623      382872 :          packed_data(ipack) = pack_tmp
   42624      382872 :          data_tmp = full_data(idata)
   42625      382872 :          pack_tmp = ISHFT(data_tmp, 15)
   42626      382872 :          pack_tmp = ISHFT(pack_tmp, -15)
   42627      382872 :          idata = idata + 1
   42628      382872 :          data_tmp = full_data(idata)
   42629      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42630      382872 :          data_tmp = IAND(data_tmp, mask_left(15))
   42631      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42632      382872 :          ipack = ipack + 1
   42633      382872 :          packed_data(ipack) = pack_tmp
   42634      382872 :          data_tmp = full_data(idata)
   42635      382872 :          pack_tmp = ISHFT(data_tmp, 26)
   42636      382872 :          pack_tmp = ISHFT(pack_tmp, -26)
   42637      382872 :          idata = idata + 1
   42638      382872 :          data_tmp = full_data(idata)
   42639      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42640      382872 :          data_tmp = IAND(data_tmp, mask_left(26))
   42641      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42642      382872 :          ipack = ipack + 1
   42643      382872 :          packed_data(ipack) = pack_tmp
   42644      382872 :          data_tmp = full_data(idata)
   42645      382872 :          pack_tmp = ISHFT(data_tmp, 37)
   42646      382872 :          pack_tmp = ISHFT(pack_tmp, -37)
   42647      382872 :          idata = idata + 1
   42648      382872 :          data_tmp = full_data(idata)
   42649      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42650      382872 :          data_tmp = IAND(data_tmp, mask_left(37))
   42651      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42652      382872 :          ipack = ipack + 1
   42653      382872 :          packed_data(ipack) = pack_tmp
   42654      382872 :          data_tmp = full_data(idata)
   42655      382872 :          pack_tmp = ISHFT(data_tmp, 48)
   42656      382872 :          pack_tmp = ISHFT(pack_tmp, -48)
   42657      382872 :          idata = idata + 1
   42658      382872 :          data_tmp = full_data(idata)
   42659      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42660      382872 :          data_tmp = IAND(data_tmp, mask_left(48))
   42661      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42662      382872 :          ipack = ipack + 1
   42663      382872 :          packed_data(ipack) = pack_tmp
   42664      382872 :          data_tmp = full_data(idata)
   42665      382872 :          pack_tmp = ISHFT(data_tmp, 59)
   42666      382872 :          pack_tmp = ISHFT(pack_tmp, -53)
   42667      382872 :          idata = idata + 1
   42668      382872 :          data_tmp = full_data(idata)
   42669      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42670      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42671      382872 :          pack_tmp = ISHFT(pack_tmp, -6)
   42672      382872 :          idata = idata + 1
   42673      382872 :          data_tmp = full_data(idata)
   42674      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42675      382872 :          data_tmp = IAND(data_tmp, mask_left(6))
   42676      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42677      382872 :          ipack = ipack + 1
   42678      382872 :          packed_data(ipack) = pack_tmp
   42679      382872 :          data_tmp = full_data(idata)
   42680      382872 :          pack_tmp = ISHFT(data_tmp, 17)
   42681      382872 :          pack_tmp = ISHFT(pack_tmp, -17)
   42682      382872 :          idata = idata + 1
   42683      382872 :          data_tmp = full_data(idata)
   42684      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42685      382872 :          data_tmp = IAND(data_tmp, mask_left(17))
   42686      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42687      382872 :          ipack = ipack + 1
   42688      382872 :          packed_data(ipack) = pack_tmp
   42689      382872 :          data_tmp = full_data(idata)
   42690      382872 :          pack_tmp = ISHFT(data_tmp, 28)
   42691      382872 :          pack_tmp = ISHFT(pack_tmp, -28)
   42692      382872 :          idata = idata + 1
   42693      382872 :          data_tmp = full_data(idata)
   42694      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42695      382872 :          data_tmp = IAND(data_tmp, mask_left(28))
   42696      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42697      382872 :          ipack = ipack + 1
   42698      382872 :          packed_data(ipack) = pack_tmp
   42699      382872 :          data_tmp = full_data(idata)
   42700      382872 :          pack_tmp = ISHFT(data_tmp, 39)
   42701      382872 :          pack_tmp = ISHFT(pack_tmp, -39)
   42702      382872 :          idata = idata + 1
   42703      382872 :          data_tmp = full_data(idata)
   42704      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42705      382872 :          data_tmp = IAND(data_tmp, mask_left(39))
   42706      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42707      382872 :          ipack = ipack + 1
   42708      382872 :          packed_data(ipack) = pack_tmp
   42709      382872 :          data_tmp = full_data(idata)
   42710      382872 :          pack_tmp = ISHFT(data_tmp, 50)
   42711      382872 :          pack_tmp = ISHFT(pack_tmp, -50)
   42712      382872 :          idata = idata + 1
   42713      382872 :          data_tmp = full_data(idata)
   42714      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42715      382872 :          data_tmp = IAND(data_tmp, mask_left(50))
   42716      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42717      382872 :          ipack = ipack + 1
   42718      382872 :          packed_data(ipack) = pack_tmp
   42719      382872 :          data_tmp = full_data(idata)
   42720      382872 :          pack_tmp = ISHFT(data_tmp, 61)
   42721      382872 :          pack_tmp = ISHFT(pack_tmp, -53)
   42722      382872 :          idata = idata + 1
   42723      382872 :          data_tmp = full_data(idata)
   42724      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42725      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42726      382872 :          pack_tmp = ISHFT(pack_tmp, -8)
   42727      382872 :          idata = idata + 1
   42728      382872 :          data_tmp = full_data(idata)
   42729      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42730      382872 :          data_tmp = IAND(data_tmp, mask_left(8))
   42731      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42732      382872 :          ipack = ipack + 1
   42733      382872 :          packed_data(ipack) = pack_tmp
   42734      382872 :          data_tmp = full_data(idata)
   42735      382872 :          pack_tmp = ISHFT(data_tmp, 19)
   42736      382872 :          pack_tmp = ISHFT(pack_tmp, -19)
   42737      382872 :          idata = idata + 1
   42738      382872 :          data_tmp = full_data(idata)
   42739      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42740      382872 :          data_tmp = IAND(data_tmp, mask_left(19))
   42741      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42742      382872 :          ipack = ipack + 1
   42743      382872 :          packed_data(ipack) = pack_tmp
   42744      382872 :          data_tmp = full_data(idata)
   42745      382872 :          pack_tmp = ISHFT(data_tmp, 30)
   42746      382872 :          pack_tmp = ISHFT(pack_tmp, -30)
   42747      382872 :          idata = idata + 1
   42748      382872 :          data_tmp = full_data(idata)
   42749      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42750      382872 :          data_tmp = IAND(data_tmp, mask_left(30))
   42751      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42752      382872 :          ipack = ipack + 1
   42753      382872 :          packed_data(ipack) = pack_tmp
   42754      382872 :          data_tmp = full_data(idata)
   42755      382872 :          pack_tmp = ISHFT(data_tmp, 41)
   42756      382872 :          pack_tmp = ISHFT(pack_tmp, -41)
   42757      382872 :          idata = idata + 1
   42758      382872 :          data_tmp = full_data(idata)
   42759      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42760      382872 :          data_tmp = IAND(data_tmp, mask_left(41))
   42761      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42762      382872 :          ipack = ipack + 1
   42763      382872 :          packed_data(ipack) = pack_tmp
   42764      382872 :          data_tmp = full_data(idata)
   42765      382872 :          pack_tmp = ISHFT(data_tmp, 52)
   42766      382872 :          pack_tmp = ISHFT(pack_tmp, -52)
   42767      382872 :          idata = idata + 1
   42768      382872 :          data_tmp = full_data(idata)
   42769      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42770      382872 :          data_tmp = IAND(data_tmp, mask_left(52))
   42771      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42772      382872 :          ipack = ipack + 1
   42773      382872 :          packed_data(ipack) = pack_tmp
   42774      382872 :          data_tmp = full_data(idata)
   42775      382872 :          pack_tmp = ISHFT(data_tmp, 63)
   42776      382872 :          pack_tmp = ISHFT(pack_tmp, -53)
   42777      382872 :          idata = idata + 1
   42778      382872 :          data_tmp = full_data(idata)
   42779      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42780      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42781      382872 :          pack_tmp = ISHFT(pack_tmp, -10)
   42782      382872 :          idata = idata + 1
   42783      382872 :          data_tmp = full_data(idata)
   42784      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42785      382872 :          data_tmp = IAND(data_tmp, mask_left(10))
   42786      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42787      382872 :          ipack = ipack + 1
   42788      382872 :          packed_data(ipack) = pack_tmp
   42789      382872 :          data_tmp = full_data(idata)
   42790      382872 :          pack_tmp = ISHFT(data_tmp, 21)
   42791      382872 :          pack_tmp = ISHFT(pack_tmp, -21)
   42792      382872 :          idata = idata + 1
   42793      382872 :          data_tmp = full_data(idata)
   42794      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42795      382872 :          data_tmp = IAND(data_tmp, mask_left(21))
   42796      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42797      382872 :          ipack = ipack + 1
   42798      382872 :          packed_data(ipack) = pack_tmp
   42799      382872 :          data_tmp = full_data(idata)
   42800      382872 :          pack_tmp = ISHFT(data_tmp, 32)
   42801      382872 :          pack_tmp = ISHFT(pack_tmp, -32)
   42802      382872 :          idata = idata + 1
   42803      382872 :          data_tmp = full_data(idata)
   42804      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42805      382872 :          data_tmp = IAND(data_tmp, mask_left(32))
   42806      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42807      382872 :          ipack = ipack + 1
   42808      382872 :          packed_data(ipack) = pack_tmp
   42809      382872 :          data_tmp = full_data(idata)
   42810      382872 :          pack_tmp = ISHFT(data_tmp, 43)
   42811      382872 :          pack_tmp = ISHFT(pack_tmp, -43)
   42812      382872 :          idata = idata + 1
   42813      382872 :          data_tmp = full_data(idata)
   42814      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42815      382872 :          data_tmp = IAND(data_tmp, mask_left(43))
   42816      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42817      382872 :          ipack = ipack + 1
   42818      382872 :          packed_data(ipack) = pack_tmp
   42819      382872 :          data_tmp = full_data(idata)
   42820      382872 :          pack_tmp = ISHFT(data_tmp, 54)
   42821      382872 :          pack_tmp = ISHFT(pack_tmp, -53)
   42822      382872 :          idata = idata + 1
   42823      382872 :          data_tmp = full_data(idata)
   42824      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42825      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42826      382872 :          pack_tmp = ISHFT(pack_tmp, -1)
   42827      382872 :          idata = idata + 1
   42828      382872 :          data_tmp = full_data(idata)
   42829      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42830      382872 :          data_tmp = IAND(data_tmp, mask_left(1))
   42831      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42832      382872 :          ipack = ipack + 1
   42833      382872 :          packed_data(ipack) = pack_tmp
   42834      382872 :          data_tmp = full_data(idata)
   42835      382872 :          pack_tmp = ISHFT(data_tmp, 12)
   42836      382872 :          pack_tmp = ISHFT(pack_tmp, -12)
   42837      382872 :          idata = idata + 1
   42838      382872 :          data_tmp = full_data(idata)
   42839      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42840      382872 :          data_tmp = IAND(data_tmp, mask_left(12))
   42841      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42842      382872 :          ipack = ipack + 1
   42843      382872 :          packed_data(ipack) = pack_tmp
   42844      382872 :          data_tmp = full_data(idata)
   42845      382872 :          pack_tmp = ISHFT(data_tmp, 23)
   42846      382872 :          pack_tmp = ISHFT(pack_tmp, -23)
   42847      382872 :          idata = idata + 1
   42848      382872 :          data_tmp = full_data(idata)
   42849      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42850      382872 :          data_tmp = IAND(data_tmp, mask_left(23))
   42851      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42852      382872 :          ipack = ipack + 1
   42853      382872 :          packed_data(ipack) = pack_tmp
   42854      382872 :          data_tmp = full_data(idata)
   42855      382872 :          pack_tmp = ISHFT(data_tmp, 34)
   42856      382872 :          pack_tmp = ISHFT(pack_tmp, -34)
   42857      382872 :          idata = idata + 1
   42858      382872 :          data_tmp = full_data(idata)
   42859      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42860      382872 :          data_tmp = IAND(data_tmp, mask_left(34))
   42861      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42862      382872 :          ipack = ipack + 1
   42863      382872 :          packed_data(ipack) = pack_tmp
   42864      382872 :          data_tmp = full_data(idata)
   42865      382872 :          pack_tmp = ISHFT(data_tmp, 45)
   42866      382872 :          pack_tmp = ISHFT(pack_tmp, -45)
   42867      382872 :          idata = idata + 1
   42868      382872 :          data_tmp = full_data(idata)
   42869      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42870      382872 :          data_tmp = IAND(data_tmp, mask_left(45))
   42871      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42872      382872 :          ipack = ipack + 1
   42873      382872 :          packed_data(ipack) = pack_tmp
   42874      382872 :          data_tmp = full_data(idata)
   42875      382872 :          pack_tmp = ISHFT(data_tmp, 56)
   42876      382872 :          pack_tmp = ISHFT(pack_tmp, -53)
   42877      382872 :          idata = idata + 1
   42878      382872 :          data_tmp = full_data(idata)
   42879      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42880      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42881      382872 :          pack_tmp = ISHFT(pack_tmp, -3)
   42882      382872 :          idata = idata + 1
   42883      382872 :          data_tmp = full_data(idata)
   42884      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42885      382872 :          data_tmp = IAND(data_tmp, mask_left(3))
   42886      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42887      382872 :          ipack = ipack + 1
   42888      382872 :          packed_data(ipack) = pack_tmp
   42889      382872 :          data_tmp = full_data(idata)
   42890      382872 :          pack_tmp = ISHFT(data_tmp, 14)
   42891      382872 :          pack_tmp = ISHFT(pack_tmp, -14)
   42892      382872 :          idata = idata + 1
   42893      382872 :          data_tmp = full_data(idata)
   42894      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42895      382872 :          data_tmp = IAND(data_tmp, mask_left(14))
   42896      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42897      382872 :          ipack = ipack + 1
   42898      382872 :          packed_data(ipack) = pack_tmp
   42899      382872 :          data_tmp = full_data(idata)
   42900      382872 :          pack_tmp = ISHFT(data_tmp, 25)
   42901      382872 :          pack_tmp = ISHFT(pack_tmp, -25)
   42902      382872 :          idata = idata + 1
   42903      382872 :          data_tmp = full_data(idata)
   42904      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42905      382872 :          data_tmp = IAND(data_tmp, mask_left(25))
   42906      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42907      382872 :          ipack = ipack + 1
   42908      382872 :          packed_data(ipack) = pack_tmp
   42909      382872 :          data_tmp = full_data(idata)
   42910      382872 :          pack_tmp = ISHFT(data_tmp, 36)
   42911      382872 :          pack_tmp = ISHFT(pack_tmp, -36)
   42912      382872 :          idata = idata + 1
   42913      382872 :          data_tmp = full_data(idata)
   42914      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42915      382872 :          data_tmp = IAND(data_tmp, mask_left(36))
   42916      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42917      382872 :          ipack = ipack + 1
   42918      382872 :          packed_data(ipack) = pack_tmp
   42919      382872 :          data_tmp = full_data(idata)
   42920      382872 :          pack_tmp = ISHFT(data_tmp, 47)
   42921      382872 :          pack_tmp = ISHFT(pack_tmp, -47)
   42922      382872 :          idata = idata + 1
   42923      382872 :          data_tmp = full_data(idata)
   42924      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42925      382872 :          data_tmp = IAND(data_tmp, mask_left(47))
   42926      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42927      382872 :          ipack = ipack + 1
   42928      382872 :          packed_data(ipack) = pack_tmp
   42929      382872 :          data_tmp = full_data(idata)
   42930      382872 :          pack_tmp = ISHFT(data_tmp, 58)
   42931      382872 :          pack_tmp = ISHFT(pack_tmp, -53)
   42932      382872 :          idata = idata + 1
   42933      382872 :          data_tmp = full_data(idata)
   42934      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42935      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42936      382872 :          pack_tmp = ISHFT(pack_tmp, -5)
   42937      382872 :          idata = idata + 1
   42938      382872 :          data_tmp = full_data(idata)
   42939      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42940      382872 :          data_tmp = IAND(data_tmp, mask_left(5))
   42941      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42942      382872 :          ipack = ipack + 1
   42943      382872 :          packed_data(ipack) = pack_tmp
   42944      382872 :          data_tmp = full_data(idata)
   42945      382872 :          pack_tmp = ISHFT(data_tmp, 16)
   42946      382872 :          pack_tmp = ISHFT(pack_tmp, -16)
   42947      382872 :          idata = idata + 1
   42948      382872 :          data_tmp = full_data(idata)
   42949      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42950      382872 :          data_tmp = IAND(data_tmp, mask_left(16))
   42951      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42952      382872 :          ipack = ipack + 1
   42953      382872 :          packed_data(ipack) = pack_tmp
   42954      382872 :          data_tmp = full_data(idata)
   42955      382872 :          pack_tmp = ISHFT(data_tmp, 27)
   42956      382872 :          pack_tmp = ISHFT(pack_tmp, -27)
   42957      382872 :          idata = idata + 1
   42958      382872 :          data_tmp = full_data(idata)
   42959      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42960      382872 :          data_tmp = IAND(data_tmp, mask_left(27))
   42961      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42962      382872 :          ipack = ipack + 1
   42963      382872 :          packed_data(ipack) = pack_tmp
   42964      382872 :          data_tmp = full_data(idata)
   42965      382872 :          pack_tmp = ISHFT(data_tmp, 38)
   42966      382872 :          pack_tmp = ISHFT(pack_tmp, -38)
   42967      382872 :          idata = idata + 1
   42968      382872 :          data_tmp = full_data(idata)
   42969      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42970      382872 :          data_tmp = IAND(data_tmp, mask_left(38))
   42971      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42972      382872 :          ipack = ipack + 1
   42973      382872 :          packed_data(ipack) = pack_tmp
   42974      382872 :          data_tmp = full_data(idata)
   42975      382872 :          pack_tmp = ISHFT(data_tmp, 49)
   42976      382872 :          pack_tmp = ISHFT(pack_tmp, -49)
   42977      382872 :          idata = idata + 1
   42978      382872 :          data_tmp = full_data(idata)
   42979      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42980      382872 :          data_tmp = IAND(data_tmp, mask_left(49))
   42981      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42982      382872 :          ipack = ipack + 1
   42983      382872 :          packed_data(ipack) = pack_tmp
   42984      382872 :          data_tmp = full_data(idata)
   42985      382872 :          pack_tmp = ISHFT(data_tmp, 60)
   42986      382872 :          pack_tmp = ISHFT(pack_tmp, -53)
   42987      382872 :          idata = idata + 1
   42988      382872 :          data_tmp = full_data(idata)
   42989      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42990      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42991      382872 :          pack_tmp = ISHFT(pack_tmp, -7)
   42992      382872 :          idata = idata + 1
   42993      382872 :          data_tmp = full_data(idata)
   42994      382872 :          data_tmp = ISHFT(data_tmp, 11)
   42995      382872 :          data_tmp = IAND(data_tmp, mask_left(7))
   42996      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42997      382872 :          ipack = ipack + 1
   42998      382872 :          packed_data(ipack) = pack_tmp
   42999      382872 :          data_tmp = full_data(idata)
   43000      382872 :          pack_tmp = ISHFT(data_tmp, 18)
   43001      382872 :          pack_tmp = ISHFT(pack_tmp, -18)
   43002      382872 :          idata = idata + 1
   43003      382872 :          data_tmp = full_data(idata)
   43004      382872 :          data_tmp = ISHFT(data_tmp, 11)
   43005      382872 :          data_tmp = IAND(data_tmp, mask_left(18))
   43006      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43007      382872 :          ipack = ipack + 1
   43008      382872 :          packed_data(ipack) = pack_tmp
   43009      382872 :          data_tmp = full_data(idata)
   43010      382872 :          pack_tmp = ISHFT(data_tmp, 29)
   43011      382872 :          pack_tmp = ISHFT(pack_tmp, -29)
   43012      382872 :          idata = idata + 1
   43013      382872 :          data_tmp = full_data(idata)
   43014      382872 :          data_tmp = ISHFT(data_tmp, 11)
   43015      382872 :          data_tmp = IAND(data_tmp, mask_left(29))
   43016      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43017      382872 :          ipack = ipack + 1
   43018      382872 :          packed_data(ipack) = pack_tmp
   43019      382872 :          data_tmp = full_data(idata)
   43020      382872 :          pack_tmp = ISHFT(data_tmp, 40)
   43021      382872 :          pack_tmp = ISHFT(pack_tmp, -40)
   43022      382872 :          idata = idata + 1
   43023      382872 :          data_tmp = full_data(idata)
   43024      382872 :          data_tmp = ISHFT(data_tmp, 11)
   43025      382872 :          data_tmp = IAND(data_tmp, mask_left(40))
   43026      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43027      382872 :          ipack = ipack + 1
   43028      382872 :          packed_data(ipack) = pack_tmp
   43029      382872 :          data_tmp = full_data(idata)
   43030      382872 :          pack_tmp = ISHFT(data_tmp, 51)
   43031      382872 :          pack_tmp = ISHFT(pack_tmp, -51)
   43032      382872 :          idata = idata + 1
   43033      382872 :          data_tmp = full_data(idata)
   43034      382872 :          data_tmp = ISHFT(data_tmp, 11)
   43035      382872 :          data_tmp = IAND(data_tmp, mask_left(51))
   43036      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43037      382872 :          ipack = ipack + 1
   43038      382872 :          packed_data(ipack) = pack_tmp
   43039      382872 :          data_tmp = full_data(idata)
   43040      382872 :          pack_tmp = ISHFT(data_tmp, 62)
   43041      382872 :          pack_tmp = ISHFT(pack_tmp, -53)
   43042      382872 :          idata = idata + 1
   43043      382872 :          data_tmp = full_data(idata)
   43044      382872 :          data_tmp = ISHFT(data_tmp, 11)
   43045      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43046      382872 :          pack_tmp = ISHFT(pack_tmp, -9)
   43047      382872 :          idata = idata + 1
   43048      382872 :          data_tmp = full_data(idata)
   43049      382872 :          data_tmp = ISHFT(data_tmp, 11)
   43050      382872 :          data_tmp = IAND(data_tmp, mask_left(9))
   43051      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43052      382872 :          ipack = ipack + 1
   43053      382872 :          packed_data(ipack) = pack_tmp
   43054      382872 :          data_tmp = full_data(idata)
   43055      382872 :          pack_tmp = ISHFT(data_tmp, 20)
   43056      382872 :          pack_tmp = ISHFT(pack_tmp, -20)
   43057      382872 :          idata = idata + 1
   43058      382872 :          data_tmp = full_data(idata)
   43059      382872 :          data_tmp = ISHFT(data_tmp, 11)
   43060      382872 :          data_tmp = IAND(data_tmp, mask_left(20))
   43061      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43062      382872 :          ipack = ipack + 1
   43063      382872 :          packed_data(ipack) = pack_tmp
   43064      382872 :          data_tmp = full_data(idata)
   43065      382872 :          pack_tmp = ISHFT(data_tmp, 31)
   43066      382872 :          pack_tmp = ISHFT(pack_tmp, -31)
   43067      382872 :          idata = idata + 1
   43068      382872 :          data_tmp = full_data(idata)
   43069      382872 :          data_tmp = ISHFT(data_tmp, 11)
   43070      382872 :          data_tmp = IAND(data_tmp, mask_left(31))
   43071      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43072      382872 :          ipack = ipack + 1
   43073      382872 :          packed_data(ipack) = pack_tmp
   43074      382872 :          data_tmp = full_data(idata)
   43075      382872 :          pack_tmp = ISHFT(data_tmp, 42)
   43076      382872 :          pack_tmp = ISHFT(pack_tmp, -42)
   43077      382872 :          idata = idata + 1
   43078      382872 :          data_tmp = full_data(idata)
   43079      382872 :          data_tmp = ISHFT(data_tmp, 11)
   43080      382872 :          data_tmp = IAND(data_tmp, mask_left(42))
   43081      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43082      382872 :          ipack = ipack + 1
   43083      382872 :          packed_data(ipack) = pack_tmp
   43084      382872 :          data_tmp = full_data(idata)
   43085      382872 :          pack_tmp = ISHFT(data_tmp, 53)
   43086      382872 :          pack_tmp = ISHFT(pack_tmp, -53)
   43087      382872 :          idata = idata + 1
   43088      382872 :          data_tmp = full_data(idata)
   43089      382872 :          data_tmp = ISHFT(data_tmp, 11)
   43090      382872 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43091             :          pack_tmp = ISHFT(pack_tmp, 0)
   43092      382872 :          pack_tmp = ISHFT(pack_tmp, 0)
   43093      382872 :          ipack = ipack + 1
   43094      382892 :          packed_data(ipack) = pack_tmp
   43095             :       END DO
   43096       24176 :       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       24176 :    END SUBROUTINE ints2bits_53
   43100             : 
   43101             : ! **************************************************************************************************
   43102             : !> \brief ...
   43103             : !> \param Ndata ...
   43104             : !> \param packed_data ...
   43105             : !> \param full_data ...
   43106             : ! **************************************************************************************************
   43107      108085 :    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      108085 :       ipack = 0
   43118      108085 :       idata = 0
   43119      108085 :       pack_tmp = 0
   43120      108085 :       Ndata_rep = (Ndata/64)*64
   43121      108085 :       DO kdata = 1, Ndata_rep, 64
   43122     1631372 :          idata = idata + 1
   43123     1631372 :          data_tmp = ISHFT(pack_tmp, 53)
   43124     1631372 :          ipack = ipack + 1
   43125     1631372 :          pack_tmp = packed_data(ipack)
   43126     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   43127     1631372 :          pack_tmp = ISHFT(pack_tmp, -53)
   43128     1631372 :          idata = idata + 1
   43129     1631372 :          data_tmp = ISHFT(pack_tmp, 42)
   43130     1631372 :          ipack = ipack + 1
   43131     1631372 :          pack_tmp = packed_data(ipack)
   43132     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   43133     1631372 :          pack_tmp = ISHFT(pack_tmp, -42)
   43134     1631372 :          idata = idata + 1
   43135     1631372 :          data_tmp = ISHFT(pack_tmp, 31)
   43136     1631372 :          ipack = ipack + 1
   43137     1631372 :          pack_tmp = packed_data(ipack)
   43138     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   43139     1631372 :          pack_tmp = ISHFT(pack_tmp, -31)
   43140     1631372 :          idata = idata + 1
   43141     1631372 :          data_tmp = ISHFT(pack_tmp, 20)
   43142     1631372 :          ipack = ipack + 1
   43143     1631372 :          pack_tmp = packed_data(ipack)
   43144     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   43145     1631372 :          pack_tmp = ISHFT(pack_tmp, -20)
   43146     1631372 :          idata = idata + 1
   43147     1631372 :          data_tmp = ISHFT(pack_tmp, 9)
   43148     1631372 :          ipack = ipack + 1
   43149     1631372 :          pack_tmp = packed_data(ipack)
   43150     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   43151     1631372 :          pack_tmp = ISHFT(pack_tmp, -9)
   43152     1631372 :          idata = idata + 1
   43153     1631372 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43154     1631372 :          full_data(idata) = data_tmp
   43155     1631372 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43156     1631372 :          idata = idata + 1
   43157     1631372 :          data_tmp = ISHFT(pack_tmp, 51)
   43158     1631372 :          ipack = ipack + 1
   43159     1631372 :          pack_tmp = packed_data(ipack)
   43160     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   43161     1631372 :          pack_tmp = ISHFT(pack_tmp, -51)
   43162     1631372 :          idata = idata + 1
   43163     1631372 :          data_tmp = ISHFT(pack_tmp, 40)
   43164     1631372 :          ipack = ipack + 1
   43165     1631372 :          pack_tmp = packed_data(ipack)
   43166     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   43167     1631372 :          pack_tmp = ISHFT(pack_tmp, -40)
   43168     1631372 :          idata = idata + 1
   43169     1631372 :          data_tmp = ISHFT(pack_tmp, 29)
   43170     1631372 :          ipack = ipack + 1
   43171     1631372 :          pack_tmp = packed_data(ipack)
   43172     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   43173     1631372 :          pack_tmp = ISHFT(pack_tmp, -29)
   43174     1631372 :          idata = idata + 1
   43175     1631372 :          data_tmp = ISHFT(pack_tmp, 18)
   43176     1631372 :          ipack = ipack + 1
   43177     1631372 :          pack_tmp = packed_data(ipack)
   43178     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   43179     1631372 :          pack_tmp = ISHFT(pack_tmp, -18)
   43180     1631372 :          idata = idata + 1
   43181     1631372 :          data_tmp = ISHFT(pack_tmp, 7)
   43182     1631372 :          ipack = ipack + 1
   43183     1631372 :          pack_tmp = packed_data(ipack)
   43184     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   43185     1631372 :          pack_tmp = ISHFT(pack_tmp, -7)
   43186     1631372 :          idata = idata + 1
   43187     1631372 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43188     1631372 :          full_data(idata) = data_tmp
   43189     1631372 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43190     1631372 :          idata = idata + 1
   43191     1631372 :          data_tmp = ISHFT(pack_tmp, 49)
   43192     1631372 :          ipack = ipack + 1
   43193     1631372 :          pack_tmp = packed_data(ipack)
   43194     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   43195     1631372 :          pack_tmp = ISHFT(pack_tmp, -49)
   43196     1631372 :          idata = idata + 1
   43197     1631372 :          data_tmp = ISHFT(pack_tmp, 38)
   43198     1631372 :          ipack = ipack + 1
   43199     1631372 :          pack_tmp = packed_data(ipack)
   43200     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   43201     1631372 :          pack_tmp = ISHFT(pack_tmp, -38)
   43202     1631372 :          idata = idata + 1
   43203     1631372 :          data_tmp = ISHFT(pack_tmp, 27)
   43204     1631372 :          ipack = ipack + 1
   43205     1631372 :          pack_tmp = packed_data(ipack)
   43206     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   43207     1631372 :          pack_tmp = ISHFT(pack_tmp, -27)
   43208     1631372 :          idata = idata + 1
   43209     1631372 :          data_tmp = ISHFT(pack_tmp, 16)
   43210     1631372 :          ipack = ipack + 1
   43211     1631372 :          pack_tmp = packed_data(ipack)
   43212     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   43213     1631372 :          pack_tmp = ISHFT(pack_tmp, -16)
   43214     1631372 :          idata = idata + 1
   43215     1631372 :          data_tmp = ISHFT(pack_tmp, 5)
   43216     1631372 :          ipack = ipack + 1
   43217     1631372 :          pack_tmp = packed_data(ipack)
   43218     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   43219     1631372 :          pack_tmp = ISHFT(pack_tmp, -5)
   43220     1631372 :          idata = idata + 1
   43221     1631372 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43222     1631372 :          full_data(idata) = data_tmp
   43223     1631372 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43224     1631372 :          idata = idata + 1
   43225     1631372 :          data_tmp = ISHFT(pack_tmp, 47)
   43226     1631372 :          ipack = ipack + 1
   43227     1631372 :          pack_tmp = packed_data(ipack)
   43228     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   43229     1631372 :          pack_tmp = ISHFT(pack_tmp, -47)
   43230     1631372 :          idata = idata + 1
   43231     1631372 :          data_tmp = ISHFT(pack_tmp, 36)
   43232     1631372 :          ipack = ipack + 1
   43233     1631372 :          pack_tmp = packed_data(ipack)
   43234     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   43235     1631372 :          pack_tmp = ISHFT(pack_tmp, -36)
   43236     1631372 :          idata = idata + 1
   43237     1631372 :          data_tmp = ISHFT(pack_tmp, 25)
   43238     1631372 :          ipack = ipack + 1
   43239     1631372 :          pack_tmp = packed_data(ipack)
   43240     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   43241     1631372 :          pack_tmp = ISHFT(pack_tmp, -25)
   43242     1631372 :          idata = idata + 1
   43243     1631372 :          data_tmp = ISHFT(pack_tmp, 14)
   43244     1631372 :          ipack = ipack + 1
   43245     1631372 :          pack_tmp = packed_data(ipack)
   43246     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   43247     1631372 :          pack_tmp = ISHFT(pack_tmp, -14)
   43248     1631372 :          idata = idata + 1
   43249     1631372 :          data_tmp = ISHFT(pack_tmp, 3)
   43250     1631372 :          ipack = ipack + 1
   43251     1631372 :          pack_tmp = packed_data(ipack)
   43252     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   43253     1631372 :          pack_tmp = ISHFT(pack_tmp, -3)
   43254     1631372 :          idata = idata + 1
   43255     1631372 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43256     1631372 :          full_data(idata) = data_tmp
   43257     1631372 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43258     1631372 :          idata = idata + 1
   43259     1631372 :          data_tmp = ISHFT(pack_tmp, 45)
   43260     1631372 :          ipack = ipack + 1
   43261     1631372 :          pack_tmp = packed_data(ipack)
   43262     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   43263     1631372 :          pack_tmp = ISHFT(pack_tmp, -45)
   43264     1631372 :          idata = idata + 1
   43265     1631372 :          data_tmp = ISHFT(pack_tmp, 34)
   43266     1631372 :          ipack = ipack + 1
   43267     1631372 :          pack_tmp = packed_data(ipack)
   43268     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   43269     1631372 :          pack_tmp = ISHFT(pack_tmp, -34)
   43270     1631372 :          idata = idata + 1
   43271     1631372 :          data_tmp = ISHFT(pack_tmp, 23)
   43272     1631372 :          ipack = ipack + 1
   43273     1631372 :          pack_tmp = packed_data(ipack)
   43274     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   43275     1631372 :          pack_tmp = ISHFT(pack_tmp, -23)
   43276     1631372 :          idata = idata + 1
   43277     1631372 :          data_tmp = ISHFT(pack_tmp, 12)
   43278     1631372 :          ipack = ipack + 1
   43279     1631372 :          pack_tmp = packed_data(ipack)
   43280     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   43281     1631372 :          pack_tmp = ISHFT(pack_tmp, -12)
   43282     1631372 :          idata = idata + 1
   43283     1631372 :          data_tmp = ISHFT(pack_tmp, 1)
   43284     1631372 :          ipack = ipack + 1
   43285     1631372 :          pack_tmp = packed_data(ipack)
   43286     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   43287     1631372 :          pack_tmp = ISHFT(pack_tmp, -1)
   43288     1631372 :          idata = idata + 1
   43289     1631372 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43290     1631372 :          full_data(idata) = data_tmp
   43291     1631372 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43292     1631372 :          idata = idata + 1
   43293     1631372 :          data_tmp = ISHFT(pack_tmp, 43)
   43294     1631372 :          ipack = ipack + 1
   43295     1631372 :          pack_tmp = packed_data(ipack)
   43296     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   43297     1631372 :          pack_tmp = ISHFT(pack_tmp, -43)
   43298     1631372 :          idata = idata + 1
   43299     1631372 :          data_tmp = ISHFT(pack_tmp, 32)
   43300     1631372 :          ipack = ipack + 1
   43301     1631372 :          pack_tmp = packed_data(ipack)
   43302     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   43303     1631372 :          pack_tmp = ISHFT(pack_tmp, -32)
   43304     1631372 :          idata = idata + 1
   43305     1631372 :          data_tmp = ISHFT(pack_tmp, 21)
   43306     1631372 :          ipack = ipack + 1
   43307     1631372 :          pack_tmp = packed_data(ipack)
   43308     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   43309     1631372 :          pack_tmp = ISHFT(pack_tmp, -21)
   43310     1631372 :          idata = idata + 1
   43311     1631372 :          data_tmp = ISHFT(pack_tmp, 10)
   43312     1631372 :          ipack = ipack + 1
   43313     1631372 :          pack_tmp = packed_data(ipack)
   43314     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   43315     1631372 :          pack_tmp = ISHFT(pack_tmp, -10)
   43316     1631372 :          idata = idata + 1
   43317     1631372 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43318     1631372 :          full_data(idata) = data_tmp
   43319     1631372 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43320     1631372 :          idata = idata + 1
   43321     1631372 :          data_tmp = ISHFT(pack_tmp, 52)
   43322     1631372 :          ipack = ipack + 1
   43323     1631372 :          pack_tmp = packed_data(ipack)
   43324     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   43325     1631372 :          pack_tmp = ISHFT(pack_tmp, -52)
   43326     1631372 :          idata = idata + 1
   43327     1631372 :          data_tmp = ISHFT(pack_tmp, 41)
   43328     1631372 :          ipack = ipack + 1
   43329     1631372 :          pack_tmp = packed_data(ipack)
   43330     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   43331     1631372 :          pack_tmp = ISHFT(pack_tmp, -41)
   43332     1631372 :          idata = idata + 1
   43333     1631372 :          data_tmp = ISHFT(pack_tmp, 30)
   43334     1631372 :          ipack = ipack + 1
   43335     1631372 :          pack_tmp = packed_data(ipack)
   43336     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   43337     1631372 :          pack_tmp = ISHFT(pack_tmp, -30)
   43338     1631372 :          idata = idata + 1
   43339     1631372 :          data_tmp = ISHFT(pack_tmp, 19)
   43340     1631372 :          ipack = ipack + 1
   43341     1631372 :          pack_tmp = packed_data(ipack)
   43342     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   43343     1631372 :          pack_tmp = ISHFT(pack_tmp, -19)
   43344     1631372 :          idata = idata + 1
   43345     1631372 :          data_tmp = ISHFT(pack_tmp, 8)
   43346     1631372 :          ipack = ipack + 1
   43347     1631372 :          pack_tmp = packed_data(ipack)
   43348     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   43349     1631372 :          pack_tmp = ISHFT(pack_tmp, -8)
   43350     1631372 :          idata = idata + 1
   43351     1631372 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43352     1631372 :          full_data(idata) = data_tmp
   43353     1631372 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43354     1631372 :          idata = idata + 1
   43355     1631372 :          data_tmp = ISHFT(pack_tmp, 50)
   43356     1631372 :          ipack = ipack + 1
   43357     1631372 :          pack_tmp = packed_data(ipack)
   43358     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   43359     1631372 :          pack_tmp = ISHFT(pack_tmp, -50)
   43360     1631372 :          idata = idata + 1
   43361     1631372 :          data_tmp = ISHFT(pack_tmp, 39)
   43362     1631372 :          ipack = ipack + 1
   43363     1631372 :          pack_tmp = packed_data(ipack)
   43364     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   43365     1631372 :          pack_tmp = ISHFT(pack_tmp, -39)
   43366     1631372 :          idata = idata + 1
   43367     1631372 :          data_tmp = ISHFT(pack_tmp, 28)
   43368     1631372 :          ipack = ipack + 1
   43369     1631372 :          pack_tmp = packed_data(ipack)
   43370     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   43371     1631372 :          pack_tmp = ISHFT(pack_tmp, -28)
   43372     1631372 :          idata = idata + 1
   43373     1631372 :          data_tmp = ISHFT(pack_tmp, 17)
   43374     1631372 :          ipack = ipack + 1
   43375     1631372 :          pack_tmp = packed_data(ipack)
   43376     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   43377     1631372 :          pack_tmp = ISHFT(pack_tmp, -17)
   43378     1631372 :          idata = idata + 1
   43379     1631372 :          data_tmp = ISHFT(pack_tmp, 6)
   43380     1631372 :          ipack = ipack + 1
   43381     1631372 :          pack_tmp = packed_data(ipack)
   43382     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   43383     1631372 :          pack_tmp = ISHFT(pack_tmp, -6)
   43384     1631372 :          idata = idata + 1
   43385     1631372 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43386     1631372 :          full_data(idata) = data_tmp
   43387     1631372 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43388     1631372 :          idata = idata + 1
   43389     1631372 :          data_tmp = ISHFT(pack_tmp, 48)
   43390     1631372 :          ipack = ipack + 1
   43391     1631372 :          pack_tmp = packed_data(ipack)
   43392     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   43393     1631372 :          pack_tmp = ISHFT(pack_tmp, -48)
   43394     1631372 :          idata = idata + 1
   43395     1631372 :          data_tmp = ISHFT(pack_tmp, 37)
   43396     1631372 :          ipack = ipack + 1
   43397     1631372 :          pack_tmp = packed_data(ipack)
   43398     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   43399     1631372 :          pack_tmp = ISHFT(pack_tmp, -37)
   43400     1631372 :          idata = idata + 1
   43401     1631372 :          data_tmp = ISHFT(pack_tmp, 26)
   43402     1631372 :          ipack = ipack + 1
   43403     1631372 :          pack_tmp = packed_data(ipack)
   43404     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   43405     1631372 :          pack_tmp = ISHFT(pack_tmp, -26)
   43406     1631372 :          idata = idata + 1
   43407     1631372 :          data_tmp = ISHFT(pack_tmp, 15)
   43408     1631372 :          ipack = ipack + 1
   43409     1631372 :          pack_tmp = packed_data(ipack)
   43410     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   43411     1631372 :          pack_tmp = ISHFT(pack_tmp, -15)
   43412     1631372 :          idata = idata + 1
   43413     1631372 :          data_tmp = ISHFT(pack_tmp, 4)
   43414     1631372 :          ipack = ipack + 1
   43415     1631372 :          pack_tmp = packed_data(ipack)
   43416     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   43417     1631372 :          pack_tmp = ISHFT(pack_tmp, -4)
   43418     1631372 :          idata = idata + 1
   43419     1631372 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43420     1631372 :          full_data(idata) = data_tmp
   43421     1631372 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43422     1631372 :          idata = idata + 1
   43423     1631372 :          data_tmp = ISHFT(pack_tmp, 46)
   43424     1631372 :          ipack = ipack + 1
   43425     1631372 :          pack_tmp = packed_data(ipack)
   43426     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   43427     1631372 :          pack_tmp = ISHFT(pack_tmp, -46)
   43428     1631372 :          idata = idata + 1
   43429     1631372 :          data_tmp = ISHFT(pack_tmp, 35)
   43430     1631372 :          ipack = ipack + 1
   43431     1631372 :          pack_tmp = packed_data(ipack)
   43432     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   43433     1631372 :          pack_tmp = ISHFT(pack_tmp, -35)
   43434     1631372 :          idata = idata + 1
   43435     1631372 :          data_tmp = ISHFT(pack_tmp, 24)
   43436     1631372 :          ipack = ipack + 1
   43437     1631372 :          pack_tmp = packed_data(ipack)
   43438     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   43439     1631372 :          pack_tmp = ISHFT(pack_tmp, -24)
   43440     1631372 :          idata = idata + 1
   43441     1631372 :          data_tmp = ISHFT(pack_tmp, 13)
   43442     1631372 :          ipack = ipack + 1
   43443     1631372 :          pack_tmp = packed_data(ipack)
   43444     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   43445     1631372 :          pack_tmp = ISHFT(pack_tmp, -13)
   43446     1631372 :          idata = idata + 1
   43447     1631372 :          data_tmp = ISHFT(pack_tmp, 2)
   43448     1631372 :          ipack = ipack + 1
   43449     1631372 :          pack_tmp = packed_data(ipack)
   43450     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   43451     1631372 :          pack_tmp = ISHFT(pack_tmp, -2)
   43452     1631372 :          idata = idata + 1
   43453     1631372 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43454     1631372 :          full_data(idata) = data_tmp
   43455     1631372 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43456     1631372 :          idata = idata + 1
   43457     1631372 :          data_tmp = ISHFT(pack_tmp, 44)
   43458     1631372 :          ipack = ipack + 1
   43459     1631372 :          pack_tmp = packed_data(ipack)
   43460     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   43461     1631372 :          pack_tmp = ISHFT(pack_tmp, -44)
   43462     1631372 :          idata = idata + 1
   43463     1631372 :          data_tmp = ISHFT(pack_tmp, 33)
   43464     1631372 :          ipack = ipack + 1
   43465     1631372 :          pack_tmp = packed_data(ipack)
   43466     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   43467     1631372 :          pack_tmp = ISHFT(pack_tmp, -33)
   43468     1631372 :          idata = idata + 1
   43469     1631372 :          data_tmp = ISHFT(pack_tmp, 22)
   43470     1631372 :          ipack = ipack + 1
   43471     1631372 :          pack_tmp = packed_data(ipack)
   43472     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   43473     1631372 :          pack_tmp = ISHFT(pack_tmp, -22)
   43474     1631372 :          idata = idata + 1
   43475     1631372 :          data_tmp = ISHFT(pack_tmp, 11)
   43476     1631372 :          ipack = ipack + 1
   43477     1631372 :          pack_tmp = packed_data(ipack)
   43478     1631372 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   43479     1631372 :          pack_tmp = ISHFT(pack_tmp, -11)
   43480     1631372 :          idata = idata + 1
   43481     1631372 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43482     1631372 :          full_data(idata) = data_tmp
   43483     1631762 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43484             :       END DO
   43485      108085 :       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      108085 :    END SUBROUTINE bits2ints_53
   43489             : 
   43490             : ! **************************************************************************************************
   43491             : !> \brief ...
   43492             : !> \param Ndata ...
   43493             : !> \param packed_data ...
   43494             : !> \param full_data ...
   43495             : ! **************************************************************************************************
   43496       24054 :    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       24054 :       idata = 0
   43507       24054 :       ipack = 0
   43508       24054 :       Ndata_rep = (Ndata/64)*64
   43509       24054 :       DO kdata = 1, Ndata_rep, 64
   43510      381838 :          pack_tmp = 0
   43511      381838 :          idata = idata + 1
   43512      381838 :          data_tmp = full_data(idata)
   43513      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43514      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43515      381838 :          pack_tmp = ISHFT(pack_tmp, -10)
   43516      381838 :          idata = idata + 1
   43517      381838 :          data_tmp = full_data(idata)
   43518      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43519      381838 :          data_tmp = IAND(data_tmp, mask_left(10))
   43520      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43521      381838 :          ipack = ipack + 1
   43522      381838 :          packed_data(ipack) = pack_tmp
   43523      381838 :          data_tmp = full_data(idata)
   43524      381838 :          pack_tmp = ISHFT(data_tmp, 20)
   43525      381838 :          pack_tmp = ISHFT(pack_tmp, -20)
   43526      381838 :          idata = idata + 1
   43527      381838 :          data_tmp = full_data(idata)
   43528      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43529      381838 :          data_tmp = IAND(data_tmp, mask_left(20))
   43530      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43531      381838 :          ipack = ipack + 1
   43532      381838 :          packed_data(ipack) = pack_tmp
   43533      381838 :          data_tmp = full_data(idata)
   43534      381838 :          pack_tmp = ISHFT(data_tmp, 30)
   43535      381838 :          pack_tmp = ISHFT(pack_tmp, -30)
   43536      381838 :          idata = idata + 1
   43537      381838 :          data_tmp = full_data(idata)
   43538      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43539      381838 :          data_tmp = IAND(data_tmp, mask_left(30))
   43540      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43541      381838 :          ipack = ipack + 1
   43542      381838 :          packed_data(ipack) = pack_tmp
   43543      381838 :          data_tmp = full_data(idata)
   43544      381838 :          pack_tmp = ISHFT(data_tmp, 40)
   43545      381838 :          pack_tmp = ISHFT(pack_tmp, -40)
   43546      381838 :          idata = idata + 1
   43547      381838 :          data_tmp = full_data(idata)
   43548      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43549      381838 :          data_tmp = IAND(data_tmp, mask_left(40))
   43550      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43551      381838 :          ipack = ipack + 1
   43552      381838 :          packed_data(ipack) = pack_tmp
   43553      381838 :          data_tmp = full_data(idata)
   43554      381838 :          pack_tmp = ISHFT(data_tmp, 50)
   43555      381838 :          pack_tmp = ISHFT(pack_tmp, -50)
   43556      381838 :          idata = idata + 1
   43557      381838 :          data_tmp = full_data(idata)
   43558      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43559      381838 :          data_tmp = IAND(data_tmp, mask_left(50))
   43560      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43561      381838 :          ipack = ipack + 1
   43562      381838 :          packed_data(ipack) = pack_tmp
   43563      381838 :          data_tmp = full_data(idata)
   43564      381838 :          pack_tmp = ISHFT(data_tmp, 60)
   43565      381838 :          pack_tmp = ISHFT(pack_tmp, -54)
   43566      381838 :          idata = idata + 1
   43567      381838 :          data_tmp = full_data(idata)
   43568      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43569      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43570      381838 :          pack_tmp = ISHFT(pack_tmp, -6)
   43571      381838 :          idata = idata + 1
   43572      381838 :          data_tmp = full_data(idata)
   43573      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43574      381838 :          data_tmp = IAND(data_tmp, mask_left(6))
   43575      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43576      381838 :          ipack = ipack + 1
   43577      381838 :          packed_data(ipack) = pack_tmp
   43578      381838 :          data_tmp = full_data(idata)
   43579      381838 :          pack_tmp = ISHFT(data_tmp, 16)
   43580      381838 :          pack_tmp = ISHFT(pack_tmp, -16)
   43581      381838 :          idata = idata + 1
   43582      381838 :          data_tmp = full_data(idata)
   43583      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43584      381838 :          data_tmp = IAND(data_tmp, mask_left(16))
   43585      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43586      381838 :          ipack = ipack + 1
   43587      381838 :          packed_data(ipack) = pack_tmp
   43588      381838 :          data_tmp = full_data(idata)
   43589      381838 :          pack_tmp = ISHFT(data_tmp, 26)
   43590      381838 :          pack_tmp = ISHFT(pack_tmp, -26)
   43591      381838 :          idata = idata + 1
   43592      381838 :          data_tmp = full_data(idata)
   43593      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43594      381838 :          data_tmp = IAND(data_tmp, mask_left(26))
   43595      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43596      381838 :          ipack = ipack + 1
   43597      381838 :          packed_data(ipack) = pack_tmp
   43598      381838 :          data_tmp = full_data(idata)
   43599      381838 :          pack_tmp = ISHFT(data_tmp, 36)
   43600      381838 :          pack_tmp = ISHFT(pack_tmp, -36)
   43601      381838 :          idata = idata + 1
   43602      381838 :          data_tmp = full_data(idata)
   43603      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43604      381838 :          data_tmp = IAND(data_tmp, mask_left(36))
   43605      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43606      381838 :          ipack = ipack + 1
   43607      381838 :          packed_data(ipack) = pack_tmp
   43608      381838 :          data_tmp = full_data(idata)
   43609      381838 :          pack_tmp = ISHFT(data_tmp, 46)
   43610      381838 :          pack_tmp = ISHFT(pack_tmp, -46)
   43611      381838 :          idata = idata + 1
   43612      381838 :          data_tmp = full_data(idata)
   43613      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43614      381838 :          data_tmp = IAND(data_tmp, mask_left(46))
   43615      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43616      381838 :          ipack = ipack + 1
   43617      381838 :          packed_data(ipack) = pack_tmp
   43618      381838 :          data_tmp = full_data(idata)
   43619      381838 :          pack_tmp = ISHFT(data_tmp, 56)
   43620      381838 :          pack_tmp = ISHFT(pack_tmp, -54)
   43621      381838 :          idata = idata + 1
   43622      381838 :          data_tmp = full_data(idata)
   43623      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43624      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43625      381838 :          pack_tmp = ISHFT(pack_tmp, -2)
   43626      381838 :          idata = idata + 1
   43627      381838 :          data_tmp = full_data(idata)
   43628      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43629      381838 :          data_tmp = IAND(data_tmp, mask_left(2))
   43630      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43631      381838 :          ipack = ipack + 1
   43632      381838 :          packed_data(ipack) = pack_tmp
   43633      381838 :          data_tmp = full_data(idata)
   43634      381838 :          pack_tmp = ISHFT(data_tmp, 12)
   43635      381838 :          pack_tmp = ISHFT(pack_tmp, -12)
   43636      381838 :          idata = idata + 1
   43637      381838 :          data_tmp = full_data(idata)
   43638      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43639      381838 :          data_tmp = IAND(data_tmp, mask_left(12))
   43640      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43641      381838 :          ipack = ipack + 1
   43642      381838 :          packed_data(ipack) = pack_tmp
   43643      381838 :          data_tmp = full_data(idata)
   43644      381838 :          pack_tmp = ISHFT(data_tmp, 22)
   43645      381838 :          pack_tmp = ISHFT(pack_tmp, -22)
   43646      381838 :          idata = idata + 1
   43647      381838 :          data_tmp = full_data(idata)
   43648      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43649      381838 :          data_tmp = IAND(data_tmp, mask_left(22))
   43650      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43651      381838 :          ipack = ipack + 1
   43652      381838 :          packed_data(ipack) = pack_tmp
   43653      381838 :          data_tmp = full_data(idata)
   43654      381838 :          pack_tmp = ISHFT(data_tmp, 32)
   43655      381838 :          pack_tmp = ISHFT(pack_tmp, -32)
   43656      381838 :          idata = idata + 1
   43657      381838 :          data_tmp = full_data(idata)
   43658      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43659      381838 :          data_tmp = IAND(data_tmp, mask_left(32))
   43660      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43661      381838 :          ipack = ipack + 1
   43662      381838 :          packed_data(ipack) = pack_tmp
   43663      381838 :          data_tmp = full_data(idata)
   43664      381838 :          pack_tmp = ISHFT(data_tmp, 42)
   43665      381838 :          pack_tmp = ISHFT(pack_tmp, -42)
   43666      381838 :          idata = idata + 1
   43667      381838 :          data_tmp = full_data(idata)
   43668      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43669      381838 :          data_tmp = IAND(data_tmp, mask_left(42))
   43670      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43671      381838 :          ipack = ipack + 1
   43672      381838 :          packed_data(ipack) = pack_tmp
   43673      381838 :          data_tmp = full_data(idata)
   43674      381838 :          pack_tmp = ISHFT(data_tmp, 52)
   43675      381838 :          pack_tmp = ISHFT(pack_tmp, -52)
   43676      381838 :          idata = idata + 1
   43677      381838 :          data_tmp = full_data(idata)
   43678      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43679      381838 :          data_tmp = IAND(data_tmp, mask_left(52))
   43680      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43681      381838 :          ipack = ipack + 1
   43682      381838 :          packed_data(ipack) = pack_tmp
   43683      381838 :          data_tmp = full_data(idata)
   43684      381838 :          pack_tmp = ISHFT(data_tmp, 62)
   43685      381838 :          pack_tmp = ISHFT(pack_tmp, -54)
   43686      381838 :          idata = idata + 1
   43687      381838 :          data_tmp = full_data(idata)
   43688      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43689      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43690      381838 :          pack_tmp = ISHFT(pack_tmp, -8)
   43691      381838 :          idata = idata + 1
   43692      381838 :          data_tmp = full_data(idata)
   43693      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43694      381838 :          data_tmp = IAND(data_tmp, mask_left(8))
   43695      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43696      381838 :          ipack = ipack + 1
   43697      381838 :          packed_data(ipack) = pack_tmp
   43698      381838 :          data_tmp = full_data(idata)
   43699      381838 :          pack_tmp = ISHFT(data_tmp, 18)
   43700      381838 :          pack_tmp = ISHFT(pack_tmp, -18)
   43701      381838 :          idata = idata + 1
   43702      381838 :          data_tmp = full_data(idata)
   43703      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43704      381838 :          data_tmp = IAND(data_tmp, mask_left(18))
   43705      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43706      381838 :          ipack = ipack + 1
   43707      381838 :          packed_data(ipack) = pack_tmp
   43708      381838 :          data_tmp = full_data(idata)
   43709      381838 :          pack_tmp = ISHFT(data_tmp, 28)
   43710      381838 :          pack_tmp = ISHFT(pack_tmp, -28)
   43711      381838 :          idata = idata + 1
   43712      381838 :          data_tmp = full_data(idata)
   43713      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43714      381838 :          data_tmp = IAND(data_tmp, mask_left(28))
   43715      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43716      381838 :          ipack = ipack + 1
   43717      381838 :          packed_data(ipack) = pack_tmp
   43718      381838 :          data_tmp = full_data(idata)
   43719      381838 :          pack_tmp = ISHFT(data_tmp, 38)
   43720      381838 :          pack_tmp = ISHFT(pack_tmp, -38)
   43721      381838 :          idata = idata + 1
   43722      381838 :          data_tmp = full_data(idata)
   43723      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43724      381838 :          data_tmp = IAND(data_tmp, mask_left(38))
   43725      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43726      381838 :          ipack = ipack + 1
   43727      381838 :          packed_data(ipack) = pack_tmp
   43728      381838 :          data_tmp = full_data(idata)
   43729      381838 :          pack_tmp = ISHFT(data_tmp, 48)
   43730      381838 :          pack_tmp = ISHFT(pack_tmp, -48)
   43731      381838 :          idata = idata + 1
   43732      381838 :          data_tmp = full_data(idata)
   43733      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43734      381838 :          data_tmp = IAND(data_tmp, mask_left(48))
   43735      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43736      381838 :          ipack = ipack + 1
   43737      381838 :          packed_data(ipack) = pack_tmp
   43738      381838 :          data_tmp = full_data(idata)
   43739      381838 :          pack_tmp = ISHFT(data_tmp, 58)
   43740      381838 :          pack_tmp = ISHFT(pack_tmp, -54)
   43741      381838 :          idata = idata + 1
   43742      381838 :          data_tmp = full_data(idata)
   43743      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43744      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43745      381838 :          pack_tmp = ISHFT(pack_tmp, -4)
   43746      381838 :          idata = idata + 1
   43747      381838 :          data_tmp = full_data(idata)
   43748      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43749      381838 :          data_tmp = IAND(data_tmp, mask_left(4))
   43750      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43751      381838 :          ipack = ipack + 1
   43752      381838 :          packed_data(ipack) = pack_tmp
   43753      381838 :          data_tmp = full_data(idata)
   43754      381838 :          pack_tmp = ISHFT(data_tmp, 14)
   43755      381838 :          pack_tmp = ISHFT(pack_tmp, -14)
   43756      381838 :          idata = idata + 1
   43757      381838 :          data_tmp = full_data(idata)
   43758      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43759      381838 :          data_tmp = IAND(data_tmp, mask_left(14))
   43760      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43761      381838 :          ipack = ipack + 1
   43762      381838 :          packed_data(ipack) = pack_tmp
   43763      381838 :          data_tmp = full_data(idata)
   43764      381838 :          pack_tmp = ISHFT(data_tmp, 24)
   43765      381838 :          pack_tmp = ISHFT(pack_tmp, -24)
   43766      381838 :          idata = idata + 1
   43767      381838 :          data_tmp = full_data(idata)
   43768      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43769      381838 :          data_tmp = IAND(data_tmp, mask_left(24))
   43770      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43771      381838 :          ipack = ipack + 1
   43772      381838 :          packed_data(ipack) = pack_tmp
   43773      381838 :          data_tmp = full_data(idata)
   43774      381838 :          pack_tmp = ISHFT(data_tmp, 34)
   43775      381838 :          pack_tmp = ISHFT(pack_tmp, -34)
   43776      381838 :          idata = idata + 1
   43777      381838 :          data_tmp = full_data(idata)
   43778      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43779      381838 :          data_tmp = IAND(data_tmp, mask_left(34))
   43780      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43781      381838 :          ipack = ipack + 1
   43782      381838 :          packed_data(ipack) = pack_tmp
   43783      381838 :          data_tmp = full_data(idata)
   43784      381838 :          pack_tmp = ISHFT(data_tmp, 44)
   43785      381838 :          pack_tmp = ISHFT(pack_tmp, -44)
   43786      381838 :          idata = idata + 1
   43787      381838 :          data_tmp = full_data(idata)
   43788      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43789      381838 :          data_tmp = IAND(data_tmp, mask_left(44))
   43790      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43791      381838 :          ipack = ipack + 1
   43792      381838 :          packed_data(ipack) = pack_tmp
   43793      381838 :          data_tmp = full_data(idata)
   43794      381838 :          pack_tmp = ISHFT(data_tmp, 54)
   43795      381838 :          pack_tmp = ISHFT(pack_tmp, -54)
   43796      381838 :          idata = idata + 1
   43797      381838 :          data_tmp = full_data(idata)
   43798      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43799      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43800      381838 :          pack_tmp = ISHFT(pack_tmp, 0)
   43801      381838 :          idata = idata + 1
   43802      381838 :          data_tmp = full_data(idata)
   43803             :          data_tmp = ISHFT(data_tmp, 10)
   43804      381838 :          data_tmp = IAND(data_tmp, mask_left(0))
   43805      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43806      381838 :          ipack = ipack + 1
   43807      381838 :          packed_data(ipack) = pack_tmp
   43808      381838 :          data_tmp = full_data(idata)
   43809      381838 :          pack_tmp = ISHFT(data_tmp, 10)
   43810      381838 :          pack_tmp = ISHFT(pack_tmp, -10)
   43811      381838 :          idata = idata + 1
   43812      381838 :          data_tmp = full_data(idata)
   43813      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43814      381838 :          data_tmp = IAND(data_tmp, mask_left(10))
   43815      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43816      381838 :          ipack = ipack + 1
   43817      381838 :          packed_data(ipack) = pack_tmp
   43818      381838 :          data_tmp = full_data(idata)
   43819      381838 :          pack_tmp = ISHFT(data_tmp, 20)
   43820      381838 :          pack_tmp = ISHFT(pack_tmp, -20)
   43821      381838 :          idata = idata + 1
   43822      381838 :          data_tmp = full_data(idata)
   43823      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43824      381838 :          data_tmp = IAND(data_tmp, mask_left(20))
   43825      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43826      381838 :          ipack = ipack + 1
   43827      381838 :          packed_data(ipack) = pack_tmp
   43828      381838 :          data_tmp = full_data(idata)
   43829      381838 :          pack_tmp = ISHFT(data_tmp, 30)
   43830      381838 :          pack_tmp = ISHFT(pack_tmp, -30)
   43831      381838 :          idata = idata + 1
   43832      381838 :          data_tmp = full_data(idata)
   43833      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43834      381838 :          data_tmp = IAND(data_tmp, mask_left(30))
   43835      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43836      381838 :          ipack = ipack + 1
   43837      381838 :          packed_data(ipack) = pack_tmp
   43838      381838 :          data_tmp = full_data(idata)
   43839      381838 :          pack_tmp = ISHFT(data_tmp, 40)
   43840      381838 :          pack_tmp = ISHFT(pack_tmp, -40)
   43841      381838 :          idata = idata + 1
   43842      381838 :          data_tmp = full_data(idata)
   43843      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43844      381838 :          data_tmp = IAND(data_tmp, mask_left(40))
   43845      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43846      381838 :          ipack = ipack + 1
   43847      381838 :          packed_data(ipack) = pack_tmp
   43848      381838 :          data_tmp = full_data(idata)
   43849      381838 :          pack_tmp = ISHFT(data_tmp, 50)
   43850      381838 :          pack_tmp = ISHFT(pack_tmp, -50)
   43851      381838 :          idata = idata + 1
   43852      381838 :          data_tmp = full_data(idata)
   43853      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43854      381838 :          data_tmp = IAND(data_tmp, mask_left(50))
   43855      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43856      381838 :          ipack = ipack + 1
   43857      381838 :          packed_data(ipack) = pack_tmp
   43858      381838 :          data_tmp = full_data(idata)
   43859      381838 :          pack_tmp = ISHFT(data_tmp, 60)
   43860      381838 :          pack_tmp = ISHFT(pack_tmp, -54)
   43861      381838 :          idata = idata + 1
   43862      381838 :          data_tmp = full_data(idata)
   43863      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43864      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43865      381838 :          pack_tmp = ISHFT(pack_tmp, -6)
   43866      381838 :          idata = idata + 1
   43867      381838 :          data_tmp = full_data(idata)
   43868      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43869      381838 :          data_tmp = IAND(data_tmp, mask_left(6))
   43870      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43871      381838 :          ipack = ipack + 1
   43872      381838 :          packed_data(ipack) = pack_tmp
   43873      381838 :          data_tmp = full_data(idata)
   43874      381838 :          pack_tmp = ISHFT(data_tmp, 16)
   43875      381838 :          pack_tmp = ISHFT(pack_tmp, -16)
   43876      381838 :          idata = idata + 1
   43877      381838 :          data_tmp = full_data(idata)
   43878      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43879      381838 :          data_tmp = IAND(data_tmp, mask_left(16))
   43880      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43881      381838 :          ipack = ipack + 1
   43882      381838 :          packed_data(ipack) = pack_tmp
   43883      381838 :          data_tmp = full_data(idata)
   43884      381838 :          pack_tmp = ISHFT(data_tmp, 26)
   43885      381838 :          pack_tmp = ISHFT(pack_tmp, -26)
   43886      381838 :          idata = idata + 1
   43887      381838 :          data_tmp = full_data(idata)
   43888      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43889      381838 :          data_tmp = IAND(data_tmp, mask_left(26))
   43890      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43891      381838 :          ipack = ipack + 1
   43892      381838 :          packed_data(ipack) = pack_tmp
   43893      381838 :          data_tmp = full_data(idata)
   43894      381838 :          pack_tmp = ISHFT(data_tmp, 36)
   43895      381838 :          pack_tmp = ISHFT(pack_tmp, -36)
   43896      381838 :          idata = idata + 1
   43897      381838 :          data_tmp = full_data(idata)
   43898      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43899      381838 :          data_tmp = IAND(data_tmp, mask_left(36))
   43900      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43901      381838 :          ipack = ipack + 1
   43902      381838 :          packed_data(ipack) = pack_tmp
   43903      381838 :          data_tmp = full_data(idata)
   43904      381838 :          pack_tmp = ISHFT(data_tmp, 46)
   43905      381838 :          pack_tmp = ISHFT(pack_tmp, -46)
   43906      381838 :          idata = idata + 1
   43907      381838 :          data_tmp = full_data(idata)
   43908      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43909      381838 :          data_tmp = IAND(data_tmp, mask_left(46))
   43910      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43911      381838 :          ipack = ipack + 1
   43912      381838 :          packed_data(ipack) = pack_tmp
   43913      381838 :          data_tmp = full_data(idata)
   43914      381838 :          pack_tmp = ISHFT(data_tmp, 56)
   43915      381838 :          pack_tmp = ISHFT(pack_tmp, -54)
   43916      381838 :          idata = idata + 1
   43917      381838 :          data_tmp = full_data(idata)
   43918      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43919      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43920      381838 :          pack_tmp = ISHFT(pack_tmp, -2)
   43921      381838 :          idata = idata + 1
   43922      381838 :          data_tmp = full_data(idata)
   43923      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43924      381838 :          data_tmp = IAND(data_tmp, mask_left(2))
   43925      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43926      381838 :          ipack = ipack + 1
   43927      381838 :          packed_data(ipack) = pack_tmp
   43928      381838 :          data_tmp = full_data(idata)
   43929      381838 :          pack_tmp = ISHFT(data_tmp, 12)
   43930      381838 :          pack_tmp = ISHFT(pack_tmp, -12)
   43931      381838 :          idata = idata + 1
   43932      381838 :          data_tmp = full_data(idata)
   43933      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43934      381838 :          data_tmp = IAND(data_tmp, mask_left(12))
   43935      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43936      381838 :          ipack = ipack + 1
   43937      381838 :          packed_data(ipack) = pack_tmp
   43938      381838 :          data_tmp = full_data(idata)
   43939      381838 :          pack_tmp = ISHFT(data_tmp, 22)
   43940      381838 :          pack_tmp = ISHFT(pack_tmp, -22)
   43941      381838 :          idata = idata + 1
   43942      381838 :          data_tmp = full_data(idata)
   43943      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43944      381838 :          data_tmp = IAND(data_tmp, mask_left(22))
   43945      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43946      381838 :          ipack = ipack + 1
   43947      381838 :          packed_data(ipack) = pack_tmp
   43948      381838 :          data_tmp = full_data(idata)
   43949      381838 :          pack_tmp = ISHFT(data_tmp, 32)
   43950      381838 :          pack_tmp = ISHFT(pack_tmp, -32)
   43951      381838 :          idata = idata + 1
   43952      381838 :          data_tmp = full_data(idata)
   43953      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43954      381838 :          data_tmp = IAND(data_tmp, mask_left(32))
   43955      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43956      381838 :          ipack = ipack + 1
   43957      381838 :          packed_data(ipack) = pack_tmp
   43958      381838 :          data_tmp = full_data(idata)
   43959      381838 :          pack_tmp = ISHFT(data_tmp, 42)
   43960      381838 :          pack_tmp = ISHFT(pack_tmp, -42)
   43961      381838 :          idata = idata + 1
   43962      381838 :          data_tmp = full_data(idata)
   43963      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43964      381838 :          data_tmp = IAND(data_tmp, mask_left(42))
   43965      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43966      381838 :          ipack = ipack + 1
   43967      381838 :          packed_data(ipack) = pack_tmp
   43968      381838 :          data_tmp = full_data(idata)
   43969      381838 :          pack_tmp = ISHFT(data_tmp, 52)
   43970      381838 :          pack_tmp = ISHFT(pack_tmp, -52)
   43971      381838 :          idata = idata + 1
   43972      381838 :          data_tmp = full_data(idata)
   43973      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43974      381838 :          data_tmp = IAND(data_tmp, mask_left(52))
   43975      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43976      381838 :          ipack = ipack + 1
   43977      381838 :          packed_data(ipack) = pack_tmp
   43978      381838 :          data_tmp = full_data(idata)
   43979      381838 :          pack_tmp = ISHFT(data_tmp, 62)
   43980      381838 :          pack_tmp = ISHFT(pack_tmp, -54)
   43981      381838 :          idata = idata + 1
   43982      381838 :          data_tmp = full_data(idata)
   43983      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43984      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43985      381838 :          pack_tmp = ISHFT(pack_tmp, -8)
   43986      381838 :          idata = idata + 1
   43987      381838 :          data_tmp = full_data(idata)
   43988      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43989      381838 :          data_tmp = IAND(data_tmp, mask_left(8))
   43990      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43991      381838 :          ipack = ipack + 1
   43992      381838 :          packed_data(ipack) = pack_tmp
   43993      381838 :          data_tmp = full_data(idata)
   43994      381838 :          pack_tmp = ISHFT(data_tmp, 18)
   43995      381838 :          pack_tmp = ISHFT(pack_tmp, -18)
   43996      381838 :          idata = idata + 1
   43997      381838 :          data_tmp = full_data(idata)
   43998      381838 :          data_tmp = ISHFT(data_tmp, 10)
   43999      381838 :          data_tmp = IAND(data_tmp, mask_left(18))
   44000      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44001      381838 :          ipack = ipack + 1
   44002      381838 :          packed_data(ipack) = pack_tmp
   44003      381838 :          data_tmp = full_data(idata)
   44004      381838 :          pack_tmp = ISHFT(data_tmp, 28)
   44005      381838 :          pack_tmp = ISHFT(pack_tmp, -28)
   44006      381838 :          idata = idata + 1
   44007      381838 :          data_tmp = full_data(idata)
   44008      381838 :          data_tmp = ISHFT(data_tmp, 10)
   44009      381838 :          data_tmp = IAND(data_tmp, mask_left(28))
   44010      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44011      381838 :          ipack = ipack + 1
   44012      381838 :          packed_data(ipack) = pack_tmp
   44013      381838 :          data_tmp = full_data(idata)
   44014      381838 :          pack_tmp = ISHFT(data_tmp, 38)
   44015      381838 :          pack_tmp = ISHFT(pack_tmp, -38)
   44016      381838 :          idata = idata + 1
   44017      381838 :          data_tmp = full_data(idata)
   44018      381838 :          data_tmp = ISHFT(data_tmp, 10)
   44019      381838 :          data_tmp = IAND(data_tmp, mask_left(38))
   44020      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44021      381838 :          ipack = ipack + 1
   44022      381838 :          packed_data(ipack) = pack_tmp
   44023      381838 :          data_tmp = full_data(idata)
   44024      381838 :          pack_tmp = ISHFT(data_tmp, 48)
   44025      381838 :          pack_tmp = ISHFT(pack_tmp, -48)
   44026      381838 :          idata = idata + 1
   44027      381838 :          data_tmp = full_data(idata)
   44028      381838 :          data_tmp = ISHFT(data_tmp, 10)
   44029      381838 :          data_tmp = IAND(data_tmp, mask_left(48))
   44030      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44031      381838 :          ipack = ipack + 1
   44032      381838 :          packed_data(ipack) = pack_tmp
   44033      381838 :          data_tmp = full_data(idata)
   44034      381838 :          pack_tmp = ISHFT(data_tmp, 58)
   44035      381838 :          pack_tmp = ISHFT(pack_tmp, -54)
   44036      381838 :          idata = idata + 1
   44037      381838 :          data_tmp = full_data(idata)
   44038      381838 :          data_tmp = ISHFT(data_tmp, 10)
   44039      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44040      381838 :          pack_tmp = ISHFT(pack_tmp, -4)
   44041      381838 :          idata = idata + 1
   44042      381838 :          data_tmp = full_data(idata)
   44043      381838 :          data_tmp = ISHFT(data_tmp, 10)
   44044      381838 :          data_tmp = IAND(data_tmp, mask_left(4))
   44045      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44046      381838 :          ipack = ipack + 1
   44047      381838 :          packed_data(ipack) = pack_tmp
   44048      381838 :          data_tmp = full_data(idata)
   44049      381838 :          pack_tmp = ISHFT(data_tmp, 14)
   44050      381838 :          pack_tmp = ISHFT(pack_tmp, -14)
   44051      381838 :          idata = idata + 1
   44052      381838 :          data_tmp = full_data(idata)
   44053      381838 :          data_tmp = ISHFT(data_tmp, 10)
   44054      381838 :          data_tmp = IAND(data_tmp, mask_left(14))
   44055      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44056      381838 :          ipack = ipack + 1
   44057      381838 :          packed_data(ipack) = pack_tmp
   44058      381838 :          data_tmp = full_data(idata)
   44059      381838 :          pack_tmp = ISHFT(data_tmp, 24)
   44060      381838 :          pack_tmp = ISHFT(pack_tmp, -24)
   44061      381838 :          idata = idata + 1
   44062      381838 :          data_tmp = full_data(idata)
   44063      381838 :          data_tmp = ISHFT(data_tmp, 10)
   44064      381838 :          data_tmp = IAND(data_tmp, mask_left(24))
   44065      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44066      381838 :          ipack = ipack + 1
   44067      381838 :          packed_data(ipack) = pack_tmp
   44068      381838 :          data_tmp = full_data(idata)
   44069      381838 :          pack_tmp = ISHFT(data_tmp, 34)
   44070      381838 :          pack_tmp = ISHFT(pack_tmp, -34)
   44071      381838 :          idata = idata + 1
   44072      381838 :          data_tmp = full_data(idata)
   44073      381838 :          data_tmp = ISHFT(data_tmp, 10)
   44074      381838 :          data_tmp = IAND(data_tmp, mask_left(34))
   44075      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44076      381838 :          ipack = ipack + 1
   44077      381838 :          packed_data(ipack) = pack_tmp
   44078      381838 :          data_tmp = full_data(idata)
   44079      381838 :          pack_tmp = ISHFT(data_tmp, 44)
   44080      381838 :          pack_tmp = ISHFT(pack_tmp, -44)
   44081      381838 :          idata = idata + 1
   44082      381838 :          data_tmp = full_data(idata)
   44083      381838 :          data_tmp = ISHFT(data_tmp, 10)
   44084      381838 :          data_tmp = IAND(data_tmp, mask_left(44))
   44085      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44086      381838 :          ipack = ipack + 1
   44087      381838 :          packed_data(ipack) = pack_tmp
   44088      381838 :          data_tmp = full_data(idata)
   44089      381838 :          pack_tmp = ISHFT(data_tmp, 54)
   44090      381838 :          pack_tmp = ISHFT(pack_tmp, -54)
   44091      381838 :          idata = idata + 1
   44092      381838 :          data_tmp = full_data(idata)
   44093      381838 :          data_tmp = ISHFT(data_tmp, 10)
   44094      381838 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44095             :          pack_tmp = ISHFT(pack_tmp, 0)
   44096      381838 :          pack_tmp = ISHFT(pack_tmp, 0)
   44097      381838 :          ipack = ipack + 1
   44098      381852 :          packed_data(ipack) = pack_tmp
   44099             :       END DO
   44100       24054 :       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       24054 :    END SUBROUTINE ints2bits_54
   44104             : 
   44105             : ! **************************************************************************************************
   44106             : !> \brief ...
   44107             : !> \param Ndata ...
   44108             : !> \param packed_data ...
   44109             : !> \param full_data ...
   44110             : ! **************************************************************************************************
   44111      110773 :    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      110773 :       ipack = 0
   44122      110773 :       idata = 0
   44123      110773 :       pack_tmp = 0
   44124      110773 :       Ndata_rep = (Ndata/64)*64
   44125      110773 :       DO kdata = 1, Ndata_rep, 64
   44126     1652314 :          idata = idata + 1
   44127     1652314 :          data_tmp = ISHFT(pack_tmp, 54)
   44128     1652314 :          ipack = ipack + 1
   44129     1652314 :          pack_tmp = packed_data(ipack)
   44130     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   44131     1652314 :          pack_tmp = ISHFT(pack_tmp, -54)
   44132     1652314 :          idata = idata + 1
   44133     1652314 :          data_tmp = ISHFT(pack_tmp, 44)
   44134     1652314 :          ipack = ipack + 1
   44135     1652314 :          pack_tmp = packed_data(ipack)
   44136     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   44137     1652314 :          pack_tmp = ISHFT(pack_tmp, -44)
   44138     1652314 :          idata = idata + 1
   44139     1652314 :          data_tmp = ISHFT(pack_tmp, 34)
   44140     1652314 :          ipack = ipack + 1
   44141     1652314 :          pack_tmp = packed_data(ipack)
   44142     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   44143     1652314 :          pack_tmp = ISHFT(pack_tmp, -34)
   44144     1652314 :          idata = idata + 1
   44145     1652314 :          data_tmp = ISHFT(pack_tmp, 24)
   44146     1652314 :          ipack = ipack + 1
   44147     1652314 :          pack_tmp = packed_data(ipack)
   44148     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   44149     1652314 :          pack_tmp = ISHFT(pack_tmp, -24)
   44150     1652314 :          idata = idata + 1
   44151     1652314 :          data_tmp = ISHFT(pack_tmp, 14)
   44152     1652314 :          ipack = ipack + 1
   44153     1652314 :          pack_tmp = packed_data(ipack)
   44154     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   44155     1652314 :          pack_tmp = ISHFT(pack_tmp, -14)
   44156     1652314 :          idata = idata + 1
   44157     1652314 :          data_tmp = ISHFT(pack_tmp, 4)
   44158     1652314 :          ipack = ipack + 1
   44159     1652314 :          pack_tmp = packed_data(ipack)
   44160     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   44161     1652314 :          pack_tmp = ISHFT(pack_tmp, -4)
   44162     1652314 :          idata = idata + 1
   44163     1652314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44164     1652314 :          full_data(idata) = data_tmp
   44165     1652314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44166     1652314 :          idata = idata + 1
   44167     1652314 :          data_tmp = ISHFT(pack_tmp, 48)
   44168     1652314 :          ipack = ipack + 1
   44169     1652314 :          pack_tmp = packed_data(ipack)
   44170     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   44171     1652314 :          pack_tmp = ISHFT(pack_tmp, -48)
   44172     1652314 :          idata = idata + 1
   44173     1652314 :          data_tmp = ISHFT(pack_tmp, 38)
   44174     1652314 :          ipack = ipack + 1
   44175     1652314 :          pack_tmp = packed_data(ipack)
   44176     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   44177     1652314 :          pack_tmp = ISHFT(pack_tmp, -38)
   44178     1652314 :          idata = idata + 1
   44179     1652314 :          data_tmp = ISHFT(pack_tmp, 28)
   44180     1652314 :          ipack = ipack + 1
   44181     1652314 :          pack_tmp = packed_data(ipack)
   44182     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   44183     1652314 :          pack_tmp = ISHFT(pack_tmp, -28)
   44184     1652314 :          idata = idata + 1
   44185     1652314 :          data_tmp = ISHFT(pack_tmp, 18)
   44186     1652314 :          ipack = ipack + 1
   44187     1652314 :          pack_tmp = packed_data(ipack)
   44188     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   44189     1652314 :          pack_tmp = ISHFT(pack_tmp, -18)
   44190     1652314 :          idata = idata + 1
   44191     1652314 :          data_tmp = ISHFT(pack_tmp, 8)
   44192     1652314 :          ipack = ipack + 1
   44193     1652314 :          pack_tmp = packed_data(ipack)
   44194     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   44195     1652314 :          pack_tmp = ISHFT(pack_tmp, -8)
   44196     1652314 :          idata = idata + 1
   44197     1652314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44198     1652314 :          full_data(idata) = data_tmp
   44199     1652314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44200     1652314 :          idata = idata + 1
   44201     1652314 :          data_tmp = ISHFT(pack_tmp, 52)
   44202     1652314 :          ipack = ipack + 1
   44203     1652314 :          pack_tmp = packed_data(ipack)
   44204     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   44205     1652314 :          pack_tmp = ISHFT(pack_tmp, -52)
   44206     1652314 :          idata = idata + 1
   44207     1652314 :          data_tmp = ISHFT(pack_tmp, 42)
   44208     1652314 :          ipack = ipack + 1
   44209     1652314 :          pack_tmp = packed_data(ipack)
   44210     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   44211     1652314 :          pack_tmp = ISHFT(pack_tmp, -42)
   44212     1652314 :          idata = idata + 1
   44213     1652314 :          data_tmp = ISHFT(pack_tmp, 32)
   44214     1652314 :          ipack = ipack + 1
   44215     1652314 :          pack_tmp = packed_data(ipack)
   44216     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   44217     1652314 :          pack_tmp = ISHFT(pack_tmp, -32)
   44218     1652314 :          idata = idata + 1
   44219     1652314 :          data_tmp = ISHFT(pack_tmp, 22)
   44220     1652314 :          ipack = ipack + 1
   44221     1652314 :          pack_tmp = packed_data(ipack)
   44222     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   44223     1652314 :          pack_tmp = ISHFT(pack_tmp, -22)
   44224     1652314 :          idata = idata + 1
   44225     1652314 :          data_tmp = ISHFT(pack_tmp, 12)
   44226     1652314 :          ipack = ipack + 1
   44227     1652314 :          pack_tmp = packed_data(ipack)
   44228     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   44229     1652314 :          pack_tmp = ISHFT(pack_tmp, -12)
   44230     1652314 :          idata = idata + 1
   44231     1652314 :          data_tmp = ISHFT(pack_tmp, 2)
   44232     1652314 :          ipack = ipack + 1
   44233     1652314 :          pack_tmp = packed_data(ipack)
   44234     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   44235     1652314 :          pack_tmp = ISHFT(pack_tmp, -2)
   44236     1652314 :          idata = idata + 1
   44237     1652314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44238     1652314 :          full_data(idata) = data_tmp
   44239     1652314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44240     1652314 :          idata = idata + 1
   44241     1652314 :          data_tmp = ISHFT(pack_tmp, 46)
   44242     1652314 :          ipack = ipack + 1
   44243     1652314 :          pack_tmp = packed_data(ipack)
   44244     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   44245     1652314 :          pack_tmp = ISHFT(pack_tmp, -46)
   44246     1652314 :          idata = idata + 1
   44247     1652314 :          data_tmp = ISHFT(pack_tmp, 36)
   44248     1652314 :          ipack = ipack + 1
   44249     1652314 :          pack_tmp = packed_data(ipack)
   44250     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   44251     1652314 :          pack_tmp = ISHFT(pack_tmp, -36)
   44252     1652314 :          idata = idata + 1
   44253     1652314 :          data_tmp = ISHFT(pack_tmp, 26)
   44254     1652314 :          ipack = ipack + 1
   44255     1652314 :          pack_tmp = packed_data(ipack)
   44256     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   44257     1652314 :          pack_tmp = ISHFT(pack_tmp, -26)
   44258     1652314 :          idata = idata + 1
   44259     1652314 :          data_tmp = ISHFT(pack_tmp, 16)
   44260     1652314 :          ipack = ipack + 1
   44261     1652314 :          pack_tmp = packed_data(ipack)
   44262     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   44263     1652314 :          pack_tmp = ISHFT(pack_tmp, -16)
   44264     1652314 :          idata = idata + 1
   44265     1652314 :          data_tmp = ISHFT(pack_tmp, 6)
   44266     1652314 :          ipack = ipack + 1
   44267     1652314 :          pack_tmp = packed_data(ipack)
   44268     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   44269     1652314 :          pack_tmp = ISHFT(pack_tmp, -6)
   44270     1652314 :          idata = idata + 1
   44271     1652314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44272     1652314 :          full_data(idata) = data_tmp
   44273     1652314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44274     1652314 :          idata = idata + 1
   44275     1652314 :          data_tmp = ISHFT(pack_tmp, 50)
   44276     1652314 :          ipack = ipack + 1
   44277     1652314 :          pack_tmp = packed_data(ipack)
   44278     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   44279     1652314 :          pack_tmp = ISHFT(pack_tmp, -50)
   44280     1652314 :          idata = idata + 1
   44281     1652314 :          data_tmp = ISHFT(pack_tmp, 40)
   44282     1652314 :          ipack = ipack + 1
   44283     1652314 :          pack_tmp = packed_data(ipack)
   44284     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   44285     1652314 :          pack_tmp = ISHFT(pack_tmp, -40)
   44286     1652314 :          idata = idata + 1
   44287     1652314 :          data_tmp = ISHFT(pack_tmp, 30)
   44288     1652314 :          ipack = ipack + 1
   44289     1652314 :          pack_tmp = packed_data(ipack)
   44290     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   44291     1652314 :          pack_tmp = ISHFT(pack_tmp, -30)
   44292     1652314 :          idata = idata + 1
   44293     1652314 :          data_tmp = ISHFT(pack_tmp, 20)
   44294     1652314 :          ipack = ipack + 1
   44295     1652314 :          pack_tmp = packed_data(ipack)
   44296     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   44297     1652314 :          pack_tmp = ISHFT(pack_tmp, -20)
   44298     1652314 :          idata = idata + 1
   44299     1652314 :          data_tmp = ISHFT(pack_tmp, 10)
   44300     1652314 :          ipack = ipack + 1
   44301     1652314 :          pack_tmp = packed_data(ipack)
   44302     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   44303     1652314 :          pack_tmp = ISHFT(pack_tmp, -10)
   44304     1652314 :          idata = idata + 1
   44305     1652314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44306     1652314 :          full_data(idata) = data_tmp
   44307     1652314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44308     1652314 :          idata = idata + 1
   44309     1652314 :          data_tmp = ISHFT(pack_tmp, 54)
   44310     1652314 :          ipack = ipack + 1
   44311     1652314 :          pack_tmp = packed_data(ipack)
   44312     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   44313     1652314 :          pack_tmp = ISHFT(pack_tmp, -54)
   44314     1652314 :          idata = idata + 1
   44315     1652314 :          data_tmp = ISHFT(pack_tmp, 44)
   44316     1652314 :          ipack = ipack + 1
   44317     1652314 :          pack_tmp = packed_data(ipack)
   44318     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   44319     1652314 :          pack_tmp = ISHFT(pack_tmp, -44)
   44320     1652314 :          idata = idata + 1
   44321     1652314 :          data_tmp = ISHFT(pack_tmp, 34)
   44322     1652314 :          ipack = ipack + 1
   44323     1652314 :          pack_tmp = packed_data(ipack)
   44324     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   44325     1652314 :          pack_tmp = ISHFT(pack_tmp, -34)
   44326     1652314 :          idata = idata + 1
   44327     1652314 :          data_tmp = ISHFT(pack_tmp, 24)
   44328     1652314 :          ipack = ipack + 1
   44329     1652314 :          pack_tmp = packed_data(ipack)
   44330     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   44331     1652314 :          pack_tmp = ISHFT(pack_tmp, -24)
   44332     1652314 :          idata = idata + 1
   44333     1652314 :          data_tmp = ISHFT(pack_tmp, 14)
   44334     1652314 :          ipack = ipack + 1
   44335     1652314 :          pack_tmp = packed_data(ipack)
   44336     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   44337     1652314 :          pack_tmp = ISHFT(pack_tmp, -14)
   44338     1652314 :          idata = idata + 1
   44339     1652314 :          data_tmp = ISHFT(pack_tmp, 4)
   44340     1652314 :          ipack = ipack + 1
   44341     1652314 :          pack_tmp = packed_data(ipack)
   44342     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   44343     1652314 :          pack_tmp = ISHFT(pack_tmp, -4)
   44344     1652314 :          idata = idata + 1
   44345     1652314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44346     1652314 :          full_data(idata) = data_tmp
   44347     1652314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44348     1652314 :          idata = idata + 1
   44349     1652314 :          data_tmp = ISHFT(pack_tmp, 48)
   44350     1652314 :          ipack = ipack + 1
   44351     1652314 :          pack_tmp = packed_data(ipack)
   44352     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   44353     1652314 :          pack_tmp = ISHFT(pack_tmp, -48)
   44354     1652314 :          idata = idata + 1
   44355     1652314 :          data_tmp = ISHFT(pack_tmp, 38)
   44356     1652314 :          ipack = ipack + 1
   44357     1652314 :          pack_tmp = packed_data(ipack)
   44358     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   44359     1652314 :          pack_tmp = ISHFT(pack_tmp, -38)
   44360     1652314 :          idata = idata + 1
   44361     1652314 :          data_tmp = ISHFT(pack_tmp, 28)
   44362     1652314 :          ipack = ipack + 1
   44363     1652314 :          pack_tmp = packed_data(ipack)
   44364     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   44365     1652314 :          pack_tmp = ISHFT(pack_tmp, -28)
   44366     1652314 :          idata = idata + 1
   44367     1652314 :          data_tmp = ISHFT(pack_tmp, 18)
   44368     1652314 :          ipack = ipack + 1
   44369     1652314 :          pack_tmp = packed_data(ipack)
   44370     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   44371     1652314 :          pack_tmp = ISHFT(pack_tmp, -18)
   44372     1652314 :          idata = idata + 1
   44373     1652314 :          data_tmp = ISHFT(pack_tmp, 8)
   44374     1652314 :          ipack = ipack + 1
   44375     1652314 :          pack_tmp = packed_data(ipack)
   44376     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   44377     1652314 :          pack_tmp = ISHFT(pack_tmp, -8)
   44378     1652314 :          idata = idata + 1
   44379     1652314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44380     1652314 :          full_data(idata) = data_tmp
   44381     1652314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44382     1652314 :          idata = idata + 1
   44383     1652314 :          data_tmp = ISHFT(pack_tmp, 52)
   44384     1652314 :          ipack = ipack + 1
   44385     1652314 :          pack_tmp = packed_data(ipack)
   44386     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   44387     1652314 :          pack_tmp = ISHFT(pack_tmp, -52)
   44388     1652314 :          idata = idata + 1
   44389     1652314 :          data_tmp = ISHFT(pack_tmp, 42)
   44390     1652314 :          ipack = ipack + 1
   44391     1652314 :          pack_tmp = packed_data(ipack)
   44392     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   44393     1652314 :          pack_tmp = ISHFT(pack_tmp, -42)
   44394     1652314 :          idata = idata + 1
   44395     1652314 :          data_tmp = ISHFT(pack_tmp, 32)
   44396     1652314 :          ipack = ipack + 1
   44397     1652314 :          pack_tmp = packed_data(ipack)
   44398     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   44399     1652314 :          pack_tmp = ISHFT(pack_tmp, -32)
   44400     1652314 :          idata = idata + 1
   44401     1652314 :          data_tmp = ISHFT(pack_tmp, 22)
   44402     1652314 :          ipack = ipack + 1
   44403     1652314 :          pack_tmp = packed_data(ipack)
   44404     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   44405     1652314 :          pack_tmp = ISHFT(pack_tmp, -22)
   44406     1652314 :          idata = idata + 1
   44407     1652314 :          data_tmp = ISHFT(pack_tmp, 12)
   44408     1652314 :          ipack = ipack + 1
   44409     1652314 :          pack_tmp = packed_data(ipack)
   44410     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   44411     1652314 :          pack_tmp = ISHFT(pack_tmp, -12)
   44412     1652314 :          idata = idata + 1
   44413     1652314 :          data_tmp = ISHFT(pack_tmp, 2)
   44414     1652314 :          ipack = ipack + 1
   44415     1652314 :          pack_tmp = packed_data(ipack)
   44416     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   44417     1652314 :          pack_tmp = ISHFT(pack_tmp, -2)
   44418     1652314 :          idata = idata + 1
   44419     1652314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44420     1652314 :          full_data(idata) = data_tmp
   44421     1652314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44422     1652314 :          idata = idata + 1
   44423     1652314 :          data_tmp = ISHFT(pack_tmp, 46)
   44424     1652314 :          ipack = ipack + 1
   44425     1652314 :          pack_tmp = packed_data(ipack)
   44426     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   44427     1652314 :          pack_tmp = ISHFT(pack_tmp, -46)
   44428     1652314 :          idata = idata + 1
   44429     1652314 :          data_tmp = ISHFT(pack_tmp, 36)
   44430     1652314 :          ipack = ipack + 1
   44431     1652314 :          pack_tmp = packed_data(ipack)
   44432     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   44433     1652314 :          pack_tmp = ISHFT(pack_tmp, -36)
   44434     1652314 :          idata = idata + 1
   44435     1652314 :          data_tmp = ISHFT(pack_tmp, 26)
   44436     1652314 :          ipack = ipack + 1
   44437     1652314 :          pack_tmp = packed_data(ipack)
   44438     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   44439     1652314 :          pack_tmp = ISHFT(pack_tmp, -26)
   44440     1652314 :          idata = idata + 1
   44441     1652314 :          data_tmp = ISHFT(pack_tmp, 16)
   44442     1652314 :          ipack = ipack + 1
   44443     1652314 :          pack_tmp = packed_data(ipack)
   44444     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   44445     1652314 :          pack_tmp = ISHFT(pack_tmp, -16)
   44446     1652314 :          idata = idata + 1
   44447     1652314 :          data_tmp = ISHFT(pack_tmp, 6)
   44448     1652314 :          ipack = ipack + 1
   44449     1652314 :          pack_tmp = packed_data(ipack)
   44450     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   44451     1652314 :          pack_tmp = ISHFT(pack_tmp, -6)
   44452     1652314 :          idata = idata + 1
   44453     1652314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44454     1652314 :          full_data(idata) = data_tmp
   44455     1652314 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44456     1652314 :          idata = idata + 1
   44457     1652314 :          data_tmp = ISHFT(pack_tmp, 50)
   44458     1652314 :          ipack = ipack + 1
   44459     1652314 :          pack_tmp = packed_data(ipack)
   44460     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   44461     1652314 :          pack_tmp = ISHFT(pack_tmp, -50)
   44462     1652314 :          idata = idata + 1
   44463     1652314 :          data_tmp = ISHFT(pack_tmp, 40)
   44464     1652314 :          ipack = ipack + 1
   44465     1652314 :          pack_tmp = packed_data(ipack)
   44466     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   44467     1652314 :          pack_tmp = ISHFT(pack_tmp, -40)
   44468     1652314 :          idata = idata + 1
   44469     1652314 :          data_tmp = ISHFT(pack_tmp, 30)
   44470     1652314 :          ipack = ipack + 1
   44471     1652314 :          pack_tmp = packed_data(ipack)
   44472     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   44473     1652314 :          pack_tmp = ISHFT(pack_tmp, -30)
   44474     1652314 :          idata = idata + 1
   44475     1652314 :          data_tmp = ISHFT(pack_tmp, 20)
   44476     1652314 :          ipack = ipack + 1
   44477     1652314 :          pack_tmp = packed_data(ipack)
   44478     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   44479     1652314 :          pack_tmp = ISHFT(pack_tmp, -20)
   44480     1652314 :          idata = idata + 1
   44481     1652314 :          data_tmp = ISHFT(pack_tmp, 10)
   44482     1652314 :          ipack = ipack + 1
   44483     1652314 :          pack_tmp = packed_data(ipack)
   44484     1652314 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   44485     1652314 :          pack_tmp = ISHFT(pack_tmp, -10)
   44486     1652314 :          idata = idata + 1
   44487     1652314 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44488     1652314 :          full_data(idata) = data_tmp
   44489     1653168 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44490             :       END DO
   44491      110773 :       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      110773 :    END SUBROUTINE bits2ints_54
   44495             : 
   44496             : ! **************************************************************************************************
   44497             : !> \brief ...
   44498             : !> \param Ndata ...
   44499             : !> \param packed_data ...
   44500             : !> \param full_data ...
   44501             : ! **************************************************************************************************
   44502       23972 :    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       23972 :       idata = 0
   44513       23972 :       ipack = 0
   44514       23972 :       Ndata_rep = (Ndata/64)*64
   44515       23972 :       DO kdata = 1, Ndata_rep, 64
   44516      381172 :          pack_tmp = 0
   44517      381172 :          idata = idata + 1
   44518      381172 :          data_tmp = full_data(idata)
   44519      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44520      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44521      381172 :          pack_tmp = ISHFT(pack_tmp, -9)
   44522      381172 :          idata = idata + 1
   44523      381172 :          data_tmp = full_data(idata)
   44524      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44525      381172 :          data_tmp = IAND(data_tmp, mask_left(9))
   44526      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44527      381172 :          ipack = ipack + 1
   44528      381172 :          packed_data(ipack) = pack_tmp
   44529      381172 :          data_tmp = full_data(idata)
   44530      381172 :          pack_tmp = ISHFT(data_tmp, 18)
   44531      381172 :          pack_tmp = ISHFT(pack_tmp, -18)
   44532      381172 :          idata = idata + 1
   44533      381172 :          data_tmp = full_data(idata)
   44534      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44535      381172 :          data_tmp = IAND(data_tmp, mask_left(18))
   44536      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44537      381172 :          ipack = ipack + 1
   44538      381172 :          packed_data(ipack) = pack_tmp
   44539      381172 :          data_tmp = full_data(idata)
   44540      381172 :          pack_tmp = ISHFT(data_tmp, 27)
   44541      381172 :          pack_tmp = ISHFT(pack_tmp, -27)
   44542      381172 :          idata = idata + 1
   44543      381172 :          data_tmp = full_data(idata)
   44544      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44545      381172 :          data_tmp = IAND(data_tmp, mask_left(27))
   44546      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44547      381172 :          ipack = ipack + 1
   44548      381172 :          packed_data(ipack) = pack_tmp
   44549      381172 :          data_tmp = full_data(idata)
   44550      381172 :          pack_tmp = ISHFT(data_tmp, 36)
   44551      381172 :          pack_tmp = ISHFT(pack_tmp, -36)
   44552      381172 :          idata = idata + 1
   44553      381172 :          data_tmp = full_data(idata)
   44554      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44555      381172 :          data_tmp = IAND(data_tmp, mask_left(36))
   44556      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44557      381172 :          ipack = ipack + 1
   44558      381172 :          packed_data(ipack) = pack_tmp
   44559      381172 :          data_tmp = full_data(idata)
   44560      381172 :          pack_tmp = ISHFT(data_tmp, 45)
   44561      381172 :          pack_tmp = ISHFT(pack_tmp, -45)
   44562      381172 :          idata = idata + 1
   44563      381172 :          data_tmp = full_data(idata)
   44564      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44565      381172 :          data_tmp = IAND(data_tmp, mask_left(45))
   44566      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44567      381172 :          ipack = ipack + 1
   44568      381172 :          packed_data(ipack) = pack_tmp
   44569      381172 :          data_tmp = full_data(idata)
   44570      381172 :          pack_tmp = ISHFT(data_tmp, 54)
   44571      381172 :          pack_tmp = ISHFT(pack_tmp, -54)
   44572      381172 :          idata = idata + 1
   44573      381172 :          data_tmp = full_data(idata)
   44574      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44575      381172 :          data_tmp = IAND(data_tmp, mask_left(54))
   44576      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44577      381172 :          ipack = ipack + 1
   44578      381172 :          packed_data(ipack) = pack_tmp
   44579      381172 :          data_tmp = full_data(idata)
   44580      381172 :          pack_tmp = ISHFT(data_tmp, 63)
   44581      381172 :          pack_tmp = ISHFT(pack_tmp, -55)
   44582      381172 :          idata = idata + 1
   44583      381172 :          data_tmp = full_data(idata)
   44584      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44585      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44586      381172 :          pack_tmp = ISHFT(pack_tmp, -8)
   44587      381172 :          idata = idata + 1
   44588      381172 :          data_tmp = full_data(idata)
   44589      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44590      381172 :          data_tmp = IAND(data_tmp, mask_left(8))
   44591      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44592      381172 :          ipack = ipack + 1
   44593      381172 :          packed_data(ipack) = pack_tmp
   44594      381172 :          data_tmp = full_data(idata)
   44595      381172 :          pack_tmp = ISHFT(data_tmp, 17)
   44596      381172 :          pack_tmp = ISHFT(pack_tmp, -17)
   44597      381172 :          idata = idata + 1
   44598      381172 :          data_tmp = full_data(idata)
   44599      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44600      381172 :          data_tmp = IAND(data_tmp, mask_left(17))
   44601      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44602      381172 :          ipack = ipack + 1
   44603      381172 :          packed_data(ipack) = pack_tmp
   44604      381172 :          data_tmp = full_data(idata)
   44605      381172 :          pack_tmp = ISHFT(data_tmp, 26)
   44606      381172 :          pack_tmp = ISHFT(pack_tmp, -26)
   44607      381172 :          idata = idata + 1
   44608      381172 :          data_tmp = full_data(idata)
   44609      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44610      381172 :          data_tmp = IAND(data_tmp, mask_left(26))
   44611      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44612      381172 :          ipack = ipack + 1
   44613      381172 :          packed_data(ipack) = pack_tmp
   44614      381172 :          data_tmp = full_data(idata)
   44615      381172 :          pack_tmp = ISHFT(data_tmp, 35)
   44616      381172 :          pack_tmp = ISHFT(pack_tmp, -35)
   44617      381172 :          idata = idata + 1
   44618      381172 :          data_tmp = full_data(idata)
   44619      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44620      381172 :          data_tmp = IAND(data_tmp, mask_left(35))
   44621      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44622      381172 :          ipack = ipack + 1
   44623      381172 :          packed_data(ipack) = pack_tmp
   44624      381172 :          data_tmp = full_data(idata)
   44625      381172 :          pack_tmp = ISHFT(data_tmp, 44)
   44626      381172 :          pack_tmp = ISHFT(pack_tmp, -44)
   44627      381172 :          idata = idata + 1
   44628      381172 :          data_tmp = full_data(idata)
   44629      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44630      381172 :          data_tmp = IAND(data_tmp, mask_left(44))
   44631      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44632      381172 :          ipack = ipack + 1
   44633      381172 :          packed_data(ipack) = pack_tmp
   44634      381172 :          data_tmp = full_data(idata)
   44635      381172 :          pack_tmp = ISHFT(data_tmp, 53)
   44636      381172 :          pack_tmp = ISHFT(pack_tmp, -53)
   44637      381172 :          idata = idata + 1
   44638      381172 :          data_tmp = full_data(idata)
   44639      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44640      381172 :          data_tmp = IAND(data_tmp, mask_left(53))
   44641      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44642      381172 :          ipack = ipack + 1
   44643      381172 :          packed_data(ipack) = pack_tmp
   44644      381172 :          data_tmp = full_data(idata)
   44645      381172 :          pack_tmp = ISHFT(data_tmp, 62)
   44646      381172 :          pack_tmp = ISHFT(pack_tmp, -55)
   44647      381172 :          idata = idata + 1
   44648      381172 :          data_tmp = full_data(idata)
   44649      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44650      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44651      381172 :          pack_tmp = ISHFT(pack_tmp, -7)
   44652      381172 :          idata = idata + 1
   44653      381172 :          data_tmp = full_data(idata)
   44654      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44655      381172 :          data_tmp = IAND(data_tmp, mask_left(7))
   44656      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44657      381172 :          ipack = ipack + 1
   44658      381172 :          packed_data(ipack) = pack_tmp
   44659      381172 :          data_tmp = full_data(idata)
   44660      381172 :          pack_tmp = ISHFT(data_tmp, 16)
   44661      381172 :          pack_tmp = ISHFT(pack_tmp, -16)
   44662      381172 :          idata = idata + 1
   44663      381172 :          data_tmp = full_data(idata)
   44664      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44665      381172 :          data_tmp = IAND(data_tmp, mask_left(16))
   44666      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44667      381172 :          ipack = ipack + 1
   44668      381172 :          packed_data(ipack) = pack_tmp
   44669      381172 :          data_tmp = full_data(idata)
   44670      381172 :          pack_tmp = ISHFT(data_tmp, 25)
   44671      381172 :          pack_tmp = ISHFT(pack_tmp, -25)
   44672      381172 :          idata = idata + 1
   44673      381172 :          data_tmp = full_data(idata)
   44674      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44675      381172 :          data_tmp = IAND(data_tmp, mask_left(25))
   44676      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44677      381172 :          ipack = ipack + 1
   44678      381172 :          packed_data(ipack) = pack_tmp
   44679      381172 :          data_tmp = full_data(idata)
   44680      381172 :          pack_tmp = ISHFT(data_tmp, 34)
   44681      381172 :          pack_tmp = ISHFT(pack_tmp, -34)
   44682      381172 :          idata = idata + 1
   44683      381172 :          data_tmp = full_data(idata)
   44684      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44685      381172 :          data_tmp = IAND(data_tmp, mask_left(34))
   44686      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44687      381172 :          ipack = ipack + 1
   44688      381172 :          packed_data(ipack) = pack_tmp
   44689      381172 :          data_tmp = full_data(idata)
   44690      381172 :          pack_tmp = ISHFT(data_tmp, 43)
   44691      381172 :          pack_tmp = ISHFT(pack_tmp, -43)
   44692      381172 :          idata = idata + 1
   44693      381172 :          data_tmp = full_data(idata)
   44694      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44695      381172 :          data_tmp = IAND(data_tmp, mask_left(43))
   44696      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44697      381172 :          ipack = ipack + 1
   44698      381172 :          packed_data(ipack) = pack_tmp
   44699      381172 :          data_tmp = full_data(idata)
   44700      381172 :          pack_tmp = ISHFT(data_tmp, 52)
   44701      381172 :          pack_tmp = ISHFT(pack_tmp, -52)
   44702      381172 :          idata = idata + 1
   44703      381172 :          data_tmp = full_data(idata)
   44704      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44705      381172 :          data_tmp = IAND(data_tmp, mask_left(52))
   44706      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44707      381172 :          ipack = ipack + 1
   44708      381172 :          packed_data(ipack) = pack_tmp
   44709      381172 :          data_tmp = full_data(idata)
   44710      381172 :          pack_tmp = ISHFT(data_tmp, 61)
   44711      381172 :          pack_tmp = ISHFT(pack_tmp, -55)
   44712      381172 :          idata = idata + 1
   44713      381172 :          data_tmp = full_data(idata)
   44714      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44715      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44716      381172 :          pack_tmp = ISHFT(pack_tmp, -6)
   44717      381172 :          idata = idata + 1
   44718      381172 :          data_tmp = full_data(idata)
   44719      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44720      381172 :          data_tmp = IAND(data_tmp, mask_left(6))
   44721      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44722      381172 :          ipack = ipack + 1
   44723      381172 :          packed_data(ipack) = pack_tmp
   44724      381172 :          data_tmp = full_data(idata)
   44725      381172 :          pack_tmp = ISHFT(data_tmp, 15)
   44726      381172 :          pack_tmp = ISHFT(pack_tmp, -15)
   44727      381172 :          idata = idata + 1
   44728      381172 :          data_tmp = full_data(idata)
   44729      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44730      381172 :          data_tmp = IAND(data_tmp, mask_left(15))
   44731      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44732      381172 :          ipack = ipack + 1
   44733      381172 :          packed_data(ipack) = pack_tmp
   44734      381172 :          data_tmp = full_data(idata)
   44735      381172 :          pack_tmp = ISHFT(data_tmp, 24)
   44736      381172 :          pack_tmp = ISHFT(pack_tmp, -24)
   44737      381172 :          idata = idata + 1
   44738      381172 :          data_tmp = full_data(idata)
   44739      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44740      381172 :          data_tmp = IAND(data_tmp, mask_left(24))
   44741      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44742      381172 :          ipack = ipack + 1
   44743      381172 :          packed_data(ipack) = pack_tmp
   44744      381172 :          data_tmp = full_data(idata)
   44745      381172 :          pack_tmp = ISHFT(data_tmp, 33)
   44746      381172 :          pack_tmp = ISHFT(pack_tmp, -33)
   44747      381172 :          idata = idata + 1
   44748      381172 :          data_tmp = full_data(idata)
   44749      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44750      381172 :          data_tmp = IAND(data_tmp, mask_left(33))
   44751      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44752      381172 :          ipack = ipack + 1
   44753      381172 :          packed_data(ipack) = pack_tmp
   44754      381172 :          data_tmp = full_data(idata)
   44755      381172 :          pack_tmp = ISHFT(data_tmp, 42)
   44756      381172 :          pack_tmp = ISHFT(pack_tmp, -42)
   44757      381172 :          idata = idata + 1
   44758      381172 :          data_tmp = full_data(idata)
   44759      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44760      381172 :          data_tmp = IAND(data_tmp, mask_left(42))
   44761      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44762      381172 :          ipack = ipack + 1
   44763      381172 :          packed_data(ipack) = pack_tmp
   44764      381172 :          data_tmp = full_data(idata)
   44765      381172 :          pack_tmp = ISHFT(data_tmp, 51)
   44766      381172 :          pack_tmp = ISHFT(pack_tmp, -51)
   44767      381172 :          idata = idata + 1
   44768      381172 :          data_tmp = full_data(idata)
   44769      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44770      381172 :          data_tmp = IAND(data_tmp, mask_left(51))
   44771      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44772      381172 :          ipack = ipack + 1
   44773      381172 :          packed_data(ipack) = pack_tmp
   44774      381172 :          data_tmp = full_data(idata)
   44775      381172 :          pack_tmp = ISHFT(data_tmp, 60)
   44776      381172 :          pack_tmp = ISHFT(pack_tmp, -55)
   44777      381172 :          idata = idata + 1
   44778      381172 :          data_tmp = full_data(idata)
   44779      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44780      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44781      381172 :          pack_tmp = ISHFT(pack_tmp, -5)
   44782      381172 :          idata = idata + 1
   44783      381172 :          data_tmp = full_data(idata)
   44784      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44785      381172 :          data_tmp = IAND(data_tmp, mask_left(5))
   44786      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44787      381172 :          ipack = ipack + 1
   44788      381172 :          packed_data(ipack) = pack_tmp
   44789      381172 :          data_tmp = full_data(idata)
   44790      381172 :          pack_tmp = ISHFT(data_tmp, 14)
   44791      381172 :          pack_tmp = ISHFT(pack_tmp, -14)
   44792      381172 :          idata = idata + 1
   44793      381172 :          data_tmp = full_data(idata)
   44794      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44795      381172 :          data_tmp = IAND(data_tmp, mask_left(14))
   44796      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44797      381172 :          ipack = ipack + 1
   44798      381172 :          packed_data(ipack) = pack_tmp
   44799      381172 :          data_tmp = full_data(idata)
   44800      381172 :          pack_tmp = ISHFT(data_tmp, 23)
   44801      381172 :          pack_tmp = ISHFT(pack_tmp, -23)
   44802      381172 :          idata = idata + 1
   44803      381172 :          data_tmp = full_data(idata)
   44804      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44805      381172 :          data_tmp = IAND(data_tmp, mask_left(23))
   44806      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44807      381172 :          ipack = ipack + 1
   44808      381172 :          packed_data(ipack) = pack_tmp
   44809      381172 :          data_tmp = full_data(idata)
   44810      381172 :          pack_tmp = ISHFT(data_tmp, 32)
   44811      381172 :          pack_tmp = ISHFT(pack_tmp, -32)
   44812      381172 :          idata = idata + 1
   44813      381172 :          data_tmp = full_data(idata)
   44814      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44815      381172 :          data_tmp = IAND(data_tmp, mask_left(32))
   44816      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44817      381172 :          ipack = ipack + 1
   44818      381172 :          packed_data(ipack) = pack_tmp
   44819      381172 :          data_tmp = full_data(idata)
   44820      381172 :          pack_tmp = ISHFT(data_tmp, 41)
   44821      381172 :          pack_tmp = ISHFT(pack_tmp, -41)
   44822      381172 :          idata = idata + 1
   44823      381172 :          data_tmp = full_data(idata)
   44824      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44825      381172 :          data_tmp = IAND(data_tmp, mask_left(41))
   44826      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44827      381172 :          ipack = ipack + 1
   44828      381172 :          packed_data(ipack) = pack_tmp
   44829      381172 :          data_tmp = full_data(idata)
   44830      381172 :          pack_tmp = ISHFT(data_tmp, 50)
   44831      381172 :          pack_tmp = ISHFT(pack_tmp, -50)
   44832      381172 :          idata = idata + 1
   44833      381172 :          data_tmp = full_data(idata)
   44834      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44835      381172 :          data_tmp = IAND(data_tmp, mask_left(50))
   44836      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44837      381172 :          ipack = ipack + 1
   44838      381172 :          packed_data(ipack) = pack_tmp
   44839      381172 :          data_tmp = full_data(idata)
   44840      381172 :          pack_tmp = ISHFT(data_tmp, 59)
   44841      381172 :          pack_tmp = ISHFT(pack_tmp, -55)
   44842      381172 :          idata = idata + 1
   44843      381172 :          data_tmp = full_data(idata)
   44844      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44845      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44846      381172 :          pack_tmp = ISHFT(pack_tmp, -4)
   44847      381172 :          idata = idata + 1
   44848      381172 :          data_tmp = full_data(idata)
   44849      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44850      381172 :          data_tmp = IAND(data_tmp, mask_left(4))
   44851      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44852      381172 :          ipack = ipack + 1
   44853      381172 :          packed_data(ipack) = pack_tmp
   44854      381172 :          data_tmp = full_data(idata)
   44855      381172 :          pack_tmp = ISHFT(data_tmp, 13)
   44856      381172 :          pack_tmp = ISHFT(pack_tmp, -13)
   44857      381172 :          idata = idata + 1
   44858      381172 :          data_tmp = full_data(idata)
   44859      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44860      381172 :          data_tmp = IAND(data_tmp, mask_left(13))
   44861      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44862      381172 :          ipack = ipack + 1
   44863      381172 :          packed_data(ipack) = pack_tmp
   44864      381172 :          data_tmp = full_data(idata)
   44865      381172 :          pack_tmp = ISHFT(data_tmp, 22)
   44866      381172 :          pack_tmp = ISHFT(pack_tmp, -22)
   44867      381172 :          idata = idata + 1
   44868      381172 :          data_tmp = full_data(idata)
   44869      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44870      381172 :          data_tmp = IAND(data_tmp, mask_left(22))
   44871      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44872      381172 :          ipack = ipack + 1
   44873      381172 :          packed_data(ipack) = pack_tmp
   44874      381172 :          data_tmp = full_data(idata)
   44875      381172 :          pack_tmp = ISHFT(data_tmp, 31)
   44876      381172 :          pack_tmp = ISHFT(pack_tmp, -31)
   44877      381172 :          idata = idata + 1
   44878      381172 :          data_tmp = full_data(idata)
   44879      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44880      381172 :          data_tmp = IAND(data_tmp, mask_left(31))
   44881      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44882      381172 :          ipack = ipack + 1
   44883      381172 :          packed_data(ipack) = pack_tmp
   44884      381172 :          data_tmp = full_data(idata)
   44885      381172 :          pack_tmp = ISHFT(data_tmp, 40)
   44886      381172 :          pack_tmp = ISHFT(pack_tmp, -40)
   44887      381172 :          idata = idata + 1
   44888      381172 :          data_tmp = full_data(idata)
   44889      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44890      381172 :          data_tmp = IAND(data_tmp, mask_left(40))
   44891      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44892      381172 :          ipack = ipack + 1
   44893      381172 :          packed_data(ipack) = pack_tmp
   44894      381172 :          data_tmp = full_data(idata)
   44895      381172 :          pack_tmp = ISHFT(data_tmp, 49)
   44896      381172 :          pack_tmp = ISHFT(pack_tmp, -49)
   44897      381172 :          idata = idata + 1
   44898      381172 :          data_tmp = full_data(idata)
   44899      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44900      381172 :          data_tmp = IAND(data_tmp, mask_left(49))
   44901      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44902      381172 :          ipack = ipack + 1
   44903      381172 :          packed_data(ipack) = pack_tmp
   44904      381172 :          data_tmp = full_data(idata)
   44905      381172 :          pack_tmp = ISHFT(data_tmp, 58)
   44906      381172 :          pack_tmp = ISHFT(pack_tmp, -55)
   44907      381172 :          idata = idata + 1
   44908      381172 :          data_tmp = full_data(idata)
   44909      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44910      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44911      381172 :          pack_tmp = ISHFT(pack_tmp, -3)
   44912      381172 :          idata = idata + 1
   44913      381172 :          data_tmp = full_data(idata)
   44914      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44915      381172 :          data_tmp = IAND(data_tmp, mask_left(3))
   44916      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44917      381172 :          ipack = ipack + 1
   44918      381172 :          packed_data(ipack) = pack_tmp
   44919      381172 :          data_tmp = full_data(idata)
   44920      381172 :          pack_tmp = ISHFT(data_tmp, 12)
   44921      381172 :          pack_tmp = ISHFT(pack_tmp, -12)
   44922      381172 :          idata = idata + 1
   44923      381172 :          data_tmp = full_data(idata)
   44924      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44925      381172 :          data_tmp = IAND(data_tmp, mask_left(12))
   44926      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44927      381172 :          ipack = ipack + 1
   44928      381172 :          packed_data(ipack) = pack_tmp
   44929      381172 :          data_tmp = full_data(idata)
   44930      381172 :          pack_tmp = ISHFT(data_tmp, 21)
   44931      381172 :          pack_tmp = ISHFT(pack_tmp, -21)
   44932      381172 :          idata = idata + 1
   44933      381172 :          data_tmp = full_data(idata)
   44934      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44935      381172 :          data_tmp = IAND(data_tmp, mask_left(21))
   44936      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44937      381172 :          ipack = ipack + 1
   44938      381172 :          packed_data(ipack) = pack_tmp
   44939      381172 :          data_tmp = full_data(idata)
   44940      381172 :          pack_tmp = ISHFT(data_tmp, 30)
   44941      381172 :          pack_tmp = ISHFT(pack_tmp, -30)
   44942      381172 :          idata = idata + 1
   44943      381172 :          data_tmp = full_data(idata)
   44944      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44945      381172 :          data_tmp = IAND(data_tmp, mask_left(30))
   44946      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44947      381172 :          ipack = ipack + 1
   44948      381172 :          packed_data(ipack) = pack_tmp
   44949      381172 :          data_tmp = full_data(idata)
   44950      381172 :          pack_tmp = ISHFT(data_tmp, 39)
   44951      381172 :          pack_tmp = ISHFT(pack_tmp, -39)
   44952      381172 :          idata = idata + 1
   44953      381172 :          data_tmp = full_data(idata)
   44954      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44955      381172 :          data_tmp = IAND(data_tmp, mask_left(39))
   44956      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44957      381172 :          ipack = ipack + 1
   44958      381172 :          packed_data(ipack) = pack_tmp
   44959      381172 :          data_tmp = full_data(idata)
   44960      381172 :          pack_tmp = ISHFT(data_tmp, 48)
   44961      381172 :          pack_tmp = ISHFT(pack_tmp, -48)
   44962      381172 :          idata = idata + 1
   44963      381172 :          data_tmp = full_data(idata)
   44964      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44965      381172 :          data_tmp = IAND(data_tmp, mask_left(48))
   44966      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44967      381172 :          ipack = ipack + 1
   44968      381172 :          packed_data(ipack) = pack_tmp
   44969      381172 :          data_tmp = full_data(idata)
   44970      381172 :          pack_tmp = ISHFT(data_tmp, 57)
   44971      381172 :          pack_tmp = ISHFT(pack_tmp, -55)
   44972      381172 :          idata = idata + 1
   44973      381172 :          data_tmp = full_data(idata)
   44974      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44975      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44976      381172 :          pack_tmp = ISHFT(pack_tmp, -2)
   44977      381172 :          idata = idata + 1
   44978      381172 :          data_tmp = full_data(idata)
   44979      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44980      381172 :          data_tmp = IAND(data_tmp, mask_left(2))
   44981      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44982      381172 :          ipack = ipack + 1
   44983      381172 :          packed_data(ipack) = pack_tmp
   44984      381172 :          data_tmp = full_data(idata)
   44985      381172 :          pack_tmp = ISHFT(data_tmp, 11)
   44986      381172 :          pack_tmp = ISHFT(pack_tmp, -11)
   44987      381172 :          idata = idata + 1
   44988      381172 :          data_tmp = full_data(idata)
   44989      381172 :          data_tmp = ISHFT(data_tmp, 9)
   44990      381172 :          data_tmp = IAND(data_tmp, mask_left(11))
   44991      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44992      381172 :          ipack = ipack + 1
   44993      381172 :          packed_data(ipack) = pack_tmp
   44994      381172 :          data_tmp = full_data(idata)
   44995      381172 :          pack_tmp = ISHFT(data_tmp, 20)
   44996      381172 :          pack_tmp = ISHFT(pack_tmp, -20)
   44997      381172 :          idata = idata + 1
   44998      381172 :          data_tmp = full_data(idata)
   44999      381172 :          data_tmp = ISHFT(data_tmp, 9)
   45000      381172 :          data_tmp = IAND(data_tmp, mask_left(20))
   45001      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45002      381172 :          ipack = ipack + 1
   45003      381172 :          packed_data(ipack) = pack_tmp
   45004      381172 :          data_tmp = full_data(idata)
   45005      381172 :          pack_tmp = ISHFT(data_tmp, 29)
   45006      381172 :          pack_tmp = ISHFT(pack_tmp, -29)
   45007      381172 :          idata = idata + 1
   45008      381172 :          data_tmp = full_data(idata)
   45009      381172 :          data_tmp = ISHFT(data_tmp, 9)
   45010      381172 :          data_tmp = IAND(data_tmp, mask_left(29))
   45011      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45012      381172 :          ipack = ipack + 1
   45013      381172 :          packed_data(ipack) = pack_tmp
   45014      381172 :          data_tmp = full_data(idata)
   45015      381172 :          pack_tmp = ISHFT(data_tmp, 38)
   45016      381172 :          pack_tmp = ISHFT(pack_tmp, -38)
   45017      381172 :          idata = idata + 1
   45018      381172 :          data_tmp = full_data(idata)
   45019      381172 :          data_tmp = ISHFT(data_tmp, 9)
   45020      381172 :          data_tmp = IAND(data_tmp, mask_left(38))
   45021      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45022      381172 :          ipack = ipack + 1
   45023      381172 :          packed_data(ipack) = pack_tmp
   45024      381172 :          data_tmp = full_data(idata)
   45025      381172 :          pack_tmp = ISHFT(data_tmp, 47)
   45026      381172 :          pack_tmp = ISHFT(pack_tmp, -47)
   45027      381172 :          idata = idata + 1
   45028      381172 :          data_tmp = full_data(idata)
   45029      381172 :          data_tmp = ISHFT(data_tmp, 9)
   45030      381172 :          data_tmp = IAND(data_tmp, mask_left(47))
   45031      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45032      381172 :          ipack = ipack + 1
   45033      381172 :          packed_data(ipack) = pack_tmp
   45034      381172 :          data_tmp = full_data(idata)
   45035      381172 :          pack_tmp = ISHFT(data_tmp, 56)
   45036      381172 :          pack_tmp = ISHFT(pack_tmp, -55)
   45037      381172 :          idata = idata + 1
   45038      381172 :          data_tmp = full_data(idata)
   45039      381172 :          data_tmp = ISHFT(data_tmp, 9)
   45040      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45041      381172 :          pack_tmp = ISHFT(pack_tmp, -1)
   45042      381172 :          idata = idata + 1
   45043      381172 :          data_tmp = full_data(idata)
   45044      381172 :          data_tmp = ISHFT(data_tmp, 9)
   45045      381172 :          data_tmp = IAND(data_tmp, mask_left(1))
   45046      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45047      381172 :          ipack = ipack + 1
   45048      381172 :          packed_data(ipack) = pack_tmp
   45049      381172 :          data_tmp = full_data(idata)
   45050      381172 :          pack_tmp = ISHFT(data_tmp, 10)
   45051      381172 :          pack_tmp = ISHFT(pack_tmp, -10)
   45052      381172 :          idata = idata + 1
   45053      381172 :          data_tmp = full_data(idata)
   45054      381172 :          data_tmp = ISHFT(data_tmp, 9)
   45055      381172 :          data_tmp = IAND(data_tmp, mask_left(10))
   45056      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45057      381172 :          ipack = ipack + 1
   45058      381172 :          packed_data(ipack) = pack_tmp
   45059      381172 :          data_tmp = full_data(idata)
   45060      381172 :          pack_tmp = ISHFT(data_tmp, 19)
   45061      381172 :          pack_tmp = ISHFT(pack_tmp, -19)
   45062      381172 :          idata = idata + 1
   45063      381172 :          data_tmp = full_data(idata)
   45064      381172 :          data_tmp = ISHFT(data_tmp, 9)
   45065      381172 :          data_tmp = IAND(data_tmp, mask_left(19))
   45066      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45067      381172 :          ipack = ipack + 1
   45068      381172 :          packed_data(ipack) = pack_tmp
   45069      381172 :          data_tmp = full_data(idata)
   45070      381172 :          pack_tmp = ISHFT(data_tmp, 28)
   45071      381172 :          pack_tmp = ISHFT(pack_tmp, -28)
   45072      381172 :          idata = idata + 1
   45073      381172 :          data_tmp = full_data(idata)
   45074      381172 :          data_tmp = ISHFT(data_tmp, 9)
   45075      381172 :          data_tmp = IAND(data_tmp, mask_left(28))
   45076      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45077      381172 :          ipack = ipack + 1
   45078      381172 :          packed_data(ipack) = pack_tmp
   45079      381172 :          data_tmp = full_data(idata)
   45080      381172 :          pack_tmp = ISHFT(data_tmp, 37)
   45081      381172 :          pack_tmp = ISHFT(pack_tmp, -37)
   45082      381172 :          idata = idata + 1
   45083      381172 :          data_tmp = full_data(idata)
   45084      381172 :          data_tmp = ISHFT(data_tmp, 9)
   45085      381172 :          data_tmp = IAND(data_tmp, mask_left(37))
   45086      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45087      381172 :          ipack = ipack + 1
   45088      381172 :          packed_data(ipack) = pack_tmp
   45089      381172 :          data_tmp = full_data(idata)
   45090      381172 :          pack_tmp = ISHFT(data_tmp, 46)
   45091      381172 :          pack_tmp = ISHFT(pack_tmp, -46)
   45092      381172 :          idata = idata + 1
   45093      381172 :          data_tmp = full_data(idata)
   45094      381172 :          data_tmp = ISHFT(data_tmp, 9)
   45095      381172 :          data_tmp = IAND(data_tmp, mask_left(46))
   45096      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45097      381172 :          ipack = ipack + 1
   45098      381172 :          packed_data(ipack) = pack_tmp
   45099      381172 :          data_tmp = full_data(idata)
   45100      381172 :          pack_tmp = ISHFT(data_tmp, 55)
   45101      381172 :          pack_tmp = ISHFT(pack_tmp, -55)
   45102      381172 :          idata = idata + 1
   45103      381172 :          data_tmp = full_data(idata)
   45104      381172 :          data_tmp = ISHFT(data_tmp, 9)
   45105      381172 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45106             :          pack_tmp = ISHFT(pack_tmp, 0)
   45107      381172 :          pack_tmp = ISHFT(pack_tmp, 0)
   45108      381172 :          ipack = ipack + 1
   45109      381186 :          packed_data(ipack) = pack_tmp
   45110             :       END DO
   45111       23972 :       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       23972 :    END SUBROUTINE ints2bits_55
   45115             : 
   45116             : ! **************************************************************************************************
   45117             : !> \brief ...
   45118             : !> \param Ndata ...
   45119             : !> \param packed_data ...
   45120             : !> \param full_data ...
   45121             : ! **************************************************************************************************
   45122      106721 :    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      106721 :       ipack = 0
   45133      106721 :       idata = 0
   45134      106721 :       pack_tmp = 0
   45135      106721 :       Ndata_rep = (Ndata/64)*64
   45136      106721 :       DO kdata = 1, Ndata_rep, 64
   45137     1618830 :          idata = idata + 1
   45138     1618830 :          data_tmp = ISHFT(pack_tmp, 55)
   45139     1618830 :          ipack = ipack + 1
   45140     1618830 :          pack_tmp = packed_data(ipack)
   45141     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(55)))
   45142     1618830 :          pack_tmp = ISHFT(pack_tmp, -55)
   45143     1618830 :          idata = idata + 1
   45144     1618830 :          data_tmp = ISHFT(pack_tmp, 46)
   45145     1618830 :          ipack = ipack + 1
   45146     1618830 :          pack_tmp = packed_data(ipack)
   45147     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   45148     1618830 :          pack_tmp = ISHFT(pack_tmp, -46)
   45149     1618830 :          idata = idata + 1
   45150     1618830 :          data_tmp = ISHFT(pack_tmp, 37)
   45151     1618830 :          ipack = ipack + 1
   45152     1618830 :          pack_tmp = packed_data(ipack)
   45153     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   45154     1618830 :          pack_tmp = ISHFT(pack_tmp, -37)
   45155     1618830 :          idata = idata + 1
   45156     1618830 :          data_tmp = ISHFT(pack_tmp, 28)
   45157     1618830 :          ipack = ipack + 1
   45158     1618830 :          pack_tmp = packed_data(ipack)
   45159     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   45160     1618830 :          pack_tmp = ISHFT(pack_tmp, -28)
   45161     1618830 :          idata = idata + 1
   45162     1618830 :          data_tmp = ISHFT(pack_tmp, 19)
   45163     1618830 :          ipack = ipack + 1
   45164     1618830 :          pack_tmp = packed_data(ipack)
   45165     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   45166     1618830 :          pack_tmp = ISHFT(pack_tmp, -19)
   45167     1618830 :          idata = idata + 1
   45168     1618830 :          data_tmp = ISHFT(pack_tmp, 10)
   45169     1618830 :          ipack = ipack + 1
   45170     1618830 :          pack_tmp = packed_data(ipack)
   45171     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   45172     1618830 :          pack_tmp = ISHFT(pack_tmp, -10)
   45173     1618830 :          idata = idata + 1
   45174     1618830 :          data_tmp = ISHFT(pack_tmp, 1)
   45175     1618830 :          ipack = ipack + 1
   45176     1618830 :          pack_tmp = packed_data(ipack)
   45177     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   45178     1618830 :          pack_tmp = ISHFT(pack_tmp, -1)
   45179     1618830 :          idata = idata + 1
   45180     1618830 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45181     1618830 :          full_data(idata) = data_tmp
   45182     1618830 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45183     1618830 :          idata = idata + 1
   45184     1618830 :          data_tmp = ISHFT(pack_tmp, 47)
   45185     1618830 :          ipack = ipack + 1
   45186     1618830 :          pack_tmp = packed_data(ipack)
   45187     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   45188     1618830 :          pack_tmp = ISHFT(pack_tmp, -47)
   45189     1618830 :          idata = idata + 1
   45190     1618830 :          data_tmp = ISHFT(pack_tmp, 38)
   45191     1618830 :          ipack = ipack + 1
   45192     1618830 :          pack_tmp = packed_data(ipack)
   45193     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   45194     1618830 :          pack_tmp = ISHFT(pack_tmp, -38)
   45195     1618830 :          idata = idata + 1
   45196     1618830 :          data_tmp = ISHFT(pack_tmp, 29)
   45197     1618830 :          ipack = ipack + 1
   45198     1618830 :          pack_tmp = packed_data(ipack)
   45199     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   45200     1618830 :          pack_tmp = ISHFT(pack_tmp, -29)
   45201     1618830 :          idata = idata + 1
   45202     1618830 :          data_tmp = ISHFT(pack_tmp, 20)
   45203     1618830 :          ipack = ipack + 1
   45204     1618830 :          pack_tmp = packed_data(ipack)
   45205     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   45206     1618830 :          pack_tmp = ISHFT(pack_tmp, -20)
   45207     1618830 :          idata = idata + 1
   45208     1618830 :          data_tmp = ISHFT(pack_tmp, 11)
   45209     1618830 :          ipack = ipack + 1
   45210     1618830 :          pack_tmp = packed_data(ipack)
   45211     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   45212     1618830 :          pack_tmp = ISHFT(pack_tmp, -11)
   45213     1618830 :          idata = idata + 1
   45214     1618830 :          data_tmp = ISHFT(pack_tmp, 2)
   45215     1618830 :          ipack = ipack + 1
   45216     1618830 :          pack_tmp = packed_data(ipack)
   45217     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   45218     1618830 :          pack_tmp = ISHFT(pack_tmp, -2)
   45219     1618830 :          idata = idata + 1
   45220     1618830 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45221     1618830 :          full_data(idata) = data_tmp
   45222     1618830 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45223     1618830 :          idata = idata + 1
   45224     1618830 :          data_tmp = ISHFT(pack_tmp, 48)
   45225     1618830 :          ipack = ipack + 1
   45226     1618830 :          pack_tmp = packed_data(ipack)
   45227     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   45228     1618830 :          pack_tmp = ISHFT(pack_tmp, -48)
   45229     1618830 :          idata = idata + 1
   45230     1618830 :          data_tmp = ISHFT(pack_tmp, 39)
   45231     1618830 :          ipack = ipack + 1
   45232     1618830 :          pack_tmp = packed_data(ipack)
   45233     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   45234     1618830 :          pack_tmp = ISHFT(pack_tmp, -39)
   45235     1618830 :          idata = idata + 1
   45236     1618830 :          data_tmp = ISHFT(pack_tmp, 30)
   45237     1618830 :          ipack = ipack + 1
   45238     1618830 :          pack_tmp = packed_data(ipack)
   45239     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   45240     1618830 :          pack_tmp = ISHFT(pack_tmp, -30)
   45241     1618830 :          idata = idata + 1
   45242     1618830 :          data_tmp = ISHFT(pack_tmp, 21)
   45243     1618830 :          ipack = ipack + 1
   45244     1618830 :          pack_tmp = packed_data(ipack)
   45245     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   45246     1618830 :          pack_tmp = ISHFT(pack_tmp, -21)
   45247     1618830 :          idata = idata + 1
   45248     1618830 :          data_tmp = ISHFT(pack_tmp, 12)
   45249     1618830 :          ipack = ipack + 1
   45250     1618830 :          pack_tmp = packed_data(ipack)
   45251     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   45252     1618830 :          pack_tmp = ISHFT(pack_tmp, -12)
   45253     1618830 :          idata = idata + 1
   45254     1618830 :          data_tmp = ISHFT(pack_tmp, 3)
   45255     1618830 :          ipack = ipack + 1
   45256     1618830 :          pack_tmp = packed_data(ipack)
   45257     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   45258     1618830 :          pack_tmp = ISHFT(pack_tmp, -3)
   45259     1618830 :          idata = idata + 1
   45260     1618830 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45261     1618830 :          full_data(idata) = data_tmp
   45262     1618830 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45263     1618830 :          idata = idata + 1
   45264     1618830 :          data_tmp = ISHFT(pack_tmp, 49)
   45265     1618830 :          ipack = ipack + 1
   45266     1618830 :          pack_tmp = packed_data(ipack)
   45267     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   45268     1618830 :          pack_tmp = ISHFT(pack_tmp, -49)
   45269     1618830 :          idata = idata + 1
   45270     1618830 :          data_tmp = ISHFT(pack_tmp, 40)
   45271     1618830 :          ipack = ipack + 1
   45272     1618830 :          pack_tmp = packed_data(ipack)
   45273     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   45274     1618830 :          pack_tmp = ISHFT(pack_tmp, -40)
   45275     1618830 :          idata = idata + 1
   45276     1618830 :          data_tmp = ISHFT(pack_tmp, 31)
   45277     1618830 :          ipack = ipack + 1
   45278     1618830 :          pack_tmp = packed_data(ipack)
   45279     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   45280     1618830 :          pack_tmp = ISHFT(pack_tmp, -31)
   45281     1618830 :          idata = idata + 1
   45282     1618830 :          data_tmp = ISHFT(pack_tmp, 22)
   45283     1618830 :          ipack = ipack + 1
   45284     1618830 :          pack_tmp = packed_data(ipack)
   45285     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   45286     1618830 :          pack_tmp = ISHFT(pack_tmp, -22)
   45287     1618830 :          idata = idata + 1
   45288     1618830 :          data_tmp = ISHFT(pack_tmp, 13)
   45289     1618830 :          ipack = ipack + 1
   45290     1618830 :          pack_tmp = packed_data(ipack)
   45291     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   45292     1618830 :          pack_tmp = ISHFT(pack_tmp, -13)
   45293     1618830 :          idata = idata + 1
   45294     1618830 :          data_tmp = ISHFT(pack_tmp, 4)
   45295     1618830 :          ipack = ipack + 1
   45296     1618830 :          pack_tmp = packed_data(ipack)
   45297     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   45298     1618830 :          pack_tmp = ISHFT(pack_tmp, -4)
   45299     1618830 :          idata = idata + 1
   45300     1618830 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45301     1618830 :          full_data(idata) = data_tmp
   45302     1618830 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45303     1618830 :          idata = idata + 1
   45304     1618830 :          data_tmp = ISHFT(pack_tmp, 50)
   45305     1618830 :          ipack = ipack + 1
   45306     1618830 :          pack_tmp = packed_data(ipack)
   45307     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   45308     1618830 :          pack_tmp = ISHFT(pack_tmp, -50)
   45309     1618830 :          idata = idata + 1
   45310     1618830 :          data_tmp = ISHFT(pack_tmp, 41)
   45311     1618830 :          ipack = ipack + 1
   45312     1618830 :          pack_tmp = packed_data(ipack)
   45313     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   45314     1618830 :          pack_tmp = ISHFT(pack_tmp, -41)
   45315     1618830 :          idata = idata + 1
   45316     1618830 :          data_tmp = ISHFT(pack_tmp, 32)
   45317     1618830 :          ipack = ipack + 1
   45318     1618830 :          pack_tmp = packed_data(ipack)
   45319     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   45320     1618830 :          pack_tmp = ISHFT(pack_tmp, -32)
   45321     1618830 :          idata = idata + 1
   45322     1618830 :          data_tmp = ISHFT(pack_tmp, 23)
   45323     1618830 :          ipack = ipack + 1
   45324     1618830 :          pack_tmp = packed_data(ipack)
   45325     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   45326     1618830 :          pack_tmp = ISHFT(pack_tmp, -23)
   45327     1618830 :          idata = idata + 1
   45328     1618830 :          data_tmp = ISHFT(pack_tmp, 14)
   45329     1618830 :          ipack = ipack + 1
   45330     1618830 :          pack_tmp = packed_data(ipack)
   45331     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   45332     1618830 :          pack_tmp = ISHFT(pack_tmp, -14)
   45333     1618830 :          idata = idata + 1
   45334     1618830 :          data_tmp = ISHFT(pack_tmp, 5)
   45335     1618830 :          ipack = ipack + 1
   45336     1618830 :          pack_tmp = packed_data(ipack)
   45337     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   45338     1618830 :          pack_tmp = ISHFT(pack_tmp, -5)
   45339     1618830 :          idata = idata + 1
   45340     1618830 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45341     1618830 :          full_data(idata) = data_tmp
   45342     1618830 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45343     1618830 :          idata = idata + 1
   45344     1618830 :          data_tmp = ISHFT(pack_tmp, 51)
   45345     1618830 :          ipack = ipack + 1
   45346     1618830 :          pack_tmp = packed_data(ipack)
   45347     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   45348     1618830 :          pack_tmp = ISHFT(pack_tmp, -51)
   45349     1618830 :          idata = idata + 1
   45350     1618830 :          data_tmp = ISHFT(pack_tmp, 42)
   45351     1618830 :          ipack = ipack + 1
   45352     1618830 :          pack_tmp = packed_data(ipack)
   45353     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   45354     1618830 :          pack_tmp = ISHFT(pack_tmp, -42)
   45355     1618830 :          idata = idata + 1
   45356     1618830 :          data_tmp = ISHFT(pack_tmp, 33)
   45357     1618830 :          ipack = ipack + 1
   45358     1618830 :          pack_tmp = packed_data(ipack)
   45359     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   45360     1618830 :          pack_tmp = ISHFT(pack_tmp, -33)
   45361     1618830 :          idata = idata + 1
   45362     1618830 :          data_tmp = ISHFT(pack_tmp, 24)
   45363     1618830 :          ipack = ipack + 1
   45364     1618830 :          pack_tmp = packed_data(ipack)
   45365     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   45366     1618830 :          pack_tmp = ISHFT(pack_tmp, -24)
   45367     1618830 :          idata = idata + 1
   45368     1618830 :          data_tmp = ISHFT(pack_tmp, 15)
   45369     1618830 :          ipack = ipack + 1
   45370     1618830 :          pack_tmp = packed_data(ipack)
   45371     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   45372     1618830 :          pack_tmp = ISHFT(pack_tmp, -15)
   45373     1618830 :          idata = idata + 1
   45374     1618830 :          data_tmp = ISHFT(pack_tmp, 6)
   45375     1618830 :          ipack = ipack + 1
   45376     1618830 :          pack_tmp = packed_data(ipack)
   45377     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   45378     1618830 :          pack_tmp = ISHFT(pack_tmp, -6)
   45379     1618830 :          idata = idata + 1
   45380     1618830 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45381     1618830 :          full_data(idata) = data_tmp
   45382     1618830 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45383     1618830 :          idata = idata + 1
   45384     1618830 :          data_tmp = ISHFT(pack_tmp, 52)
   45385     1618830 :          ipack = ipack + 1
   45386     1618830 :          pack_tmp = packed_data(ipack)
   45387     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   45388     1618830 :          pack_tmp = ISHFT(pack_tmp, -52)
   45389     1618830 :          idata = idata + 1
   45390     1618830 :          data_tmp = ISHFT(pack_tmp, 43)
   45391     1618830 :          ipack = ipack + 1
   45392     1618830 :          pack_tmp = packed_data(ipack)
   45393     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   45394     1618830 :          pack_tmp = ISHFT(pack_tmp, -43)
   45395     1618830 :          idata = idata + 1
   45396     1618830 :          data_tmp = ISHFT(pack_tmp, 34)
   45397     1618830 :          ipack = ipack + 1
   45398     1618830 :          pack_tmp = packed_data(ipack)
   45399     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   45400     1618830 :          pack_tmp = ISHFT(pack_tmp, -34)
   45401     1618830 :          idata = idata + 1
   45402     1618830 :          data_tmp = ISHFT(pack_tmp, 25)
   45403     1618830 :          ipack = ipack + 1
   45404     1618830 :          pack_tmp = packed_data(ipack)
   45405     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   45406     1618830 :          pack_tmp = ISHFT(pack_tmp, -25)
   45407     1618830 :          idata = idata + 1
   45408     1618830 :          data_tmp = ISHFT(pack_tmp, 16)
   45409     1618830 :          ipack = ipack + 1
   45410     1618830 :          pack_tmp = packed_data(ipack)
   45411     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   45412     1618830 :          pack_tmp = ISHFT(pack_tmp, -16)
   45413     1618830 :          idata = idata + 1
   45414     1618830 :          data_tmp = ISHFT(pack_tmp, 7)
   45415     1618830 :          ipack = ipack + 1
   45416     1618830 :          pack_tmp = packed_data(ipack)
   45417     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   45418     1618830 :          pack_tmp = ISHFT(pack_tmp, -7)
   45419     1618830 :          idata = idata + 1
   45420     1618830 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45421     1618830 :          full_data(idata) = data_tmp
   45422     1618830 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45423     1618830 :          idata = idata + 1
   45424     1618830 :          data_tmp = ISHFT(pack_tmp, 53)
   45425     1618830 :          ipack = ipack + 1
   45426     1618830 :          pack_tmp = packed_data(ipack)
   45427     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   45428     1618830 :          pack_tmp = ISHFT(pack_tmp, -53)
   45429     1618830 :          idata = idata + 1
   45430     1618830 :          data_tmp = ISHFT(pack_tmp, 44)
   45431     1618830 :          ipack = ipack + 1
   45432     1618830 :          pack_tmp = packed_data(ipack)
   45433     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   45434     1618830 :          pack_tmp = ISHFT(pack_tmp, -44)
   45435     1618830 :          idata = idata + 1
   45436     1618830 :          data_tmp = ISHFT(pack_tmp, 35)
   45437     1618830 :          ipack = ipack + 1
   45438     1618830 :          pack_tmp = packed_data(ipack)
   45439     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   45440     1618830 :          pack_tmp = ISHFT(pack_tmp, -35)
   45441     1618830 :          idata = idata + 1
   45442     1618830 :          data_tmp = ISHFT(pack_tmp, 26)
   45443     1618830 :          ipack = ipack + 1
   45444     1618830 :          pack_tmp = packed_data(ipack)
   45445     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   45446     1618830 :          pack_tmp = ISHFT(pack_tmp, -26)
   45447     1618830 :          idata = idata + 1
   45448     1618830 :          data_tmp = ISHFT(pack_tmp, 17)
   45449     1618830 :          ipack = ipack + 1
   45450     1618830 :          pack_tmp = packed_data(ipack)
   45451     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   45452     1618830 :          pack_tmp = ISHFT(pack_tmp, -17)
   45453     1618830 :          idata = idata + 1
   45454     1618830 :          data_tmp = ISHFT(pack_tmp, 8)
   45455     1618830 :          ipack = ipack + 1
   45456     1618830 :          pack_tmp = packed_data(ipack)
   45457     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   45458     1618830 :          pack_tmp = ISHFT(pack_tmp, -8)
   45459     1618830 :          idata = idata + 1
   45460     1618830 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45461     1618830 :          full_data(idata) = data_tmp
   45462     1618830 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45463     1618830 :          idata = idata + 1
   45464     1618830 :          data_tmp = ISHFT(pack_tmp, 54)
   45465     1618830 :          ipack = ipack + 1
   45466     1618830 :          pack_tmp = packed_data(ipack)
   45467     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   45468     1618830 :          pack_tmp = ISHFT(pack_tmp, -54)
   45469     1618830 :          idata = idata + 1
   45470     1618830 :          data_tmp = ISHFT(pack_tmp, 45)
   45471     1618830 :          ipack = ipack + 1
   45472     1618830 :          pack_tmp = packed_data(ipack)
   45473     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   45474     1618830 :          pack_tmp = ISHFT(pack_tmp, -45)
   45475     1618830 :          idata = idata + 1
   45476     1618830 :          data_tmp = ISHFT(pack_tmp, 36)
   45477     1618830 :          ipack = ipack + 1
   45478     1618830 :          pack_tmp = packed_data(ipack)
   45479     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   45480     1618830 :          pack_tmp = ISHFT(pack_tmp, -36)
   45481     1618830 :          idata = idata + 1
   45482     1618830 :          data_tmp = ISHFT(pack_tmp, 27)
   45483     1618830 :          ipack = ipack + 1
   45484     1618830 :          pack_tmp = packed_data(ipack)
   45485     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   45486     1618830 :          pack_tmp = ISHFT(pack_tmp, -27)
   45487     1618830 :          idata = idata + 1
   45488     1618830 :          data_tmp = ISHFT(pack_tmp, 18)
   45489     1618830 :          ipack = ipack + 1
   45490     1618830 :          pack_tmp = packed_data(ipack)
   45491     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   45492     1618830 :          pack_tmp = ISHFT(pack_tmp, -18)
   45493     1618830 :          idata = idata + 1
   45494     1618830 :          data_tmp = ISHFT(pack_tmp, 9)
   45495     1618830 :          ipack = ipack + 1
   45496     1618830 :          pack_tmp = packed_data(ipack)
   45497     1618830 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   45498     1618830 :          pack_tmp = ISHFT(pack_tmp, -9)
   45499     1618830 :          idata = idata + 1
   45500     1618830 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45501     1618830 :          full_data(idata) = data_tmp
   45502     1619330 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45503             :       END DO
   45504      106721 :       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      106721 :    END SUBROUTINE bits2ints_55
   45508             : 
   45509             : ! **************************************************************************************************
   45510             : !> \brief ...
   45511             : !> \param Ndata ...
   45512             : !> \param packed_data ...
   45513             : !> \param full_data ...
   45514             : ! **************************************************************************************************
   45515       23814 :    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       23814 :       idata = 0
   45526       23814 :       ipack = 0
   45527       23814 :       Ndata_rep = (Ndata/64)*64
   45528       23814 :       DO kdata = 1, Ndata_rep, 64
   45529      379902 :          pack_tmp = 0
   45530      379902 :          idata = idata + 1
   45531      379902 :          data_tmp = full_data(idata)
   45532      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45533      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45534      379902 :          pack_tmp = ISHFT(pack_tmp, -8)
   45535      379902 :          idata = idata + 1
   45536      379902 :          data_tmp = full_data(idata)
   45537      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45538      379902 :          data_tmp = IAND(data_tmp, mask_left(8))
   45539      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45540      379902 :          ipack = ipack + 1
   45541      379902 :          packed_data(ipack) = pack_tmp
   45542      379902 :          data_tmp = full_data(idata)
   45543      379902 :          pack_tmp = ISHFT(data_tmp, 16)
   45544      379902 :          pack_tmp = ISHFT(pack_tmp, -16)
   45545      379902 :          idata = idata + 1
   45546      379902 :          data_tmp = full_data(idata)
   45547      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45548      379902 :          data_tmp = IAND(data_tmp, mask_left(16))
   45549      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45550      379902 :          ipack = ipack + 1
   45551      379902 :          packed_data(ipack) = pack_tmp
   45552      379902 :          data_tmp = full_data(idata)
   45553      379902 :          pack_tmp = ISHFT(data_tmp, 24)
   45554      379902 :          pack_tmp = ISHFT(pack_tmp, -24)
   45555      379902 :          idata = idata + 1
   45556      379902 :          data_tmp = full_data(idata)
   45557      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45558      379902 :          data_tmp = IAND(data_tmp, mask_left(24))
   45559      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45560      379902 :          ipack = ipack + 1
   45561      379902 :          packed_data(ipack) = pack_tmp
   45562      379902 :          data_tmp = full_data(idata)
   45563      379902 :          pack_tmp = ISHFT(data_tmp, 32)
   45564      379902 :          pack_tmp = ISHFT(pack_tmp, -32)
   45565      379902 :          idata = idata + 1
   45566      379902 :          data_tmp = full_data(idata)
   45567      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45568      379902 :          data_tmp = IAND(data_tmp, mask_left(32))
   45569      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45570      379902 :          ipack = ipack + 1
   45571      379902 :          packed_data(ipack) = pack_tmp
   45572      379902 :          data_tmp = full_data(idata)
   45573      379902 :          pack_tmp = ISHFT(data_tmp, 40)
   45574      379902 :          pack_tmp = ISHFT(pack_tmp, -40)
   45575      379902 :          idata = idata + 1
   45576      379902 :          data_tmp = full_data(idata)
   45577      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45578      379902 :          data_tmp = IAND(data_tmp, mask_left(40))
   45579      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45580      379902 :          ipack = ipack + 1
   45581      379902 :          packed_data(ipack) = pack_tmp
   45582      379902 :          data_tmp = full_data(idata)
   45583      379902 :          pack_tmp = ISHFT(data_tmp, 48)
   45584      379902 :          pack_tmp = ISHFT(pack_tmp, -48)
   45585      379902 :          idata = idata + 1
   45586      379902 :          data_tmp = full_data(idata)
   45587      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45588      379902 :          data_tmp = IAND(data_tmp, mask_left(48))
   45589      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45590      379902 :          ipack = ipack + 1
   45591      379902 :          packed_data(ipack) = pack_tmp
   45592      379902 :          data_tmp = full_data(idata)
   45593      379902 :          pack_tmp = ISHFT(data_tmp, 56)
   45594      379902 :          pack_tmp = ISHFT(pack_tmp, -56)
   45595      379902 :          idata = idata + 1
   45596      379902 :          data_tmp = full_data(idata)
   45597      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45598      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45599      379902 :          pack_tmp = ISHFT(pack_tmp, 0)
   45600      379902 :          idata = idata + 1
   45601      379902 :          data_tmp = full_data(idata)
   45602             :          data_tmp = ISHFT(data_tmp, 8)
   45603      379902 :          data_tmp = IAND(data_tmp, mask_left(0))
   45604      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45605      379902 :          ipack = ipack + 1
   45606      379902 :          packed_data(ipack) = pack_tmp
   45607      379902 :          data_tmp = full_data(idata)
   45608      379902 :          pack_tmp = ISHFT(data_tmp, 8)
   45609      379902 :          pack_tmp = ISHFT(pack_tmp, -8)
   45610      379902 :          idata = idata + 1
   45611      379902 :          data_tmp = full_data(idata)
   45612      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45613      379902 :          data_tmp = IAND(data_tmp, mask_left(8))
   45614      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45615      379902 :          ipack = ipack + 1
   45616      379902 :          packed_data(ipack) = pack_tmp
   45617      379902 :          data_tmp = full_data(idata)
   45618      379902 :          pack_tmp = ISHFT(data_tmp, 16)
   45619      379902 :          pack_tmp = ISHFT(pack_tmp, -16)
   45620      379902 :          idata = idata + 1
   45621      379902 :          data_tmp = full_data(idata)
   45622      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45623      379902 :          data_tmp = IAND(data_tmp, mask_left(16))
   45624      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45625      379902 :          ipack = ipack + 1
   45626      379902 :          packed_data(ipack) = pack_tmp
   45627      379902 :          data_tmp = full_data(idata)
   45628      379902 :          pack_tmp = ISHFT(data_tmp, 24)
   45629      379902 :          pack_tmp = ISHFT(pack_tmp, -24)
   45630      379902 :          idata = idata + 1
   45631      379902 :          data_tmp = full_data(idata)
   45632      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45633      379902 :          data_tmp = IAND(data_tmp, mask_left(24))
   45634      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45635      379902 :          ipack = ipack + 1
   45636      379902 :          packed_data(ipack) = pack_tmp
   45637      379902 :          data_tmp = full_data(idata)
   45638      379902 :          pack_tmp = ISHFT(data_tmp, 32)
   45639      379902 :          pack_tmp = ISHFT(pack_tmp, -32)
   45640      379902 :          idata = idata + 1
   45641      379902 :          data_tmp = full_data(idata)
   45642      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45643      379902 :          data_tmp = IAND(data_tmp, mask_left(32))
   45644      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45645      379902 :          ipack = ipack + 1
   45646      379902 :          packed_data(ipack) = pack_tmp
   45647      379902 :          data_tmp = full_data(idata)
   45648      379902 :          pack_tmp = ISHFT(data_tmp, 40)
   45649      379902 :          pack_tmp = ISHFT(pack_tmp, -40)
   45650      379902 :          idata = idata + 1
   45651      379902 :          data_tmp = full_data(idata)
   45652      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45653      379902 :          data_tmp = IAND(data_tmp, mask_left(40))
   45654      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45655      379902 :          ipack = ipack + 1
   45656      379902 :          packed_data(ipack) = pack_tmp
   45657      379902 :          data_tmp = full_data(idata)
   45658      379902 :          pack_tmp = ISHFT(data_tmp, 48)
   45659      379902 :          pack_tmp = ISHFT(pack_tmp, -48)
   45660      379902 :          idata = idata + 1
   45661      379902 :          data_tmp = full_data(idata)
   45662      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45663      379902 :          data_tmp = IAND(data_tmp, mask_left(48))
   45664      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45665      379902 :          ipack = ipack + 1
   45666      379902 :          packed_data(ipack) = pack_tmp
   45667      379902 :          data_tmp = full_data(idata)
   45668      379902 :          pack_tmp = ISHFT(data_tmp, 56)
   45669      379902 :          pack_tmp = ISHFT(pack_tmp, -56)
   45670      379902 :          idata = idata + 1
   45671      379902 :          data_tmp = full_data(idata)
   45672      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45673      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45674      379902 :          pack_tmp = ISHFT(pack_tmp, 0)
   45675      379902 :          idata = idata + 1
   45676      379902 :          data_tmp = full_data(idata)
   45677             :          data_tmp = ISHFT(data_tmp, 8)
   45678      379902 :          data_tmp = IAND(data_tmp, mask_left(0))
   45679      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45680      379902 :          ipack = ipack + 1
   45681      379902 :          packed_data(ipack) = pack_tmp
   45682      379902 :          data_tmp = full_data(idata)
   45683      379902 :          pack_tmp = ISHFT(data_tmp, 8)
   45684      379902 :          pack_tmp = ISHFT(pack_tmp, -8)
   45685      379902 :          idata = idata + 1
   45686      379902 :          data_tmp = full_data(idata)
   45687      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45688      379902 :          data_tmp = IAND(data_tmp, mask_left(8))
   45689      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45690      379902 :          ipack = ipack + 1
   45691      379902 :          packed_data(ipack) = pack_tmp
   45692      379902 :          data_tmp = full_data(idata)
   45693      379902 :          pack_tmp = ISHFT(data_tmp, 16)
   45694      379902 :          pack_tmp = ISHFT(pack_tmp, -16)
   45695      379902 :          idata = idata + 1
   45696      379902 :          data_tmp = full_data(idata)
   45697      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45698      379902 :          data_tmp = IAND(data_tmp, mask_left(16))
   45699      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45700      379902 :          ipack = ipack + 1
   45701      379902 :          packed_data(ipack) = pack_tmp
   45702      379902 :          data_tmp = full_data(idata)
   45703      379902 :          pack_tmp = ISHFT(data_tmp, 24)
   45704      379902 :          pack_tmp = ISHFT(pack_tmp, -24)
   45705      379902 :          idata = idata + 1
   45706      379902 :          data_tmp = full_data(idata)
   45707      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45708      379902 :          data_tmp = IAND(data_tmp, mask_left(24))
   45709      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45710      379902 :          ipack = ipack + 1
   45711      379902 :          packed_data(ipack) = pack_tmp
   45712      379902 :          data_tmp = full_data(idata)
   45713      379902 :          pack_tmp = ISHFT(data_tmp, 32)
   45714      379902 :          pack_tmp = ISHFT(pack_tmp, -32)
   45715      379902 :          idata = idata + 1
   45716      379902 :          data_tmp = full_data(idata)
   45717      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45718      379902 :          data_tmp = IAND(data_tmp, mask_left(32))
   45719      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45720      379902 :          ipack = ipack + 1
   45721      379902 :          packed_data(ipack) = pack_tmp
   45722      379902 :          data_tmp = full_data(idata)
   45723      379902 :          pack_tmp = ISHFT(data_tmp, 40)
   45724      379902 :          pack_tmp = ISHFT(pack_tmp, -40)
   45725      379902 :          idata = idata + 1
   45726      379902 :          data_tmp = full_data(idata)
   45727      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45728      379902 :          data_tmp = IAND(data_tmp, mask_left(40))
   45729      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45730      379902 :          ipack = ipack + 1
   45731      379902 :          packed_data(ipack) = pack_tmp
   45732      379902 :          data_tmp = full_data(idata)
   45733      379902 :          pack_tmp = ISHFT(data_tmp, 48)
   45734      379902 :          pack_tmp = ISHFT(pack_tmp, -48)
   45735      379902 :          idata = idata + 1
   45736      379902 :          data_tmp = full_data(idata)
   45737      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45738      379902 :          data_tmp = IAND(data_tmp, mask_left(48))
   45739      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45740      379902 :          ipack = ipack + 1
   45741      379902 :          packed_data(ipack) = pack_tmp
   45742      379902 :          data_tmp = full_data(idata)
   45743      379902 :          pack_tmp = ISHFT(data_tmp, 56)
   45744      379902 :          pack_tmp = ISHFT(pack_tmp, -56)
   45745      379902 :          idata = idata + 1
   45746      379902 :          data_tmp = full_data(idata)
   45747      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45748      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45749      379902 :          pack_tmp = ISHFT(pack_tmp, 0)
   45750      379902 :          idata = idata + 1
   45751      379902 :          data_tmp = full_data(idata)
   45752             :          data_tmp = ISHFT(data_tmp, 8)
   45753      379902 :          data_tmp = IAND(data_tmp, mask_left(0))
   45754      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45755      379902 :          ipack = ipack + 1
   45756      379902 :          packed_data(ipack) = pack_tmp
   45757      379902 :          data_tmp = full_data(idata)
   45758      379902 :          pack_tmp = ISHFT(data_tmp, 8)
   45759      379902 :          pack_tmp = ISHFT(pack_tmp, -8)
   45760      379902 :          idata = idata + 1
   45761      379902 :          data_tmp = full_data(idata)
   45762      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45763      379902 :          data_tmp = IAND(data_tmp, mask_left(8))
   45764      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45765      379902 :          ipack = ipack + 1
   45766      379902 :          packed_data(ipack) = pack_tmp
   45767      379902 :          data_tmp = full_data(idata)
   45768      379902 :          pack_tmp = ISHFT(data_tmp, 16)
   45769      379902 :          pack_tmp = ISHFT(pack_tmp, -16)
   45770      379902 :          idata = idata + 1
   45771      379902 :          data_tmp = full_data(idata)
   45772      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45773      379902 :          data_tmp = IAND(data_tmp, mask_left(16))
   45774      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45775      379902 :          ipack = ipack + 1
   45776      379902 :          packed_data(ipack) = pack_tmp
   45777      379902 :          data_tmp = full_data(idata)
   45778      379902 :          pack_tmp = ISHFT(data_tmp, 24)
   45779      379902 :          pack_tmp = ISHFT(pack_tmp, -24)
   45780      379902 :          idata = idata + 1
   45781      379902 :          data_tmp = full_data(idata)
   45782      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45783      379902 :          data_tmp = IAND(data_tmp, mask_left(24))
   45784      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45785      379902 :          ipack = ipack + 1
   45786      379902 :          packed_data(ipack) = pack_tmp
   45787      379902 :          data_tmp = full_data(idata)
   45788      379902 :          pack_tmp = ISHFT(data_tmp, 32)
   45789      379902 :          pack_tmp = ISHFT(pack_tmp, -32)
   45790      379902 :          idata = idata + 1
   45791      379902 :          data_tmp = full_data(idata)
   45792      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45793      379902 :          data_tmp = IAND(data_tmp, mask_left(32))
   45794      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45795      379902 :          ipack = ipack + 1
   45796      379902 :          packed_data(ipack) = pack_tmp
   45797      379902 :          data_tmp = full_data(idata)
   45798      379902 :          pack_tmp = ISHFT(data_tmp, 40)
   45799      379902 :          pack_tmp = ISHFT(pack_tmp, -40)
   45800      379902 :          idata = idata + 1
   45801      379902 :          data_tmp = full_data(idata)
   45802      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45803      379902 :          data_tmp = IAND(data_tmp, mask_left(40))
   45804      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45805      379902 :          ipack = ipack + 1
   45806      379902 :          packed_data(ipack) = pack_tmp
   45807      379902 :          data_tmp = full_data(idata)
   45808      379902 :          pack_tmp = ISHFT(data_tmp, 48)
   45809      379902 :          pack_tmp = ISHFT(pack_tmp, -48)
   45810      379902 :          idata = idata + 1
   45811      379902 :          data_tmp = full_data(idata)
   45812      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45813      379902 :          data_tmp = IAND(data_tmp, mask_left(48))
   45814      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45815      379902 :          ipack = ipack + 1
   45816      379902 :          packed_data(ipack) = pack_tmp
   45817      379902 :          data_tmp = full_data(idata)
   45818      379902 :          pack_tmp = ISHFT(data_tmp, 56)
   45819      379902 :          pack_tmp = ISHFT(pack_tmp, -56)
   45820      379902 :          idata = idata + 1
   45821      379902 :          data_tmp = full_data(idata)
   45822      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45823      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45824      379902 :          pack_tmp = ISHFT(pack_tmp, 0)
   45825      379902 :          idata = idata + 1
   45826      379902 :          data_tmp = full_data(idata)
   45827             :          data_tmp = ISHFT(data_tmp, 8)
   45828      379902 :          data_tmp = IAND(data_tmp, mask_left(0))
   45829      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45830      379902 :          ipack = ipack + 1
   45831      379902 :          packed_data(ipack) = pack_tmp
   45832      379902 :          data_tmp = full_data(idata)
   45833      379902 :          pack_tmp = ISHFT(data_tmp, 8)
   45834      379902 :          pack_tmp = ISHFT(pack_tmp, -8)
   45835      379902 :          idata = idata + 1
   45836      379902 :          data_tmp = full_data(idata)
   45837      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45838      379902 :          data_tmp = IAND(data_tmp, mask_left(8))
   45839      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45840      379902 :          ipack = ipack + 1
   45841      379902 :          packed_data(ipack) = pack_tmp
   45842      379902 :          data_tmp = full_data(idata)
   45843      379902 :          pack_tmp = ISHFT(data_tmp, 16)
   45844      379902 :          pack_tmp = ISHFT(pack_tmp, -16)
   45845      379902 :          idata = idata + 1
   45846      379902 :          data_tmp = full_data(idata)
   45847      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45848      379902 :          data_tmp = IAND(data_tmp, mask_left(16))
   45849      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45850      379902 :          ipack = ipack + 1
   45851      379902 :          packed_data(ipack) = pack_tmp
   45852      379902 :          data_tmp = full_data(idata)
   45853      379902 :          pack_tmp = ISHFT(data_tmp, 24)
   45854      379902 :          pack_tmp = ISHFT(pack_tmp, -24)
   45855      379902 :          idata = idata + 1
   45856      379902 :          data_tmp = full_data(idata)
   45857      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45858      379902 :          data_tmp = IAND(data_tmp, mask_left(24))
   45859      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45860      379902 :          ipack = ipack + 1
   45861      379902 :          packed_data(ipack) = pack_tmp
   45862      379902 :          data_tmp = full_data(idata)
   45863      379902 :          pack_tmp = ISHFT(data_tmp, 32)
   45864      379902 :          pack_tmp = ISHFT(pack_tmp, -32)
   45865      379902 :          idata = idata + 1
   45866      379902 :          data_tmp = full_data(idata)
   45867      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45868      379902 :          data_tmp = IAND(data_tmp, mask_left(32))
   45869      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45870      379902 :          ipack = ipack + 1
   45871      379902 :          packed_data(ipack) = pack_tmp
   45872      379902 :          data_tmp = full_data(idata)
   45873      379902 :          pack_tmp = ISHFT(data_tmp, 40)
   45874      379902 :          pack_tmp = ISHFT(pack_tmp, -40)
   45875      379902 :          idata = idata + 1
   45876      379902 :          data_tmp = full_data(idata)
   45877      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45878      379902 :          data_tmp = IAND(data_tmp, mask_left(40))
   45879      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45880      379902 :          ipack = ipack + 1
   45881      379902 :          packed_data(ipack) = pack_tmp
   45882      379902 :          data_tmp = full_data(idata)
   45883      379902 :          pack_tmp = ISHFT(data_tmp, 48)
   45884      379902 :          pack_tmp = ISHFT(pack_tmp, -48)
   45885      379902 :          idata = idata + 1
   45886      379902 :          data_tmp = full_data(idata)
   45887      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45888      379902 :          data_tmp = IAND(data_tmp, mask_left(48))
   45889      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45890      379902 :          ipack = ipack + 1
   45891      379902 :          packed_data(ipack) = pack_tmp
   45892      379902 :          data_tmp = full_data(idata)
   45893      379902 :          pack_tmp = ISHFT(data_tmp, 56)
   45894      379902 :          pack_tmp = ISHFT(pack_tmp, -56)
   45895      379902 :          idata = idata + 1
   45896      379902 :          data_tmp = full_data(idata)
   45897      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45898      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45899      379902 :          pack_tmp = ISHFT(pack_tmp, 0)
   45900      379902 :          idata = idata + 1
   45901      379902 :          data_tmp = full_data(idata)
   45902             :          data_tmp = ISHFT(data_tmp, 8)
   45903      379902 :          data_tmp = IAND(data_tmp, mask_left(0))
   45904      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45905      379902 :          ipack = ipack + 1
   45906      379902 :          packed_data(ipack) = pack_tmp
   45907      379902 :          data_tmp = full_data(idata)
   45908      379902 :          pack_tmp = ISHFT(data_tmp, 8)
   45909      379902 :          pack_tmp = ISHFT(pack_tmp, -8)
   45910      379902 :          idata = idata + 1
   45911      379902 :          data_tmp = full_data(idata)
   45912      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45913      379902 :          data_tmp = IAND(data_tmp, mask_left(8))
   45914      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45915      379902 :          ipack = ipack + 1
   45916      379902 :          packed_data(ipack) = pack_tmp
   45917      379902 :          data_tmp = full_data(idata)
   45918      379902 :          pack_tmp = ISHFT(data_tmp, 16)
   45919      379902 :          pack_tmp = ISHFT(pack_tmp, -16)
   45920      379902 :          idata = idata + 1
   45921      379902 :          data_tmp = full_data(idata)
   45922      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45923      379902 :          data_tmp = IAND(data_tmp, mask_left(16))
   45924      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45925      379902 :          ipack = ipack + 1
   45926      379902 :          packed_data(ipack) = pack_tmp
   45927      379902 :          data_tmp = full_data(idata)
   45928      379902 :          pack_tmp = ISHFT(data_tmp, 24)
   45929      379902 :          pack_tmp = ISHFT(pack_tmp, -24)
   45930      379902 :          idata = idata + 1
   45931      379902 :          data_tmp = full_data(idata)
   45932      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45933      379902 :          data_tmp = IAND(data_tmp, mask_left(24))
   45934      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45935      379902 :          ipack = ipack + 1
   45936      379902 :          packed_data(ipack) = pack_tmp
   45937      379902 :          data_tmp = full_data(idata)
   45938      379902 :          pack_tmp = ISHFT(data_tmp, 32)
   45939      379902 :          pack_tmp = ISHFT(pack_tmp, -32)
   45940      379902 :          idata = idata + 1
   45941      379902 :          data_tmp = full_data(idata)
   45942      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45943      379902 :          data_tmp = IAND(data_tmp, mask_left(32))
   45944      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45945      379902 :          ipack = ipack + 1
   45946      379902 :          packed_data(ipack) = pack_tmp
   45947      379902 :          data_tmp = full_data(idata)
   45948      379902 :          pack_tmp = ISHFT(data_tmp, 40)
   45949      379902 :          pack_tmp = ISHFT(pack_tmp, -40)
   45950      379902 :          idata = idata + 1
   45951      379902 :          data_tmp = full_data(idata)
   45952      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45953      379902 :          data_tmp = IAND(data_tmp, mask_left(40))
   45954      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45955      379902 :          ipack = ipack + 1
   45956      379902 :          packed_data(ipack) = pack_tmp
   45957      379902 :          data_tmp = full_data(idata)
   45958      379902 :          pack_tmp = ISHFT(data_tmp, 48)
   45959      379902 :          pack_tmp = ISHFT(pack_tmp, -48)
   45960      379902 :          idata = idata + 1
   45961      379902 :          data_tmp = full_data(idata)
   45962      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45963      379902 :          data_tmp = IAND(data_tmp, mask_left(48))
   45964      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45965      379902 :          ipack = ipack + 1
   45966      379902 :          packed_data(ipack) = pack_tmp
   45967      379902 :          data_tmp = full_data(idata)
   45968      379902 :          pack_tmp = ISHFT(data_tmp, 56)
   45969      379902 :          pack_tmp = ISHFT(pack_tmp, -56)
   45970      379902 :          idata = idata + 1
   45971      379902 :          data_tmp = full_data(idata)
   45972      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45973      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45974      379902 :          pack_tmp = ISHFT(pack_tmp, 0)
   45975      379902 :          idata = idata + 1
   45976      379902 :          data_tmp = full_data(idata)
   45977             :          data_tmp = ISHFT(data_tmp, 8)
   45978      379902 :          data_tmp = IAND(data_tmp, mask_left(0))
   45979      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45980      379902 :          ipack = ipack + 1
   45981      379902 :          packed_data(ipack) = pack_tmp
   45982      379902 :          data_tmp = full_data(idata)
   45983      379902 :          pack_tmp = ISHFT(data_tmp, 8)
   45984      379902 :          pack_tmp = ISHFT(pack_tmp, -8)
   45985      379902 :          idata = idata + 1
   45986      379902 :          data_tmp = full_data(idata)
   45987      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45988      379902 :          data_tmp = IAND(data_tmp, mask_left(8))
   45989      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45990      379902 :          ipack = ipack + 1
   45991      379902 :          packed_data(ipack) = pack_tmp
   45992      379902 :          data_tmp = full_data(idata)
   45993      379902 :          pack_tmp = ISHFT(data_tmp, 16)
   45994      379902 :          pack_tmp = ISHFT(pack_tmp, -16)
   45995      379902 :          idata = idata + 1
   45996      379902 :          data_tmp = full_data(idata)
   45997      379902 :          data_tmp = ISHFT(data_tmp, 8)
   45998      379902 :          data_tmp = IAND(data_tmp, mask_left(16))
   45999      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46000      379902 :          ipack = ipack + 1
   46001      379902 :          packed_data(ipack) = pack_tmp
   46002      379902 :          data_tmp = full_data(idata)
   46003      379902 :          pack_tmp = ISHFT(data_tmp, 24)
   46004      379902 :          pack_tmp = ISHFT(pack_tmp, -24)
   46005      379902 :          idata = idata + 1
   46006      379902 :          data_tmp = full_data(idata)
   46007      379902 :          data_tmp = ISHFT(data_tmp, 8)
   46008      379902 :          data_tmp = IAND(data_tmp, mask_left(24))
   46009      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46010      379902 :          ipack = ipack + 1
   46011      379902 :          packed_data(ipack) = pack_tmp
   46012      379902 :          data_tmp = full_data(idata)
   46013      379902 :          pack_tmp = ISHFT(data_tmp, 32)
   46014      379902 :          pack_tmp = ISHFT(pack_tmp, -32)
   46015      379902 :          idata = idata + 1
   46016      379902 :          data_tmp = full_data(idata)
   46017      379902 :          data_tmp = ISHFT(data_tmp, 8)
   46018      379902 :          data_tmp = IAND(data_tmp, mask_left(32))
   46019      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46020      379902 :          ipack = ipack + 1
   46021      379902 :          packed_data(ipack) = pack_tmp
   46022      379902 :          data_tmp = full_data(idata)
   46023      379902 :          pack_tmp = ISHFT(data_tmp, 40)
   46024      379902 :          pack_tmp = ISHFT(pack_tmp, -40)
   46025      379902 :          idata = idata + 1
   46026      379902 :          data_tmp = full_data(idata)
   46027      379902 :          data_tmp = ISHFT(data_tmp, 8)
   46028      379902 :          data_tmp = IAND(data_tmp, mask_left(40))
   46029      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46030      379902 :          ipack = ipack + 1
   46031      379902 :          packed_data(ipack) = pack_tmp
   46032      379902 :          data_tmp = full_data(idata)
   46033      379902 :          pack_tmp = ISHFT(data_tmp, 48)
   46034      379902 :          pack_tmp = ISHFT(pack_tmp, -48)
   46035      379902 :          idata = idata + 1
   46036      379902 :          data_tmp = full_data(idata)
   46037      379902 :          data_tmp = ISHFT(data_tmp, 8)
   46038      379902 :          data_tmp = IAND(data_tmp, mask_left(48))
   46039      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46040      379902 :          ipack = ipack + 1
   46041      379902 :          packed_data(ipack) = pack_tmp
   46042      379902 :          data_tmp = full_data(idata)
   46043      379902 :          pack_tmp = ISHFT(data_tmp, 56)
   46044      379902 :          pack_tmp = ISHFT(pack_tmp, -56)
   46045      379902 :          idata = idata + 1
   46046      379902 :          data_tmp = full_data(idata)
   46047      379902 :          data_tmp = ISHFT(data_tmp, 8)
   46048      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46049      379902 :          pack_tmp = ISHFT(pack_tmp, 0)
   46050      379902 :          idata = idata + 1
   46051      379902 :          data_tmp = full_data(idata)
   46052             :          data_tmp = ISHFT(data_tmp, 8)
   46053      379902 :          data_tmp = IAND(data_tmp, mask_left(0))
   46054      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46055      379902 :          ipack = ipack + 1
   46056      379902 :          packed_data(ipack) = pack_tmp
   46057      379902 :          data_tmp = full_data(idata)
   46058      379902 :          pack_tmp = ISHFT(data_tmp, 8)
   46059      379902 :          pack_tmp = ISHFT(pack_tmp, -8)
   46060      379902 :          idata = idata + 1
   46061      379902 :          data_tmp = full_data(idata)
   46062      379902 :          data_tmp = ISHFT(data_tmp, 8)
   46063      379902 :          data_tmp = IAND(data_tmp, mask_left(8))
   46064      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46065      379902 :          ipack = ipack + 1
   46066      379902 :          packed_data(ipack) = pack_tmp
   46067      379902 :          data_tmp = full_data(idata)
   46068      379902 :          pack_tmp = ISHFT(data_tmp, 16)
   46069      379902 :          pack_tmp = ISHFT(pack_tmp, -16)
   46070      379902 :          idata = idata + 1
   46071      379902 :          data_tmp = full_data(idata)
   46072      379902 :          data_tmp = ISHFT(data_tmp, 8)
   46073      379902 :          data_tmp = IAND(data_tmp, mask_left(16))
   46074      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46075      379902 :          ipack = ipack + 1
   46076      379902 :          packed_data(ipack) = pack_tmp
   46077      379902 :          data_tmp = full_data(idata)
   46078      379902 :          pack_tmp = ISHFT(data_tmp, 24)
   46079      379902 :          pack_tmp = ISHFT(pack_tmp, -24)
   46080      379902 :          idata = idata + 1
   46081      379902 :          data_tmp = full_data(idata)
   46082      379902 :          data_tmp = ISHFT(data_tmp, 8)
   46083      379902 :          data_tmp = IAND(data_tmp, mask_left(24))
   46084      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46085      379902 :          ipack = ipack + 1
   46086      379902 :          packed_data(ipack) = pack_tmp
   46087      379902 :          data_tmp = full_data(idata)
   46088      379902 :          pack_tmp = ISHFT(data_tmp, 32)
   46089      379902 :          pack_tmp = ISHFT(pack_tmp, -32)
   46090      379902 :          idata = idata + 1
   46091      379902 :          data_tmp = full_data(idata)
   46092      379902 :          data_tmp = ISHFT(data_tmp, 8)
   46093      379902 :          data_tmp = IAND(data_tmp, mask_left(32))
   46094      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46095      379902 :          ipack = ipack + 1
   46096      379902 :          packed_data(ipack) = pack_tmp
   46097      379902 :          data_tmp = full_data(idata)
   46098      379902 :          pack_tmp = ISHFT(data_tmp, 40)
   46099      379902 :          pack_tmp = ISHFT(pack_tmp, -40)
   46100      379902 :          idata = idata + 1
   46101      379902 :          data_tmp = full_data(idata)
   46102      379902 :          data_tmp = ISHFT(data_tmp, 8)
   46103      379902 :          data_tmp = IAND(data_tmp, mask_left(40))
   46104      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46105      379902 :          ipack = ipack + 1
   46106      379902 :          packed_data(ipack) = pack_tmp
   46107      379902 :          data_tmp = full_data(idata)
   46108      379902 :          pack_tmp = ISHFT(data_tmp, 48)
   46109      379902 :          pack_tmp = ISHFT(pack_tmp, -48)
   46110      379902 :          idata = idata + 1
   46111      379902 :          data_tmp = full_data(idata)
   46112      379902 :          data_tmp = ISHFT(data_tmp, 8)
   46113      379902 :          data_tmp = IAND(data_tmp, mask_left(48))
   46114      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46115      379902 :          ipack = ipack + 1
   46116      379902 :          packed_data(ipack) = pack_tmp
   46117      379902 :          data_tmp = full_data(idata)
   46118      379902 :          pack_tmp = ISHFT(data_tmp, 56)
   46119      379902 :          pack_tmp = ISHFT(pack_tmp, -56)
   46120      379902 :          idata = idata + 1
   46121      379902 :          data_tmp = full_data(idata)
   46122      379902 :          data_tmp = ISHFT(data_tmp, 8)
   46123      379902 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46124             :          pack_tmp = ISHFT(pack_tmp, 0)
   46125      379902 :          pack_tmp = ISHFT(pack_tmp, 0)
   46126      379902 :          ipack = ipack + 1
   46127      379908 :          packed_data(ipack) = pack_tmp
   46128             :       END DO
   46129       23814 :       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       23814 :    END SUBROUTINE ints2bits_56
   46133             : 
   46134             : ! **************************************************************************************************
   46135             : !> \brief ...
   46136             : !> \param Ndata ...
   46137             : !> \param packed_data ...
   46138             : !> \param full_data ...
   46139             : ! **************************************************************************************************
   46140      102645 :    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      102645 :       ipack = 0
   46151      102645 :       idata = 0
   46152      102645 :       pack_tmp = 0
   46153      102645 :       Ndata_rep = (Ndata/64)*64
   46154      102645 :       DO kdata = 1, Ndata_rep, 64
   46155     1584078 :          idata = idata + 1
   46156     1584078 :          data_tmp = ISHFT(pack_tmp, 56)
   46157     1584078 :          ipack = ipack + 1
   46158     1584078 :          pack_tmp = packed_data(ipack)
   46159     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46160     1584078 :          pack_tmp = ISHFT(pack_tmp, -56)
   46161     1584078 :          idata = idata + 1
   46162     1584078 :          data_tmp = ISHFT(pack_tmp, 48)
   46163     1584078 :          ipack = ipack + 1
   46164     1584078 :          pack_tmp = packed_data(ipack)
   46165     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46166     1584078 :          pack_tmp = ISHFT(pack_tmp, -48)
   46167     1584078 :          idata = idata + 1
   46168     1584078 :          data_tmp = ISHFT(pack_tmp, 40)
   46169     1584078 :          ipack = ipack + 1
   46170     1584078 :          pack_tmp = packed_data(ipack)
   46171     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46172     1584078 :          pack_tmp = ISHFT(pack_tmp, -40)
   46173     1584078 :          idata = idata + 1
   46174     1584078 :          data_tmp = ISHFT(pack_tmp, 32)
   46175     1584078 :          ipack = ipack + 1
   46176     1584078 :          pack_tmp = packed_data(ipack)
   46177     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46178     1584078 :          pack_tmp = ISHFT(pack_tmp, -32)
   46179     1584078 :          idata = idata + 1
   46180     1584078 :          data_tmp = ISHFT(pack_tmp, 24)
   46181     1584078 :          ipack = ipack + 1
   46182     1584078 :          pack_tmp = packed_data(ipack)
   46183     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46184     1584078 :          pack_tmp = ISHFT(pack_tmp, -24)
   46185     1584078 :          idata = idata + 1
   46186     1584078 :          data_tmp = ISHFT(pack_tmp, 16)
   46187     1584078 :          ipack = ipack + 1
   46188     1584078 :          pack_tmp = packed_data(ipack)
   46189     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46190     1584078 :          pack_tmp = ISHFT(pack_tmp, -16)
   46191     1584078 :          idata = idata + 1
   46192     1584078 :          data_tmp = ISHFT(pack_tmp, 8)
   46193     1584078 :          ipack = ipack + 1
   46194     1584078 :          pack_tmp = packed_data(ipack)
   46195     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46196     1584078 :          pack_tmp = ISHFT(pack_tmp, -8)
   46197     1584078 :          idata = idata + 1
   46198     1584078 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46199     1584078 :          full_data(idata) = data_tmp
   46200     1584078 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46201     1584078 :          idata = idata + 1
   46202     1584078 :          data_tmp = ISHFT(pack_tmp, 56)
   46203     1584078 :          ipack = ipack + 1
   46204     1584078 :          pack_tmp = packed_data(ipack)
   46205     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46206     1584078 :          pack_tmp = ISHFT(pack_tmp, -56)
   46207     1584078 :          idata = idata + 1
   46208     1584078 :          data_tmp = ISHFT(pack_tmp, 48)
   46209     1584078 :          ipack = ipack + 1
   46210     1584078 :          pack_tmp = packed_data(ipack)
   46211     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46212     1584078 :          pack_tmp = ISHFT(pack_tmp, -48)
   46213     1584078 :          idata = idata + 1
   46214     1584078 :          data_tmp = ISHFT(pack_tmp, 40)
   46215     1584078 :          ipack = ipack + 1
   46216     1584078 :          pack_tmp = packed_data(ipack)
   46217     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46218     1584078 :          pack_tmp = ISHFT(pack_tmp, -40)
   46219     1584078 :          idata = idata + 1
   46220     1584078 :          data_tmp = ISHFT(pack_tmp, 32)
   46221     1584078 :          ipack = ipack + 1
   46222     1584078 :          pack_tmp = packed_data(ipack)
   46223     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46224     1584078 :          pack_tmp = ISHFT(pack_tmp, -32)
   46225     1584078 :          idata = idata + 1
   46226     1584078 :          data_tmp = ISHFT(pack_tmp, 24)
   46227     1584078 :          ipack = ipack + 1
   46228     1584078 :          pack_tmp = packed_data(ipack)
   46229     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46230     1584078 :          pack_tmp = ISHFT(pack_tmp, -24)
   46231     1584078 :          idata = idata + 1
   46232     1584078 :          data_tmp = ISHFT(pack_tmp, 16)
   46233     1584078 :          ipack = ipack + 1
   46234     1584078 :          pack_tmp = packed_data(ipack)
   46235     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46236     1584078 :          pack_tmp = ISHFT(pack_tmp, -16)
   46237     1584078 :          idata = idata + 1
   46238     1584078 :          data_tmp = ISHFT(pack_tmp, 8)
   46239     1584078 :          ipack = ipack + 1
   46240     1584078 :          pack_tmp = packed_data(ipack)
   46241     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46242     1584078 :          pack_tmp = ISHFT(pack_tmp, -8)
   46243     1584078 :          idata = idata + 1
   46244     1584078 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46245     1584078 :          full_data(idata) = data_tmp
   46246     1584078 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46247     1584078 :          idata = idata + 1
   46248     1584078 :          data_tmp = ISHFT(pack_tmp, 56)
   46249     1584078 :          ipack = ipack + 1
   46250     1584078 :          pack_tmp = packed_data(ipack)
   46251     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46252     1584078 :          pack_tmp = ISHFT(pack_tmp, -56)
   46253     1584078 :          idata = idata + 1
   46254     1584078 :          data_tmp = ISHFT(pack_tmp, 48)
   46255     1584078 :          ipack = ipack + 1
   46256     1584078 :          pack_tmp = packed_data(ipack)
   46257     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46258     1584078 :          pack_tmp = ISHFT(pack_tmp, -48)
   46259     1584078 :          idata = idata + 1
   46260     1584078 :          data_tmp = ISHFT(pack_tmp, 40)
   46261     1584078 :          ipack = ipack + 1
   46262     1584078 :          pack_tmp = packed_data(ipack)
   46263     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46264     1584078 :          pack_tmp = ISHFT(pack_tmp, -40)
   46265     1584078 :          idata = idata + 1
   46266     1584078 :          data_tmp = ISHFT(pack_tmp, 32)
   46267     1584078 :          ipack = ipack + 1
   46268     1584078 :          pack_tmp = packed_data(ipack)
   46269     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46270     1584078 :          pack_tmp = ISHFT(pack_tmp, -32)
   46271     1584078 :          idata = idata + 1
   46272     1584078 :          data_tmp = ISHFT(pack_tmp, 24)
   46273     1584078 :          ipack = ipack + 1
   46274     1584078 :          pack_tmp = packed_data(ipack)
   46275     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46276     1584078 :          pack_tmp = ISHFT(pack_tmp, -24)
   46277     1584078 :          idata = idata + 1
   46278     1584078 :          data_tmp = ISHFT(pack_tmp, 16)
   46279     1584078 :          ipack = ipack + 1
   46280     1584078 :          pack_tmp = packed_data(ipack)
   46281     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46282     1584078 :          pack_tmp = ISHFT(pack_tmp, -16)
   46283     1584078 :          idata = idata + 1
   46284     1584078 :          data_tmp = ISHFT(pack_tmp, 8)
   46285     1584078 :          ipack = ipack + 1
   46286     1584078 :          pack_tmp = packed_data(ipack)
   46287     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46288     1584078 :          pack_tmp = ISHFT(pack_tmp, -8)
   46289     1584078 :          idata = idata + 1
   46290     1584078 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46291     1584078 :          full_data(idata) = data_tmp
   46292     1584078 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46293     1584078 :          idata = idata + 1
   46294     1584078 :          data_tmp = ISHFT(pack_tmp, 56)
   46295     1584078 :          ipack = ipack + 1
   46296     1584078 :          pack_tmp = packed_data(ipack)
   46297     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46298     1584078 :          pack_tmp = ISHFT(pack_tmp, -56)
   46299     1584078 :          idata = idata + 1
   46300     1584078 :          data_tmp = ISHFT(pack_tmp, 48)
   46301     1584078 :          ipack = ipack + 1
   46302     1584078 :          pack_tmp = packed_data(ipack)
   46303     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46304     1584078 :          pack_tmp = ISHFT(pack_tmp, -48)
   46305     1584078 :          idata = idata + 1
   46306     1584078 :          data_tmp = ISHFT(pack_tmp, 40)
   46307     1584078 :          ipack = ipack + 1
   46308     1584078 :          pack_tmp = packed_data(ipack)
   46309     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46310     1584078 :          pack_tmp = ISHFT(pack_tmp, -40)
   46311     1584078 :          idata = idata + 1
   46312     1584078 :          data_tmp = ISHFT(pack_tmp, 32)
   46313     1584078 :          ipack = ipack + 1
   46314     1584078 :          pack_tmp = packed_data(ipack)
   46315     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46316     1584078 :          pack_tmp = ISHFT(pack_tmp, -32)
   46317     1584078 :          idata = idata + 1
   46318     1584078 :          data_tmp = ISHFT(pack_tmp, 24)
   46319     1584078 :          ipack = ipack + 1
   46320     1584078 :          pack_tmp = packed_data(ipack)
   46321     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46322     1584078 :          pack_tmp = ISHFT(pack_tmp, -24)
   46323     1584078 :          idata = idata + 1
   46324     1584078 :          data_tmp = ISHFT(pack_tmp, 16)
   46325     1584078 :          ipack = ipack + 1
   46326     1584078 :          pack_tmp = packed_data(ipack)
   46327     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46328     1584078 :          pack_tmp = ISHFT(pack_tmp, -16)
   46329     1584078 :          idata = idata + 1
   46330     1584078 :          data_tmp = ISHFT(pack_tmp, 8)
   46331     1584078 :          ipack = ipack + 1
   46332     1584078 :          pack_tmp = packed_data(ipack)
   46333     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46334     1584078 :          pack_tmp = ISHFT(pack_tmp, -8)
   46335     1584078 :          idata = idata + 1
   46336     1584078 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46337     1584078 :          full_data(idata) = data_tmp
   46338     1584078 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46339     1584078 :          idata = idata + 1
   46340     1584078 :          data_tmp = ISHFT(pack_tmp, 56)
   46341     1584078 :          ipack = ipack + 1
   46342     1584078 :          pack_tmp = packed_data(ipack)
   46343     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46344     1584078 :          pack_tmp = ISHFT(pack_tmp, -56)
   46345     1584078 :          idata = idata + 1
   46346     1584078 :          data_tmp = ISHFT(pack_tmp, 48)
   46347     1584078 :          ipack = ipack + 1
   46348     1584078 :          pack_tmp = packed_data(ipack)
   46349     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46350     1584078 :          pack_tmp = ISHFT(pack_tmp, -48)
   46351     1584078 :          idata = idata + 1
   46352     1584078 :          data_tmp = ISHFT(pack_tmp, 40)
   46353     1584078 :          ipack = ipack + 1
   46354     1584078 :          pack_tmp = packed_data(ipack)
   46355     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46356     1584078 :          pack_tmp = ISHFT(pack_tmp, -40)
   46357     1584078 :          idata = idata + 1
   46358     1584078 :          data_tmp = ISHFT(pack_tmp, 32)
   46359     1584078 :          ipack = ipack + 1
   46360     1584078 :          pack_tmp = packed_data(ipack)
   46361     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46362     1584078 :          pack_tmp = ISHFT(pack_tmp, -32)
   46363     1584078 :          idata = idata + 1
   46364     1584078 :          data_tmp = ISHFT(pack_tmp, 24)
   46365     1584078 :          ipack = ipack + 1
   46366     1584078 :          pack_tmp = packed_data(ipack)
   46367     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46368     1584078 :          pack_tmp = ISHFT(pack_tmp, -24)
   46369     1584078 :          idata = idata + 1
   46370     1584078 :          data_tmp = ISHFT(pack_tmp, 16)
   46371     1584078 :          ipack = ipack + 1
   46372     1584078 :          pack_tmp = packed_data(ipack)
   46373     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46374     1584078 :          pack_tmp = ISHFT(pack_tmp, -16)
   46375     1584078 :          idata = idata + 1
   46376     1584078 :          data_tmp = ISHFT(pack_tmp, 8)
   46377     1584078 :          ipack = ipack + 1
   46378     1584078 :          pack_tmp = packed_data(ipack)
   46379     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46380     1584078 :          pack_tmp = ISHFT(pack_tmp, -8)
   46381     1584078 :          idata = idata + 1
   46382     1584078 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46383     1584078 :          full_data(idata) = data_tmp
   46384     1584078 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46385     1584078 :          idata = idata + 1
   46386     1584078 :          data_tmp = ISHFT(pack_tmp, 56)
   46387     1584078 :          ipack = ipack + 1
   46388     1584078 :          pack_tmp = packed_data(ipack)
   46389     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46390     1584078 :          pack_tmp = ISHFT(pack_tmp, -56)
   46391     1584078 :          idata = idata + 1
   46392     1584078 :          data_tmp = ISHFT(pack_tmp, 48)
   46393     1584078 :          ipack = ipack + 1
   46394     1584078 :          pack_tmp = packed_data(ipack)
   46395     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46396     1584078 :          pack_tmp = ISHFT(pack_tmp, -48)
   46397     1584078 :          idata = idata + 1
   46398     1584078 :          data_tmp = ISHFT(pack_tmp, 40)
   46399     1584078 :          ipack = ipack + 1
   46400     1584078 :          pack_tmp = packed_data(ipack)
   46401     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46402     1584078 :          pack_tmp = ISHFT(pack_tmp, -40)
   46403     1584078 :          idata = idata + 1
   46404     1584078 :          data_tmp = ISHFT(pack_tmp, 32)
   46405     1584078 :          ipack = ipack + 1
   46406     1584078 :          pack_tmp = packed_data(ipack)
   46407     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46408     1584078 :          pack_tmp = ISHFT(pack_tmp, -32)
   46409     1584078 :          idata = idata + 1
   46410     1584078 :          data_tmp = ISHFT(pack_tmp, 24)
   46411     1584078 :          ipack = ipack + 1
   46412     1584078 :          pack_tmp = packed_data(ipack)
   46413     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46414     1584078 :          pack_tmp = ISHFT(pack_tmp, -24)
   46415     1584078 :          idata = idata + 1
   46416     1584078 :          data_tmp = ISHFT(pack_tmp, 16)
   46417     1584078 :          ipack = ipack + 1
   46418     1584078 :          pack_tmp = packed_data(ipack)
   46419     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46420     1584078 :          pack_tmp = ISHFT(pack_tmp, -16)
   46421     1584078 :          idata = idata + 1
   46422     1584078 :          data_tmp = ISHFT(pack_tmp, 8)
   46423     1584078 :          ipack = ipack + 1
   46424     1584078 :          pack_tmp = packed_data(ipack)
   46425     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46426     1584078 :          pack_tmp = ISHFT(pack_tmp, -8)
   46427     1584078 :          idata = idata + 1
   46428     1584078 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46429     1584078 :          full_data(idata) = data_tmp
   46430     1584078 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46431     1584078 :          idata = idata + 1
   46432     1584078 :          data_tmp = ISHFT(pack_tmp, 56)
   46433     1584078 :          ipack = ipack + 1
   46434     1584078 :          pack_tmp = packed_data(ipack)
   46435     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46436     1584078 :          pack_tmp = ISHFT(pack_tmp, -56)
   46437     1584078 :          idata = idata + 1
   46438     1584078 :          data_tmp = ISHFT(pack_tmp, 48)
   46439     1584078 :          ipack = ipack + 1
   46440     1584078 :          pack_tmp = packed_data(ipack)
   46441     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46442     1584078 :          pack_tmp = ISHFT(pack_tmp, -48)
   46443     1584078 :          idata = idata + 1
   46444     1584078 :          data_tmp = ISHFT(pack_tmp, 40)
   46445     1584078 :          ipack = ipack + 1
   46446     1584078 :          pack_tmp = packed_data(ipack)
   46447     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46448     1584078 :          pack_tmp = ISHFT(pack_tmp, -40)
   46449     1584078 :          idata = idata + 1
   46450     1584078 :          data_tmp = ISHFT(pack_tmp, 32)
   46451     1584078 :          ipack = ipack + 1
   46452     1584078 :          pack_tmp = packed_data(ipack)
   46453     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46454     1584078 :          pack_tmp = ISHFT(pack_tmp, -32)
   46455     1584078 :          idata = idata + 1
   46456     1584078 :          data_tmp = ISHFT(pack_tmp, 24)
   46457     1584078 :          ipack = ipack + 1
   46458     1584078 :          pack_tmp = packed_data(ipack)
   46459     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46460     1584078 :          pack_tmp = ISHFT(pack_tmp, -24)
   46461     1584078 :          idata = idata + 1
   46462     1584078 :          data_tmp = ISHFT(pack_tmp, 16)
   46463     1584078 :          ipack = ipack + 1
   46464     1584078 :          pack_tmp = packed_data(ipack)
   46465     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46466     1584078 :          pack_tmp = ISHFT(pack_tmp, -16)
   46467     1584078 :          idata = idata + 1
   46468     1584078 :          data_tmp = ISHFT(pack_tmp, 8)
   46469     1584078 :          ipack = ipack + 1
   46470     1584078 :          pack_tmp = packed_data(ipack)
   46471     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46472     1584078 :          pack_tmp = ISHFT(pack_tmp, -8)
   46473     1584078 :          idata = idata + 1
   46474     1584078 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46475     1584078 :          full_data(idata) = data_tmp
   46476     1584078 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46477     1584078 :          idata = idata + 1
   46478     1584078 :          data_tmp = ISHFT(pack_tmp, 56)
   46479     1584078 :          ipack = ipack + 1
   46480     1584078 :          pack_tmp = packed_data(ipack)
   46481     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46482     1584078 :          pack_tmp = ISHFT(pack_tmp, -56)
   46483     1584078 :          idata = idata + 1
   46484     1584078 :          data_tmp = ISHFT(pack_tmp, 48)
   46485     1584078 :          ipack = ipack + 1
   46486     1584078 :          pack_tmp = packed_data(ipack)
   46487     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46488     1584078 :          pack_tmp = ISHFT(pack_tmp, -48)
   46489     1584078 :          idata = idata + 1
   46490     1584078 :          data_tmp = ISHFT(pack_tmp, 40)
   46491     1584078 :          ipack = ipack + 1
   46492     1584078 :          pack_tmp = packed_data(ipack)
   46493     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46494     1584078 :          pack_tmp = ISHFT(pack_tmp, -40)
   46495     1584078 :          idata = idata + 1
   46496     1584078 :          data_tmp = ISHFT(pack_tmp, 32)
   46497     1584078 :          ipack = ipack + 1
   46498     1584078 :          pack_tmp = packed_data(ipack)
   46499     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46500     1584078 :          pack_tmp = ISHFT(pack_tmp, -32)
   46501     1584078 :          idata = idata + 1
   46502     1584078 :          data_tmp = ISHFT(pack_tmp, 24)
   46503     1584078 :          ipack = ipack + 1
   46504     1584078 :          pack_tmp = packed_data(ipack)
   46505     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46506     1584078 :          pack_tmp = ISHFT(pack_tmp, -24)
   46507     1584078 :          idata = idata + 1
   46508     1584078 :          data_tmp = ISHFT(pack_tmp, 16)
   46509     1584078 :          ipack = ipack + 1
   46510     1584078 :          pack_tmp = packed_data(ipack)
   46511     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46512     1584078 :          pack_tmp = ISHFT(pack_tmp, -16)
   46513     1584078 :          idata = idata + 1
   46514     1584078 :          data_tmp = ISHFT(pack_tmp, 8)
   46515     1584078 :          ipack = ipack + 1
   46516     1584078 :          pack_tmp = packed_data(ipack)
   46517     1584078 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46518     1584078 :          pack_tmp = ISHFT(pack_tmp, -8)
   46519     1584078 :          idata = idata + 1
   46520     1584078 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46521     1584078 :          full_data(idata) = data_tmp
   46522     1584444 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46523             :       END DO
   46524      102645 :       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      102645 :    END SUBROUTINE bits2ints_56
   46528             : 
   46529             : ! **************************************************************************************************
   46530             : !> \brief ...
   46531             : !> \param Ndata ...
   46532             : !> \param packed_data ...
   46533             : !> \param full_data ...
   46534             : ! **************************************************************************************************
   46535       23738 :    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       23738 :       idata = 0
   46546       23738 :       ipack = 0
   46547       23738 :       Ndata_rep = (Ndata/64)*64
   46548       23738 :       DO kdata = 1, Ndata_rep, 64
   46549      379298 :          pack_tmp = 0
   46550      379298 :          idata = idata + 1
   46551      379298 :          data_tmp = full_data(idata)
   46552      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46553      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46554      379298 :          pack_tmp = ISHFT(pack_tmp, -7)
   46555      379298 :          idata = idata + 1
   46556      379298 :          data_tmp = full_data(idata)
   46557      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46558      379298 :          data_tmp = IAND(data_tmp, mask_left(7))
   46559      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46560      379298 :          ipack = ipack + 1
   46561      379298 :          packed_data(ipack) = pack_tmp
   46562      379298 :          data_tmp = full_data(idata)
   46563      379298 :          pack_tmp = ISHFT(data_tmp, 14)
   46564      379298 :          pack_tmp = ISHFT(pack_tmp, -14)
   46565      379298 :          idata = idata + 1
   46566      379298 :          data_tmp = full_data(idata)
   46567      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46568      379298 :          data_tmp = IAND(data_tmp, mask_left(14))
   46569      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46570      379298 :          ipack = ipack + 1
   46571      379298 :          packed_data(ipack) = pack_tmp
   46572      379298 :          data_tmp = full_data(idata)
   46573      379298 :          pack_tmp = ISHFT(data_tmp, 21)
   46574      379298 :          pack_tmp = ISHFT(pack_tmp, -21)
   46575      379298 :          idata = idata + 1
   46576      379298 :          data_tmp = full_data(idata)
   46577      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46578      379298 :          data_tmp = IAND(data_tmp, mask_left(21))
   46579      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46580      379298 :          ipack = ipack + 1
   46581      379298 :          packed_data(ipack) = pack_tmp
   46582      379298 :          data_tmp = full_data(idata)
   46583      379298 :          pack_tmp = ISHFT(data_tmp, 28)
   46584      379298 :          pack_tmp = ISHFT(pack_tmp, -28)
   46585      379298 :          idata = idata + 1
   46586      379298 :          data_tmp = full_data(idata)
   46587      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46588      379298 :          data_tmp = IAND(data_tmp, mask_left(28))
   46589      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46590      379298 :          ipack = ipack + 1
   46591      379298 :          packed_data(ipack) = pack_tmp
   46592      379298 :          data_tmp = full_data(idata)
   46593      379298 :          pack_tmp = ISHFT(data_tmp, 35)
   46594      379298 :          pack_tmp = ISHFT(pack_tmp, -35)
   46595      379298 :          idata = idata + 1
   46596      379298 :          data_tmp = full_data(idata)
   46597      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46598      379298 :          data_tmp = IAND(data_tmp, mask_left(35))
   46599      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46600      379298 :          ipack = ipack + 1
   46601      379298 :          packed_data(ipack) = pack_tmp
   46602      379298 :          data_tmp = full_data(idata)
   46603      379298 :          pack_tmp = ISHFT(data_tmp, 42)
   46604      379298 :          pack_tmp = ISHFT(pack_tmp, -42)
   46605      379298 :          idata = idata + 1
   46606      379298 :          data_tmp = full_data(idata)
   46607      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46608      379298 :          data_tmp = IAND(data_tmp, mask_left(42))
   46609      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46610      379298 :          ipack = ipack + 1
   46611      379298 :          packed_data(ipack) = pack_tmp
   46612      379298 :          data_tmp = full_data(idata)
   46613      379298 :          pack_tmp = ISHFT(data_tmp, 49)
   46614      379298 :          pack_tmp = ISHFT(pack_tmp, -49)
   46615      379298 :          idata = idata + 1
   46616      379298 :          data_tmp = full_data(idata)
   46617      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46618      379298 :          data_tmp = IAND(data_tmp, mask_left(49))
   46619      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46620      379298 :          ipack = ipack + 1
   46621      379298 :          packed_data(ipack) = pack_tmp
   46622      379298 :          data_tmp = full_data(idata)
   46623      379298 :          pack_tmp = ISHFT(data_tmp, 56)
   46624      379298 :          pack_tmp = ISHFT(pack_tmp, -56)
   46625      379298 :          idata = idata + 1
   46626      379298 :          data_tmp = full_data(idata)
   46627      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46628      379298 :          data_tmp = IAND(data_tmp, mask_left(56))
   46629      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46630      379298 :          ipack = ipack + 1
   46631      379298 :          packed_data(ipack) = pack_tmp
   46632      379298 :          data_tmp = full_data(idata)
   46633      379298 :          pack_tmp = ISHFT(data_tmp, 63)
   46634      379298 :          pack_tmp = ISHFT(pack_tmp, -57)
   46635      379298 :          idata = idata + 1
   46636      379298 :          data_tmp = full_data(idata)
   46637      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46638      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46639      379298 :          pack_tmp = ISHFT(pack_tmp, -6)
   46640      379298 :          idata = idata + 1
   46641      379298 :          data_tmp = full_data(idata)
   46642      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46643      379298 :          data_tmp = IAND(data_tmp, mask_left(6))
   46644      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46645      379298 :          ipack = ipack + 1
   46646      379298 :          packed_data(ipack) = pack_tmp
   46647      379298 :          data_tmp = full_data(idata)
   46648      379298 :          pack_tmp = ISHFT(data_tmp, 13)
   46649      379298 :          pack_tmp = ISHFT(pack_tmp, -13)
   46650      379298 :          idata = idata + 1
   46651      379298 :          data_tmp = full_data(idata)
   46652      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46653      379298 :          data_tmp = IAND(data_tmp, mask_left(13))
   46654      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46655      379298 :          ipack = ipack + 1
   46656      379298 :          packed_data(ipack) = pack_tmp
   46657      379298 :          data_tmp = full_data(idata)
   46658      379298 :          pack_tmp = ISHFT(data_tmp, 20)
   46659      379298 :          pack_tmp = ISHFT(pack_tmp, -20)
   46660      379298 :          idata = idata + 1
   46661      379298 :          data_tmp = full_data(idata)
   46662      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46663      379298 :          data_tmp = IAND(data_tmp, mask_left(20))
   46664      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46665      379298 :          ipack = ipack + 1
   46666      379298 :          packed_data(ipack) = pack_tmp
   46667      379298 :          data_tmp = full_data(idata)
   46668      379298 :          pack_tmp = ISHFT(data_tmp, 27)
   46669      379298 :          pack_tmp = ISHFT(pack_tmp, -27)
   46670      379298 :          idata = idata + 1
   46671      379298 :          data_tmp = full_data(idata)
   46672      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46673      379298 :          data_tmp = IAND(data_tmp, mask_left(27))
   46674      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46675      379298 :          ipack = ipack + 1
   46676      379298 :          packed_data(ipack) = pack_tmp
   46677      379298 :          data_tmp = full_data(idata)
   46678      379298 :          pack_tmp = ISHFT(data_tmp, 34)
   46679      379298 :          pack_tmp = ISHFT(pack_tmp, -34)
   46680      379298 :          idata = idata + 1
   46681      379298 :          data_tmp = full_data(idata)
   46682      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46683      379298 :          data_tmp = IAND(data_tmp, mask_left(34))
   46684      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46685      379298 :          ipack = ipack + 1
   46686      379298 :          packed_data(ipack) = pack_tmp
   46687      379298 :          data_tmp = full_data(idata)
   46688      379298 :          pack_tmp = ISHFT(data_tmp, 41)
   46689      379298 :          pack_tmp = ISHFT(pack_tmp, -41)
   46690      379298 :          idata = idata + 1
   46691      379298 :          data_tmp = full_data(idata)
   46692      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46693      379298 :          data_tmp = IAND(data_tmp, mask_left(41))
   46694      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46695      379298 :          ipack = ipack + 1
   46696      379298 :          packed_data(ipack) = pack_tmp
   46697      379298 :          data_tmp = full_data(idata)
   46698      379298 :          pack_tmp = ISHFT(data_tmp, 48)
   46699      379298 :          pack_tmp = ISHFT(pack_tmp, -48)
   46700      379298 :          idata = idata + 1
   46701      379298 :          data_tmp = full_data(idata)
   46702      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46703      379298 :          data_tmp = IAND(data_tmp, mask_left(48))
   46704      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46705      379298 :          ipack = ipack + 1
   46706      379298 :          packed_data(ipack) = pack_tmp
   46707      379298 :          data_tmp = full_data(idata)
   46708      379298 :          pack_tmp = ISHFT(data_tmp, 55)
   46709      379298 :          pack_tmp = ISHFT(pack_tmp, -55)
   46710      379298 :          idata = idata + 1
   46711      379298 :          data_tmp = full_data(idata)
   46712      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46713      379298 :          data_tmp = IAND(data_tmp, mask_left(55))
   46714      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46715      379298 :          ipack = ipack + 1
   46716      379298 :          packed_data(ipack) = pack_tmp
   46717      379298 :          data_tmp = full_data(idata)
   46718      379298 :          pack_tmp = ISHFT(data_tmp, 62)
   46719      379298 :          pack_tmp = ISHFT(pack_tmp, -57)
   46720      379298 :          idata = idata + 1
   46721      379298 :          data_tmp = full_data(idata)
   46722      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46723      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46724      379298 :          pack_tmp = ISHFT(pack_tmp, -5)
   46725      379298 :          idata = idata + 1
   46726      379298 :          data_tmp = full_data(idata)
   46727      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46728      379298 :          data_tmp = IAND(data_tmp, mask_left(5))
   46729      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46730      379298 :          ipack = ipack + 1
   46731      379298 :          packed_data(ipack) = pack_tmp
   46732      379298 :          data_tmp = full_data(idata)
   46733      379298 :          pack_tmp = ISHFT(data_tmp, 12)
   46734      379298 :          pack_tmp = ISHFT(pack_tmp, -12)
   46735      379298 :          idata = idata + 1
   46736      379298 :          data_tmp = full_data(idata)
   46737      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46738      379298 :          data_tmp = IAND(data_tmp, mask_left(12))
   46739      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46740      379298 :          ipack = ipack + 1
   46741      379298 :          packed_data(ipack) = pack_tmp
   46742      379298 :          data_tmp = full_data(idata)
   46743      379298 :          pack_tmp = ISHFT(data_tmp, 19)
   46744      379298 :          pack_tmp = ISHFT(pack_tmp, -19)
   46745      379298 :          idata = idata + 1
   46746      379298 :          data_tmp = full_data(idata)
   46747      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46748      379298 :          data_tmp = IAND(data_tmp, mask_left(19))
   46749      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46750      379298 :          ipack = ipack + 1
   46751      379298 :          packed_data(ipack) = pack_tmp
   46752      379298 :          data_tmp = full_data(idata)
   46753      379298 :          pack_tmp = ISHFT(data_tmp, 26)
   46754      379298 :          pack_tmp = ISHFT(pack_tmp, -26)
   46755      379298 :          idata = idata + 1
   46756      379298 :          data_tmp = full_data(idata)
   46757      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46758      379298 :          data_tmp = IAND(data_tmp, mask_left(26))
   46759      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46760      379298 :          ipack = ipack + 1
   46761      379298 :          packed_data(ipack) = pack_tmp
   46762      379298 :          data_tmp = full_data(idata)
   46763      379298 :          pack_tmp = ISHFT(data_tmp, 33)
   46764      379298 :          pack_tmp = ISHFT(pack_tmp, -33)
   46765      379298 :          idata = idata + 1
   46766      379298 :          data_tmp = full_data(idata)
   46767      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46768      379298 :          data_tmp = IAND(data_tmp, mask_left(33))
   46769      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46770      379298 :          ipack = ipack + 1
   46771      379298 :          packed_data(ipack) = pack_tmp
   46772      379298 :          data_tmp = full_data(idata)
   46773      379298 :          pack_tmp = ISHFT(data_tmp, 40)
   46774      379298 :          pack_tmp = ISHFT(pack_tmp, -40)
   46775      379298 :          idata = idata + 1
   46776      379298 :          data_tmp = full_data(idata)
   46777      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46778      379298 :          data_tmp = IAND(data_tmp, mask_left(40))
   46779      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46780      379298 :          ipack = ipack + 1
   46781      379298 :          packed_data(ipack) = pack_tmp
   46782      379298 :          data_tmp = full_data(idata)
   46783      379298 :          pack_tmp = ISHFT(data_tmp, 47)
   46784      379298 :          pack_tmp = ISHFT(pack_tmp, -47)
   46785      379298 :          idata = idata + 1
   46786      379298 :          data_tmp = full_data(idata)
   46787      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46788      379298 :          data_tmp = IAND(data_tmp, mask_left(47))
   46789      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46790      379298 :          ipack = ipack + 1
   46791      379298 :          packed_data(ipack) = pack_tmp
   46792      379298 :          data_tmp = full_data(idata)
   46793      379298 :          pack_tmp = ISHFT(data_tmp, 54)
   46794      379298 :          pack_tmp = ISHFT(pack_tmp, -54)
   46795      379298 :          idata = idata + 1
   46796      379298 :          data_tmp = full_data(idata)
   46797      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46798      379298 :          data_tmp = IAND(data_tmp, mask_left(54))
   46799      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46800      379298 :          ipack = ipack + 1
   46801      379298 :          packed_data(ipack) = pack_tmp
   46802      379298 :          data_tmp = full_data(idata)
   46803      379298 :          pack_tmp = ISHFT(data_tmp, 61)
   46804      379298 :          pack_tmp = ISHFT(pack_tmp, -57)
   46805      379298 :          idata = idata + 1
   46806      379298 :          data_tmp = full_data(idata)
   46807      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46808      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46809      379298 :          pack_tmp = ISHFT(pack_tmp, -4)
   46810      379298 :          idata = idata + 1
   46811      379298 :          data_tmp = full_data(idata)
   46812      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46813      379298 :          data_tmp = IAND(data_tmp, mask_left(4))
   46814      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46815      379298 :          ipack = ipack + 1
   46816      379298 :          packed_data(ipack) = pack_tmp
   46817      379298 :          data_tmp = full_data(idata)
   46818      379298 :          pack_tmp = ISHFT(data_tmp, 11)
   46819      379298 :          pack_tmp = ISHFT(pack_tmp, -11)
   46820      379298 :          idata = idata + 1
   46821      379298 :          data_tmp = full_data(idata)
   46822      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46823      379298 :          data_tmp = IAND(data_tmp, mask_left(11))
   46824      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46825      379298 :          ipack = ipack + 1
   46826      379298 :          packed_data(ipack) = pack_tmp
   46827      379298 :          data_tmp = full_data(idata)
   46828      379298 :          pack_tmp = ISHFT(data_tmp, 18)
   46829      379298 :          pack_tmp = ISHFT(pack_tmp, -18)
   46830      379298 :          idata = idata + 1
   46831      379298 :          data_tmp = full_data(idata)
   46832      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46833      379298 :          data_tmp = IAND(data_tmp, mask_left(18))
   46834      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46835      379298 :          ipack = ipack + 1
   46836      379298 :          packed_data(ipack) = pack_tmp
   46837      379298 :          data_tmp = full_data(idata)
   46838      379298 :          pack_tmp = ISHFT(data_tmp, 25)
   46839      379298 :          pack_tmp = ISHFT(pack_tmp, -25)
   46840      379298 :          idata = idata + 1
   46841      379298 :          data_tmp = full_data(idata)
   46842      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46843      379298 :          data_tmp = IAND(data_tmp, mask_left(25))
   46844      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46845      379298 :          ipack = ipack + 1
   46846      379298 :          packed_data(ipack) = pack_tmp
   46847      379298 :          data_tmp = full_data(idata)
   46848      379298 :          pack_tmp = ISHFT(data_tmp, 32)
   46849      379298 :          pack_tmp = ISHFT(pack_tmp, -32)
   46850      379298 :          idata = idata + 1
   46851      379298 :          data_tmp = full_data(idata)
   46852      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46853      379298 :          data_tmp = IAND(data_tmp, mask_left(32))
   46854      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46855      379298 :          ipack = ipack + 1
   46856      379298 :          packed_data(ipack) = pack_tmp
   46857      379298 :          data_tmp = full_data(idata)
   46858      379298 :          pack_tmp = ISHFT(data_tmp, 39)
   46859      379298 :          pack_tmp = ISHFT(pack_tmp, -39)
   46860      379298 :          idata = idata + 1
   46861      379298 :          data_tmp = full_data(idata)
   46862      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46863      379298 :          data_tmp = IAND(data_tmp, mask_left(39))
   46864      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46865      379298 :          ipack = ipack + 1
   46866      379298 :          packed_data(ipack) = pack_tmp
   46867      379298 :          data_tmp = full_data(idata)
   46868      379298 :          pack_tmp = ISHFT(data_tmp, 46)
   46869      379298 :          pack_tmp = ISHFT(pack_tmp, -46)
   46870      379298 :          idata = idata + 1
   46871      379298 :          data_tmp = full_data(idata)
   46872      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46873      379298 :          data_tmp = IAND(data_tmp, mask_left(46))
   46874      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46875      379298 :          ipack = ipack + 1
   46876      379298 :          packed_data(ipack) = pack_tmp
   46877      379298 :          data_tmp = full_data(idata)
   46878      379298 :          pack_tmp = ISHFT(data_tmp, 53)
   46879      379298 :          pack_tmp = ISHFT(pack_tmp, -53)
   46880      379298 :          idata = idata + 1
   46881      379298 :          data_tmp = full_data(idata)
   46882      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46883      379298 :          data_tmp = IAND(data_tmp, mask_left(53))
   46884      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46885      379298 :          ipack = ipack + 1
   46886      379298 :          packed_data(ipack) = pack_tmp
   46887      379298 :          data_tmp = full_data(idata)
   46888      379298 :          pack_tmp = ISHFT(data_tmp, 60)
   46889      379298 :          pack_tmp = ISHFT(pack_tmp, -57)
   46890      379298 :          idata = idata + 1
   46891      379298 :          data_tmp = full_data(idata)
   46892      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46893      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46894      379298 :          pack_tmp = ISHFT(pack_tmp, -3)
   46895      379298 :          idata = idata + 1
   46896      379298 :          data_tmp = full_data(idata)
   46897      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46898      379298 :          data_tmp = IAND(data_tmp, mask_left(3))
   46899      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46900      379298 :          ipack = ipack + 1
   46901      379298 :          packed_data(ipack) = pack_tmp
   46902      379298 :          data_tmp = full_data(idata)
   46903      379298 :          pack_tmp = ISHFT(data_tmp, 10)
   46904      379298 :          pack_tmp = ISHFT(pack_tmp, -10)
   46905      379298 :          idata = idata + 1
   46906      379298 :          data_tmp = full_data(idata)
   46907      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46908      379298 :          data_tmp = IAND(data_tmp, mask_left(10))
   46909      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46910      379298 :          ipack = ipack + 1
   46911      379298 :          packed_data(ipack) = pack_tmp
   46912      379298 :          data_tmp = full_data(idata)
   46913      379298 :          pack_tmp = ISHFT(data_tmp, 17)
   46914      379298 :          pack_tmp = ISHFT(pack_tmp, -17)
   46915      379298 :          idata = idata + 1
   46916      379298 :          data_tmp = full_data(idata)
   46917      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46918      379298 :          data_tmp = IAND(data_tmp, mask_left(17))
   46919      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46920      379298 :          ipack = ipack + 1
   46921      379298 :          packed_data(ipack) = pack_tmp
   46922      379298 :          data_tmp = full_data(idata)
   46923      379298 :          pack_tmp = ISHFT(data_tmp, 24)
   46924      379298 :          pack_tmp = ISHFT(pack_tmp, -24)
   46925      379298 :          idata = idata + 1
   46926      379298 :          data_tmp = full_data(idata)
   46927      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46928      379298 :          data_tmp = IAND(data_tmp, mask_left(24))
   46929      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46930      379298 :          ipack = ipack + 1
   46931      379298 :          packed_data(ipack) = pack_tmp
   46932      379298 :          data_tmp = full_data(idata)
   46933      379298 :          pack_tmp = ISHFT(data_tmp, 31)
   46934      379298 :          pack_tmp = ISHFT(pack_tmp, -31)
   46935      379298 :          idata = idata + 1
   46936      379298 :          data_tmp = full_data(idata)
   46937      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46938      379298 :          data_tmp = IAND(data_tmp, mask_left(31))
   46939      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46940      379298 :          ipack = ipack + 1
   46941      379298 :          packed_data(ipack) = pack_tmp
   46942      379298 :          data_tmp = full_data(idata)
   46943      379298 :          pack_tmp = ISHFT(data_tmp, 38)
   46944      379298 :          pack_tmp = ISHFT(pack_tmp, -38)
   46945      379298 :          idata = idata + 1
   46946      379298 :          data_tmp = full_data(idata)
   46947      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46948      379298 :          data_tmp = IAND(data_tmp, mask_left(38))
   46949      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46950      379298 :          ipack = ipack + 1
   46951      379298 :          packed_data(ipack) = pack_tmp
   46952      379298 :          data_tmp = full_data(idata)
   46953      379298 :          pack_tmp = ISHFT(data_tmp, 45)
   46954      379298 :          pack_tmp = ISHFT(pack_tmp, -45)
   46955      379298 :          idata = idata + 1
   46956      379298 :          data_tmp = full_data(idata)
   46957      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46958      379298 :          data_tmp = IAND(data_tmp, mask_left(45))
   46959      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46960      379298 :          ipack = ipack + 1
   46961      379298 :          packed_data(ipack) = pack_tmp
   46962      379298 :          data_tmp = full_data(idata)
   46963      379298 :          pack_tmp = ISHFT(data_tmp, 52)
   46964      379298 :          pack_tmp = ISHFT(pack_tmp, -52)
   46965      379298 :          idata = idata + 1
   46966      379298 :          data_tmp = full_data(idata)
   46967      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46968      379298 :          data_tmp = IAND(data_tmp, mask_left(52))
   46969      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46970      379298 :          ipack = ipack + 1
   46971      379298 :          packed_data(ipack) = pack_tmp
   46972      379298 :          data_tmp = full_data(idata)
   46973      379298 :          pack_tmp = ISHFT(data_tmp, 59)
   46974      379298 :          pack_tmp = ISHFT(pack_tmp, -57)
   46975      379298 :          idata = idata + 1
   46976      379298 :          data_tmp = full_data(idata)
   46977      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46978      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46979      379298 :          pack_tmp = ISHFT(pack_tmp, -2)
   46980      379298 :          idata = idata + 1
   46981      379298 :          data_tmp = full_data(idata)
   46982      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46983      379298 :          data_tmp = IAND(data_tmp, mask_left(2))
   46984      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46985      379298 :          ipack = ipack + 1
   46986      379298 :          packed_data(ipack) = pack_tmp
   46987      379298 :          data_tmp = full_data(idata)
   46988      379298 :          pack_tmp = ISHFT(data_tmp, 9)
   46989      379298 :          pack_tmp = ISHFT(pack_tmp, -9)
   46990      379298 :          idata = idata + 1
   46991      379298 :          data_tmp = full_data(idata)
   46992      379298 :          data_tmp = ISHFT(data_tmp, 7)
   46993      379298 :          data_tmp = IAND(data_tmp, mask_left(9))
   46994      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46995      379298 :          ipack = ipack + 1
   46996      379298 :          packed_data(ipack) = pack_tmp
   46997      379298 :          data_tmp = full_data(idata)
   46998      379298 :          pack_tmp = ISHFT(data_tmp, 16)
   46999      379298 :          pack_tmp = ISHFT(pack_tmp, -16)
   47000      379298 :          idata = idata + 1
   47001      379298 :          data_tmp = full_data(idata)
   47002      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47003      379298 :          data_tmp = IAND(data_tmp, mask_left(16))
   47004      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47005      379298 :          ipack = ipack + 1
   47006      379298 :          packed_data(ipack) = pack_tmp
   47007      379298 :          data_tmp = full_data(idata)
   47008      379298 :          pack_tmp = ISHFT(data_tmp, 23)
   47009      379298 :          pack_tmp = ISHFT(pack_tmp, -23)
   47010      379298 :          idata = idata + 1
   47011      379298 :          data_tmp = full_data(idata)
   47012      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47013      379298 :          data_tmp = IAND(data_tmp, mask_left(23))
   47014      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47015      379298 :          ipack = ipack + 1
   47016      379298 :          packed_data(ipack) = pack_tmp
   47017      379298 :          data_tmp = full_data(idata)
   47018      379298 :          pack_tmp = ISHFT(data_tmp, 30)
   47019      379298 :          pack_tmp = ISHFT(pack_tmp, -30)
   47020      379298 :          idata = idata + 1
   47021      379298 :          data_tmp = full_data(idata)
   47022      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47023      379298 :          data_tmp = IAND(data_tmp, mask_left(30))
   47024      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47025      379298 :          ipack = ipack + 1
   47026      379298 :          packed_data(ipack) = pack_tmp
   47027      379298 :          data_tmp = full_data(idata)
   47028      379298 :          pack_tmp = ISHFT(data_tmp, 37)
   47029      379298 :          pack_tmp = ISHFT(pack_tmp, -37)
   47030      379298 :          idata = idata + 1
   47031      379298 :          data_tmp = full_data(idata)
   47032      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47033      379298 :          data_tmp = IAND(data_tmp, mask_left(37))
   47034      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47035      379298 :          ipack = ipack + 1
   47036      379298 :          packed_data(ipack) = pack_tmp
   47037      379298 :          data_tmp = full_data(idata)
   47038      379298 :          pack_tmp = ISHFT(data_tmp, 44)
   47039      379298 :          pack_tmp = ISHFT(pack_tmp, -44)
   47040      379298 :          idata = idata + 1
   47041      379298 :          data_tmp = full_data(idata)
   47042      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47043      379298 :          data_tmp = IAND(data_tmp, mask_left(44))
   47044      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47045      379298 :          ipack = ipack + 1
   47046      379298 :          packed_data(ipack) = pack_tmp
   47047      379298 :          data_tmp = full_data(idata)
   47048      379298 :          pack_tmp = ISHFT(data_tmp, 51)
   47049      379298 :          pack_tmp = ISHFT(pack_tmp, -51)
   47050      379298 :          idata = idata + 1
   47051      379298 :          data_tmp = full_data(idata)
   47052      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47053      379298 :          data_tmp = IAND(data_tmp, mask_left(51))
   47054      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47055      379298 :          ipack = ipack + 1
   47056      379298 :          packed_data(ipack) = pack_tmp
   47057      379298 :          data_tmp = full_data(idata)
   47058      379298 :          pack_tmp = ISHFT(data_tmp, 58)
   47059      379298 :          pack_tmp = ISHFT(pack_tmp, -57)
   47060      379298 :          idata = idata + 1
   47061      379298 :          data_tmp = full_data(idata)
   47062      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47063      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47064      379298 :          pack_tmp = ISHFT(pack_tmp, -1)
   47065      379298 :          idata = idata + 1
   47066      379298 :          data_tmp = full_data(idata)
   47067      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47068      379298 :          data_tmp = IAND(data_tmp, mask_left(1))
   47069      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47070      379298 :          ipack = ipack + 1
   47071      379298 :          packed_data(ipack) = pack_tmp
   47072      379298 :          data_tmp = full_data(idata)
   47073      379298 :          pack_tmp = ISHFT(data_tmp, 8)
   47074      379298 :          pack_tmp = ISHFT(pack_tmp, -8)
   47075      379298 :          idata = idata + 1
   47076      379298 :          data_tmp = full_data(idata)
   47077      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47078      379298 :          data_tmp = IAND(data_tmp, mask_left(8))
   47079      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47080      379298 :          ipack = ipack + 1
   47081      379298 :          packed_data(ipack) = pack_tmp
   47082      379298 :          data_tmp = full_data(idata)
   47083      379298 :          pack_tmp = ISHFT(data_tmp, 15)
   47084      379298 :          pack_tmp = ISHFT(pack_tmp, -15)
   47085      379298 :          idata = idata + 1
   47086      379298 :          data_tmp = full_data(idata)
   47087      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47088      379298 :          data_tmp = IAND(data_tmp, mask_left(15))
   47089      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47090      379298 :          ipack = ipack + 1
   47091      379298 :          packed_data(ipack) = pack_tmp
   47092      379298 :          data_tmp = full_data(idata)
   47093      379298 :          pack_tmp = ISHFT(data_tmp, 22)
   47094      379298 :          pack_tmp = ISHFT(pack_tmp, -22)
   47095      379298 :          idata = idata + 1
   47096      379298 :          data_tmp = full_data(idata)
   47097      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47098      379298 :          data_tmp = IAND(data_tmp, mask_left(22))
   47099      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47100      379298 :          ipack = ipack + 1
   47101      379298 :          packed_data(ipack) = pack_tmp
   47102      379298 :          data_tmp = full_data(idata)
   47103      379298 :          pack_tmp = ISHFT(data_tmp, 29)
   47104      379298 :          pack_tmp = ISHFT(pack_tmp, -29)
   47105      379298 :          idata = idata + 1
   47106      379298 :          data_tmp = full_data(idata)
   47107      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47108      379298 :          data_tmp = IAND(data_tmp, mask_left(29))
   47109      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47110      379298 :          ipack = ipack + 1
   47111      379298 :          packed_data(ipack) = pack_tmp
   47112      379298 :          data_tmp = full_data(idata)
   47113      379298 :          pack_tmp = ISHFT(data_tmp, 36)
   47114      379298 :          pack_tmp = ISHFT(pack_tmp, -36)
   47115      379298 :          idata = idata + 1
   47116      379298 :          data_tmp = full_data(idata)
   47117      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47118      379298 :          data_tmp = IAND(data_tmp, mask_left(36))
   47119      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47120      379298 :          ipack = ipack + 1
   47121      379298 :          packed_data(ipack) = pack_tmp
   47122      379298 :          data_tmp = full_data(idata)
   47123      379298 :          pack_tmp = ISHFT(data_tmp, 43)
   47124      379298 :          pack_tmp = ISHFT(pack_tmp, -43)
   47125      379298 :          idata = idata + 1
   47126      379298 :          data_tmp = full_data(idata)
   47127      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47128      379298 :          data_tmp = IAND(data_tmp, mask_left(43))
   47129      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47130      379298 :          ipack = ipack + 1
   47131      379298 :          packed_data(ipack) = pack_tmp
   47132      379298 :          data_tmp = full_data(idata)
   47133      379298 :          pack_tmp = ISHFT(data_tmp, 50)
   47134      379298 :          pack_tmp = ISHFT(pack_tmp, -50)
   47135      379298 :          idata = idata + 1
   47136      379298 :          data_tmp = full_data(idata)
   47137      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47138      379298 :          data_tmp = IAND(data_tmp, mask_left(50))
   47139      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47140      379298 :          ipack = ipack + 1
   47141      379298 :          packed_data(ipack) = pack_tmp
   47142      379298 :          data_tmp = full_data(idata)
   47143      379298 :          pack_tmp = ISHFT(data_tmp, 57)
   47144      379298 :          pack_tmp = ISHFT(pack_tmp, -57)
   47145      379298 :          idata = idata + 1
   47146      379298 :          data_tmp = full_data(idata)
   47147      379298 :          data_tmp = ISHFT(data_tmp, 7)
   47148      379298 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47149             :          pack_tmp = ISHFT(pack_tmp, 0)
   47150      379298 :          pack_tmp = ISHFT(pack_tmp, 0)
   47151      379298 :          ipack = ipack + 1
   47152      379300 :          packed_data(ipack) = pack_tmp
   47153             :       END DO
   47154       23738 :       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       23738 :    END SUBROUTINE ints2bits_57
   47158             : 
   47159             : ! **************************************************************************************************
   47160             : !> \brief ...
   47161             : !> \param Ndata ...
   47162             : !> \param packed_data ...
   47163             : !> \param full_data ...
   47164             : ! **************************************************************************************************
   47165       98969 :    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       98969 :       ipack = 0
   47176       98969 :       idata = 0
   47177       98969 :       pack_tmp = 0
   47178       98969 :       Ndata_rep = (Ndata/64)*64
   47179       98969 :       DO kdata = 1, Ndata_rep, 64
   47180     1554434 :          idata = idata + 1
   47181     1554434 :          data_tmp = ISHFT(pack_tmp, 57)
   47182     1554434 :          ipack = ipack + 1
   47183     1554434 :          pack_tmp = packed_data(ipack)
   47184     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(57)))
   47185     1554434 :          pack_tmp = ISHFT(pack_tmp, -57)
   47186     1554434 :          idata = idata + 1
   47187     1554434 :          data_tmp = ISHFT(pack_tmp, 50)
   47188     1554434 :          ipack = ipack + 1
   47189     1554434 :          pack_tmp = packed_data(ipack)
   47190     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   47191     1554434 :          pack_tmp = ISHFT(pack_tmp, -50)
   47192     1554434 :          idata = idata + 1
   47193     1554434 :          data_tmp = ISHFT(pack_tmp, 43)
   47194     1554434 :          ipack = ipack + 1
   47195     1554434 :          pack_tmp = packed_data(ipack)
   47196     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   47197     1554434 :          pack_tmp = ISHFT(pack_tmp, -43)
   47198     1554434 :          idata = idata + 1
   47199     1554434 :          data_tmp = ISHFT(pack_tmp, 36)
   47200     1554434 :          ipack = ipack + 1
   47201     1554434 :          pack_tmp = packed_data(ipack)
   47202     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   47203     1554434 :          pack_tmp = ISHFT(pack_tmp, -36)
   47204     1554434 :          idata = idata + 1
   47205     1554434 :          data_tmp = ISHFT(pack_tmp, 29)
   47206     1554434 :          ipack = ipack + 1
   47207     1554434 :          pack_tmp = packed_data(ipack)
   47208     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   47209     1554434 :          pack_tmp = ISHFT(pack_tmp, -29)
   47210     1554434 :          idata = idata + 1
   47211     1554434 :          data_tmp = ISHFT(pack_tmp, 22)
   47212     1554434 :          ipack = ipack + 1
   47213     1554434 :          pack_tmp = packed_data(ipack)
   47214     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   47215     1554434 :          pack_tmp = ISHFT(pack_tmp, -22)
   47216     1554434 :          idata = idata + 1
   47217     1554434 :          data_tmp = ISHFT(pack_tmp, 15)
   47218     1554434 :          ipack = ipack + 1
   47219     1554434 :          pack_tmp = packed_data(ipack)
   47220     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   47221     1554434 :          pack_tmp = ISHFT(pack_tmp, -15)
   47222     1554434 :          idata = idata + 1
   47223     1554434 :          data_tmp = ISHFT(pack_tmp, 8)
   47224     1554434 :          ipack = ipack + 1
   47225     1554434 :          pack_tmp = packed_data(ipack)
   47226     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   47227     1554434 :          pack_tmp = ISHFT(pack_tmp, -8)
   47228     1554434 :          idata = idata + 1
   47229     1554434 :          data_tmp = ISHFT(pack_tmp, 1)
   47230     1554434 :          ipack = ipack + 1
   47231     1554434 :          pack_tmp = packed_data(ipack)
   47232     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   47233     1554434 :          pack_tmp = ISHFT(pack_tmp, -1)
   47234     1554434 :          idata = idata + 1
   47235     1554434 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47236     1554434 :          full_data(idata) = data_tmp
   47237     1554434 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47238     1554434 :          idata = idata + 1
   47239     1554434 :          data_tmp = ISHFT(pack_tmp, 51)
   47240     1554434 :          ipack = ipack + 1
   47241     1554434 :          pack_tmp = packed_data(ipack)
   47242     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   47243     1554434 :          pack_tmp = ISHFT(pack_tmp, -51)
   47244     1554434 :          idata = idata + 1
   47245     1554434 :          data_tmp = ISHFT(pack_tmp, 44)
   47246     1554434 :          ipack = ipack + 1
   47247     1554434 :          pack_tmp = packed_data(ipack)
   47248     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   47249     1554434 :          pack_tmp = ISHFT(pack_tmp, -44)
   47250     1554434 :          idata = idata + 1
   47251     1554434 :          data_tmp = ISHFT(pack_tmp, 37)
   47252     1554434 :          ipack = ipack + 1
   47253     1554434 :          pack_tmp = packed_data(ipack)
   47254     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   47255     1554434 :          pack_tmp = ISHFT(pack_tmp, -37)
   47256     1554434 :          idata = idata + 1
   47257     1554434 :          data_tmp = ISHFT(pack_tmp, 30)
   47258     1554434 :          ipack = ipack + 1
   47259     1554434 :          pack_tmp = packed_data(ipack)
   47260     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   47261     1554434 :          pack_tmp = ISHFT(pack_tmp, -30)
   47262     1554434 :          idata = idata + 1
   47263     1554434 :          data_tmp = ISHFT(pack_tmp, 23)
   47264     1554434 :          ipack = ipack + 1
   47265     1554434 :          pack_tmp = packed_data(ipack)
   47266     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   47267     1554434 :          pack_tmp = ISHFT(pack_tmp, -23)
   47268     1554434 :          idata = idata + 1
   47269     1554434 :          data_tmp = ISHFT(pack_tmp, 16)
   47270     1554434 :          ipack = ipack + 1
   47271     1554434 :          pack_tmp = packed_data(ipack)
   47272     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   47273     1554434 :          pack_tmp = ISHFT(pack_tmp, -16)
   47274     1554434 :          idata = idata + 1
   47275     1554434 :          data_tmp = ISHFT(pack_tmp, 9)
   47276     1554434 :          ipack = ipack + 1
   47277     1554434 :          pack_tmp = packed_data(ipack)
   47278     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   47279     1554434 :          pack_tmp = ISHFT(pack_tmp, -9)
   47280     1554434 :          idata = idata + 1
   47281     1554434 :          data_tmp = ISHFT(pack_tmp, 2)
   47282     1554434 :          ipack = ipack + 1
   47283     1554434 :          pack_tmp = packed_data(ipack)
   47284     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   47285     1554434 :          pack_tmp = ISHFT(pack_tmp, -2)
   47286     1554434 :          idata = idata + 1
   47287     1554434 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47288     1554434 :          full_data(idata) = data_tmp
   47289     1554434 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47290     1554434 :          idata = idata + 1
   47291     1554434 :          data_tmp = ISHFT(pack_tmp, 52)
   47292     1554434 :          ipack = ipack + 1
   47293     1554434 :          pack_tmp = packed_data(ipack)
   47294     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   47295     1554434 :          pack_tmp = ISHFT(pack_tmp, -52)
   47296     1554434 :          idata = idata + 1
   47297     1554434 :          data_tmp = ISHFT(pack_tmp, 45)
   47298     1554434 :          ipack = ipack + 1
   47299     1554434 :          pack_tmp = packed_data(ipack)
   47300     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   47301     1554434 :          pack_tmp = ISHFT(pack_tmp, -45)
   47302     1554434 :          idata = idata + 1
   47303     1554434 :          data_tmp = ISHFT(pack_tmp, 38)
   47304     1554434 :          ipack = ipack + 1
   47305     1554434 :          pack_tmp = packed_data(ipack)
   47306     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   47307     1554434 :          pack_tmp = ISHFT(pack_tmp, -38)
   47308     1554434 :          idata = idata + 1
   47309     1554434 :          data_tmp = ISHFT(pack_tmp, 31)
   47310     1554434 :          ipack = ipack + 1
   47311     1554434 :          pack_tmp = packed_data(ipack)
   47312     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   47313     1554434 :          pack_tmp = ISHFT(pack_tmp, -31)
   47314     1554434 :          idata = idata + 1
   47315     1554434 :          data_tmp = ISHFT(pack_tmp, 24)
   47316     1554434 :          ipack = ipack + 1
   47317     1554434 :          pack_tmp = packed_data(ipack)
   47318     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   47319     1554434 :          pack_tmp = ISHFT(pack_tmp, -24)
   47320     1554434 :          idata = idata + 1
   47321     1554434 :          data_tmp = ISHFT(pack_tmp, 17)
   47322     1554434 :          ipack = ipack + 1
   47323     1554434 :          pack_tmp = packed_data(ipack)
   47324     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   47325     1554434 :          pack_tmp = ISHFT(pack_tmp, -17)
   47326     1554434 :          idata = idata + 1
   47327     1554434 :          data_tmp = ISHFT(pack_tmp, 10)
   47328     1554434 :          ipack = ipack + 1
   47329     1554434 :          pack_tmp = packed_data(ipack)
   47330     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   47331     1554434 :          pack_tmp = ISHFT(pack_tmp, -10)
   47332     1554434 :          idata = idata + 1
   47333     1554434 :          data_tmp = ISHFT(pack_tmp, 3)
   47334     1554434 :          ipack = ipack + 1
   47335     1554434 :          pack_tmp = packed_data(ipack)
   47336     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   47337     1554434 :          pack_tmp = ISHFT(pack_tmp, -3)
   47338     1554434 :          idata = idata + 1
   47339     1554434 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47340     1554434 :          full_data(idata) = data_tmp
   47341     1554434 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47342     1554434 :          idata = idata + 1
   47343     1554434 :          data_tmp = ISHFT(pack_tmp, 53)
   47344     1554434 :          ipack = ipack + 1
   47345     1554434 :          pack_tmp = packed_data(ipack)
   47346     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   47347     1554434 :          pack_tmp = ISHFT(pack_tmp, -53)
   47348     1554434 :          idata = idata + 1
   47349     1554434 :          data_tmp = ISHFT(pack_tmp, 46)
   47350     1554434 :          ipack = ipack + 1
   47351     1554434 :          pack_tmp = packed_data(ipack)
   47352     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   47353     1554434 :          pack_tmp = ISHFT(pack_tmp, -46)
   47354     1554434 :          idata = idata + 1
   47355     1554434 :          data_tmp = ISHFT(pack_tmp, 39)
   47356     1554434 :          ipack = ipack + 1
   47357     1554434 :          pack_tmp = packed_data(ipack)
   47358     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   47359     1554434 :          pack_tmp = ISHFT(pack_tmp, -39)
   47360     1554434 :          idata = idata + 1
   47361     1554434 :          data_tmp = ISHFT(pack_tmp, 32)
   47362     1554434 :          ipack = ipack + 1
   47363     1554434 :          pack_tmp = packed_data(ipack)
   47364     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   47365     1554434 :          pack_tmp = ISHFT(pack_tmp, -32)
   47366     1554434 :          idata = idata + 1
   47367     1554434 :          data_tmp = ISHFT(pack_tmp, 25)
   47368     1554434 :          ipack = ipack + 1
   47369     1554434 :          pack_tmp = packed_data(ipack)
   47370     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   47371     1554434 :          pack_tmp = ISHFT(pack_tmp, -25)
   47372     1554434 :          idata = idata + 1
   47373     1554434 :          data_tmp = ISHFT(pack_tmp, 18)
   47374     1554434 :          ipack = ipack + 1
   47375     1554434 :          pack_tmp = packed_data(ipack)
   47376     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   47377     1554434 :          pack_tmp = ISHFT(pack_tmp, -18)
   47378     1554434 :          idata = idata + 1
   47379     1554434 :          data_tmp = ISHFT(pack_tmp, 11)
   47380     1554434 :          ipack = ipack + 1
   47381     1554434 :          pack_tmp = packed_data(ipack)
   47382     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   47383     1554434 :          pack_tmp = ISHFT(pack_tmp, -11)
   47384     1554434 :          idata = idata + 1
   47385     1554434 :          data_tmp = ISHFT(pack_tmp, 4)
   47386     1554434 :          ipack = ipack + 1
   47387     1554434 :          pack_tmp = packed_data(ipack)
   47388     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   47389     1554434 :          pack_tmp = ISHFT(pack_tmp, -4)
   47390     1554434 :          idata = idata + 1
   47391     1554434 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47392     1554434 :          full_data(idata) = data_tmp
   47393     1554434 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47394     1554434 :          idata = idata + 1
   47395     1554434 :          data_tmp = ISHFT(pack_tmp, 54)
   47396     1554434 :          ipack = ipack + 1
   47397     1554434 :          pack_tmp = packed_data(ipack)
   47398     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   47399     1554434 :          pack_tmp = ISHFT(pack_tmp, -54)
   47400     1554434 :          idata = idata + 1
   47401     1554434 :          data_tmp = ISHFT(pack_tmp, 47)
   47402     1554434 :          ipack = ipack + 1
   47403     1554434 :          pack_tmp = packed_data(ipack)
   47404     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   47405     1554434 :          pack_tmp = ISHFT(pack_tmp, -47)
   47406     1554434 :          idata = idata + 1
   47407     1554434 :          data_tmp = ISHFT(pack_tmp, 40)
   47408     1554434 :          ipack = ipack + 1
   47409     1554434 :          pack_tmp = packed_data(ipack)
   47410     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   47411     1554434 :          pack_tmp = ISHFT(pack_tmp, -40)
   47412     1554434 :          idata = idata + 1
   47413     1554434 :          data_tmp = ISHFT(pack_tmp, 33)
   47414     1554434 :          ipack = ipack + 1
   47415     1554434 :          pack_tmp = packed_data(ipack)
   47416     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   47417     1554434 :          pack_tmp = ISHFT(pack_tmp, -33)
   47418     1554434 :          idata = idata + 1
   47419     1554434 :          data_tmp = ISHFT(pack_tmp, 26)
   47420     1554434 :          ipack = ipack + 1
   47421     1554434 :          pack_tmp = packed_data(ipack)
   47422     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   47423     1554434 :          pack_tmp = ISHFT(pack_tmp, -26)
   47424     1554434 :          idata = idata + 1
   47425     1554434 :          data_tmp = ISHFT(pack_tmp, 19)
   47426     1554434 :          ipack = ipack + 1
   47427     1554434 :          pack_tmp = packed_data(ipack)
   47428     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   47429     1554434 :          pack_tmp = ISHFT(pack_tmp, -19)
   47430     1554434 :          idata = idata + 1
   47431     1554434 :          data_tmp = ISHFT(pack_tmp, 12)
   47432     1554434 :          ipack = ipack + 1
   47433     1554434 :          pack_tmp = packed_data(ipack)
   47434     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   47435     1554434 :          pack_tmp = ISHFT(pack_tmp, -12)
   47436     1554434 :          idata = idata + 1
   47437     1554434 :          data_tmp = ISHFT(pack_tmp, 5)
   47438     1554434 :          ipack = ipack + 1
   47439     1554434 :          pack_tmp = packed_data(ipack)
   47440     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   47441     1554434 :          pack_tmp = ISHFT(pack_tmp, -5)
   47442     1554434 :          idata = idata + 1
   47443     1554434 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47444     1554434 :          full_data(idata) = data_tmp
   47445     1554434 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47446     1554434 :          idata = idata + 1
   47447     1554434 :          data_tmp = ISHFT(pack_tmp, 55)
   47448     1554434 :          ipack = ipack + 1
   47449     1554434 :          pack_tmp = packed_data(ipack)
   47450     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(55)))
   47451     1554434 :          pack_tmp = ISHFT(pack_tmp, -55)
   47452     1554434 :          idata = idata + 1
   47453     1554434 :          data_tmp = ISHFT(pack_tmp, 48)
   47454     1554434 :          ipack = ipack + 1
   47455     1554434 :          pack_tmp = packed_data(ipack)
   47456     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   47457     1554434 :          pack_tmp = ISHFT(pack_tmp, -48)
   47458     1554434 :          idata = idata + 1
   47459     1554434 :          data_tmp = ISHFT(pack_tmp, 41)
   47460     1554434 :          ipack = ipack + 1
   47461     1554434 :          pack_tmp = packed_data(ipack)
   47462     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   47463     1554434 :          pack_tmp = ISHFT(pack_tmp, -41)
   47464     1554434 :          idata = idata + 1
   47465     1554434 :          data_tmp = ISHFT(pack_tmp, 34)
   47466     1554434 :          ipack = ipack + 1
   47467     1554434 :          pack_tmp = packed_data(ipack)
   47468     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   47469     1554434 :          pack_tmp = ISHFT(pack_tmp, -34)
   47470     1554434 :          idata = idata + 1
   47471     1554434 :          data_tmp = ISHFT(pack_tmp, 27)
   47472     1554434 :          ipack = ipack + 1
   47473     1554434 :          pack_tmp = packed_data(ipack)
   47474     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   47475     1554434 :          pack_tmp = ISHFT(pack_tmp, -27)
   47476     1554434 :          idata = idata + 1
   47477     1554434 :          data_tmp = ISHFT(pack_tmp, 20)
   47478     1554434 :          ipack = ipack + 1
   47479     1554434 :          pack_tmp = packed_data(ipack)
   47480     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   47481     1554434 :          pack_tmp = ISHFT(pack_tmp, -20)
   47482     1554434 :          idata = idata + 1
   47483     1554434 :          data_tmp = ISHFT(pack_tmp, 13)
   47484     1554434 :          ipack = ipack + 1
   47485     1554434 :          pack_tmp = packed_data(ipack)
   47486     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   47487     1554434 :          pack_tmp = ISHFT(pack_tmp, -13)
   47488     1554434 :          idata = idata + 1
   47489     1554434 :          data_tmp = ISHFT(pack_tmp, 6)
   47490     1554434 :          ipack = ipack + 1
   47491     1554434 :          pack_tmp = packed_data(ipack)
   47492     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   47493     1554434 :          pack_tmp = ISHFT(pack_tmp, -6)
   47494     1554434 :          idata = idata + 1
   47495     1554434 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47496     1554434 :          full_data(idata) = data_tmp
   47497     1554434 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47498     1554434 :          idata = idata + 1
   47499     1554434 :          data_tmp = ISHFT(pack_tmp, 56)
   47500     1554434 :          ipack = ipack + 1
   47501     1554434 :          pack_tmp = packed_data(ipack)
   47502     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   47503     1554434 :          pack_tmp = ISHFT(pack_tmp, -56)
   47504     1554434 :          idata = idata + 1
   47505     1554434 :          data_tmp = ISHFT(pack_tmp, 49)
   47506     1554434 :          ipack = ipack + 1
   47507     1554434 :          pack_tmp = packed_data(ipack)
   47508     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   47509     1554434 :          pack_tmp = ISHFT(pack_tmp, -49)
   47510     1554434 :          idata = idata + 1
   47511     1554434 :          data_tmp = ISHFT(pack_tmp, 42)
   47512     1554434 :          ipack = ipack + 1
   47513     1554434 :          pack_tmp = packed_data(ipack)
   47514     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   47515     1554434 :          pack_tmp = ISHFT(pack_tmp, -42)
   47516     1554434 :          idata = idata + 1
   47517     1554434 :          data_tmp = ISHFT(pack_tmp, 35)
   47518     1554434 :          ipack = ipack + 1
   47519     1554434 :          pack_tmp = packed_data(ipack)
   47520     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   47521     1554434 :          pack_tmp = ISHFT(pack_tmp, -35)
   47522     1554434 :          idata = idata + 1
   47523     1554434 :          data_tmp = ISHFT(pack_tmp, 28)
   47524     1554434 :          ipack = ipack + 1
   47525     1554434 :          pack_tmp = packed_data(ipack)
   47526     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   47527     1554434 :          pack_tmp = ISHFT(pack_tmp, -28)
   47528     1554434 :          idata = idata + 1
   47529     1554434 :          data_tmp = ISHFT(pack_tmp, 21)
   47530     1554434 :          ipack = ipack + 1
   47531     1554434 :          pack_tmp = packed_data(ipack)
   47532     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   47533     1554434 :          pack_tmp = ISHFT(pack_tmp, -21)
   47534     1554434 :          idata = idata + 1
   47535     1554434 :          data_tmp = ISHFT(pack_tmp, 14)
   47536     1554434 :          ipack = ipack + 1
   47537     1554434 :          pack_tmp = packed_data(ipack)
   47538     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   47539     1554434 :          pack_tmp = ISHFT(pack_tmp, -14)
   47540     1554434 :          idata = idata + 1
   47541     1554434 :          data_tmp = ISHFT(pack_tmp, 7)
   47542     1554434 :          ipack = ipack + 1
   47543     1554434 :          pack_tmp = packed_data(ipack)
   47544     1554434 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   47545     1554434 :          pack_tmp = ISHFT(pack_tmp, -7)
   47546     1554434 :          idata = idata + 1
   47547     1554434 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47548     1554434 :          full_data(idata) = data_tmp
   47549     1554556 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47550             :       END DO
   47551       98969 :       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       98969 :    END SUBROUTINE bits2ints_57
   47555             : 
   47556             : ! **************************************************************************************************
   47557             : !> \brief ...
   47558             : !> \param Ndata ...
   47559             : !> \param packed_data ...
   47560             : !> \param full_data ...
   47561             : ! **************************************************************************************************
   47562       23700 :    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       23700 :       idata = 0
   47573       23700 :       ipack = 0
   47574       23700 :       Ndata_rep = (Ndata/64)*64
   47575       23700 :       DO kdata = 1, Ndata_rep, 64
   47576      378996 :          pack_tmp = 0
   47577      378996 :          idata = idata + 1
   47578      378996 :          data_tmp = full_data(idata)
   47579      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47580      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47581      378996 :          pack_tmp = ISHFT(pack_tmp, -6)
   47582      378996 :          idata = idata + 1
   47583      378996 :          data_tmp = full_data(idata)
   47584      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47585      378996 :          data_tmp = IAND(data_tmp, mask_left(6))
   47586      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47587      378996 :          ipack = ipack + 1
   47588      378996 :          packed_data(ipack) = pack_tmp
   47589      378996 :          data_tmp = full_data(idata)
   47590      378996 :          pack_tmp = ISHFT(data_tmp, 12)
   47591      378996 :          pack_tmp = ISHFT(pack_tmp, -12)
   47592      378996 :          idata = idata + 1
   47593      378996 :          data_tmp = full_data(idata)
   47594      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47595      378996 :          data_tmp = IAND(data_tmp, mask_left(12))
   47596      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47597      378996 :          ipack = ipack + 1
   47598      378996 :          packed_data(ipack) = pack_tmp
   47599      378996 :          data_tmp = full_data(idata)
   47600      378996 :          pack_tmp = ISHFT(data_tmp, 18)
   47601      378996 :          pack_tmp = ISHFT(pack_tmp, -18)
   47602      378996 :          idata = idata + 1
   47603      378996 :          data_tmp = full_data(idata)
   47604      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47605      378996 :          data_tmp = IAND(data_tmp, mask_left(18))
   47606      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47607      378996 :          ipack = ipack + 1
   47608      378996 :          packed_data(ipack) = pack_tmp
   47609      378996 :          data_tmp = full_data(idata)
   47610      378996 :          pack_tmp = ISHFT(data_tmp, 24)
   47611      378996 :          pack_tmp = ISHFT(pack_tmp, -24)
   47612      378996 :          idata = idata + 1
   47613      378996 :          data_tmp = full_data(idata)
   47614      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47615      378996 :          data_tmp = IAND(data_tmp, mask_left(24))
   47616      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47617      378996 :          ipack = ipack + 1
   47618      378996 :          packed_data(ipack) = pack_tmp
   47619      378996 :          data_tmp = full_data(idata)
   47620      378996 :          pack_tmp = ISHFT(data_tmp, 30)
   47621      378996 :          pack_tmp = ISHFT(pack_tmp, -30)
   47622      378996 :          idata = idata + 1
   47623      378996 :          data_tmp = full_data(idata)
   47624      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47625      378996 :          data_tmp = IAND(data_tmp, mask_left(30))
   47626      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47627      378996 :          ipack = ipack + 1
   47628      378996 :          packed_data(ipack) = pack_tmp
   47629      378996 :          data_tmp = full_data(idata)
   47630      378996 :          pack_tmp = ISHFT(data_tmp, 36)
   47631      378996 :          pack_tmp = ISHFT(pack_tmp, -36)
   47632      378996 :          idata = idata + 1
   47633      378996 :          data_tmp = full_data(idata)
   47634      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47635      378996 :          data_tmp = IAND(data_tmp, mask_left(36))
   47636      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47637      378996 :          ipack = ipack + 1
   47638      378996 :          packed_data(ipack) = pack_tmp
   47639      378996 :          data_tmp = full_data(idata)
   47640      378996 :          pack_tmp = ISHFT(data_tmp, 42)
   47641      378996 :          pack_tmp = ISHFT(pack_tmp, -42)
   47642      378996 :          idata = idata + 1
   47643      378996 :          data_tmp = full_data(idata)
   47644      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47645      378996 :          data_tmp = IAND(data_tmp, mask_left(42))
   47646      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47647      378996 :          ipack = ipack + 1
   47648      378996 :          packed_data(ipack) = pack_tmp
   47649      378996 :          data_tmp = full_data(idata)
   47650      378996 :          pack_tmp = ISHFT(data_tmp, 48)
   47651      378996 :          pack_tmp = ISHFT(pack_tmp, -48)
   47652      378996 :          idata = idata + 1
   47653      378996 :          data_tmp = full_data(idata)
   47654      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47655      378996 :          data_tmp = IAND(data_tmp, mask_left(48))
   47656      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47657      378996 :          ipack = ipack + 1
   47658      378996 :          packed_data(ipack) = pack_tmp
   47659      378996 :          data_tmp = full_data(idata)
   47660      378996 :          pack_tmp = ISHFT(data_tmp, 54)
   47661      378996 :          pack_tmp = ISHFT(pack_tmp, -54)
   47662      378996 :          idata = idata + 1
   47663      378996 :          data_tmp = full_data(idata)
   47664      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47665      378996 :          data_tmp = IAND(data_tmp, mask_left(54))
   47666      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47667      378996 :          ipack = ipack + 1
   47668      378996 :          packed_data(ipack) = pack_tmp
   47669      378996 :          data_tmp = full_data(idata)
   47670      378996 :          pack_tmp = ISHFT(data_tmp, 60)
   47671      378996 :          pack_tmp = ISHFT(pack_tmp, -58)
   47672      378996 :          idata = idata + 1
   47673      378996 :          data_tmp = full_data(idata)
   47674      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47675      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47676      378996 :          pack_tmp = ISHFT(pack_tmp, -2)
   47677      378996 :          idata = idata + 1
   47678      378996 :          data_tmp = full_data(idata)
   47679      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47680      378996 :          data_tmp = IAND(data_tmp, mask_left(2))
   47681      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47682      378996 :          ipack = ipack + 1
   47683      378996 :          packed_data(ipack) = pack_tmp
   47684      378996 :          data_tmp = full_data(idata)
   47685      378996 :          pack_tmp = ISHFT(data_tmp, 8)
   47686      378996 :          pack_tmp = ISHFT(pack_tmp, -8)
   47687      378996 :          idata = idata + 1
   47688      378996 :          data_tmp = full_data(idata)
   47689      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47690      378996 :          data_tmp = IAND(data_tmp, mask_left(8))
   47691      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47692      378996 :          ipack = ipack + 1
   47693      378996 :          packed_data(ipack) = pack_tmp
   47694      378996 :          data_tmp = full_data(idata)
   47695      378996 :          pack_tmp = ISHFT(data_tmp, 14)
   47696      378996 :          pack_tmp = ISHFT(pack_tmp, -14)
   47697      378996 :          idata = idata + 1
   47698      378996 :          data_tmp = full_data(idata)
   47699      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47700      378996 :          data_tmp = IAND(data_tmp, mask_left(14))
   47701      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47702      378996 :          ipack = ipack + 1
   47703      378996 :          packed_data(ipack) = pack_tmp
   47704      378996 :          data_tmp = full_data(idata)
   47705      378996 :          pack_tmp = ISHFT(data_tmp, 20)
   47706      378996 :          pack_tmp = ISHFT(pack_tmp, -20)
   47707      378996 :          idata = idata + 1
   47708      378996 :          data_tmp = full_data(idata)
   47709      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47710      378996 :          data_tmp = IAND(data_tmp, mask_left(20))
   47711      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47712      378996 :          ipack = ipack + 1
   47713      378996 :          packed_data(ipack) = pack_tmp
   47714      378996 :          data_tmp = full_data(idata)
   47715      378996 :          pack_tmp = ISHFT(data_tmp, 26)
   47716      378996 :          pack_tmp = ISHFT(pack_tmp, -26)
   47717      378996 :          idata = idata + 1
   47718      378996 :          data_tmp = full_data(idata)
   47719      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47720      378996 :          data_tmp = IAND(data_tmp, mask_left(26))
   47721      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47722      378996 :          ipack = ipack + 1
   47723      378996 :          packed_data(ipack) = pack_tmp
   47724      378996 :          data_tmp = full_data(idata)
   47725      378996 :          pack_tmp = ISHFT(data_tmp, 32)
   47726      378996 :          pack_tmp = ISHFT(pack_tmp, -32)
   47727      378996 :          idata = idata + 1
   47728      378996 :          data_tmp = full_data(idata)
   47729      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47730      378996 :          data_tmp = IAND(data_tmp, mask_left(32))
   47731      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47732      378996 :          ipack = ipack + 1
   47733      378996 :          packed_data(ipack) = pack_tmp
   47734      378996 :          data_tmp = full_data(idata)
   47735      378996 :          pack_tmp = ISHFT(data_tmp, 38)
   47736      378996 :          pack_tmp = ISHFT(pack_tmp, -38)
   47737      378996 :          idata = idata + 1
   47738      378996 :          data_tmp = full_data(idata)
   47739      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47740      378996 :          data_tmp = IAND(data_tmp, mask_left(38))
   47741      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47742      378996 :          ipack = ipack + 1
   47743      378996 :          packed_data(ipack) = pack_tmp
   47744      378996 :          data_tmp = full_data(idata)
   47745      378996 :          pack_tmp = ISHFT(data_tmp, 44)
   47746      378996 :          pack_tmp = ISHFT(pack_tmp, -44)
   47747      378996 :          idata = idata + 1
   47748      378996 :          data_tmp = full_data(idata)
   47749      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47750      378996 :          data_tmp = IAND(data_tmp, mask_left(44))
   47751      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47752      378996 :          ipack = ipack + 1
   47753      378996 :          packed_data(ipack) = pack_tmp
   47754      378996 :          data_tmp = full_data(idata)
   47755      378996 :          pack_tmp = ISHFT(data_tmp, 50)
   47756      378996 :          pack_tmp = ISHFT(pack_tmp, -50)
   47757      378996 :          idata = idata + 1
   47758      378996 :          data_tmp = full_data(idata)
   47759      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47760      378996 :          data_tmp = IAND(data_tmp, mask_left(50))
   47761      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47762      378996 :          ipack = ipack + 1
   47763      378996 :          packed_data(ipack) = pack_tmp
   47764      378996 :          data_tmp = full_data(idata)
   47765      378996 :          pack_tmp = ISHFT(data_tmp, 56)
   47766      378996 :          pack_tmp = ISHFT(pack_tmp, -56)
   47767      378996 :          idata = idata + 1
   47768      378996 :          data_tmp = full_data(idata)
   47769      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47770      378996 :          data_tmp = IAND(data_tmp, mask_left(56))
   47771      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47772      378996 :          ipack = ipack + 1
   47773      378996 :          packed_data(ipack) = pack_tmp
   47774      378996 :          data_tmp = full_data(idata)
   47775      378996 :          pack_tmp = ISHFT(data_tmp, 62)
   47776      378996 :          pack_tmp = ISHFT(pack_tmp, -58)
   47777      378996 :          idata = idata + 1
   47778      378996 :          data_tmp = full_data(idata)
   47779      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47780      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47781      378996 :          pack_tmp = ISHFT(pack_tmp, -4)
   47782      378996 :          idata = idata + 1
   47783      378996 :          data_tmp = full_data(idata)
   47784      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47785      378996 :          data_tmp = IAND(data_tmp, mask_left(4))
   47786      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47787      378996 :          ipack = ipack + 1
   47788      378996 :          packed_data(ipack) = pack_tmp
   47789      378996 :          data_tmp = full_data(idata)
   47790      378996 :          pack_tmp = ISHFT(data_tmp, 10)
   47791      378996 :          pack_tmp = ISHFT(pack_tmp, -10)
   47792      378996 :          idata = idata + 1
   47793      378996 :          data_tmp = full_data(idata)
   47794      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47795      378996 :          data_tmp = IAND(data_tmp, mask_left(10))
   47796      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47797      378996 :          ipack = ipack + 1
   47798      378996 :          packed_data(ipack) = pack_tmp
   47799      378996 :          data_tmp = full_data(idata)
   47800      378996 :          pack_tmp = ISHFT(data_tmp, 16)
   47801      378996 :          pack_tmp = ISHFT(pack_tmp, -16)
   47802      378996 :          idata = idata + 1
   47803      378996 :          data_tmp = full_data(idata)
   47804      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47805      378996 :          data_tmp = IAND(data_tmp, mask_left(16))
   47806      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47807      378996 :          ipack = ipack + 1
   47808      378996 :          packed_data(ipack) = pack_tmp
   47809      378996 :          data_tmp = full_data(idata)
   47810      378996 :          pack_tmp = ISHFT(data_tmp, 22)
   47811      378996 :          pack_tmp = ISHFT(pack_tmp, -22)
   47812      378996 :          idata = idata + 1
   47813      378996 :          data_tmp = full_data(idata)
   47814      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47815      378996 :          data_tmp = IAND(data_tmp, mask_left(22))
   47816      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47817      378996 :          ipack = ipack + 1
   47818      378996 :          packed_data(ipack) = pack_tmp
   47819      378996 :          data_tmp = full_data(idata)
   47820      378996 :          pack_tmp = ISHFT(data_tmp, 28)
   47821      378996 :          pack_tmp = ISHFT(pack_tmp, -28)
   47822      378996 :          idata = idata + 1
   47823      378996 :          data_tmp = full_data(idata)
   47824      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47825      378996 :          data_tmp = IAND(data_tmp, mask_left(28))
   47826      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47827      378996 :          ipack = ipack + 1
   47828      378996 :          packed_data(ipack) = pack_tmp
   47829      378996 :          data_tmp = full_data(idata)
   47830      378996 :          pack_tmp = ISHFT(data_tmp, 34)
   47831      378996 :          pack_tmp = ISHFT(pack_tmp, -34)
   47832      378996 :          idata = idata + 1
   47833      378996 :          data_tmp = full_data(idata)
   47834      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47835      378996 :          data_tmp = IAND(data_tmp, mask_left(34))
   47836      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47837      378996 :          ipack = ipack + 1
   47838      378996 :          packed_data(ipack) = pack_tmp
   47839      378996 :          data_tmp = full_data(idata)
   47840      378996 :          pack_tmp = ISHFT(data_tmp, 40)
   47841      378996 :          pack_tmp = ISHFT(pack_tmp, -40)
   47842      378996 :          idata = idata + 1
   47843      378996 :          data_tmp = full_data(idata)
   47844      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47845      378996 :          data_tmp = IAND(data_tmp, mask_left(40))
   47846      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47847      378996 :          ipack = ipack + 1
   47848      378996 :          packed_data(ipack) = pack_tmp
   47849      378996 :          data_tmp = full_data(idata)
   47850      378996 :          pack_tmp = ISHFT(data_tmp, 46)
   47851      378996 :          pack_tmp = ISHFT(pack_tmp, -46)
   47852      378996 :          idata = idata + 1
   47853      378996 :          data_tmp = full_data(idata)
   47854      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47855      378996 :          data_tmp = IAND(data_tmp, mask_left(46))
   47856      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47857      378996 :          ipack = ipack + 1
   47858      378996 :          packed_data(ipack) = pack_tmp
   47859      378996 :          data_tmp = full_data(idata)
   47860      378996 :          pack_tmp = ISHFT(data_tmp, 52)
   47861      378996 :          pack_tmp = ISHFT(pack_tmp, -52)
   47862      378996 :          idata = idata + 1
   47863      378996 :          data_tmp = full_data(idata)
   47864      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47865      378996 :          data_tmp = IAND(data_tmp, mask_left(52))
   47866      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47867      378996 :          ipack = ipack + 1
   47868      378996 :          packed_data(ipack) = pack_tmp
   47869      378996 :          data_tmp = full_data(idata)
   47870      378996 :          pack_tmp = ISHFT(data_tmp, 58)
   47871      378996 :          pack_tmp = ISHFT(pack_tmp, -58)
   47872      378996 :          idata = idata + 1
   47873      378996 :          data_tmp = full_data(idata)
   47874      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47875      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47876      378996 :          pack_tmp = ISHFT(pack_tmp, 0)
   47877      378996 :          idata = idata + 1
   47878      378996 :          data_tmp = full_data(idata)
   47879             :          data_tmp = ISHFT(data_tmp, 6)
   47880      378996 :          data_tmp = IAND(data_tmp, mask_left(0))
   47881      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47882      378996 :          ipack = ipack + 1
   47883      378996 :          packed_data(ipack) = pack_tmp
   47884      378996 :          data_tmp = full_data(idata)
   47885      378996 :          pack_tmp = ISHFT(data_tmp, 6)
   47886      378996 :          pack_tmp = ISHFT(pack_tmp, -6)
   47887      378996 :          idata = idata + 1
   47888      378996 :          data_tmp = full_data(idata)
   47889      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47890      378996 :          data_tmp = IAND(data_tmp, mask_left(6))
   47891      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47892      378996 :          ipack = ipack + 1
   47893      378996 :          packed_data(ipack) = pack_tmp
   47894      378996 :          data_tmp = full_data(idata)
   47895      378996 :          pack_tmp = ISHFT(data_tmp, 12)
   47896      378996 :          pack_tmp = ISHFT(pack_tmp, -12)
   47897      378996 :          idata = idata + 1
   47898      378996 :          data_tmp = full_data(idata)
   47899      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47900      378996 :          data_tmp = IAND(data_tmp, mask_left(12))
   47901      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47902      378996 :          ipack = ipack + 1
   47903      378996 :          packed_data(ipack) = pack_tmp
   47904      378996 :          data_tmp = full_data(idata)
   47905      378996 :          pack_tmp = ISHFT(data_tmp, 18)
   47906      378996 :          pack_tmp = ISHFT(pack_tmp, -18)
   47907      378996 :          idata = idata + 1
   47908      378996 :          data_tmp = full_data(idata)
   47909      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47910      378996 :          data_tmp = IAND(data_tmp, mask_left(18))
   47911      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47912      378996 :          ipack = ipack + 1
   47913      378996 :          packed_data(ipack) = pack_tmp
   47914      378996 :          data_tmp = full_data(idata)
   47915      378996 :          pack_tmp = ISHFT(data_tmp, 24)
   47916      378996 :          pack_tmp = ISHFT(pack_tmp, -24)
   47917      378996 :          idata = idata + 1
   47918      378996 :          data_tmp = full_data(idata)
   47919      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47920      378996 :          data_tmp = IAND(data_tmp, mask_left(24))
   47921      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47922      378996 :          ipack = ipack + 1
   47923      378996 :          packed_data(ipack) = pack_tmp
   47924      378996 :          data_tmp = full_data(idata)
   47925      378996 :          pack_tmp = ISHFT(data_tmp, 30)
   47926      378996 :          pack_tmp = ISHFT(pack_tmp, -30)
   47927      378996 :          idata = idata + 1
   47928      378996 :          data_tmp = full_data(idata)
   47929      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47930      378996 :          data_tmp = IAND(data_tmp, mask_left(30))
   47931      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47932      378996 :          ipack = ipack + 1
   47933      378996 :          packed_data(ipack) = pack_tmp
   47934      378996 :          data_tmp = full_data(idata)
   47935      378996 :          pack_tmp = ISHFT(data_tmp, 36)
   47936      378996 :          pack_tmp = ISHFT(pack_tmp, -36)
   47937      378996 :          idata = idata + 1
   47938      378996 :          data_tmp = full_data(idata)
   47939      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47940      378996 :          data_tmp = IAND(data_tmp, mask_left(36))
   47941      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47942      378996 :          ipack = ipack + 1
   47943      378996 :          packed_data(ipack) = pack_tmp
   47944      378996 :          data_tmp = full_data(idata)
   47945      378996 :          pack_tmp = ISHFT(data_tmp, 42)
   47946      378996 :          pack_tmp = ISHFT(pack_tmp, -42)
   47947      378996 :          idata = idata + 1
   47948      378996 :          data_tmp = full_data(idata)
   47949      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47950      378996 :          data_tmp = IAND(data_tmp, mask_left(42))
   47951      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47952      378996 :          ipack = ipack + 1
   47953      378996 :          packed_data(ipack) = pack_tmp
   47954      378996 :          data_tmp = full_data(idata)
   47955      378996 :          pack_tmp = ISHFT(data_tmp, 48)
   47956      378996 :          pack_tmp = ISHFT(pack_tmp, -48)
   47957      378996 :          idata = idata + 1
   47958      378996 :          data_tmp = full_data(idata)
   47959      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47960      378996 :          data_tmp = IAND(data_tmp, mask_left(48))
   47961      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47962      378996 :          ipack = ipack + 1
   47963      378996 :          packed_data(ipack) = pack_tmp
   47964      378996 :          data_tmp = full_data(idata)
   47965      378996 :          pack_tmp = ISHFT(data_tmp, 54)
   47966      378996 :          pack_tmp = ISHFT(pack_tmp, -54)
   47967      378996 :          idata = idata + 1
   47968      378996 :          data_tmp = full_data(idata)
   47969      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47970      378996 :          data_tmp = IAND(data_tmp, mask_left(54))
   47971      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47972      378996 :          ipack = ipack + 1
   47973      378996 :          packed_data(ipack) = pack_tmp
   47974      378996 :          data_tmp = full_data(idata)
   47975      378996 :          pack_tmp = ISHFT(data_tmp, 60)
   47976      378996 :          pack_tmp = ISHFT(pack_tmp, -58)
   47977      378996 :          idata = idata + 1
   47978      378996 :          data_tmp = full_data(idata)
   47979      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47980      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47981      378996 :          pack_tmp = ISHFT(pack_tmp, -2)
   47982      378996 :          idata = idata + 1
   47983      378996 :          data_tmp = full_data(idata)
   47984      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47985      378996 :          data_tmp = IAND(data_tmp, mask_left(2))
   47986      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47987      378996 :          ipack = ipack + 1
   47988      378996 :          packed_data(ipack) = pack_tmp
   47989      378996 :          data_tmp = full_data(idata)
   47990      378996 :          pack_tmp = ISHFT(data_tmp, 8)
   47991      378996 :          pack_tmp = ISHFT(pack_tmp, -8)
   47992      378996 :          idata = idata + 1
   47993      378996 :          data_tmp = full_data(idata)
   47994      378996 :          data_tmp = ISHFT(data_tmp, 6)
   47995      378996 :          data_tmp = IAND(data_tmp, mask_left(8))
   47996      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47997      378996 :          ipack = ipack + 1
   47998      378996 :          packed_data(ipack) = pack_tmp
   47999      378996 :          data_tmp = full_data(idata)
   48000      378996 :          pack_tmp = ISHFT(data_tmp, 14)
   48001      378996 :          pack_tmp = ISHFT(pack_tmp, -14)
   48002      378996 :          idata = idata + 1
   48003      378996 :          data_tmp = full_data(idata)
   48004      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48005      378996 :          data_tmp = IAND(data_tmp, mask_left(14))
   48006      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48007      378996 :          ipack = ipack + 1
   48008      378996 :          packed_data(ipack) = pack_tmp
   48009      378996 :          data_tmp = full_data(idata)
   48010      378996 :          pack_tmp = ISHFT(data_tmp, 20)
   48011      378996 :          pack_tmp = ISHFT(pack_tmp, -20)
   48012      378996 :          idata = idata + 1
   48013      378996 :          data_tmp = full_data(idata)
   48014      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48015      378996 :          data_tmp = IAND(data_tmp, mask_left(20))
   48016      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48017      378996 :          ipack = ipack + 1
   48018      378996 :          packed_data(ipack) = pack_tmp
   48019      378996 :          data_tmp = full_data(idata)
   48020      378996 :          pack_tmp = ISHFT(data_tmp, 26)
   48021      378996 :          pack_tmp = ISHFT(pack_tmp, -26)
   48022      378996 :          idata = idata + 1
   48023      378996 :          data_tmp = full_data(idata)
   48024      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48025      378996 :          data_tmp = IAND(data_tmp, mask_left(26))
   48026      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48027      378996 :          ipack = ipack + 1
   48028      378996 :          packed_data(ipack) = pack_tmp
   48029      378996 :          data_tmp = full_data(idata)
   48030      378996 :          pack_tmp = ISHFT(data_tmp, 32)
   48031      378996 :          pack_tmp = ISHFT(pack_tmp, -32)
   48032      378996 :          idata = idata + 1
   48033      378996 :          data_tmp = full_data(idata)
   48034      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48035      378996 :          data_tmp = IAND(data_tmp, mask_left(32))
   48036      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48037      378996 :          ipack = ipack + 1
   48038      378996 :          packed_data(ipack) = pack_tmp
   48039      378996 :          data_tmp = full_data(idata)
   48040      378996 :          pack_tmp = ISHFT(data_tmp, 38)
   48041      378996 :          pack_tmp = ISHFT(pack_tmp, -38)
   48042      378996 :          idata = idata + 1
   48043      378996 :          data_tmp = full_data(idata)
   48044      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48045      378996 :          data_tmp = IAND(data_tmp, mask_left(38))
   48046      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48047      378996 :          ipack = ipack + 1
   48048      378996 :          packed_data(ipack) = pack_tmp
   48049      378996 :          data_tmp = full_data(idata)
   48050      378996 :          pack_tmp = ISHFT(data_tmp, 44)
   48051      378996 :          pack_tmp = ISHFT(pack_tmp, -44)
   48052      378996 :          idata = idata + 1
   48053      378996 :          data_tmp = full_data(idata)
   48054      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48055      378996 :          data_tmp = IAND(data_tmp, mask_left(44))
   48056      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48057      378996 :          ipack = ipack + 1
   48058      378996 :          packed_data(ipack) = pack_tmp
   48059      378996 :          data_tmp = full_data(idata)
   48060      378996 :          pack_tmp = ISHFT(data_tmp, 50)
   48061      378996 :          pack_tmp = ISHFT(pack_tmp, -50)
   48062      378996 :          idata = idata + 1
   48063      378996 :          data_tmp = full_data(idata)
   48064      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48065      378996 :          data_tmp = IAND(data_tmp, mask_left(50))
   48066      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48067      378996 :          ipack = ipack + 1
   48068      378996 :          packed_data(ipack) = pack_tmp
   48069      378996 :          data_tmp = full_data(idata)
   48070      378996 :          pack_tmp = ISHFT(data_tmp, 56)
   48071      378996 :          pack_tmp = ISHFT(pack_tmp, -56)
   48072      378996 :          idata = idata + 1
   48073      378996 :          data_tmp = full_data(idata)
   48074      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48075      378996 :          data_tmp = IAND(data_tmp, mask_left(56))
   48076      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48077      378996 :          ipack = ipack + 1
   48078      378996 :          packed_data(ipack) = pack_tmp
   48079      378996 :          data_tmp = full_data(idata)
   48080      378996 :          pack_tmp = ISHFT(data_tmp, 62)
   48081      378996 :          pack_tmp = ISHFT(pack_tmp, -58)
   48082      378996 :          idata = idata + 1
   48083      378996 :          data_tmp = full_data(idata)
   48084      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48085      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48086      378996 :          pack_tmp = ISHFT(pack_tmp, -4)
   48087      378996 :          idata = idata + 1
   48088      378996 :          data_tmp = full_data(idata)
   48089      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48090      378996 :          data_tmp = IAND(data_tmp, mask_left(4))
   48091      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48092      378996 :          ipack = ipack + 1
   48093      378996 :          packed_data(ipack) = pack_tmp
   48094      378996 :          data_tmp = full_data(idata)
   48095      378996 :          pack_tmp = ISHFT(data_tmp, 10)
   48096      378996 :          pack_tmp = ISHFT(pack_tmp, -10)
   48097      378996 :          idata = idata + 1
   48098      378996 :          data_tmp = full_data(idata)
   48099      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48100      378996 :          data_tmp = IAND(data_tmp, mask_left(10))
   48101      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48102      378996 :          ipack = ipack + 1
   48103      378996 :          packed_data(ipack) = pack_tmp
   48104      378996 :          data_tmp = full_data(idata)
   48105      378996 :          pack_tmp = ISHFT(data_tmp, 16)
   48106      378996 :          pack_tmp = ISHFT(pack_tmp, -16)
   48107      378996 :          idata = idata + 1
   48108      378996 :          data_tmp = full_data(idata)
   48109      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48110      378996 :          data_tmp = IAND(data_tmp, mask_left(16))
   48111      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48112      378996 :          ipack = ipack + 1
   48113      378996 :          packed_data(ipack) = pack_tmp
   48114      378996 :          data_tmp = full_data(idata)
   48115      378996 :          pack_tmp = ISHFT(data_tmp, 22)
   48116      378996 :          pack_tmp = ISHFT(pack_tmp, -22)
   48117      378996 :          idata = idata + 1
   48118      378996 :          data_tmp = full_data(idata)
   48119      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48120      378996 :          data_tmp = IAND(data_tmp, mask_left(22))
   48121      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48122      378996 :          ipack = ipack + 1
   48123      378996 :          packed_data(ipack) = pack_tmp
   48124      378996 :          data_tmp = full_data(idata)
   48125      378996 :          pack_tmp = ISHFT(data_tmp, 28)
   48126      378996 :          pack_tmp = ISHFT(pack_tmp, -28)
   48127      378996 :          idata = idata + 1
   48128      378996 :          data_tmp = full_data(idata)
   48129      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48130      378996 :          data_tmp = IAND(data_tmp, mask_left(28))
   48131      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48132      378996 :          ipack = ipack + 1
   48133      378996 :          packed_data(ipack) = pack_tmp
   48134      378996 :          data_tmp = full_data(idata)
   48135      378996 :          pack_tmp = ISHFT(data_tmp, 34)
   48136      378996 :          pack_tmp = ISHFT(pack_tmp, -34)
   48137      378996 :          idata = idata + 1
   48138      378996 :          data_tmp = full_data(idata)
   48139      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48140      378996 :          data_tmp = IAND(data_tmp, mask_left(34))
   48141      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48142      378996 :          ipack = ipack + 1
   48143      378996 :          packed_data(ipack) = pack_tmp
   48144      378996 :          data_tmp = full_data(idata)
   48145      378996 :          pack_tmp = ISHFT(data_tmp, 40)
   48146      378996 :          pack_tmp = ISHFT(pack_tmp, -40)
   48147      378996 :          idata = idata + 1
   48148      378996 :          data_tmp = full_data(idata)
   48149      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48150      378996 :          data_tmp = IAND(data_tmp, mask_left(40))
   48151      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48152      378996 :          ipack = ipack + 1
   48153      378996 :          packed_data(ipack) = pack_tmp
   48154      378996 :          data_tmp = full_data(idata)
   48155      378996 :          pack_tmp = ISHFT(data_tmp, 46)
   48156      378996 :          pack_tmp = ISHFT(pack_tmp, -46)
   48157      378996 :          idata = idata + 1
   48158      378996 :          data_tmp = full_data(idata)
   48159      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48160      378996 :          data_tmp = IAND(data_tmp, mask_left(46))
   48161      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48162      378996 :          ipack = ipack + 1
   48163      378996 :          packed_data(ipack) = pack_tmp
   48164      378996 :          data_tmp = full_data(idata)
   48165      378996 :          pack_tmp = ISHFT(data_tmp, 52)
   48166      378996 :          pack_tmp = ISHFT(pack_tmp, -52)
   48167      378996 :          idata = idata + 1
   48168      378996 :          data_tmp = full_data(idata)
   48169      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48170      378996 :          data_tmp = IAND(data_tmp, mask_left(52))
   48171      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48172      378996 :          ipack = ipack + 1
   48173      378996 :          packed_data(ipack) = pack_tmp
   48174      378996 :          data_tmp = full_data(idata)
   48175      378996 :          pack_tmp = ISHFT(data_tmp, 58)
   48176      378996 :          pack_tmp = ISHFT(pack_tmp, -58)
   48177      378996 :          idata = idata + 1
   48178      378996 :          data_tmp = full_data(idata)
   48179      378996 :          data_tmp = ISHFT(data_tmp, 6)
   48180      378996 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48181             :          pack_tmp = ISHFT(pack_tmp, 0)
   48182      378996 :          pack_tmp = ISHFT(pack_tmp, 0)
   48183      378996 :          ipack = ipack + 1
   48184      378996 :          packed_data(ipack) = pack_tmp
   48185             :       END DO
   48186       23700 :       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       23700 :    END SUBROUTINE ints2bits_58
   48190             : 
   48191             : ! **************************************************************************************************
   48192             : !> \brief ...
   48193             : !> \param Ndata ...
   48194             : !> \param packed_data ...
   48195             : !> \param full_data ...
   48196             : ! **************************************************************************************************
   48197       96891 :    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       96891 :       ipack = 0
   48208       96891 :       idata = 0
   48209       96891 :       pack_tmp = 0
   48210       96891 :       Ndata_rep = (Ndata/64)*64
   48211       96891 :       DO kdata = 1, Ndata_rep, 64
   48212     1537812 :          idata = idata + 1
   48213     1537812 :          data_tmp = ISHFT(pack_tmp, 58)
   48214     1537812 :          ipack = ipack + 1
   48215     1537812 :          pack_tmp = packed_data(ipack)
   48216     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   48217     1537812 :          pack_tmp = ISHFT(pack_tmp, -58)
   48218     1537812 :          idata = idata + 1
   48219     1537812 :          data_tmp = ISHFT(pack_tmp, 52)
   48220     1537812 :          ipack = ipack + 1
   48221     1537812 :          pack_tmp = packed_data(ipack)
   48222     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   48223     1537812 :          pack_tmp = ISHFT(pack_tmp, -52)
   48224     1537812 :          idata = idata + 1
   48225     1537812 :          data_tmp = ISHFT(pack_tmp, 46)
   48226     1537812 :          ipack = ipack + 1
   48227     1537812 :          pack_tmp = packed_data(ipack)
   48228     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   48229     1537812 :          pack_tmp = ISHFT(pack_tmp, -46)
   48230     1537812 :          idata = idata + 1
   48231     1537812 :          data_tmp = ISHFT(pack_tmp, 40)
   48232     1537812 :          ipack = ipack + 1
   48233     1537812 :          pack_tmp = packed_data(ipack)
   48234     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   48235     1537812 :          pack_tmp = ISHFT(pack_tmp, -40)
   48236     1537812 :          idata = idata + 1
   48237     1537812 :          data_tmp = ISHFT(pack_tmp, 34)
   48238     1537812 :          ipack = ipack + 1
   48239     1537812 :          pack_tmp = packed_data(ipack)
   48240     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   48241     1537812 :          pack_tmp = ISHFT(pack_tmp, -34)
   48242     1537812 :          idata = idata + 1
   48243     1537812 :          data_tmp = ISHFT(pack_tmp, 28)
   48244     1537812 :          ipack = ipack + 1
   48245     1537812 :          pack_tmp = packed_data(ipack)
   48246     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   48247     1537812 :          pack_tmp = ISHFT(pack_tmp, -28)
   48248     1537812 :          idata = idata + 1
   48249     1537812 :          data_tmp = ISHFT(pack_tmp, 22)
   48250     1537812 :          ipack = ipack + 1
   48251     1537812 :          pack_tmp = packed_data(ipack)
   48252     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   48253     1537812 :          pack_tmp = ISHFT(pack_tmp, -22)
   48254     1537812 :          idata = idata + 1
   48255     1537812 :          data_tmp = ISHFT(pack_tmp, 16)
   48256     1537812 :          ipack = ipack + 1
   48257     1537812 :          pack_tmp = packed_data(ipack)
   48258     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   48259     1537812 :          pack_tmp = ISHFT(pack_tmp, -16)
   48260     1537812 :          idata = idata + 1
   48261     1537812 :          data_tmp = ISHFT(pack_tmp, 10)
   48262     1537812 :          ipack = ipack + 1
   48263     1537812 :          pack_tmp = packed_data(ipack)
   48264     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   48265     1537812 :          pack_tmp = ISHFT(pack_tmp, -10)
   48266     1537812 :          idata = idata + 1
   48267     1537812 :          data_tmp = ISHFT(pack_tmp, 4)
   48268     1537812 :          ipack = ipack + 1
   48269     1537812 :          pack_tmp = packed_data(ipack)
   48270     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   48271     1537812 :          pack_tmp = ISHFT(pack_tmp, -4)
   48272     1537812 :          idata = idata + 1
   48273     1537812 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48274     1537812 :          full_data(idata) = data_tmp
   48275     1537812 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48276     1537812 :          idata = idata + 1
   48277     1537812 :          data_tmp = ISHFT(pack_tmp, 56)
   48278     1537812 :          ipack = ipack + 1
   48279     1537812 :          pack_tmp = packed_data(ipack)
   48280     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   48281     1537812 :          pack_tmp = ISHFT(pack_tmp, -56)
   48282     1537812 :          idata = idata + 1
   48283     1537812 :          data_tmp = ISHFT(pack_tmp, 50)
   48284     1537812 :          ipack = ipack + 1
   48285     1537812 :          pack_tmp = packed_data(ipack)
   48286     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   48287     1537812 :          pack_tmp = ISHFT(pack_tmp, -50)
   48288     1537812 :          idata = idata + 1
   48289     1537812 :          data_tmp = ISHFT(pack_tmp, 44)
   48290     1537812 :          ipack = ipack + 1
   48291     1537812 :          pack_tmp = packed_data(ipack)
   48292     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   48293     1537812 :          pack_tmp = ISHFT(pack_tmp, -44)
   48294     1537812 :          idata = idata + 1
   48295     1537812 :          data_tmp = ISHFT(pack_tmp, 38)
   48296     1537812 :          ipack = ipack + 1
   48297     1537812 :          pack_tmp = packed_data(ipack)
   48298     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   48299     1537812 :          pack_tmp = ISHFT(pack_tmp, -38)
   48300     1537812 :          idata = idata + 1
   48301     1537812 :          data_tmp = ISHFT(pack_tmp, 32)
   48302     1537812 :          ipack = ipack + 1
   48303     1537812 :          pack_tmp = packed_data(ipack)
   48304     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   48305     1537812 :          pack_tmp = ISHFT(pack_tmp, -32)
   48306     1537812 :          idata = idata + 1
   48307     1537812 :          data_tmp = ISHFT(pack_tmp, 26)
   48308     1537812 :          ipack = ipack + 1
   48309     1537812 :          pack_tmp = packed_data(ipack)
   48310     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   48311     1537812 :          pack_tmp = ISHFT(pack_tmp, -26)
   48312     1537812 :          idata = idata + 1
   48313     1537812 :          data_tmp = ISHFT(pack_tmp, 20)
   48314     1537812 :          ipack = ipack + 1
   48315     1537812 :          pack_tmp = packed_data(ipack)
   48316     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   48317     1537812 :          pack_tmp = ISHFT(pack_tmp, -20)
   48318     1537812 :          idata = idata + 1
   48319     1537812 :          data_tmp = ISHFT(pack_tmp, 14)
   48320     1537812 :          ipack = ipack + 1
   48321     1537812 :          pack_tmp = packed_data(ipack)
   48322     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   48323     1537812 :          pack_tmp = ISHFT(pack_tmp, -14)
   48324     1537812 :          idata = idata + 1
   48325     1537812 :          data_tmp = ISHFT(pack_tmp, 8)
   48326     1537812 :          ipack = ipack + 1
   48327     1537812 :          pack_tmp = packed_data(ipack)
   48328     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   48329     1537812 :          pack_tmp = ISHFT(pack_tmp, -8)
   48330     1537812 :          idata = idata + 1
   48331     1537812 :          data_tmp = ISHFT(pack_tmp, 2)
   48332     1537812 :          ipack = ipack + 1
   48333     1537812 :          pack_tmp = packed_data(ipack)
   48334     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   48335     1537812 :          pack_tmp = ISHFT(pack_tmp, -2)
   48336     1537812 :          idata = idata + 1
   48337     1537812 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48338     1537812 :          full_data(idata) = data_tmp
   48339     1537812 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48340     1537812 :          idata = idata + 1
   48341     1537812 :          data_tmp = ISHFT(pack_tmp, 54)
   48342     1537812 :          ipack = ipack + 1
   48343     1537812 :          pack_tmp = packed_data(ipack)
   48344     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   48345     1537812 :          pack_tmp = ISHFT(pack_tmp, -54)
   48346     1537812 :          idata = idata + 1
   48347     1537812 :          data_tmp = ISHFT(pack_tmp, 48)
   48348     1537812 :          ipack = ipack + 1
   48349     1537812 :          pack_tmp = packed_data(ipack)
   48350     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   48351     1537812 :          pack_tmp = ISHFT(pack_tmp, -48)
   48352     1537812 :          idata = idata + 1
   48353     1537812 :          data_tmp = ISHFT(pack_tmp, 42)
   48354     1537812 :          ipack = ipack + 1
   48355     1537812 :          pack_tmp = packed_data(ipack)
   48356     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   48357     1537812 :          pack_tmp = ISHFT(pack_tmp, -42)
   48358     1537812 :          idata = idata + 1
   48359     1537812 :          data_tmp = ISHFT(pack_tmp, 36)
   48360     1537812 :          ipack = ipack + 1
   48361     1537812 :          pack_tmp = packed_data(ipack)
   48362     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   48363     1537812 :          pack_tmp = ISHFT(pack_tmp, -36)
   48364     1537812 :          idata = idata + 1
   48365     1537812 :          data_tmp = ISHFT(pack_tmp, 30)
   48366     1537812 :          ipack = ipack + 1
   48367     1537812 :          pack_tmp = packed_data(ipack)
   48368     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   48369     1537812 :          pack_tmp = ISHFT(pack_tmp, -30)
   48370     1537812 :          idata = idata + 1
   48371     1537812 :          data_tmp = ISHFT(pack_tmp, 24)
   48372     1537812 :          ipack = ipack + 1
   48373     1537812 :          pack_tmp = packed_data(ipack)
   48374     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   48375     1537812 :          pack_tmp = ISHFT(pack_tmp, -24)
   48376     1537812 :          idata = idata + 1
   48377     1537812 :          data_tmp = ISHFT(pack_tmp, 18)
   48378     1537812 :          ipack = ipack + 1
   48379     1537812 :          pack_tmp = packed_data(ipack)
   48380     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   48381     1537812 :          pack_tmp = ISHFT(pack_tmp, -18)
   48382     1537812 :          idata = idata + 1
   48383     1537812 :          data_tmp = ISHFT(pack_tmp, 12)
   48384     1537812 :          ipack = ipack + 1
   48385     1537812 :          pack_tmp = packed_data(ipack)
   48386     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   48387     1537812 :          pack_tmp = ISHFT(pack_tmp, -12)
   48388     1537812 :          idata = idata + 1
   48389     1537812 :          data_tmp = ISHFT(pack_tmp, 6)
   48390     1537812 :          ipack = ipack + 1
   48391     1537812 :          pack_tmp = packed_data(ipack)
   48392     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   48393     1537812 :          pack_tmp = ISHFT(pack_tmp, -6)
   48394     1537812 :          idata = idata + 1
   48395     1537812 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48396     1537812 :          full_data(idata) = data_tmp
   48397     1537812 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48398     1537812 :          idata = idata + 1
   48399     1537812 :          data_tmp = ISHFT(pack_tmp, 58)
   48400     1537812 :          ipack = ipack + 1
   48401     1537812 :          pack_tmp = packed_data(ipack)
   48402     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   48403     1537812 :          pack_tmp = ISHFT(pack_tmp, -58)
   48404     1537812 :          idata = idata + 1
   48405     1537812 :          data_tmp = ISHFT(pack_tmp, 52)
   48406     1537812 :          ipack = ipack + 1
   48407     1537812 :          pack_tmp = packed_data(ipack)
   48408     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   48409     1537812 :          pack_tmp = ISHFT(pack_tmp, -52)
   48410     1537812 :          idata = idata + 1
   48411     1537812 :          data_tmp = ISHFT(pack_tmp, 46)
   48412     1537812 :          ipack = ipack + 1
   48413     1537812 :          pack_tmp = packed_data(ipack)
   48414     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   48415     1537812 :          pack_tmp = ISHFT(pack_tmp, -46)
   48416     1537812 :          idata = idata + 1
   48417     1537812 :          data_tmp = ISHFT(pack_tmp, 40)
   48418     1537812 :          ipack = ipack + 1
   48419     1537812 :          pack_tmp = packed_data(ipack)
   48420     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   48421     1537812 :          pack_tmp = ISHFT(pack_tmp, -40)
   48422     1537812 :          idata = idata + 1
   48423     1537812 :          data_tmp = ISHFT(pack_tmp, 34)
   48424     1537812 :          ipack = ipack + 1
   48425     1537812 :          pack_tmp = packed_data(ipack)
   48426     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   48427     1537812 :          pack_tmp = ISHFT(pack_tmp, -34)
   48428     1537812 :          idata = idata + 1
   48429     1537812 :          data_tmp = ISHFT(pack_tmp, 28)
   48430     1537812 :          ipack = ipack + 1
   48431     1537812 :          pack_tmp = packed_data(ipack)
   48432     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   48433     1537812 :          pack_tmp = ISHFT(pack_tmp, -28)
   48434     1537812 :          idata = idata + 1
   48435     1537812 :          data_tmp = ISHFT(pack_tmp, 22)
   48436     1537812 :          ipack = ipack + 1
   48437     1537812 :          pack_tmp = packed_data(ipack)
   48438     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   48439     1537812 :          pack_tmp = ISHFT(pack_tmp, -22)
   48440     1537812 :          idata = idata + 1
   48441     1537812 :          data_tmp = ISHFT(pack_tmp, 16)
   48442     1537812 :          ipack = ipack + 1
   48443     1537812 :          pack_tmp = packed_data(ipack)
   48444     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   48445     1537812 :          pack_tmp = ISHFT(pack_tmp, -16)
   48446     1537812 :          idata = idata + 1
   48447     1537812 :          data_tmp = ISHFT(pack_tmp, 10)
   48448     1537812 :          ipack = ipack + 1
   48449     1537812 :          pack_tmp = packed_data(ipack)
   48450     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   48451     1537812 :          pack_tmp = ISHFT(pack_tmp, -10)
   48452     1537812 :          idata = idata + 1
   48453     1537812 :          data_tmp = ISHFT(pack_tmp, 4)
   48454     1537812 :          ipack = ipack + 1
   48455     1537812 :          pack_tmp = packed_data(ipack)
   48456     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   48457     1537812 :          pack_tmp = ISHFT(pack_tmp, -4)
   48458     1537812 :          idata = idata + 1
   48459     1537812 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48460     1537812 :          full_data(idata) = data_tmp
   48461     1537812 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48462     1537812 :          idata = idata + 1
   48463     1537812 :          data_tmp = ISHFT(pack_tmp, 56)
   48464     1537812 :          ipack = ipack + 1
   48465     1537812 :          pack_tmp = packed_data(ipack)
   48466     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   48467     1537812 :          pack_tmp = ISHFT(pack_tmp, -56)
   48468     1537812 :          idata = idata + 1
   48469     1537812 :          data_tmp = ISHFT(pack_tmp, 50)
   48470     1537812 :          ipack = ipack + 1
   48471     1537812 :          pack_tmp = packed_data(ipack)
   48472     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   48473     1537812 :          pack_tmp = ISHFT(pack_tmp, -50)
   48474     1537812 :          idata = idata + 1
   48475     1537812 :          data_tmp = ISHFT(pack_tmp, 44)
   48476     1537812 :          ipack = ipack + 1
   48477     1537812 :          pack_tmp = packed_data(ipack)
   48478     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   48479     1537812 :          pack_tmp = ISHFT(pack_tmp, -44)
   48480     1537812 :          idata = idata + 1
   48481     1537812 :          data_tmp = ISHFT(pack_tmp, 38)
   48482     1537812 :          ipack = ipack + 1
   48483     1537812 :          pack_tmp = packed_data(ipack)
   48484     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   48485     1537812 :          pack_tmp = ISHFT(pack_tmp, -38)
   48486     1537812 :          idata = idata + 1
   48487     1537812 :          data_tmp = ISHFT(pack_tmp, 32)
   48488     1537812 :          ipack = ipack + 1
   48489     1537812 :          pack_tmp = packed_data(ipack)
   48490     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   48491     1537812 :          pack_tmp = ISHFT(pack_tmp, -32)
   48492     1537812 :          idata = idata + 1
   48493     1537812 :          data_tmp = ISHFT(pack_tmp, 26)
   48494     1537812 :          ipack = ipack + 1
   48495     1537812 :          pack_tmp = packed_data(ipack)
   48496     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   48497     1537812 :          pack_tmp = ISHFT(pack_tmp, -26)
   48498     1537812 :          idata = idata + 1
   48499     1537812 :          data_tmp = ISHFT(pack_tmp, 20)
   48500     1537812 :          ipack = ipack + 1
   48501     1537812 :          pack_tmp = packed_data(ipack)
   48502     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   48503     1537812 :          pack_tmp = ISHFT(pack_tmp, -20)
   48504     1537812 :          idata = idata + 1
   48505     1537812 :          data_tmp = ISHFT(pack_tmp, 14)
   48506     1537812 :          ipack = ipack + 1
   48507     1537812 :          pack_tmp = packed_data(ipack)
   48508     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   48509     1537812 :          pack_tmp = ISHFT(pack_tmp, -14)
   48510     1537812 :          idata = idata + 1
   48511     1537812 :          data_tmp = ISHFT(pack_tmp, 8)
   48512     1537812 :          ipack = ipack + 1
   48513     1537812 :          pack_tmp = packed_data(ipack)
   48514     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   48515     1537812 :          pack_tmp = ISHFT(pack_tmp, -8)
   48516     1537812 :          idata = idata + 1
   48517     1537812 :          data_tmp = ISHFT(pack_tmp, 2)
   48518     1537812 :          ipack = ipack + 1
   48519     1537812 :          pack_tmp = packed_data(ipack)
   48520     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   48521     1537812 :          pack_tmp = ISHFT(pack_tmp, -2)
   48522     1537812 :          idata = idata + 1
   48523     1537812 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48524     1537812 :          full_data(idata) = data_tmp
   48525     1537812 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48526     1537812 :          idata = idata + 1
   48527     1537812 :          data_tmp = ISHFT(pack_tmp, 54)
   48528     1537812 :          ipack = ipack + 1
   48529     1537812 :          pack_tmp = packed_data(ipack)
   48530     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   48531     1537812 :          pack_tmp = ISHFT(pack_tmp, -54)
   48532     1537812 :          idata = idata + 1
   48533     1537812 :          data_tmp = ISHFT(pack_tmp, 48)
   48534     1537812 :          ipack = ipack + 1
   48535     1537812 :          pack_tmp = packed_data(ipack)
   48536     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   48537     1537812 :          pack_tmp = ISHFT(pack_tmp, -48)
   48538     1537812 :          idata = idata + 1
   48539     1537812 :          data_tmp = ISHFT(pack_tmp, 42)
   48540     1537812 :          ipack = ipack + 1
   48541     1537812 :          pack_tmp = packed_data(ipack)
   48542     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   48543     1537812 :          pack_tmp = ISHFT(pack_tmp, -42)
   48544     1537812 :          idata = idata + 1
   48545     1537812 :          data_tmp = ISHFT(pack_tmp, 36)
   48546     1537812 :          ipack = ipack + 1
   48547     1537812 :          pack_tmp = packed_data(ipack)
   48548     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   48549     1537812 :          pack_tmp = ISHFT(pack_tmp, -36)
   48550     1537812 :          idata = idata + 1
   48551     1537812 :          data_tmp = ISHFT(pack_tmp, 30)
   48552     1537812 :          ipack = ipack + 1
   48553     1537812 :          pack_tmp = packed_data(ipack)
   48554     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   48555     1537812 :          pack_tmp = ISHFT(pack_tmp, -30)
   48556     1537812 :          idata = idata + 1
   48557     1537812 :          data_tmp = ISHFT(pack_tmp, 24)
   48558     1537812 :          ipack = ipack + 1
   48559     1537812 :          pack_tmp = packed_data(ipack)
   48560     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   48561     1537812 :          pack_tmp = ISHFT(pack_tmp, -24)
   48562     1537812 :          idata = idata + 1
   48563     1537812 :          data_tmp = ISHFT(pack_tmp, 18)
   48564     1537812 :          ipack = ipack + 1
   48565     1537812 :          pack_tmp = packed_data(ipack)
   48566     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   48567     1537812 :          pack_tmp = ISHFT(pack_tmp, -18)
   48568     1537812 :          idata = idata + 1
   48569     1537812 :          data_tmp = ISHFT(pack_tmp, 12)
   48570     1537812 :          ipack = ipack + 1
   48571     1537812 :          pack_tmp = packed_data(ipack)
   48572     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   48573     1537812 :          pack_tmp = ISHFT(pack_tmp, -12)
   48574     1537812 :          idata = idata + 1
   48575     1537812 :          data_tmp = ISHFT(pack_tmp, 6)
   48576     1537812 :          ipack = ipack + 1
   48577     1537812 :          pack_tmp = packed_data(ipack)
   48578     1537812 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   48579     1537812 :          pack_tmp = ISHFT(pack_tmp, -6)
   48580     1537812 :          idata = idata + 1
   48581     1537812 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48582     1537812 :          full_data(idata) = data_tmp
   48583     1537812 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48584             :       END DO
   48585       96891 :       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       96891 :    END SUBROUTINE bits2ints_58
   48589             : 
   48590             : ! **************************************************************************************************
   48591             : !> \brief ...
   48592             : !> \param Ndata ...
   48593             : !> \param packed_data ...
   48594             : !> \param full_data ...
   48595             : ! **************************************************************************************************
   48596       23676 :    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       23676 :       idata = 0
   48607       23676 :       ipack = 0
   48608       23676 :       Ndata_rep = (Ndata/64)*64
   48609       23676 :       DO kdata = 1, Ndata_rep, 64
   48610      378816 :          pack_tmp = 0
   48611      378816 :          idata = idata + 1
   48612      378816 :          data_tmp = full_data(idata)
   48613      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48614      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48615      378816 :          pack_tmp = ISHFT(pack_tmp, -5)
   48616      378816 :          idata = idata + 1
   48617      378816 :          data_tmp = full_data(idata)
   48618      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48619      378816 :          data_tmp = IAND(data_tmp, mask_left(5))
   48620      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48621      378816 :          ipack = ipack + 1
   48622      378816 :          packed_data(ipack) = pack_tmp
   48623      378816 :          data_tmp = full_data(idata)
   48624      378816 :          pack_tmp = ISHFT(data_tmp, 10)
   48625      378816 :          pack_tmp = ISHFT(pack_tmp, -10)
   48626      378816 :          idata = idata + 1
   48627      378816 :          data_tmp = full_data(idata)
   48628      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48629      378816 :          data_tmp = IAND(data_tmp, mask_left(10))
   48630      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48631      378816 :          ipack = ipack + 1
   48632      378816 :          packed_data(ipack) = pack_tmp
   48633      378816 :          data_tmp = full_data(idata)
   48634      378816 :          pack_tmp = ISHFT(data_tmp, 15)
   48635      378816 :          pack_tmp = ISHFT(pack_tmp, -15)
   48636      378816 :          idata = idata + 1
   48637      378816 :          data_tmp = full_data(idata)
   48638      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48639      378816 :          data_tmp = IAND(data_tmp, mask_left(15))
   48640      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48641      378816 :          ipack = ipack + 1
   48642      378816 :          packed_data(ipack) = pack_tmp
   48643      378816 :          data_tmp = full_data(idata)
   48644      378816 :          pack_tmp = ISHFT(data_tmp, 20)
   48645      378816 :          pack_tmp = ISHFT(pack_tmp, -20)
   48646      378816 :          idata = idata + 1
   48647      378816 :          data_tmp = full_data(idata)
   48648      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48649      378816 :          data_tmp = IAND(data_tmp, mask_left(20))
   48650      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48651      378816 :          ipack = ipack + 1
   48652      378816 :          packed_data(ipack) = pack_tmp
   48653      378816 :          data_tmp = full_data(idata)
   48654      378816 :          pack_tmp = ISHFT(data_tmp, 25)
   48655      378816 :          pack_tmp = ISHFT(pack_tmp, -25)
   48656      378816 :          idata = idata + 1
   48657      378816 :          data_tmp = full_data(idata)
   48658      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48659      378816 :          data_tmp = IAND(data_tmp, mask_left(25))
   48660      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48661      378816 :          ipack = ipack + 1
   48662      378816 :          packed_data(ipack) = pack_tmp
   48663      378816 :          data_tmp = full_data(idata)
   48664      378816 :          pack_tmp = ISHFT(data_tmp, 30)
   48665      378816 :          pack_tmp = ISHFT(pack_tmp, -30)
   48666      378816 :          idata = idata + 1
   48667      378816 :          data_tmp = full_data(idata)
   48668      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48669      378816 :          data_tmp = IAND(data_tmp, mask_left(30))
   48670      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48671      378816 :          ipack = ipack + 1
   48672      378816 :          packed_data(ipack) = pack_tmp
   48673      378816 :          data_tmp = full_data(idata)
   48674      378816 :          pack_tmp = ISHFT(data_tmp, 35)
   48675      378816 :          pack_tmp = ISHFT(pack_tmp, -35)
   48676      378816 :          idata = idata + 1
   48677      378816 :          data_tmp = full_data(idata)
   48678      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48679      378816 :          data_tmp = IAND(data_tmp, mask_left(35))
   48680      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48681      378816 :          ipack = ipack + 1
   48682      378816 :          packed_data(ipack) = pack_tmp
   48683      378816 :          data_tmp = full_data(idata)
   48684      378816 :          pack_tmp = ISHFT(data_tmp, 40)
   48685      378816 :          pack_tmp = ISHFT(pack_tmp, -40)
   48686      378816 :          idata = idata + 1
   48687      378816 :          data_tmp = full_data(idata)
   48688      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48689      378816 :          data_tmp = IAND(data_tmp, mask_left(40))
   48690      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48691      378816 :          ipack = ipack + 1
   48692      378816 :          packed_data(ipack) = pack_tmp
   48693      378816 :          data_tmp = full_data(idata)
   48694      378816 :          pack_tmp = ISHFT(data_tmp, 45)
   48695      378816 :          pack_tmp = ISHFT(pack_tmp, -45)
   48696      378816 :          idata = idata + 1
   48697      378816 :          data_tmp = full_data(idata)
   48698      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48699      378816 :          data_tmp = IAND(data_tmp, mask_left(45))
   48700      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48701      378816 :          ipack = ipack + 1
   48702      378816 :          packed_data(ipack) = pack_tmp
   48703      378816 :          data_tmp = full_data(idata)
   48704      378816 :          pack_tmp = ISHFT(data_tmp, 50)
   48705      378816 :          pack_tmp = ISHFT(pack_tmp, -50)
   48706      378816 :          idata = idata + 1
   48707      378816 :          data_tmp = full_data(idata)
   48708      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48709      378816 :          data_tmp = IAND(data_tmp, mask_left(50))
   48710      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48711      378816 :          ipack = ipack + 1
   48712      378816 :          packed_data(ipack) = pack_tmp
   48713      378816 :          data_tmp = full_data(idata)
   48714      378816 :          pack_tmp = ISHFT(data_tmp, 55)
   48715      378816 :          pack_tmp = ISHFT(pack_tmp, -55)
   48716      378816 :          idata = idata + 1
   48717      378816 :          data_tmp = full_data(idata)
   48718      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48719      378816 :          data_tmp = IAND(data_tmp, mask_left(55))
   48720      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48721      378816 :          ipack = ipack + 1
   48722      378816 :          packed_data(ipack) = pack_tmp
   48723      378816 :          data_tmp = full_data(idata)
   48724      378816 :          pack_tmp = ISHFT(data_tmp, 60)
   48725      378816 :          pack_tmp = ISHFT(pack_tmp, -59)
   48726      378816 :          idata = idata + 1
   48727      378816 :          data_tmp = full_data(idata)
   48728      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48729      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48730      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
   48731      378816 :          idata = idata + 1
   48732      378816 :          data_tmp = full_data(idata)
   48733      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48734      378816 :          data_tmp = IAND(data_tmp, mask_left(1))
   48735      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48736      378816 :          ipack = ipack + 1
   48737      378816 :          packed_data(ipack) = pack_tmp
   48738      378816 :          data_tmp = full_data(idata)
   48739      378816 :          pack_tmp = ISHFT(data_tmp, 6)
   48740      378816 :          pack_tmp = ISHFT(pack_tmp, -6)
   48741      378816 :          idata = idata + 1
   48742      378816 :          data_tmp = full_data(idata)
   48743      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48744      378816 :          data_tmp = IAND(data_tmp, mask_left(6))
   48745      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48746      378816 :          ipack = ipack + 1
   48747      378816 :          packed_data(ipack) = pack_tmp
   48748      378816 :          data_tmp = full_data(idata)
   48749      378816 :          pack_tmp = ISHFT(data_tmp, 11)
   48750      378816 :          pack_tmp = ISHFT(pack_tmp, -11)
   48751      378816 :          idata = idata + 1
   48752      378816 :          data_tmp = full_data(idata)
   48753      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48754      378816 :          data_tmp = IAND(data_tmp, mask_left(11))
   48755      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48756      378816 :          ipack = ipack + 1
   48757      378816 :          packed_data(ipack) = pack_tmp
   48758      378816 :          data_tmp = full_data(idata)
   48759      378816 :          pack_tmp = ISHFT(data_tmp, 16)
   48760      378816 :          pack_tmp = ISHFT(pack_tmp, -16)
   48761      378816 :          idata = idata + 1
   48762      378816 :          data_tmp = full_data(idata)
   48763      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48764      378816 :          data_tmp = IAND(data_tmp, mask_left(16))
   48765      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48766      378816 :          ipack = ipack + 1
   48767      378816 :          packed_data(ipack) = pack_tmp
   48768      378816 :          data_tmp = full_data(idata)
   48769      378816 :          pack_tmp = ISHFT(data_tmp, 21)
   48770      378816 :          pack_tmp = ISHFT(pack_tmp, -21)
   48771      378816 :          idata = idata + 1
   48772      378816 :          data_tmp = full_data(idata)
   48773      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48774      378816 :          data_tmp = IAND(data_tmp, mask_left(21))
   48775      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48776      378816 :          ipack = ipack + 1
   48777      378816 :          packed_data(ipack) = pack_tmp
   48778      378816 :          data_tmp = full_data(idata)
   48779      378816 :          pack_tmp = ISHFT(data_tmp, 26)
   48780      378816 :          pack_tmp = ISHFT(pack_tmp, -26)
   48781      378816 :          idata = idata + 1
   48782      378816 :          data_tmp = full_data(idata)
   48783      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48784      378816 :          data_tmp = IAND(data_tmp, mask_left(26))
   48785      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48786      378816 :          ipack = ipack + 1
   48787      378816 :          packed_data(ipack) = pack_tmp
   48788      378816 :          data_tmp = full_data(idata)
   48789      378816 :          pack_tmp = ISHFT(data_tmp, 31)
   48790      378816 :          pack_tmp = ISHFT(pack_tmp, -31)
   48791      378816 :          idata = idata + 1
   48792      378816 :          data_tmp = full_data(idata)
   48793      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48794      378816 :          data_tmp = IAND(data_tmp, mask_left(31))
   48795      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48796      378816 :          ipack = ipack + 1
   48797      378816 :          packed_data(ipack) = pack_tmp
   48798      378816 :          data_tmp = full_data(idata)
   48799      378816 :          pack_tmp = ISHFT(data_tmp, 36)
   48800      378816 :          pack_tmp = ISHFT(pack_tmp, -36)
   48801      378816 :          idata = idata + 1
   48802      378816 :          data_tmp = full_data(idata)
   48803      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48804      378816 :          data_tmp = IAND(data_tmp, mask_left(36))
   48805      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48806      378816 :          ipack = ipack + 1
   48807      378816 :          packed_data(ipack) = pack_tmp
   48808      378816 :          data_tmp = full_data(idata)
   48809      378816 :          pack_tmp = ISHFT(data_tmp, 41)
   48810      378816 :          pack_tmp = ISHFT(pack_tmp, -41)
   48811      378816 :          idata = idata + 1
   48812      378816 :          data_tmp = full_data(idata)
   48813      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48814      378816 :          data_tmp = IAND(data_tmp, mask_left(41))
   48815      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48816      378816 :          ipack = ipack + 1
   48817      378816 :          packed_data(ipack) = pack_tmp
   48818      378816 :          data_tmp = full_data(idata)
   48819      378816 :          pack_tmp = ISHFT(data_tmp, 46)
   48820      378816 :          pack_tmp = ISHFT(pack_tmp, -46)
   48821      378816 :          idata = idata + 1
   48822      378816 :          data_tmp = full_data(idata)
   48823      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48824      378816 :          data_tmp = IAND(data_tmp, mask_left(46))
   48825      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48826      378816 :          ipack = ipack + 1
   48827      378816 :          packed_data(ipack) = pack_tmp
   48828      378816 :          data_tmp = full_data(idata)
   48829      378816 :          pack_tmp = ISHFT(data_tmp, 51)
   48830      378816 :          pack_tmp = ISHFT(pack_tmp, -51)
   48831      378816 :          idata = idata + 1
   48832      378816 :          data_tmp = full_data(idata)
   48833      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48834      378816 :          data_tmp = IAND(data_tmp, mask_left(51))
   48835      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48836      378816 :          ipack = ipack + 1
   48837      378816 :          packed_data(ipack) = pack_tmp
   48838      378816 :          data_tmp = full_data(idata)
   48839      378816 :          pack_tmp = ISHFT(data_tmp, 56)
   48840      378816 :          pack_tmp = ISHFT(pack_tmp, -56)
   48841      378816 :          idata = idata + 1
   48842      378816 :          data_tmp = full_data(idata)
   48843      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48844      378816 :          data_tmp = IAND(data_tmp, mask_left(56))
   48845      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48846      378816 :          ipack = ipack + 1
   48847      378816 :          packed_data(ipack) = pack_tmp
   48848      378816 :          data_tmp = full_data(idata)
   48849      378816 :          pack_tmp = ISHFT(data_tmp, 61)
   48850      378816 :          pack_tmp = ISHFT(pack_tmp, -59)
   48851      378816 :          idata = idata + 1
   48852      378816 :          data_tmp = full_data(idata)
   48853      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48854      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48855      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
   48856      378816 :          idata = idata + 1
   48857      378816 :          data_tmp = full_data(idata)
   48858      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48859      378816 :          data_tmp = IAND(data_tmp, mask_left(2))
   48860      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48861      378816 :          ipack = ipack + 1
   48862      378816 :          packed_data(ipack) = pack_tmp
   48863      378816 :          data_tmp = full_data(idata)
   48864      378816 :          pack_tmp = ISHFT(data_tmp, 7)
   48865      378816 :          pack_tmp = ISHFT(pack_tmp, -7)
   48866      378816 :          idata = idata + 1
   48867      378816 :          data_tmp = full_data(idata)
   48868      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48869      378816 :          data_tmp = IAND(data_tmp, mask_left(7))
   48870      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48871      378816 :          ipack = ipack + 1
   48872      378816 :          packed_data(ipack) = pack_tmp
   48873      378816 :          data_tmp = full_data(idata)
   48874      378816 :          pack_tmp = ISHFT(data_tmp, 12)
   48875      378816 :          pack_tmp = ISHFT(pack_tmp, -12)
   48876      378816 :          idata = idata + 1
   48877      378816 :          data_tmp = full_data(idata)
   48878      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48879      378816 :          data_tmp = IAND(data_tmp, mask_left(12))
   48880      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48881      378816 :          ipack = ipack + 1
   48882      378816 :          packed_data(ipack) = pack_tmp
   48883      378816 :          data_tmp = full_data(idata)
   48884      378816 :          pack_tmp = ISHFT(data_tmp, 17)
   48885      378816 :          pack_tmp = ISHFT(pack_tmp, -17)
   48886      378816 :          idata = idata + 1
   48887      378816 :          data_tmp = full_data(idata)
   48888      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48889      378816 :          data_tmp = IAND(data_tmp, mask_left(17))
   48890      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48891      378816 :          ipack = ipack + 1
   48892      378816 :          packed_data(ipack) = pack_tmp
   48893      378816 :          data_tmp = full_data(idata)
   48894      378816 :          pack_tmp = ISHFT(data_tmp, 22)
   48895      378816 :          pack_tmp = ISHFT(pack_tmp, -22)
   48896      378816 :          idata = idata + 1
   48897      378816 :          data_tmp = full_data(idata)
   48898      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48899      378816 :          data_tmp = IAND(data_tmp, mask_left(22))
   48900      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48901      378816 :          ipack = ipack + 1
   48902      378816 :          packed_data(ipack) = pack_tmp
   48903      378816 :          data_tmp = full_data(idata)
   48904      378816 :          pack_tmp = ISHFT(data_tmp, 27)
   48905      378816 :          pack_tmp = ISHFT(pack_tmp, -27)
   48906      378816 :          idata = idata + 1
   48907      378816 :          data_tmp = full_data(idata)
   48908      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48909      378816 :          data_tmp = IAND(data_tmp, mask_left(27))
   48910      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48911      378816 :          ipack = ipack + 1
   48912      378816 :          packed_data(ipack) = pack_tmp
   48913      378816 :          data_tmp = full_data(idata)
   48914      378816 :          pack_tmp = ISHFT(data_tmp, 32)
   48915      378816 :          pack_tmp = ISHFT(pack_tmp, -32)
   48916      378816 :          idata = idata + 1
   48917      378816 :          data_tmp = full_data(idata)
   48918      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48919      378816 :          data_tmp = IAND(data_tmp, mask_left(32))
   48920      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48921      378816 :          ipack = ipack + 1
   48922      378816 :          packed_data(ipack) = pack_tmp
   48923      378816 :          data_tmp = full_data(idata)
   48924      378816 :          pack_tmp = ISHFT(data_tmp, 37)
   48925      378816 :          pack_tmp = ISHFT(pack_tmp, -37)
   48926      378816 :          idata = idata + 1
   48927      378816 :          data_tmp = full_data(idata)
   48928      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48929      378816 :          data_tmp = IAND(data_tmp, mask_left(37))
   48930      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48931      378816 :          ipack = ipack + 1
   48932      378816 :          packed_data(ipack) = pack_tmp
   48933      378816 :          data_tmp = full_data(idata)
   48934      378816 :          pack_tmp = ISHFT(data_tmp, 42)
   48935      378816 :          pack_tmp = ISHFT(pack_tmp, -42)
   48936      378816 :          idata = idata + 1
   48937      378816 :          data_tmp = full_data(idata)
   48938      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48939      378816 :          data_tmp = IAND(data_tmp, mask_left(42))
   48940      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48941      378816 :          ipack = ipack + 1
   48942      378816 :          packed_data(ipack) = pack_tmp
   48943      378816 :          data_tmp = full_data(idata)
   48944      378816 :          pack_tmp = ISHFT(data_tmp, 47)
   48945      378816 :          pack_tmp = ISHFT(pack_tmp, -47)
   48946      378816 :          idata = idata + 1
   48947      378816 :          data_tmp = full_data(idata)
   48948      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48949      378816 :          data_tmp = IAND(data_tmp, mask_left(47))
   48950      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48951      378816 :          ipack = ipack + 1
   48952      378816 :          packed_data(ipack) = pack_tmp
   48953      378816 :          data_tmp = full_data(idata)
   48954      378816 :          pack_tmp = ISHFT(data_tmp, 52)
   48955      378816 :          pack_tmp = ISHFT(pack_tmp, -52)
   48956      378816 :          idata = idata + 1
   48957      378816 :          data_tmp = full_data(idata)
   48958      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48959      378816 :          data_tmp = IAND(data_tmp, mask_left(52))
   48960      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48961      378816 :          ipack = ipack + 1
   48962      378816 :          packed_data(ipack) = pack_tmp
   48963      378816 :          data_tmp = full_data(idata)
   48964      378816 :          pack_tmp = ISHFT(data_tmp, 57)
   48965      378816 :          pack_tmp = ISHFT(pack_tmp, -57)
   48966      378816 :          idata = idata + 1
   48967      378816 :          data_tmp = full_data(idata)
   48968      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48969      378816 :          data_tmp = IAND(data_tmp, mask_left(57))
   48970      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48971      378816 :          ipack = ipack + 1
   48972      378816 :          packed_data(ipack) = pack_tmp
   48973      378816 :          data_tmp = full_data(idata)
   48974      378816 :          pack_tmp = ISHFT(data_tmp, 62)
   48975      378816 :          pack_tmp = ISHFT(pack_tmp, -59)
   48976      378816 :          idata = idata + 1
   48977      378816 :          data_tmp = full_data(idata)
   48978      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48979      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48980      378816 :          pack_tmp = ISHFT(pack_tmp, -3)
   48981      378816 :          idata = idata + 1
   48982      378816 :          data_tmp = full_data(idata)
   48983      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48984      378816 :          data_tmp = IAND(data_tmp, mask_left(3))
   48985      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48986      378816 :          ipack = ipack + 1
   48987      378816 :          packed_data(ipack) = pack_tmp
   48988      378816 :          data_tmp = full_data(idata)
   48989      378816 :          pack_tmp = ISHFT(data_tmp, 8)
   48990      378816 :          pack_tmp = ISHFT(pack_tmp, -8)
   48991      378816 :          idata = idata + 1
   48992      378816 :          data_tmp = full_data(idata)
   48993      378816 :          data_tmp = ISHFT(data_tmp, 5)
   48994      378816 :          data_tmp = IAND(data_tmp, mask_left(8))
   48995      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48996      378816 :          ipack = ipack + 1
   48997      378816 :          packed_data(ipack) = pack_tmp
   48998      378816 :          data_tmp = full_data(idata)
   48999      378816 :          pack_tmp = ISHFT(data_tmp, 13)
   49000      378816 :          pack_tmp = ISHFT(pack_tmp, -13)
   49001      378816 :          idata = idata + 1
   49002      378816 :          data_tmp = full_data(idata)
   49003      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49004      378816 :          data_tmp = IAND(data_tmp, mask_left(13))
   49005      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49006      378816 :          ipack = ipack + 1
   49007      378816 :          packed_data(ipack) = pack_tmp
   49008      378816 :          data_tmp = full_data(idata)
   49009      378816 :          pack_tmp = ISHFT(data_tmp, 18)
   49010      378816 :          pack_tmp = ISHFT(pack_tmp, -18)
   49011      378816 :          idata = idata + 1
   49012      378816 :          data_tmp = full_data(idata)
   49013      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49014      378816 :          data_tmp = IAND(data_tmp, mask_left(18))
   49015      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49016      378816 :          ipack = ipack + 1
   49017      378816 :          packed_data(ipack) = pack_tmp
   49018      378816 :          data_tmp = full_data(idata)
   49019      378816 :          pack_tmp = ISHFT(data_tmp, 23)
   49020      378816 :          pack_tmp = ISHFT(pack_tmp, -23)
   49021      378816 :          idata = idata + 1
   49022      378816 :          data_tmp = full_data(idata)
   49023      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49024      378816 :          data_tmp = IAND(data_tmp, mask_left(23))
   49025      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49026      378816 :          ipack = ipack + 1
   49027      378816 :          packed_data(ipack) = pack_tmp
   49028      378816 :          data_tmp = full_data(idata)
   49029      378816 :          pack_tmp = ISHFT(data_tmp, 28)
   49030      378816 :          pack_tmp = ISHFT(pack_tmp, -28)
   49031      378816 :          idata = idata + 1
   49032      378816 :          data_tmp = full_data(idata)
   49033      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49034      378816 :          data_tmp = IAND(data_tmp, mask_left(28))
   49035      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49036      378816 :          ipack = ipack + 1
   49037      378816 :          packed_data(ipack) = pack_tmp
   49038      378816 :          data_tmp = full_data(idata)
   49039      378816 :          pack_tmp = ISHFT(data_tmp, 33)
   49040      378816 :          pack_tmp = ISHFT(pack_tmp, -33)
   49041      378816 :          idata = idata + 1
   49042      378816 :          data_tmp = full_data(idata)
   49043      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49044      378816 :          data_tmp = IAND(data_tmp, mask_left(33))
   49045      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49046      378816 :          ipack = ipack + 1
   49047      378816 :          packed_data(ipack) = pack_tmp
   49048      378816 :          data_tmp = full_data(idata)
   49049      378816 :          pack_tmp = ISHFT(data_tmp, 38)
   49050      378816 :          pack_tmp = ISHFT(pack_tmp, -38)
   49051      378816 :          idata = idata + 1
   49052      378816 :          data_tmp = full_data(idata)
   49053      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49054      378816 :          data_tmp = IAND(data_tmp, mask_left(38))
   49055      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49056      378816 :          ipack = ipack + 1
   49057      378816 :          packed_data(ipack) = pack_tmp
   49058      378816 :          data_tmp = full_data(idata)
   49059      378816 :          pack_tmp = ISHFT(data_tmp, 43)
   49060      378816 :          pack_tmp = ISHFT(pack_tmp, -43)
   49061      378816 :          idata = idata + 1
   49062      378816 :          data_tmp = full_data(idata)
   49063      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49064      378816 :          data_tmp = IAND(data_tmp, mask_left(43))
   49065      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49066      378816 :          ipack = ipack + 1
   49067      378816 :          packed_data(ipack) = pack_tmp
   49068      378816 :          data_tmp = full_data(idata)
   49069      378816 :          pack_tmp = ISHFT(data_tmp, 48)
   49070      378816 :          pack_tmp = ISHFT(pack_tmp, -48)
   49071      378816 :          idata = idata + 1
   49072      378816 :          data_tmp = full_data(idata)
   49073      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49074      378816 :          data_tmp = IAND(data_tmp, mask_left(48))
   49075      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49076      378816 :          ipack = ipack + 1
   49077      378816 :          packed_data(ipack) = pack_tmp
   49078      378816 :          data_tmp = full_data(idata)
   49079      378816 :          pack_tmp = ISHFT(data_tmp, 53)
   49080      378816 :          pack_tmp = ISHFT(pack_tmp, -53)
   49081      378816 :          idata = idata + 1
   49082      378816 :          data_tmp = full_data(idata)
   49083      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49084      378816 :          data_tmp = IAND(data_tmp, mask_left(53))
   49085      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49086      378816 :          ipack = ipack + 1
   49087      378816 :          packed_data(ipack) = pack_tmp
   49088      378816 :          data_tmp = full_data(idata)
   49089      378816 :          pack_tmp = ISHFT(data_tmp, 58)
   49090      378816 :          pack_tmp = ISHFT(pack_tmp, -58)
   49091      378816 :          idata = idata + 1
   49092      378816 :          data_tmp = full_data(idata)
   49093      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49094      378816 :          data_tmp = IAND(data_tmp, mask_left(58))
   49095      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49096      378816 :          ipack = ipack + 1
   49097      378816 :          packed_data(ipack) = pack_tmp
   49098      378816 :          data_tmp = full_data(idata)
   49099      378816 :          pack_tmp = ISHFT(data_tmp, 63)
   49100      378816 :          pack_tmp = ISHFT(pack_tmp, -59)
   49101      378816 :          idata = idata + 1
   49102      378816 :          data_tmp = full_data(idata)
   49103      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49104      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49105      378816 :          pack_tmp = ISHFT(pack_tmp, -4)
   49106      378816 :          idata = idata + 1
   49107      378816 :          data_tmp = full_data(idata)
   49108      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49109      378816 :          data_tmp = IAND(data_tmp, mask_left(4))
   49110      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49111      378816 :          ipack = ipack + 1
   49112      378816 :          packed_data(ipack) = pack_tmp
   49113      378816 :          data_tmp = full_data(idata)
   49114      378816 :          pack_tmp = ISHFT(data_tmp, 9)
   49115      378816 :          pack_tmp = ISHFT(pack_tmp, -9)
   49116      378816 :          idata = idata + 1
   49117      378816 :          data_tmp = full_data(idata)
   49118      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49119      378816 :          data_tmp = IAND(data_tmp, mask_left(9))
   49120      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49121      378816 :          ipack = ipack + 1
   49122      378816 :          packed_data(ipack) = pack_tmp
   49123      378816 :          data_tmp = full_data(idata)
   49124      378816 :          pack_tmp = ISHFT(data_tmp, 14)
   49125      378816 :          pack_tmp = ISHFT(pack_tmp, -14)
   49126      378816 :          idata = idata + 1
   49127      378816 :          data_tmp = full_data(idata)
   49128      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49129      378816 :          data_tmp = IAND(data_tmp, mask_left(14))
   49130      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49131      378816 :          ipack = ipack + 1
   49132      378816 :          packed_data(ipack) = pack_tmp
   49133      378816 :          data_tmp = full_data(idata)
   49134      378816 :          pack_tmp = ISHFT(data_tmp, 19)
   49135      378816 :          pack_tmp = ISHFT(pack_tmp, -19)
   49136      378816 :          idata = idata + 1
   49137      378816 :          data_tmp = full_data(idata)
   49138      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49139      378816 :          data_tmp = IAND(data_tmp, mask_left(19))
   49140      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49141      378816 :          ipack = ipack + 1
   49142      378816 :          packed_data(ipack) = pack_tmp
   49143      378816 :          data_tmp = full_data(idata)
   49144      378816 :          pack_tmp = ISHFT(data_tmp, 24)
   49145      378816 :          pack_tmp = ISHFT(pack_tmp, -24)
   49146      378816 :          idata = idata + 1
   49147      378816 :          data_tmp = full_data(idata)
   49148      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49149      378816 :          data_tmp = IAND(data_tmp, mask_left(24))
   49150      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49151      378816 :          ipack = ipack + 1
   49152      378816 :          packed_data(ipack) = pack_tmp
   49153      378816 :          data_tmp = full_data(idata)
   49154      378816 :          pack_tmp = ISHFT(data_tmp, 29)
   49155      378816 :          pack_tmp = ISHFT(pack_tmp, -29)
   49156      378816 :          idata = idata + 1
   49157      378816 :          data_tmp = full_data(idata)
   49158      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49159      378816 :          data_tmp = IAND(data_tmp, mask_left(29))
   49160      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49161      378816 :          ipack = ipack + 1
   49162      378816 :          packed_data(ipack) = pack_tmp
   49163      378816 :          data_tmp = full_data(idata)
   49164      378816 :          pack_tmp = ISHFT(data_tmp, 34)
   49165      378816 :          pack_tmp = ISHFT(pack_tmp, -34)
   49166      378816 :          idata = idata + 1
   49167      378816 :          data_tmp = full_data(idata)
   49168      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49169      378816 :          data_tmp = IAND(data_tmp, mask_left(34))
   49170      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49171      378816 :          ipack = ipack + 1
   49172      378816 :          packed_data(ipack) = pack_tmp
   49173      378816 :          data_tmp = full_data(idata)
   49174      378816 :          pack_tmp = ISHFT(data_tmp, 39)
   49175      378816 :          pack_tmp = ISHFT(pack_tmp, -39)
   49176      378816 :          idata = idata + 1
   49177      378816 :          data_tmp = full_data(idata)
   49178      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49179      378816 :          data_tmp = IAND(data_tmp, mask_left(39))
   49180      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49181      378816 :          ipack = ipack + 1
   49182      378816 :          packed_data(ipack) = pack_tmp
   49183      378816 :          data_tmp = full_data(idata)
   49184      378816 :          pack_tmp = ISHFT(data_tmp, 44)
   49185      378816 :          pack_tmp = ISHFT(pack_tmp, -44)
   49186      378816 :          idata = idata + 1
   49187      378816 :          data_tmp = full_data(idata)
   49188      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49189      378816 :          data_tmp = IAND(data_tmp, mask_left(44))
   49190      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49191      378816 :          ipack = ipack + 1
   49192      378816 :          packed_data(ipack) = pack_tmp
   49193      378816 :          data_tmp = full_data(idata)
   49194      378816 :          pack_tmp = ISHFT(data_tmp, 49)
   49195      378816 :          pack_tmp = ISHFT(pack_tmp, -49)
   49196      378816 :          idata = idata + 1
   49197      378816 :          data_tmp = full_data(idata)
   49198      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49199      378816 :          data_tmp = IAND(data_tmp, mask_left(49))
   49200      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49201      378816 :          ipack = ipack + 1
   49202      378816 :          packed_data(ipack) = pack_tmp
   49203      378816 :          data_tmp = full_data(idata)
   49204      378816 :          pack_tmp = ISHFT(data_tmp, 54)
   49205      378816 :          pack_tmp = ISHFT(pack_tmp, -54)
   49206      378816 :          idata = idata + 1
   49207      378816 :          data_tmp = full_data(idata)
   49208      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49209      378816 :          data_tmp = IAND(data_tmp, mask_left(54))
   49210      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49211      378816 :          ipack = ipack + 1
   49212      378816 :          packed_data(ipack) = pack_tmp
   49213      378816 :          data_tmp = full_data(idata)
   49214      378816 :          pack_tmp = ISHFT(data_tmp, 59)
   49215      378816 :          pack_tmp = ISHFT(pack_tmp, -59)
   49216      378816 :          idata = idata + 1
   49217      378816 :          data_tmp = full_data(idata)
   49218      378816 :          data_tmp = ISHFT(data_tmp, 5)
   49219      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49220             :          pack_tmp = ISHFT(pack_tmp, 0)
   49221      378816 :          pack_tmp = ISHFT(pack_tmp, 0)
   49222      378816 :          ipack = ipack + 1
   49223      378816 :          packed_data(ipack) = pack_tmp
   49224             :       END DO
   49225       23676 :       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       23676 :    END SUBROUTINE ints2bits_59
   49229             : 
   49230             : ! **************************************************************************************************
   49231             : !> \brief ...
   49232             : !> \param Ndata ...
   49233             : !> \param packed_data ...
   49234             : !> \param full_data ...
   49235             : ! **************************************************************************************************
   49236       95427 :    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       95427 :       ipack = 0
   49247       95427 :       idata = 0
   49248       95427 :       pack_tmp = 0
   49249       95427 :       Ndata_rep = (Ndata/64)*64
   49250       95427 :       DO kdata = 1, Ndata_rep, 64
   49251     1526832 :          idata = idata + 1
   49252     1526832 :          data_tmp = ISHFT(pack_tmp, 59)
   49253     1526832 :          ipack = ipack + 1
   49254     1526832 :          pack_tmp = packed_data(ipack)
   49255     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(59)))
   49256     1526832 :          pack_tmp = ISHFT(pack_tmp, -59)
   49257     1526832 :          idata = idata + 1
   49258     1526832 :          data_tmp = ISHFT(pack_tmp, 54)
   49259     1526832 :          ipack = ipack + 1
   49260     1526832 :          pack_tmp = packed_data(ipack)
   49261     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   49262     1526832 :          pack_tmp = ISHFT(pack_tmp, -54)
   49263     1526832 :          idata = idata + 1
   49264     1526832 :          data_tmp = ISHFT(pack_tmp, 49)
   49265     1526832 :          ipack = ipack + 1
   49266     1526832 :          pack_tmp = packed_data(ipack)
   49267     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   49268     1526832 :          pack_tmp = ISHFT(pack_tmp, -49)
   49269     1526832 :          idata = idata + 1
   49270     1526832 :          data_tmp = ISHFT(pack_tmp, 44)
   49271     1526832 :          ipack = ipack + 1
   49272     1526832 :          pack_tmp = packed_data(ipack)
   49273     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   49274     1526832 :          pack_tmp = ISHFT(pack_tmp, -44)
   49275     1526832 :          idata = idata + 1
   49276     1526832 :          data_tmp = ISHFT(pack_tmp, 39)
   49277     1526832 :          ipack = ipack + 1
   49278     1526832 :          pack_tmp = packed_data(ipack)
   49279     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   49280     1526832 :          pack_tmp = ISHFT(pack_tmp, -39)
   49281     1526832 :          idata = idata + 1
   49282     1526832 :          data_tmp = ISHFT(pack_tmp, 34)
   49283     1526832 :          ipack = ipack + 1
   49284     1526832 :          pack_tmp = packed_data(ipack)
   49285     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   49286     1526832 :          pack_tmp = ISHFT(pack_tmp, -34)
   49287     1526832 :          idata = idata + 1
   49288     1526832 :          data_tmp = ISHFT(pack_tmp, 29)
   49289     1526832 :          ipack = ipack + 1
   49290     1526832 :          pack_tmp = packed_data(ipack)
   49291     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   49292     1526832 :          pack_tmp = ISHFT(pack_tmp, -29)
   49293     1526832 :          idata = idata + 1
   49294     1526832 :          data_tmp = ISHFT(pack_tmp, 24)
   49295     1526832 :          ipack = ipack + 1
   49296     1526832 :          pack_tmp = packed_data(ipack)
   49297     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   49298     1526832 :          pack_tmp = ISHFT(pack_tmp, -24)
   49299     1526832 :          idata = idata + 1
   49300     1526832 :          data_tmp = ISHFT(pack_tmp, 19)
   49301     1526832 :          ipack = ipack + 1
   49302     1526832 :          pack_tmp = packed_data(ipack)
   49303     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   49304     1526832 :          pack_tmp = ISHFT(pack_tmp, -19)
   49305     1526832 :          idata = idata + 1
   49306     1526832 :          data_tmp = ISHFT(pack_tmp, 14)
   49307     1526832 :          ipack = ipack + 1
   49308     1526832 :          pack_tmp = packed_data(ipack)
   49309     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   49310     1526832 :          pack_tmp = ISHFT(pack_tmp, -14)
   49311     1526832 :          idata = idata + 1
   49312     1526832 :          data_tmp = ISHFT(pack_tmp, 9)
   49313     1526832 :          ipack = ipack + 1
   49314     1526832 :          pack_tmp = packed_data(ipack)
   49315     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   49316     1526832 :          pack_tmp = ISHFT(pack_tmp, -9)
   49317     1526832 :          idata = idata + 1
   49318     1526832 :          data_tmp = ISHFT(pack_tmp, 4)
   49319     1526832 :          ipack = ipack + 1
   49320     1526832 :          pack_tmp = packed_data(ipack)
   49321     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   49322     1526832 :          pack_tmp = ISHFT(pack_tmp, -4)
   49323     1526832 :          idata = idata + 1
   49324     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   49325     1526832 :          full_data(idata) = data_tmp
   49326     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   49327     1526832 :          idata = idata + 1
   49328     1526832 :          data_tmp = ISHFT(pack_tmp, 58)
   49329     1526832 :          ipack = ipack + 1
   49330     1526832 :          pack_tmp = packed_data(ipack)
   49331     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   49332     1526832 :          pack_tmp = ISHFT(pack_tmp, -58)
   49333     1526832 :          idata = idata + 1
   49334     1526832 :          data_tmp = ISHFT(pack_tmp, 53)
   49335     1526832 :          ipack = ipack + 1
   49336     1526832 :          pack_tmp = packed_data(ipack)
   49337     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   49338     1526832 :          pack_tmp = ISHFT(pack_tmp, -53)
   49339     1526832 :          idata = idata + 1
   49340     1526832 :          data_tmp = ISHFT(pack_tmp, 48)
   49341     1526832 :          ipack = ipack + 1
   49342     1526832 :          pack_tmp = packed_data(ipack)
   49343     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   49344     1526832 :          pack_tmp = ISHFT(pack_tmp, -48)
   49345     1526832 :          idata = idata + 1
   49346     1526832 :          data_tmp = ISHFT(pack_tmp, 43)
   49347     1526832 :          ipack = ipack + 1
   49348     1526832 :          pack_tmp = packed_data(ipack)
   49349     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   49350     1526832 :          pack_tmp = ISHFT(pack_tmp, -43)
   49351     1526832 :          idata = idata + 1
   49352     1526832 :          data_tmp = ISHFT(pack_tmp, 38)
   49353     1526832 :          ipack = ipack + 1
   49354     1526832 :          pack_tmp = packed_data(ipack)
   49355     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   49356     1526832 :          pack_tmp = ISHFT(pack_tmp, -38)
   49357     1526832 :          idata = idata + 1
   49358     1526832 :          data_tmp = ISHFT(pack_tmp, 33)
   49359     1526832 :          ipack = ipack + 1
   49360     1526832 :          pack_tmp = packed_data(ipack)
   49361     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   49362     1526832 :          pack_tmp = ISHFT(pack_tmp, -33)
   49363     1526832 :          idata = idata + 1
   49364     1526832 :          data_tmp = ISHFT(pack_tmp, 28)
   49365     1526832 :          ipack = ipack + 1
   49366     1526832 :          pack_tmp = packed_data(ipack)
   49367     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   49368     1526832 :          pack_tmp = ISHFT(pack_tmp, -28)
   49369     1526832 :          idata = idata + 1
   49370     1526832 :          data_tmp = ISHFT(pack_tmp, 23)
   49371     1526832 :          ipack = ipack + 1
   49372     1526832 :          pack_tmp = packed_data(ipack)
   49373     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   49374     1526832 :          pack_tmp = ISHFT(pack_tmp, -23)
   49375     1526832 :          idata = idata + 1
   49376     1526832 :          data_tmp = ISHFT(pack_tmp, 18)
   49377     1526832 :          ipack = ipack + 1
   49378     1526832 :          pack_tmp = packed_data(ipack)
   49379     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   49380     1526832 :          pack_tmp = ISHFT(pack_tmp, -18)
   49381     1526832 :          idata = idata + 1
   49382     1526832 :          data_tmp = ISHFT(pack_tmp, 13)
   49383     1526832 :          ipack = ipack + 1
   49384     1526832 :          pack_tmp = packed_data(ipack)
   49385     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   49386     1526832 :          pack_tmp = ISHFT(pack_tmp, -13)
   49387     1526832 :          idata = idata + 1
   49388     1526832 :          data_tmp = ISHFT(pack_tmp, 8)
   49389     1526832 :          ipack = ipack + 1
   49390     1526832 :          pack_tmp = packed_data(ipack)
   49391     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   49392     1526832 :          pack_tmp = ISHFT(pack_tmp, -8)
   49393     1526832 :          idata = idata + 1
   49394     1526832 :          data_tmp = ISHFT(pack_tmp, 3)
   49395     1526832 :          ipack = ipack + 1
   49396     1526832 :          pack_tmp = packed_data(ipack)
   49397     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   49398     1526832 :          pack_tmp = ISHFT(pack_tmp, -3)
   49399     1526832 :          idata = idata + 1
   49400     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   49401     1526832 :          full_data(idata) = data_tmp
   49402     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   49403     1526832 :          idata = idata + 1
   49404     1526832 :          data_tmp = ISHFT(pack_tmp, 57)
   49405     1526832 :          ipack = ipack + 1
   49406     1526832 :          pack_tmp = packed_data(ipack)
   49407     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(57)))
   49408     1526832 :          pack_tmp = ISHFT(pack_tmp, -57)
   49409     1526832 :          idata = idata + 1
   49410     1526832 :          data_tmp = ISHFT(pack_tmp, 52)
   49411     1526832 :          ipack = ipack + 1
   49412     1526832 :          pack_tmp = packed_data(ipack)
   49413     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   49414     1526832 :          pack_tmp = ISHFT(pack_tmp, -52)
   49415     1526832 :          idata = idata + 1
   49416     1526832 :          data_tmp = ISHFT(pack_tmp, 47)
   49417     1526832 :          ipack = ipack + 1
   49418     1526832 :          pack_tmp = packed_data(ipack)
   49419     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   49420     1526832 :          pack_tmp = ISHFT(pack_tmp, -47)
   49421     1526832 :          idata = idata + 1
   49422     1526832 :          data_tmp = ISHFT(pack_tmp, 42)
   49423     1526832 :          ipack = ipack + 1
   49424     1526832 :          pack_tmp = packed_data(ipack)
   49425     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   49426     1526832 :          pack_tmp = ISHFT(pack_tmp, -42)
   49427     1526832 :          idata = idata + 1
   49428     1526832 :          data_tmp = ISHFT(pack_tmp, 37)
   49429     1526832 :          ipack = ipack + 1
   49430     1526832 :          pack_tmp = packed_data(ipack)
   49431     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   49432     1526832 :          pack_tmp = ISHFT(pack_tmp, -37)
   49433     1526832 :          idata = idata + 1
   49434     1526832 :          data_tmp = ISHFT(pack_tmp, 32)
   49435     1526832 :          ipack = ipack + 1
   49436     1526832 :          pack_tmp = packed_data(ipack)
   49437     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   49438     1526832 :          pack_tmp = ISHFT(pack_tmp, -32)
   49439     1526832 :          idata = idata + 1
   49440     1526832 :          data_tmp = ISHFT(pack_tmp, 27)
   49441     1526832 :          ipack = ipack + 1
   49442     1526832 :          pack_tmp = packed_data(ipack)
   49443     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   49444     1526832 :          pack_tmp = ISHFT(pack_tmp, -27)
   49445     1526832 :          idata = idata + 1
   49446     1526832 :          data_tmp = ISHFT(pack_tmp, 22)
   49447     1526832 :          ipack = ipack + 1
   49448     1526832 :          pack_tmp = packed_data(ipack)
   49449     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   49450     1526832 :          pack_tmp = ISHFT(pack_tmp, -22)
   49451     1526832 :          idata = idata + 1
   49452     1526832 :          data_tmp = ISHFT(pack_tmp, 17)
   49453     1526832 :          ipack = ipack + 1
   49454     1526832 :          pack_tmp = packed_data(ipack)
   49455     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   49456     1526832 :          pack_tmp = ISHFT(pack_tmp, -17)
   49457     1526832 :          idata = idata + 1
   49458     1526832 :          data_tmp = ISHFT(pack_tmp, 12)
   49459     1526832 :          ipack = ipack + 1
   49460     1526832 :          pack_tmp = packed_data(ipack)
   49461     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   49462     1526832 :          pack_tmp = ISHFT(pack_tmp, -12)
   49463     1526832 :          idata = idata + 1
   49464     1526832 :          data_tmp = ISHFT(pack_tmp, 7)
   49465     1526832 :          ipack = ipack + 1
   49466     1526832 :          pack_tmp = packed_data(ipack)
   49467     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   49468     1526832 :          pack_tmp = ISHFT(pack_tmp, -7)
   49469     1526832 :          idata = idata + 1
   49470     1526832 :          data_tmp = ISHFT(pack_tmp, 2)
   49471     1526832 :          ipack = ipack + 1
   49472     1526832 :          pack_tmp = packed_data(ipack)
   49473     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   49474     1526832 :          pack_tmp = ISHFT(pack_tmp, -2)
   49475     1526832 :          idata = idata + 1
   49476     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   49477     1526832 :          full_data(idata) = data_tmp
   49478     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   49479     1526832 :          idata = idata + 1
   49480     1526832 :          data_tmp = ISHFT(pack_tmp, 56)
   49481     1526832 :          ipack = ipack + 1
   49482     1526832 :          pack_tmp = packed_data(ipack)
   49483     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   49484     1526832 :          pack_tmp = ISHFT(pack_tmp, -56)
   49485     1526832 :          idata = idata + 1
   49486     1526832 :          data_tmp = ISHFT(pack_tmp, 51)
   49487     1526832 :          ipack = ipack + 1
   49488     1526832 :          pack_tmp = packed_data(ipack)
   49489     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   49490     1526832 :          pack_tmp = ISHFT(pack_tmp, -51)
   49491     1526832 :          idata = idata + 1
   49492     1526832 :          data_tmp = ISHFT(pack_tmp, 46)
   49493     1526832 :          ipack = ipack + 1
   49494     1526832 :          pack_tmp = packed_data(ipack)
   49495     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   49496     1526832 :          pack_tmp = ISHFT(pack_tmp, -46)
   49497     1526832 :          idata = idata + 1
   49498     1526832 :          data_tmp = ISHFT(pack_tmp, 41)
   49499     1526832 :          ipack = ipack + 1
   49500     1526832 :          pack_tmp = packed_data(ipack)
   49501     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   49502     1526832 :          pack_tmp = ISHFT(pack_tmp, -41)
   49503     1526832 :          idata = idata + 1
   49504     1526832 :          data_tmp = ISHFT(pack_tmp, 36)
   49505     1526832 :          ipack = ipack + 1
   49506     1526832 :          pack_tmp = packed_data(ipack)
   49507     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   49508     1526832 :          pack_tmp = ISHFT(pack_tmp, -36)
   49509     1526832 :          idata = idata + 1
   49510     1526832 :          data_tmp = ISHFT(pack_tmp, 31)
   49511     1526832 :          ipack = ipack + 1
   49512     1526832 :          pack_tmp = packed_data(ipack)
   49513     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   49514     1526832 :          pack_tmp = ISHFT(pack_tmp, -31)
   49515     1526832 :          idata = idata + 1
   49516     1526832 :          data_tmp = ISHFT(pack_tmp, 26)
   49517     1526832 :          ipack = ipack + 1
   49518     1526832 :          pack_tmp = packed_data(ipack)
   49519     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   49520     1526832 :          pack_tmp = ISHFT(pack_tmp, -26)
   49521     1526832 :          idata = idata + 1
   49522     1526832 :          data_tmp = ISHFT(pack_tmp, 21)
   49523     1526832 :          ipack = ipack + 1
   49524     1526832 :          pack_tmp = packed_data(ipack)
   49525     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   49526     1526832 :          pack_tmp = ISHFT(pack_tmp, -21)
   49527     1526832 :          idata = idata + 1
   49528     1526832 :          data_tmp = ISHFT(pack_tmp, 16)
   49529     1526832 :          ipack = ipack + 1
   49530     1526832 :          pack_tmp = packed_data(ipack)
   49531     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   49532     1526832 :          pack_tmp = ISHFT(pack_tmp, -16)
   49533     1526832 :          idata = idata + 1
   49534     1526832 :          data_tmp = ISHFT(pack_tmp, 11)
   49535     1526832 :          ipack = ipack + 1
   49536     1526832 :          pack_tmp = packed_data(ipack)
   49537     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   49538     1526832 :          pack_tmp = ISHFT(pack_tmp, -11)
   49539     1526832 :          idata = idata + 1
   49540     1526832 :          data_tmp = ISHFT(pack_tmp, 6)
   49541     1526832 :          ipack = ipack + 1
   49542     1526832 :          pack_tmp = packed_data(ipack)
   49543     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   49544     1526832 :          pack_tmp = ISHFT(pack_tmp, -6)
   49545     1526832 :          idata = idata + 1
   49546     1526832 :          data_tmp = ISHFT(pack_tmp, 1)
   49547     1526832 :          ipack = ipack + 1
   49548     1526832 :          pack_tmp = packed_data(ipack)
   49549     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   49550     1526832 :          pack_tmp = ISHFT(pack_tmp, -1)
   49551     1526832 :          idata = idata + 1
   49552     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   49553     1526832 :          full_data(idata) = data_tmp
   49554     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   49555     1526832 :          idata = idata + 1
   49556     1526832 :          data_tmp = ISHFT(pack_tmp, 55)
   49557     1526832 :          ipack = ipack + 1
   49558     1526832 :          pack_tmp = packed_data(ipack)
   49559     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(55)))
   49560     1526832 :          pack_tmp = ISHFT(pack_tmp, -55)
   49561     1526832 :          idata = idata + 1
   49562     1526832 :          data_tmp = ISHFT(pack_tmp, 50)
   49563     1526832 :          ipack = ipack + 1
   49564     1526832 :          pack_tmp = packed_data(ipack)
   49565     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   49566     1526832 :          pack_tmp = ISHFT(pack_tmp, -50)
   49567     1526832 :          idata = idata + 1
   49568     1526832 :          data_tmp = ISHFT(pack_tmp, 45)
   49569     1526832 :          ipack = ipack + 1
   49570     1526832 :          pack_tmp = packed_data(ipack)
   49571     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   49572     1526832 :          pack_tmp = ISHFT(pack_tmp, -45)
   49573     1526832 :          idata = idata + 1
   49574     1526832 :          data_tmp = ISHFT(pack_tmp, 40)
   49575     1526832 :          ipack = ipack + 1
   49576     1526832 :          pack_tmp = packed_data(ipack)
   49577     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   49578     1526832 :          pack_tmp = ISHFT(pack_tmp, -40)
   49579     1526832 :          idata = idata + 1
   49580     1526832 :          data_tmp = ISHFT(pack_tmp, 35)
   49581     1526832 :          ipack = ipack + 1
   49582     1526832 :          pack_tmp = packed_data(ipack)
   49583     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   49584     1526832 :          pack_tmp = ISHFT(pack_tmp, -35)
   49585     1526832 :          idata = idata + 1
   49586     1526832 :          data_tmp = ISHFT(pack_tmp, 30)
   49587     1526832 :          ipack = ipack + 1
   49588     1526832 :          pack_tmp = packed_data(ipack)
   49589     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   49590     1526832 :          pack_tmp = ISHFT(pack_tmp, -30)
   49591     1526832 :          idata = idata + 1
   49592     1526832 :          data_tmp = ISHFT(pack_tmp, 25)
   49593     1526832 :          ipack = ipack + 1
   49594     1526832 :          pack_tmp = packed_data(ipack)
   49595     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   49596     1526832 :          pack_tmp = ISHFT(pack_tmp, -25)
   49597     1526832 :          idata = idata + 1
   49598     1526832 :          data_tmp = ISHFT(pack_tmp, 20)
   49599     1526832 :          ipack = ipack + 1
   49600     1526832 :          pack_tmp = packed_data(ipack)
   49601     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   49602     1526832 :          pack_tmp = ISHFT(pack_tmp, -20)
   49603     1526832 :          idata = idata + 1
   49604     1526832 :          data_tmp = ISHFT(pack_tmp, 15)
   49605     1526832 :          ipack = ipack + 1
   49606     1526832 :          pack_tmp = packed_data(ipack)
   49607     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   49608     1526832 :          pack_tmp = ISHFT(pack_tmp, -15)
   49609     1526832 :          idata = idata + 1
   49610     1526832 :          data_tmp = ISHFT(pack_tmp, 10)
   49611     1526832 :          ipack = ipack + 1
   49612     1526832 :          pack_tmp = packed_data(ipack)
   49613     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   49614     1526832 :          pack_tmp = ISHFT(pack_tmp, -10)
   49615     1526832 :          idata = idata + 1
   49616     1526832 :          data_tmp = ISHFT(pack_tmp, 5)
   49617     1526832 :          ipack = ipack + 1
   49618     1526832 :          pack_tmp = packed_data(ipack)
   49619     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   49620     1526832 :          pack_tmp = ISHFT(pack_tmp, -5)
   49621     1526832 :          idata = idata + 1
   49622     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   49623     1526832 :          full_data(idata) = data_tmp
   49624     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   49625             :       END DO
   49626       95427 :       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       95427 :    END SUBROUTINE bits2ints_59
   49630             : 
   49631             : ! **************************************************************************************************
   49632             : !> \brief ...
   49633             : !> \param Ndata ...
   49634             : !> \param packed_data ...
   49635             : !> \param full_data ...
   49636             : ! **************************************************************************************************
   49637       23676 :    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       23676 :       idata = 0
   49648       23676 :       ipack = 0
   49649       23676 :       Ndata_rep = (Ndata/64)*64
   49650       23676 :       DO kdata = 1, Ndata_rep, 64
   49651      378816 :          pack_tmp = 0
   49652      378816 :          idata = idata + 1
   49653      378816 :          data_tmp = full_data(idata)
   49654      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49655      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49656      378816 :          pack_tmp = ISHFT(pack_tmp, -4)
   49657      378816 :          idata = idata + 1
   49658      378816 :          data_tmp = full_data(idata)
   49659      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49660      378816 :          data_tmp = IAND(data_tmp, mask_left(4))
   49661      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49662      378816 :          ipack = ipack + 1
   49663      378816 :          packed_data(ipack) = pack_tmp
   49664      378816 :          data_tmp = full_data(idata)
   49665      378816 :          pack_tmp = ISHFT(data_tmp, 8)
   49666      378816 :          pack_tmp = ISHFT(pack_tmp, -8)
   49667      378816 :          idata = idata + 1
   49668      378816 :          data_tmp = full_data(idata)
   49669      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49670      378816 :          data_tmp = IAND(data_tmp, mask_left(8))
   49671      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49672      378816 :          ipack = ipack + 1
   49673      378816 :          packed_data(ipack) = pack_tmp
   49674      378816 :          data_tmp = full_data(idata)
   49675      378816 :          pack_tmp = ISHFT(data_tmp, 12)
   49676      378816 :          pack_tmp = ISHFT(pack_tmp, -12)
   49677      378816 :          idata = idata + 1
   49678      378816 :          data_tmp = full_data(idata)
   49679      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49680      378816 :          data_tmp = IAND(data_tmp, mask_left(12))
   49681      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49682      378816 :          ipack = ipack + 1
   49683      378816 :          packed_data(ipack) = pack_tmp
   49684      378816 :          data_tmp = full_data(idata)
   49685      378816 :          pack_tmp = ISHFT(data_tmp, 16)
   49686      378816 :          pack_tmp = ISHFT(pack_tmp, -16)
   49687      378816 :          idata = idata + 1
   49688      378816 :          data_tmp = full_data(idata)
   49689      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49690      378816 :          data_tmp = IAND(data_tmp, mask_left(16))
   49691      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49692      378816 :          ipack = ipack + 1
   49693      378816 :          packed_data(ipack) = pack_tmp
   49694      378816 :          data_tmp = full_data(idata)
   49695      378816 :          pack_tmp = ISHFT(data_tmp, 20)
   49696      378816 :          pack_tmp = ISHFT(pack_tmp, -20)
   49697      378816 :          idata = idata + 1
   49698      378816 :          data_tmp = full_data(idata)
   49699      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49700      378816 :          data_tmp = IAND(data_tmp, mask_left(20))
   49701      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49702      378816 :          ipack = ipack + 1
   49703      378816 :          packed_data(ipack) = pack_tmp
   49704      378816 :          data_tmp = full_data(idata)
   49705      378816 :          pack_tmp = ISHFT(data_tmp, 24)
   49706      378816 :          pack_tmp = ISHFT(pack_tmp, -24)
   49707      378816 :          idata = idata + 1
   49708      378816 :          data_tmp = full_data(idata)
   49709      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49710      378816 :          data_tmp = IAND(data_tmp, mask_left(24))
   49711      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49712      378816 :          ipack = ipack + 1
   49713      378816 :          packed_data(ipack) = pack_tmp
   49714      378816 :          data_tmp = full_data(idata)
   49715      378816 :          pack_tmp = ISHFT(data_tmp, 28)
   49716      378816 :          pack_tmp = ISHFT(pack_tmp, -28)
   49717      378816 :          idata = idata + 1
   49718      378816 :          data_tmp = full_data(idata)
   49719      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49720      378816 :          data_tmp = IAND(data_tmp, mask_left(28))
   49721      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49722      378816 :          ipack = ipack + 1
   49723      378816 :          packed_data(ipack) = pack_tmp
   49724      378816 :          data_tmp = full_data(idata)
   49725      378816 :          pack_tmp = ISHFT(data_tmp, 32)
   49726      378816 :          pack_tmp = ISHFT(pack_tmp, -32)
   49727      378816 :          idata = idata + 1
   49728      378816 :          data_tmp = full_data(idata)
   49729      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49730      378816 :          data_tmp = IAND(data_tmp, mask_left(32))
   49731      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49732      378816 :          ipack = ipack + 1
   49733      378816 :          packed_data(ipack) = pack_tmp
   49734      378816 :          data_tmp = full_data(idata)
   49735      378816 :          pack_tmp = ISHFT(data_tmp, 36)
   49736      378816 :          pack_tmp = ISHFT(pack_tmp, -36)
   49737      378816 :          idata = idata + 1
   49738      378816 :          data_tmp = full_data(idata)
   49739      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49740      378816 :          data_tmp = IAND(data_tmp, mask_left(36))
   49741      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49742      378816 :          ipack = ipack + 1
   49743      378816 :          packed_data(ipack) = pack_tmp
   49744      378816 :          data_tmp = full_data(idata)
   49745      378816 :          pack_tmp = ISHFT(data_tmp, 40)
   49746      378816 :          pack_tmp = ISHFT(pack_tmp, -40)
   49747      378816 :          idata = idata + 1
   49748      378816 :          data_tmp = full_data(idata)
   49749      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49750      378816 :          data_tmp = IAND(data_tmp, mask_left(40))
   49751      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49752      378816 :          ipack = ipack + 1
   49753      378816 :          packed_data(ipack) = pack_tmp
   49754      378816 :          data_tmp = full_data(idata)
   49755      378816 :          pack_tmp = ISHFT(data_tmp, 44)
   49756      378816 :          pack_tmp = ISHFT(pack_tmp, -44)
   49757      378816 :          idata = idata + 1
   49758      378816 :          data_tmp = full_data(idata)
   49759      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49760      378816 :          data_tmp = IAND(data_tmp, mask_left(44))
   49761      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49762      378816 :          ipack = ipack + 1
   49763      378816 :          packed_data(ipack) = pack_tmp
   49764      378816 :          data_tmp = full_data(idata)
   49765      378816 :          pack_tmp = ISHFT(data_tmp, 48)
   49766      378816 :          pack_tmp = ISHFT(pack_tmp, -48)
   49767      378816 :          idata = idata + 1
   49768      378816 :          data_tmp = full_data(idata)
   49769      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49770      378816 :          data_tmp = IAND(data_tmp, mask_left(48))
   49771      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49772      378816 :          ipack = ipack + 1
   49773      378816 :          packed_data(ipack) = pack_tmp
   49774      378816 :          data_tmp = full_data(idata)
   49775      378816 :          pack_tmp = ISHFT(data_tmp, 52)
   49776      378816 :          pack_tmp = ISHFT(pack_tmp, -52)
   49777      378816 :          idata = idata + 1
   49778      378816 :          data_tmp = full_data(idata)
   49779      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49780      378816 :          data_tmp = IAND(data_tmp, mask_left(52))
   49781      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49782      378816 :          ipack = ipack + 1
   49783      378816 :          packed_data(ipack) = pack_tmp
   49784      378816 :          data_tmp = full_data(idata)
   49785      378816 :          pack_tmp = ISHFT(data_tmp, 56)
   49786      378816 :          pack_tmp = ISHFT(pack_tmp, -56)
   49787      378816 :          idata = idata + 1
   49788      378816 :          data_tmp = full_data(idata)
   49789      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49790      378816 :          data_tmp = IAND(data_tmp, mask_left(56))
   49791      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49792      378816 :          ipack = ipack + 1
   49793      378816 :          packed_data(ipack) = pack_tmp
   49794      378816 :          data_tmp = full_data(idata)
   49795      378816 :          pack_tmp = ISHFT(data_tmp, 60)
   49796      378816 :          pack_tmp = ISHFT(pack_tmp, -60)
   49797      378816 :          idata = idata + 1
   49798      378816 :          data_tmp = full_data(idata)
   49799      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49800      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49801      378816 :          pack_tmp = ISHFT(pack_tmp, 0)
   49802      378816 :          idata = idata + 1
   49803      378816 :          data_tmp = full_data(idata)
   49804             :          data_tmp = ISHFT(data_tmp, 4)
   49805      378816 :          data_tmp = IAND(data_tmp, mask_left(0))
   49806      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49807      378816 :          ipack = ipack + 1
   49808      378816 :          packed_data(ipack) = pack_tmp
   49809      378816 :          data_tmp = full_data(idata)
   49810      378816 :          pack_tmp = ISHFT(data_tmp, 4)
   49811      378816 :          pack_tmp = ISHFT(pack_tmp, -4)
   49812      378816 :          idata = idata + 1
   49813      378816 :          data_tmp = full_data(idata)
   49814      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49815      378816 :          data_tmp = IAND(data_tmp, mask_left(4))
   49816      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49817      378816 :          ipack = ipack + 1
   49818      378816 :          packed_data(ipack) = pack_tmp
   49819      378816 :          data_tmp = full_data(idata)
   49820      378816 :          pack_tmp = ISHFT(data_tmp, 8)
   49821      378816 :          pack_tmp = ISHFT(pack_tmp, -8)
   49822      378816 :          idata = idata + 1
   49823      378816 :          data_tmp = full_data(idata)
   49824      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49825      378816 :          data_tmp = IAND(data_tmp, mask_left(8))
   49826      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49827      378816 :          ipack = ipack + 1
   49828      378816 :          packed_data(ipack) = pack_tmp
   49829      378816 :          data_tmp = full_data(idata)
   49830      378816 :          pack_tmp = ISHFT(data_tmp, 12)
   49831      378816 :          pack_tmp = ISHFT(pack_tmp, -12)
   49832      378816 :          idata = idata + 1
   49833      378816 :          data_tmp = full_data(idata)
   49834      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49835      378816 :          data_tmp = IAND(data_tmp, mask_left(12))
   49836      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49837      378816 :          ipack = ipack + 1
   49838      378816 :          packed_data(ipack) = pack_tmp
   49839      378816 :          data_tmp = full_data(idata)
   49840      378816 :          pack_tmp = ISHFT(data_tmp, 16)
   49841      378816 :          pack_tmp = ISHFT(pack_tmp, -16)
   49842      378816 :          idata = idata + 1
   49843      378816 :          data_tmp = full_data(idata)
   49844      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49845      378816 :          data_tmp = IAND(data_tmp, mask_left(16))
   49846      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49847      378816 :          ipack = ipack + 1
   49848      378816 :          packed_data(ipack) = pack_tmp
   49849      378816 :          data_tmp = full_data(idata)
   49850      378816 :          pack_tmp = ISHFT(data_tmp, 20)
   49851      378816 :          pack_tmp = ISHFT(pack_tmp, -20)
   49852      378816 :          idata = idata + 1
   49853      378816 :          data_tmp = full_data(idata)
   49854      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49855      378816 :          data_tmp = IAND(data_tmp, mask_left(20))
   49856      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49857      378816 :          ipack = ipack + 1
   49858      378816 :          packed_data(ipack) = pack_tmp
   49859      378816 :          data_tmp = full_data(idata)
   49860      378816 :          pack_tmp = ISHFT(data_tmp, 24)
   49861      378816 :          pack_tmp = ISHFT(pack_tmp, -24)
   49862      378816 :          idata = idata + 1
   49863      378816 :          data_tmp = full_data(idata)
   49864      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49865      378816 :          data_tmp = IAND(data_tmp, mask_left(24))
   49866      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49867      378816 :          ipack = ipack + 1
   49868      378816 :          packed_data(ipack) = pack_tmp
   49869      378816 :          data_tmp = full_data(idata)
   49870      378816 :          pack_tmp = ISHFT(data_tmp, 28)
   49871      378816 :          pack_tmp = ISHFT(pack_tmp, -28)
   49872      378816 :          idata = idata + 1
   49873      378816 :          data_tmp = full_data(idata)
   49874      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49875      378816 :          data_tmp = IAND(data_tmp, mask_left(28))
   49876      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49877      378816 :          ipack = ipack + 1
   49878      378816 :          packed_data(ipack) = pack_tmp
   49879      378816 :          data_tmp = full_data(idata)
   49880      378816 :          pack_tmp = ISHFT(data_tmp, 32)
   49881      378816 :          pack_tmp = ISHFT(pack_tmp, -32)
   49882      378816 :          idata = idata + 1
   49883      378816 :          data_tmp = full_data(idata)
   49884      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49885      378816 :          data_tmp = IAND(data_tmp, mask_left(32))
   49886      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49887      378816 :          ipack = ipack + 1
   49888      378816 :          packed_data(ipack) = pack_tmp
   49889      378816 :          data_tmp = full_data(idata)
   49890      378816 :          pack_tmp = ISHFT(data_tmp, 36)
   49891      378816 :          pack_tmp = ISHFT(pack_tmp, -36)
   49892      378816 :          idata = idata + 1
   49893      378816 :          data_tmp = full_data(idata)
   49894      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49895      378816 :          data_tmp = IAND(data_tmp, mask_left(36))
   49896      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49897      378816 :          ipack = ipack + 1
   49898      378816 :          packed_data(ipack) = pack_tmp
   49899      378816 :          data_tmp = full_data(idata)
   49900      378816 :          pack_tmp = ISHFT(data_tmp, 40)
   49901      378816 :          pack_tmp = ISHFT(pack_tmp, -40)
   49902      378816 :          idata = idata + 1
   49903      378816 :          data_tmp = full_data(idata)
   49904      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49905      378816 :          data_tmp = IAND(data_tmp, mask_left(40))
   49906      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49907      378816 :          ipack = ipack + 1
   49908      378816 :          packed_data(ipack) = pack_tmp
   49909      378816 :          data_tmp = full_data(idata)
   49910      378816 :          pack_tmp = ISHFT(data_tmp, 44)
   49911      378816 :          pack_tmp = ISHFT(pack_tmp, -44)
   49912      378816 :          idata = idata + 1
   49913      378816 :          data_tmp = full_data(idata)
   49914      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49915      378816 :          data_tmp = IAND(data_tmp, mask_left(44))
   49916      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49917      378816 :          ipack = ipack + 1
   49918      378816 :          packed_data(ipack) = pack_tmp
   49919      378816 :          data_tmp = full_data(idata)
   49920      378816 :          pack_tmp = ISHFT(data_tmp, 48)
   49921      378816 :          pack_tmp = ISHFT(pack_tmp, -48)
   49922      378816 :          idata = idata + 1
   49923      378816 :          data_tmp = full_data(idata)
   49924      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49925      378816 :          data_tmp = IAND(data_tmp, mask_left(48))
   49926      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49927      378816 :          ipack = ipack + 1
   49928      378816 :          packed_data(ipack) = pack_tmp
   49929      378816 :          data_tmp = full_data(idata)
   49930      378816 :          pack_tmp = ISHFT(data_tmp, 52)
   49931      378816 :          pack_tmp = ISHFT(pack_tmp, -52)
   49932      378816 :          idata = idata + 1
   49933      378816 :          data_tmp = full_data(idata)
   49934      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49935      378816 :          data_tmp = IAND(data_tmp, mask_left(52))
   49936      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49937      378816 :          ipack = ipack + 1
   49938      378816 :          packed_data(ipack) = pack_tmp
   49939      378816 :          data_tmp = full_data(idata)
   49940      378816 :          pack_tmp = ISHFT(data_tmp, 56)
   49941      378816 :          pack_tmp = ISHFT(pack_tmp, -56)
   49942      378816 :          idata = idata + 1
   49943      378816 :          data_tmp = full_data(idata)
   49944      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49945      378816 :          data_tmp = IAND(data_tmp, mask_left(56))
   49946      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49947      378816 :          ipack = ipack + 1
   49948      378816 :          packed_data(ipack) = pack_tmp
   49949      378816 :          data_tmp = full_data(idata)
   49950      378816 :          pack_tmp = ISHFT(data_tmp, 60)
   49951      378816 :          pack_tmp = ISHFT(pack_tmp, -60)
   49952      378816 :          idata = idata + 1
   49953      378816 :          data_tmp = full_data(idata)
   49954      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49955      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49956      378816 :          pack_tmp = ISHFT(pack_tmp, 0)
   49957      378816 :          idata = idata + 1
   49958      378816 :          data_tmp = full_data(idata)
   49959             :          data_tmp = ISHFT(data_tmp, 4)
   49960      378816 :          data_tmp = IAND(data_tmp, mask_left(0))
   49961      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49962      378816 :          ipack = ipack + 1
   49963      378816 :          packed_data(ipack) = pack_tmp
   49964      378816 :          data_tmp = full_data(idata)
   49965      378816 :          pack_tmp = ISHFT(data_tmp, 4)
   49966      378816 :          pack_tmp = ISHFT(pack_tmp, -4)
   49967      378816 :          idata = idata + 1
   49968      378816 :          data_tmp = full_data(idata)
   49969      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49970      378816 :          data_tmp = IAND(data_tmp, mask_left(4))
   49971      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49972      378816 :          ipack = ipack + 1
   49973      378816 :          packed_data(ipack) = pack_tmp
   49974      378816 :          data_tmp = full_data(idata)
   49975      378816 :          pack_tmp = ISHFT(data_tmp, 8)
   49976      378816 :          pack_tmp = ISHFT(pack_tmp, -8)
   49977      378816 :          idata = idata + 1
   49978      378816 :          data_tmp = full_data(idata)
   49979      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49980      378816 :          data_tmp = IAND(data_tmp, mask_left(8))
   49981      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49982      378816 :          ipack = ipack + 1
   49983      378816 :          packed_data(ipack) = pack_tmp
   49984      378816 :          data_tmp = full_data(idata)
   49985      378816 :          pack_tmp = ISHFT(data_tmp, 12)
   49986      378816 :          pack_tmp = ISHFT(pack_tmp, -12)
   49987      378816 :          idata = idata + 1
   49988      378816 :          data_tmp = full_data(idata)
   49989      378816 :          data_tmp = ISHFT(data_tmp, 4)
   49990      378816 :          data_tmp = IAND(data_tmp, mask_left(12))
   49991      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49992      378816 :          ipack = ipack + 1
   49993      378816 :          packed_data(ipack) = pack_tmp
   49994      378816 :          data_tmp = full_data(idata)
   49995      378816 :          pack_tmp = ISHFT(data_tmp, 16)
   49996      378816 :          pack_tmp = ISHFT(pack_tmp, -16)
   49997      378816 :          idata = idata + 1
   49998      378816 :          data_tmp = full_data(idata)
   49999      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50000      378816 :          data_tmp = IAND(data_tmp, mask_left(16))
   50001      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50002      378816 :          ipack = ipack + 1
   50003      378816 :          packed_data(ipack) = pack_tmp
   50004      378816 :          data_tmp = full_data(idata)
   50005      378816 :          pack_tmp = ISHFT(data_tmp, 20)
   50006      378816 :          pack_tmp = ISHFT(pack_tmp, -20)
   50007      378816 :          idata = idata + 1
   50008      378816 :          data_tmp = full_data(idata)
   50009      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50010      378816 :          data_tmp = IAND(data_tmp, mask_left(20))
   50011      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50012      378816 :          ipack = ipack + 1
   50013      378816 :          packed_data(ipack) = pack_tmp
   50014      378816 :          data_tmp = full_data(idata)
   50015      378816 :          pack_tmp = ISHFT(data_tmp, 24)
   50016      378816 :          pack_tmp = ISHFT(pack_tmp, -24)
   50017      378816 :          idata = idata + 1
   50018      378816 :          data_tmp = full_data(idata)
   50019      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50020      378816 :          data_tmp = IAND(data_tmp, mask_left(24))
   50021      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50022      378816 :          ipack = ipack + 1
   50023      378816 :          packed_data(ipack) = pack_tmp
   50024      378816 :          data_tmp = full_data(idata)
   50025      378816 :          pack_tmp = ISHFT(data_tmp, 28)
   50026      378816 :          pack_tmp = ISHFT(pack_tmp, -28)
   50027      378816 :          idata = idata + 1
   50028      378816 :          data_tmp = full_data(idata)
   50029      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50030      378816 :          data_tmp = IAND(data_tmp, mask_left(28))
   50031      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50032      378816 :          ipack = ipack + 1
   50033      378816 :          packed_data(ipack) = pack_tmp
   50034      378816 :          data_tmp = full_data(idata)
   50035      378816 :          pack_tmp = ISHFT(data_tmp, 32)
   50036      378816 :          pack_tmp = ISHFT(pack_tmp, -32)
   50037      378816 :          idata = idata + 1
   50038      378816 :          data_tmp = full_data(idata)
   50039      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50040      378816 :          data_tmp = IAND(data_tmp, mask_left(32))
   50041      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50042      378816 :          ipack = ipack + 1
   50043      378816 :          packed_data(ipack) = pack_tmp
   50044      378816 :          data_tmp = full_data(idata)
   50045      378816 :          pack_tmp = ISHFT(data_tmp, 36)
   50046      378816 :          pack_tmp = ISHFT(pack_tmp, -36)
   50047      378816 :          idata = idata + 1
   50048      378816 :          data_tmp = full_data(idata)
   50049      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50050      378816 :          data_tmp = IAND(data_tmp, mask_left(36))
   50051      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50052      378816 :          ipack = ipack + 1
   50053      378816 :          packed_data(ipack) = pack_tmp
   50054      378816 :          data_tmp = full_data(idata)
   50055      378816 :          pack_tmp = ISHFT(data_tmp, 40)
   50056      378816 :          pack_tmp = ISHFT(pack_tmp, -40)
   50057      378816 :          idata = idata + 1
   50058      378816 :          data_tmp = full_data(idata)
   50059      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50060      378816 :          data_tmp = IAND(data_tmp, mask_left(40))
   50061      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50062      378816 :          ipack = ipack + 1
   50063      378816 :          packed_data(ipack) = pack_tmp
   50064      378816 :          data_tmp = full_data(idata)
   50065      378816 :          pack_tmp = ISHFT(data_tmp, 44)
   50066      378816 :          pack_tmp = ISHFT(pack_tmp, -44)
   50067      378816 :          idata = idata + 1
   50068      378816 :          data_tmp = full_data(idata)
   50069      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50070      378816 :          data_tmp = IAND(data_tmp, mask_left(44))
   50071      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50072      378816 :          ipack = ipack + 1
   50073      378816 :          packed_data(ipack) = pack_tmp
   50074      378816 :          data_tmp = full_data(idata)
   50075      378816 :          pack_tmp = ISHFT(data_tmp, 48)
   50076      378816 :          pack_tmp = ISHFT(pack_tmp, -48)
   50077      378816 :          idata = idata + 1
   50078      378816 :          data_tmp = full_data(idata)
   50079      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50080      378816 :          data_tmp = IAND(data_tmp, mask_left(48))
   50081      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50082      378816 :          ipack = ipack + 1
   50083      378816 :          packed_data(ipack) = pack_tmp
   50084      378816 :          data_tmp = full_data(idata)
   50085      378816 :          pack_tmp = ISHFT(data_tmp, 52)
   50086      378816 :          pack_tmp = ISHFT(pack_tmp, -52)
   50087      378816 :          idata = idata + 1
   50088      378816 :          data_tmp = full_data(idata)
   50089      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50090      378816 :          data_tmp = IAND(data_tmp, mask_left(52))
   50091      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50092      378816 :          ipack = ipack + 1
   50093      378816 :          packed_data(ipack) = pack_tmp
   50094      378816 :          data_tmp = full_data(idata)
   50095      378816 :          pack_tmp = ISHFT(data_tmp, 56)
   50096      378816 :          pack_tmp = ISHFT(pack_tmp, -56)
   50097      378816 :          idata = idata + 1
   50098      378816 :          data_tmp = full_data(idata)
   50099      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50100      378816 :          data_tmp = IAND(data_tmp, mask_left(56))
   50101      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50102      378816 :          ipack = ipack + 1
   50103      378816 :          packed_data(ipack) = pack_tmp
   50104      378816 :          data_tmp = full_data(idata)
   50105      378816 :          pack_tmp = ISHFT(data_tmp, 60)
   50106      378816 :          pack_tmp = ISHFT(pack_tmp, -60)
   50107      378816 :          idata = idata + 1
   50108      378816 :          data_tmp = full_data(idata)
   50109      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50110      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50111      378816 :          pack_tmp = ISHFT(pack_tmp, 0)
   50112      378816 :          idata = idata + 1
   50113      378816 :          data_tmp = full_data(idata)
   50114             :          data_tmp = ISHFT(data_tmp, 4)
   50115      378816 :          data_tmp = IAND(data_tmp, mask_left(0))
   50116      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50117      378816 :          ipack = ipack + 1
   50118      378816 :          packed_data(ipack) = pack_tmp
   50119      378816 :          data_tmp = full_data(idata)
   50120      378816 :          pack_tmp = ISHFT(data_tmp, 4)
   50121      378816 :          pack_tmp = ISHFT(pack_tmp, -4)
   50122      378816 :          idata = idata + 1
   50123      378816 :          data_tmp = full_data(idata)
   50124      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50125      378816 :          data_tmp = IAND(data_tmp, mask_left(4))
   50126      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50127      378816 :          ipack = ipack + 1
   50128      378816 :          packed_data(ipack) = pack_tmp
   50129      378816 :          data_tmp = full_data(idata)
   50130      378816 :          pack_tmp = ISHFT(data_tmp, 8)
   50131      378816 :          pack_tmp = ISHFT(pack_tmp, -8)
   50132      378816 :          idata = idata + 1
   50133      378816 :          data_tmp = full_data(idata)
   50134      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50135      378816 :          data_tmp = IAND(data_tmp, mask_left(8))
   50136      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50137      378816 :          ipack = ipack + 1
   50138      378816 :          packed_data(ipack) = pack_tmp
   50139      378816 :          data_tmp = full_data(idata)
   50140      378816 :          pack_tmp = ISHFT(data_tmp, 12)
   50141      378816 :          pack_tmp = ISHFT(pack_tmp, -12)
   50142      378816 :          idata = idata + 1
   50143      378816 :          data_tmp = full_data(idata)
   50144      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50145      378816 :          data_tmp = IAND(data_tmp, mask_left(12))
   50146      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50147      378816 :          ipack = ipack + 1
   50148      378816 :          packed_data(ipack) = pack_tmp
   50149      378816 :          data_tmp = full_data(idata)
   50150      378816 :          pack_tmp = ISHFT(data_tmp, 16)
   50151      378816 :          pack_tmp = ISHFT(pack_tmp, -16)
   50152      378816 :          idata = idata + 1
   50153      378816 :          data_tmp = full_data(idata)
   50154      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50155      378816 :          data_tmp = IAND(data_tmp, mask_left(16))
   50156      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50157      378816 :          ipack = ipack + 1
   50158      378816 :          packed_data(ipack) = pack_tmp
   50159      378816 :          data_tmp = full_data(idata)
   50160      378816 :          pack_tmp = ISHFT(data_tmp, 20)
   50161      378816 :          pack_tmp = ISHFT(pack_tmp, -20)
   50162      378816 :          idata = idata + 1
   50163      378816 :          data_tmp = full_data(idata)
   50164      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50165      378816 :          data_tmp = IAND(data_tmp, mask_left(20))
   50166      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50167      378816 :          ipack = ipack + 1
   50168      378816 :          packed_data(ipack) = pack_tmp
   50169      378816 :          data_tmp = full_data(idata)
   50170      378816 :          pack_tmp = ISHFT(data_tmp, 24)
   50171      378816 :          pack_tmp = ISHFT(pack_tmp, -24)
   50172      378816 :          idata = idata + 1
   50173      378816 :          data_tmp = full_data(idata)
   50174      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50175      378816 :          data_tmp = IAND(data_tmp, mask_left(24))
   50176      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50177      378816 :          ipack = ipack + 1
   50178      378816 :          packed_data(ipack) = pack_tmp
   50179      378816 :          data_tmp = full_data(idata)
   50180      378816 :          pack_tmp = ISHFT(data_tmp, 28)
   50181      378816 :          pack_tmp = ISHFT(pack_tmp, -28)
   50182      378816 :          idata = idata + 1
   50183      378816 :          data_tmp = full_data(idata)
   50184      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50185      378816 :          data_tmp = IAND(data_tmp, mask_left(28))
   50186      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50187      378816 :          ipack = ipack + 1
   50188      378816 :          packed_data(ipack) = pack_tmp
   50189      378816 :          data_tmp = full_data(idata)
   50190      378816 :          pack_tmp = ISHFT(data_tmp, 32)
   50191      378816 :          pack_tmp = ISHFT(pack_tmp, -32)
   50192      378816 :          idata = idata + 1
   50193      378816 :          data_tmp = full_data(idata)
   50194      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50195      378816 :          data_tmp = IAND(data_tmp, mask_left(32))
   50196      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50197      378816 :          ipack = ipack + 1
   50198      378816 :          packed_data(ipack) = pack_tmp
   50199      378816 :          data_tmp = full_data(idata)
   50200      378816 :          pack_tmp = ISHFT(data_tmp, 36)
   50201      378816 :          pack_tmp = ISHFT(pack_tmp, -36)
   50202      378816 :          idata = idata + 1
   50203      378816 :          data_tmp = full_data(idata)
   50204      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50205      378816 :          data_tmp = IAND(data_tmp, mask_left(36))
   50206      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50207      378816 :          ipack = ipack + 1
   50208      378816 :          packed_data(ipack) = pack_tmp
   50209      378816 :          data_tmp = full_data(idata)
   50210      378816 :          pack_tmp = ISHFT(data_tmp, 40)
   50211      378816 :          pack_tmp = ISHFT(pack_tmp, -40)
   50212      378816 :          idata = idata + 1
   50213      378816 :          data_tmp = full_data(idata)
   50214      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50215      378816 :          data_tmp = IAND(data_tmp, mask_left(40))
   50216      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50217      378816 :          ipack = ipack + 1
   50218      378816 :          packed_data(ipack) = pack_tmp
   50219      378816 :          data_tmp = full_data(idata)
   50220      378816 :          pack_tmp = ISHFT(data_tmp, 44)
   50221      378816 :          pack_tmp = ISHFT(pack_tmp, -44)
   50222      378816 :          idata = idata + 1
   50223      378816 :          data_tmp = full_data(idata)
   50224      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50225      378816 :          data_tmp = IAND(data_tmp, mask_left(44))
   50226      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50227      378816 :          ipack = ipack + 1
   50228      378816 :          packed_data(ipack) = pack_tmp
   50229      378816 :          data_tmp = full_data(idata)
   50230      378816 :          pack_tmp = ISHFT(data_tmp, 48)
   50231      378816 :          pack_tmp = ISHFT(pack_tmp, -48)
   50232      378816 :          idata = idata + 1
   50233      378816 :          data_tmp = full_data(idata)
   50234      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50235      378816 :          data_tmp = IAND(data_tmp, mask_left(48))
   50236      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50237      378816 :          ipack = ipack + 1
   50238      378816 :          packed_data(ipack) = pack_tmp
   50239      378816 :          data_tmp = full_data(idata)
   50240      378816 :          pack_tmp = ISHFT(data_tmp, 52)
   50241      378816 :          pack_tmp = ISHFT(pack_tmp, -52)
   50242      378816 :          idata = idata + 1
   50243      378816 :          data_tmp = full_data(idata)
   50244      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50245      378816 :          data_tmp = IAND(data_tmp, mask_left(52))
   50246      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50247      378816 :          ipack = ipack + 1
   50248      378816 :          packed_data(ipack) = pack_tmp
   50249      378816 :          data_tmp = full_data(idata)
   50250      378816 :          pack_tmp = ISHFT(data_tmp, 56)
   50251      378816 :          pack_tmp = ISHFT(pack_tmp, -56)
   50252      378816 :          idata = idata + 1
   50253      378816 :          data_tmp = full_data(idata)
   50254      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50255      378816 :          data_tmp = IAND(data_tmp, mask_left(56))
   50256      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50257      378816 :          ipack = ipack + 1
   50258      378816 :          packed_data(ipack) = pack_tmp
   50259      378816 :          data_tmp = full_data(idata)
   50260      378816 :          pack_tmp = ISHFT(data_tmp, 60)
   50261      378816 :          pack_tmp = ISHFT(pack_tmp, -60)
   50262      378816 :          idata = idata + 1
   50263      378816 :          data_tmp = full_data(idata)
   50264      378816 :          data_tmp = ISHFT(data_tmp, 4)
   50265      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50266             :          pack_tmp = ISHFT(pack_tmp, 0)
   50267      378816 :          pack_tmp = ISHFT(pack_tmp, 0)
   50268      378816 :          ipack = ipack + 1
   50269      378816 :          packed_data(ipack) = pack_tmp
   50270             :       END DO
   50271       23676 :       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       23676 :    END SUBROUTINE ints2bits_60
   50275             : 
   50276             : ! **************************************************************************************************
   50277             : !> \brief ...
   50278             : !> \param Ndata ...
   50279             : !> \param packed_data ...
   50280             : !> \param full_data ...
   50281             : ! **************************************************************************************************
   50282       95427 :    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       95427 :       ipack = 0
   50293       95427 :       idata = 0
   50294       95427 :       pack_tmp = 0
   50295       95427 :       Ndata_rep = (Ndata/64)*64
   50296       95427 :       DO kdata = 1, Ndata_rep, 64
   50297     1526832 :          idata = idata + 1
   50298     1526832 :          data_tmp = ISHFT(pack_tmp, 60)
   50299     1526832 :          ipack = ipack + 1
   50300     1526832 :          pack_tmp = packed_data(ipack)
   50301     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   50302     1526832 :          pack_tmp = ISHFT(pack_tmp, -60)
   50303     1526832 :          idata = idata + 1
   50304     1526832 :          data_tmp = ISHFT(pack_tmp, 56)
   50305     1526832 :          ipack = ipack + 1
   50306     1526832 :          pack_tmp = packed_data(ipack)
   50307     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   50308     1526832 :          pack_tmp = ISHFT(pack_tmp, -56)
   50309     1526832 :          idata = idata + 1
   50310     1526832 :          data_tmp = ISHFT(pack_tmp, 52)
   50311     1526832 :          ipack = ipack + 1
   50312     1526832 :          pack_tmp = packed_data(ipack)
   50313     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   50314     1526832 :          pack_tmp = ISHFT(pack_tmp, -52)
   50315     1526832 :          idata = idata + 1
   50316     1526832 :          data_tmp = ISHFT(pack_tmp, 48)
   50317     1526832 :          ipack = ipack + 1
   50318     1526832 :          pack_tmp = packed_data(ipack)
   50319     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   50320     1526832 :          pack_tmp = ISHFT(pack_tmp, -48)
   50321     1526832 :          idata = idata + 1
   50322     1526832 :          data_tmp = ISHFT(pack_tmp, 44)
   50323     1526832 :          ipack = ipack + 1
   50324     1526832 :          pack_tmp = packed_data(ipack)
   50325     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   50326     1526832 :          pack_tmp = ISHFT(pack_tmp, -44)
   50327     1526832 :          idata = idata + 1
   50328     1526832 :          data_tmp = ISHFT(pack_tmp, 40)
   50329     1526832 :          ipack = ipack + 1
   50330     1526832 :          pack_tmp = packed_data(ipack)
   50331     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   50332     1526832 :          pack_tmp = ISHFT(pack_tmp, -40)
   50333     1526832 :          idata = idata + 1
   50334     1526832 :          data_tmp = ISHFT(pack_tmp, 36)
   50335     1526832 :          ipack = ipack + 1
   50336     1526832 :          pack_tmp = packed_data(ipack)
   50337     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   50338     1526832 :          pack_tmp = ISHFT(pack_tmp, -36)
   50339     1526832 :          idata = idata + 1
   50340     1526832 :          data_tmp = ISHFT(pack_tmp, 32)
   50341     1526832 :          ipack = ipack + 1
   50342     1526832 :          pack_tmp = packed_data(ipack)
   50343     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   50344     1526832 :          pack_tmp = ISHFT(pack_tmp, -32)
   50345     1526832 :          idata = idata + 1
   50346     1526832 :          data_tmp = ISHFT(pack_tmp, 28)
   50347     1526832 :          ipack = ipack + 1
   50348     1526832 :          pack_tmp = packed_data(ipack)
   50349     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   50350     1526832 :          pack_tmp = ISHFT(pack_tmp, -28)
   50351     1526832 :          idata = idata + 1
   50352     1526832 :          data_tmp = ISHFT(pack_tmp, 24)
   50353     1526832 :          ipack = ipack + 1
   50354     1526832 :          pack_tmp = packed_data(ipack)
   50355     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   50356     1526832 :          pack_tmp = ISHFT(pack_tmp, -24)
   50357     1526832 :          idata = idata + 1
   50358     1526832 :          data_tmp = ISHFT(pack_tmp, 20)
   50359     1526832 :          ipack = ipack + 1
   50360     1526832 :          pack_tmp = packed_data(ipack)
   50361     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   50362     1526832 :          pack_tmp = ISHFT(pack_tmp, -20)
   50363     1526832 :          idata = idata + 1
   50364     1526832 :          data_tmp = ISHFT(pack_tmp, 16)
   50365     1526832 :          ipack = ipack + 1
   50366     1526832 :          pack_tmp = packed_data(ipack)
   50367     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   50368     1526832 :          pack_tmp = ISHFT(pack_tmp, -16)
   50369     1526832 :          idata = idata + 1
   50370     1526832 :          data_tmp = ISHFT(pack_tmp, 12)
   50371     1526832 :          ipack = ipack + 1
   50372     1526832 :          pack_tmp = packed_data(ipack)
   50373     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   50374     1526832 :          pack_tmp = ISHFT(pack_tmp, -12)
   50375     1526832 :          idata = idata + 1
   50376     1526832 :          data_tmp = ISHFT(pack_tmp, 8)
   50377     1526832 :          ipack = ipack + 1
   50378     1526832 :          pack_tmp = packed_data(ipack)
   50379     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   50380     1526832 :          pack_tmp = ISHFT(pack_tmp, -8)
   50381     1526832 :          idata = idata + 1
   50382     1526832 :          data_tmp = ISHFT(pack_tmp, 4)
   50383     1526832 :          ipack = ipack + 1
   50384     1526832 :          pack_tmp = packed_data(ipack)
   50385     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   50386     1526832 :          pack_tmp = ISHFT(pack_tmp, -4)
   50387     1526832 :          idata = idata + 1
   50388     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   50389     1526832 :          full_data(idata) = data_tmp
   50390     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   50391     1526832 :          idata = idata + 1
   50392     1526832 :          data_tmp = ISHFT(pack_tmp, 60)
   50393     1526832 :          ipack = ipack + 1
   50394     1526832 :          pack_tmp = packed_data(ipack)
   50395     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   50396     1526832 :          pack_tmp = ISHFT(pack_tmp, -60)
   50397     1526832 :          idata = idata + 1
   50398     1526832 :          data_tmp = ISHFT(pack_tmp, 56)
   50399     1526832 :          ipack = ipack + 1
   50400     1526832 :          pack_tmp = packed_data(ipack)
   50401     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   50402     1526832 :          pack_tmp = ISHFT(pack_tmp, -56)
   50403     1526832 :          idata = idata + 1
   50404     1526832 :          data_tmp = ISHFT(pack_tmp, 52)
   50405     1526832 :          ipack = ipack + 1
   50406     1526832 :          pack_tmp = packed_data(ipack)
   50407     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   50408     1526832 :          pack_tmp = ISHFT(pack_tmp, -52)
   50409     1526832 :          idata = idata + 1
   50410     1526832 :          data_tmp = ISHFT(pack_tmp, 48)
   50411     1526832 :          ipack = ipack + 1
   50412     1526832 :          pack_tmp = packed_data(ipack)
   50413     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   50414     1526832 :          pack_tmp = ISHFT(pack_tmp, -48)
   50415     1526832 :          idata = idata + 1
   50416     1526832 :          data_tmp = ISHFT(pack_tmp, 44)
   50417     1526832 :          ipack = ipack + 1
   50418     1526832 :          pack_tmp = packed_data(ipack)
   50419     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   50420     1526832 :          pack_tmp = ISHFT(pack_tmp, -44)
   50421     1526832 :          idata = idata + 1
   50422     1526832 :          data_tmp = ISHFT(pack_tmp, 40)
   50423     1526832 :          ipack = ipack + 1
   50424     1526832 :          pack_tmp = packed_data(ipack)
   50425     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   50426     1526832 :          pack_tmp = ISHFT(pack_tmp, -40)
   50427     1526832 :          idata = idata + 1
   50428     1526832 :          data_tmp = ISHFT(pack_tmp, 36)
   50429     1526832 :          ipack = ipack + 1
   50430     1526832 :          pack_tmp = packed_data(ipack)
   50431     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   50432     1526832 :          pack_tmp = ISHFT(pack_tmp, -36)
   50433     1526832 :          idata = idata + 1
   50434     1526832 :          data_tmp = ISHFT(pack_tmp, 32)
   50435     1526832 :          ipack = ipack + 1
   50436     1526832 :          pack_tmp = packed_data(ipack)
   50437     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   50438     1526832 :          pack_tmp = ISHFT(pack_tmp, -32)
   50439     1526832 :          idata = idata + 1
   50440     1526832 :          data_tmp = ISHFT(pack_tmp, 28)
   50441     1526832 :          ipack = ipack + 1
   50442     1526832 :          pack_tmp = packed_data(ipack)
   50443     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   50444     1526832 :          pack_tmp = ISHFT(pack_tmp, -28)
   50445     1526832 :          idata = idata + 1
   50446     1526832 :          data_tmp = ISHFT(pack_tmp, 24)
   50447     1526832 :          ipack = ipack + 1
   50448     1526832 :          pack_tmp = packed_data(ipack)
   50449     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   50450     1526832 :          pack_tmp = ISHFT(pack_tmp, -24)
   50451     1526832 :          idata = idata + 1
   50452     1526832 :          data_tmp = ISHFT(pack_tmp, 20)
   50453     1526832 :          ipack = ipack + 1
   50454     1526832 :          pack_tmp = packed_data(ipack)
   50455     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   50456     1526832 :          pack_tmp = ISHFT(pack_tmp, -20)
   50457     1526832 :          idata = idata + 1
   50458     1526832 :          data_tmp = ISHFT(pack_tmp, 16)
   50459     1526832 :          ipack = ipack + 1
   50460     1526832 :          pack_tmp = packed_data(ipack)
   50461     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   50462     1526832 :          pack_tmp = ISHFT(pack_tmp, -16)
   50463     1526832 :          idata = idata + 1
   50464     1526832 :          data_tmp = ISHFT(pack_tmp, 12)
   50465     1526832 :          ipack = ipack + 1
   50466     1526832 :          pack_tmp = packed_data(ipack)
   50467     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   50468     1526832 :          pack_tmp = ISHFT(pack_tmp, -12)
   50469     1526832 :          idata = idata + 1
   50470     1526832 :          data_tmp = ISHFT(pack_tmp, 8)
   50471     1526832 :          ipack = ipack + 1
   50472     1526832 :          pack_tmp = packed_data(ipack)
   50473     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   50474     1526832 :          pack_tmp = ISHFT(pack_tmp, -8)
   50475     1526832 :          idata = idata + 1
   50476     1526832 :          data_tmp = ISHFT(pack_tmp, 4)
   50477     1526832 :          ipack = ipack + 1
   50478     1526832 :          pack_tmp = packed_data(ipack)
   50479     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   50480     1526832 :          pack_tmp = ISHFT(pack_tmp, -4)
   50481     1526832 :          idata = idata + 1
   50482     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   50483     1526832 :          full_data(idata) = data_tmp
   50484     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   50485     1526832 :          idata = idata + 1
   50486     1526832 :          data_tmp = ISHFT(pack_tmp, 60)
   50487     1526832 :          ipack = ipack + 1
   50488     1526832 :          pack_tmp = packed_data(ipack)
   50489     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   50490     1526832 :          pack_tmp = ISHFT(pack_tmp, -60)
   50491     1526832 :          idata = idata + 1
   50492     1526832 :          data_tmp = ISHFT(pack_tmp, 56)
   50493     1526832 :          ipack = ipack + 1
   50494     1526832 :          pack_tmp = packed_data(ipack)
   50495     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   50496     1526832 :          pack_tmp = ISHFT(pack_tmp, -56)
   50497     1526832 :          idata = idata + 1
   50498     1526832 :          data_tmp = ISHFT(pack_tmp, 52)
   50499     1526832 :          ipack = ipack + 1
   50500     1526832 :          pack_tmp = packed_data(ipack)
   50501     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   50502     1526832 :          pack_tmp = ISHFT(pack_tmp, -52)
   50503     1526832 :          idata = idata + 1
   50504     1526832 :          data_tmp = ISHFT(pack_tmp, 48)
   50505     1526832 :          ipack = ipack + 1
   50506     1526832 :          pack_tmp = packed_data(ipack)
   50507     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   50508     1526832 :          pack_tmp = ISHFT(pack_tmp, -48)
   50509     1526832 :          idata = idata + 1
   50510     1526832 :          data_tmp = ISHFT(pack_tmp, 44)
   50511     1526832 :          ipack = ipack + 1
   50512     1526832 :          pack_tmp = packed_data(ipack)
   50513     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   50514     1526832 :          pack_tmp = ISHFT(pack_tmp, -44)
   50515     1526832 :          idata = idata + 1
   50516     1526832 :          data_tmp = ISHFT(pack_tmp, 40)
   50517     1526832 :          ipack = ipack + 1
   50518     1526832 :          pack_tmp = packed_data(ipack)
   50519     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   50520     1526832 :          pack_tmp = ISHFT(pack_tmp, -40)
   50521     1526832 :          idata = idata + 1
   50522     1526832 :          data_tmp = ISHFT(pack_tmp, 36)
   50523     1526832 :          ipack = ipack + 1
   50524     1526832 :          pack_tmp = packed_data(ipack)
   50525     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   50526     1526832 :          pack_tmp = ISHFT(pack_tmp, -36)
   50527     1526832 :          idata = idata + 1
   50528     1526832 :          data_tmp = ISHFT(pack_tmp, 32)
   50529     1526832 :          ipack = ipack + 1
   50530     1526832 :          pack_tmp = packed_data(ipack)
   50531     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   50532     1526832 :          pack_tmp = ISHFT(pack_tmp, -32)
   50533     1526832 :          idata = idata + 1
   50534     1526832 :          data_tmp = ISHFT(pack_tmp, 28)
   50535     1526832 :          ipack = ipack + 1
   50536     1526832 :          pack_tmp = packed_data(ipack)
   50537     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   50538     1526832 :          pack_tmp = ISHFT(pack_tmp, -28)
   50539     1526832 :          idata = idata + 1
   50540     1526832 :          data_tmp = ISHFT(pack_tmp, 24)
   50541     1526832 :          ipack = ipack + 1
   50542     1526832 :          pack_tmp = packed_data(ipack)
   50543     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   50544     1526832 :          pack_tmp = ISHFT(pack_tmp, -24)
   50545     1526832 :          idata = idata + 1
   50546     1526832 :          data_tmp = ISHFT(pack_tmp, 20)
   50547     1526832 :          ipack = ipack + 1
   50548     1526832 :          pack_tmp = packed_data(ipack)
   50549     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   50550     1526832 :          pack_tmp = ISHFT(pack_tmp, -20)
   50551     1526832 :          idata = idata + 1
   50552     1526832 :          data_tmp = ISHFT(pack_tmp, 16)
   50553     1526832 :          ipack = ipack + 1
   50554     1526832 :          pack_tmp = packed_data(ipack)
   50555     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   50556     1526832 :          pack_tmp = ISHFT(pack_tmp, -16)
   50557     1526832 :          idata = idata + 1
   50558     1526832 :          data_tmp = ISHFT(pack_tmp, 12)
   50559     1526832 :          ipack = ipack + 1
   50560     1526832 :          pack_tmp = packed_data(ipack)
   50561     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   50562     1526832 :          pack_tmp = ISHFT(pack_tmp, -12)
   50563     1526832 :          idata = idata + 1
   50564     1526832 :          data_tmp = ISHFT(pack_tmp, 8)
   50565     1526832 :          ipack = ipack + 1
   50566     1526832 :          pack_tmp = packed_data(ipack)
   50567     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   50568     1526832 :          pack_tmp = ISHFT(pack_tmp, -8)
   50569     1526832 :          idata = idata + 1
   50570     1526832 :          data_tmp = ISHFT(pack_tmp, 4)
   50571     1526832 :          ipack = ipack + 1
   50572     1526832 :          pack_tmp = packed_data(ipack)
   50573     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   50574     1526832 :          pack_tmp = ISHFT(pack_tmp, -4)
   50575     1526832 :          idata = idata + 1
   50576     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   50577     1526832 :          full_data(idata) = data_tmp
   50578     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   50579     1526832 :          idata = idata + 1
   50580     1526832 :          data_tmp = ISHFT(pack_tmp, 60)
   50581     1526832 :          ipack = ipack + 1
   50582     1526832 :          pack_tmp = packed_data(ipack)
   50583     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   50584     1526832 :          pack_tmp = ISHFT(pack_tmp, -60)
   50585     1526832 :          idata = idata + 1
   50586     1526832 :          data_tmp = ISHFT(pack_tmp, 56)
   50587     1526832 :          ipack = ipack + 1
   50588     1526832 :          pack_tmp = packed_data(ipack)
   50589     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   50590     1526832 :          pack_tmp = ISHFT(pack_tmp, -56)
   50591     1526832 :          idata = idata + 1
   50592     1526832 :          data_tmp = ISHFT(pack_tmp, 52)
   50593     1526832 :          ipack = ipack + 1
   50594     1526832 :          pack_tmp = packed_data(ipack)
   50595     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   50596     1526832 :          pack_tmp = ISHFT(pack_tmp, -52)
   50597     1526832 :          idata = idata + 1
   50598     1526832 :          data_tmp = ISHFT(pack_tmp, 48)
   50599     1526832 :          ipack = ipack + 1
   50600     1526832 :          pack_tmp = packed_data(ipack)
   50601     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   50602     1526832 :          pack_tmp = ISHFT(pack_tmp, -48)
   50603     1526832 :          idata = idata + 1
   50604     1526832 :          data_tmp = ISHFT(pack_tmp, 44)
   50605     1526832 :          ipack = ipack + 1
   50606     1526832 :          pack_tmp = packed_data(ipack)
   50607     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   50608     1526832 :          pack_tmp = ISHFT(pack_tmp, -44)
   50609     1526832 :          idata = idata + 1
   50610     1526832 :          data_tmp = ISHFT(pack_tmp, 40)
   50611     1526832 :          ipack = ipack + 1
   50612     1526832 :          pack_tmp = packed_data(ipack)
   50613     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   50614     1526832 :          pack_tmp = ISHFT(pack_tmp, -40)
   50615     1526832 :          idata = idata + 1
   50616     1526832 :          data_tmp = ISHFT(pack_tmp, 36)
   50617     1526832 :          ipack = ipack + 1
   50618     1526832 :          pack_tmp = packed_data(ipack)
   50619     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   50620     1526832 :          pack_tmp = ISHFT(pack_tmp, -36)
   50621     1526832 :          idata = idata + 1
   50622     1526832 :          data_tmp = ISHFT(pack_tmp, 32)
   50623     1526832 :          ipack = ipack + 1
   50624     1526832 :          pack_tmp = packed_data(ipack)
   50625     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   50626     1526832 :          pack_tmp = ISHFT(pack_tmp, -32)
   50627     1526832 :          idata = idata + 1
   50628     1526832 :          data_tmp = ISHFT(pack_tmp, 28)
   50629     1526832 :          ipack = ipack + 1
   50630     1526832 :          pack_tmp = packed_data(ipack)
   50631     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   50632     1526832 :          pack_tmp = ISHFT(pack_tmp, -28)
   50633     1526832 :          idata = idata + 1
   50634     1526832 :          data_tmp = ISHFT(pack_tmp, 24)
   50635     1526832 :          ipack = ipack + 1
   50636     1526832 :          pack_tmp = packed_data(ipack)
   50637     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   50638     1526832 :          pack_tmp = ISHFT(pack_tmp, -24)
   50639     1526832 :          idata = idata + 1
   50640     1526832 :          data_tmp = ISHFT(pack_tmp, 20)
   50641     1526832 :          ipack = ipack + 1
   50642     1526832 :          pack_tmp = packed_data(ipack)
   50643     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   50644     1526832 :          pack_tmp = ISHFT(pack_tmp, -20)
   50645     1526832 :          idata = idata + 1
   50646     1526832 :          data_tmp = ISHFT(pack_tmp, 16)
   50647     1526832 :          ipack = ipack + 1
   50648     1526832 :          pack_tmp = packed_data(ipack)
   50649     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   50650     1526832 :          pack_tmp = ISHFT(pack_tmp, -16)
   50651     1526832 :          idata = idata + 1
   50652     1526832 :          data_tmp = ISHFT(pack_tmp, 12)
   50653     1526832 :          ipack = ipack + 1
   50654     1526832 :          pack_tmp = packed_data(ipack)
   50655     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   50656     1526832 :          pack_tmp = ISHFT(pack_tmp, -12)
   50657     1526832 :          idata = idata + 1
   50658     1526832 :          data_tmp = ISHFT(pack_tmp, 8)
   50659     1526832 :          ipack = ipack + 1
   50660     1526832 :          pack_tmp = packed_data(ipack)
   50661     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   50662     1526832 :          pack_tmp = ISHFT(pack_tmp, -8)
   50663     1526832 :          idata = idata + 1
   50664     1526832 :          data_tmp = ISHFT(pack_tmp, 4)
   50665     1526832 :          ipack = ipack + 1
   50666     1526832 :          pack_tmp = packed_data(ipack)
   50667     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   50668     1526832 :          pack_tmp = ISHFT(pack_tmp, -4)
   50669     1526832 :          idata = idata + 1
   50670     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   50671     1526832 :          full_data(idata) = data_tmp
   50672     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   50673             :       END DO
   50674       95427 :       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       95427 :    END SUBROUTINE bits2ints_60
   50678             : 
   50679             : ! **************************************************************************************************
   50680             : !> \brief ...
   50681             : !> \param Ndata ...
   50682             : !> \param packed_data ...
   50683             : !> \param full_data ...
   50684             : ! **************************************************************************************************
   50685       23676 :    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       23676 :       idata = 0
   50696       23676 :       ipack = 0
   50697       23676 :       Ndata_rep = (Ndata/64)*64
   50698       23676 :       DO kdata = 1, Ndata_rep, 64
   50699      378816 :          pack_tmp = 0
   50700      378816 :          idata = idata + 1
   50701      378816 :          data_tmp = full_data(idata)
   50702      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50703      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50704      378816 :          pack_tmp = ISHFT(pack_tmp, -3)
   50705      378816 :          idata = idata + 1
   50706      378816 :          data_tmp = full_data(idata)
   50707      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50708      378816 :          data_tmp = IAND(data_tmp, mask_left(3))
   50709      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50710      378816 :          ipack = ipack + 1
   50711      378816 :          packed_data(ipack) = pack_tmp
   50712      378816 :          data_tmp = full_data(idata)
   50713      378816 :          pack_tmp = ISHFT(data_tmp, 6)
   50714      378816 :          pack_tmp = ISHFT(pack_tmp, -6)
   50715      378816 :          idata = idata + 1
   50716      378816 :          data_tmp = full_data(idata)
   50717      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50718      378816 :          data_tmp = IAND(data_tmp, mask_left(6))
   50719      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50720      378816 :          ipack = ipack + 1
   50721      378816 :          packed_data(ipack) = pack_tmp
   50722      378816 :          data_tmp = full_data(idata)
   50723      378816 :          pack_tmp = ISHFT(data_tmp, 9)
   50724      378816 :          pack_tmp = ISHFT(pack_tmp, -9)
   50725      378816 :          idata = idata + 1
   50726      378816 :          data_tmp = full_data(idata)
   50727      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50728      378816 :          data_tmp = IAND(data_tmp, mask_left(9))
   50729      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50730      378816 :          ipack = ipack + 1
   50731      378816 :          packed_data(ipack) = pack_tmp
   50732      378816 :          data_tmp = full_data(idata)
   50733      378816 :          pack_tmp = ISHFT(data_tmp, 12)
   50734      378816 :          pack_tmp = ISHFT(pack_tmp, -12)
   50735      378816 :          idata = idata + 1
   50736      378816 :          data_tmp = full_data(idata)
   50737      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50738      378816 :          data_tmp = IAND(data_tmp, mask_left(12))
   50739      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50740      378816 :          ipack = ipack + 1
   50741      378816 :          packed_data(ipack) = pack_tmp
   50742      378816 :          data_tmp = full_data(idata)
   50743      378816 :          pack_tmp = ISHFT(data_tmp, 15)
   50744      378816 :          pack_tmp = ISHFT(pack_tmp, -15)
   50745      378816 :          idata = idata + 1
   50746      378816 :          data_tmp = full_data(idata)
   50747      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50748      378816 :          data_tmp = IAND(data_tmp, mask_left(15))
   50749      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50750      378816 :          ipack = ipack + 1
   50751      378816 :          packed_data(ipack) = pack_tmp
   50752      378816 :          data_tmp = full_data(idata)
   50753      378816 :          pack_tmp = ISHFT(data_tmp, 18)
   50754      378816 :          pack_tmp = ISHFT(pack_tmp, -18)
   50755      378816 :          idata = idata + 1
   50756      378816 :          data_tmp = full_data(idata)
   50757      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50758      378816 :          data_tmp = IAND(data_tmp, mask_left(18))
   50759      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50760      378816 :          ipack = ipack + 1
   50761      378816 :          packed_data(ipack) = pack_tmp
   50762      378816 :          data_tmp = full_data(idata)
   50763      378816 :          pack_tmp = ISHFT(data_tmp, 21)
   50764      378816 :          pack_tmp = ISHFT(pack_tmp, -21)
   50765      378816 :          idata = idata + 1
   50766      378816 :          data_tmp = full_data(idata)
   50767      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50768      378816 :          data_tmp = IAND(data_tmp, mask_left(21))
   50769      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50770      378816 :          ipack = ipack + 1
   50771      378816 :          packed_data(ipack) = pack_tmp
   50772      378816 :          data_tmp = full_data(idata)
   50773      378816 :          pack_tmp = ISHFT(data_tmp, 24)
   50774      378816 :          pack_tmp = ISHFT(pack_tmp, -24)
   50775      378816 :          idata = idata + 1
   50776      378816 :          data_tmp = full_data(idata)
   50777      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50778      378816 :          data_tmp = IAND(data_tmp, mask_left(24))
   50779      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50780      378816 :          ipack = ipack + 1
   50781      378816 :          packed_data(ipack) = pack_tmp
   50782      378816 :          data_tmp = full_data(idata)
   50783      378816 :          pack_tmp = ISHFT(data_tmp, 27)
   50784      378816 :          pack_tmp = ISHFT(pack_tmp, -27)
   50785      378816 :          idata = idata + 1
   50786      378816 :          data_tmp = full_data(idata)
   50787      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50788      378816 :          data_tmp = IAND(data_tmp, mask_left(27))
   50789      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50790      378816 :          ipack = ipack + 1
   50791      378816 :          packed_data(ipack) = pack_tmp
   50792      378816 :          data_tmp = full_data(idata)
   50793      378816 :          pack_tmp = ISHFT(data_tmp, 30)
   50794      378816 :          pack_tmp = ISHFT(pack_tmp, -30)
   50795      378816 :          idata = idata + 1
   50796      378816 :          data_tmp = full_data(idata)
   50797      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50798      378816 :          data_tmp = IAND(data_tmp, mask_left(30))
   50799      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50800      378816 :          ipack = ipack + 1
   50801      378816 :          packed_data(ipack) = pack_tmp
   50802      378816 :          data_tmp = full_data(idata)
   50803      378816 :          pack_tmp = ISHFT(data_tmp, 33)
   50804      378816 :          pack_tmp = ISHFT(pack_tmp, -33)
   50805      378816 :          idata = idata + 1
   50806      378816 :          data_tmp = full_data(idata)
   50807      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50808      378816 :          data_tmp = IAND(data_tmp, mask_left(33))
   50809      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50810      378816 :          ipack = ipack + 1
   50811      378816 :          packed_data(ipack) = pack_tmp
   50812      378816 :          data_tmp = full_data(idata)
   50813      378816 :          pack_tmp = ISHFT(data_tmp, 36)
   50814      378816 :          pack_tmp = ISHFT(pack_tmp, -36)
   50815      378816 :          idata = idata + 1
   50816      378816 :          data_tmp = full_data(idata)
   50817      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50818      378816 :          data_tmp = IAND(data_tmp, mask_left(36))
   50819      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50820      378816 :          ipack = ipack + 1
   50821      378816 :          packed_data(ipack) = pack_tmp
   50822      378816 :          data_tmp = full_data(idata)
   50823      378816 :          pack_tmp = ISHFT(data_tmp, 39)
   50824      378816 :          pack_tmp = ISHFT(pack_tmp, -39)
   50825      378816 :          idata = idata + 1
   50826      378816 :          data_tmp = full_data(idata)
   50827      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50828      378816 :          data_tmp = IAND(data_tmp, mask_left(39))
   50829      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50830      378816 :          ipack = ipack + 1
   50831      378816 :          packed_data(ipack) = pack_tmp
   50832      378816 :          data_tmp = full_data(idata)
   50833      378816 :          pack_tmp = ISHFT(data_tmp, 42)
   50834      378816 :          pack_tmp = ISHFT(pack_tmp, -42)
   50835      378816 :          idata = idata + 1
   50836      378816 :          data_tmp = full_data(idata)
   50837      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50838      378816 :          data_tmp = IAND(data_tmp, mask_left(42))
   50839      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50840      378816 :          ipack = ipack + 1
   50841      378816 :          packed_data(ipack) = pack_tmp
   50842      378816 :          data_tmp = full_data(idata)
   50843      378816 :          pack_tmp = ISHFT(data_tmp, 45)
   50844      378816 :          pack_tmp = ISHFT(pack_tmp, -45)
   50845      378816 :          idata = idata + 1
   50846      378816 :          data_tmp = full_data(idata)
   50847      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50848      378816 :          data_tmp = IAND(data_tmp, mask_left(45))
   50849      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50850      378816 :          ipack = ipack + 1
   50851      378816 :          packed_data(ipack) = pack_tmp
   50852      378816 :          data_tmp = full_data(idata)
   50853      378816 :          pack_tmp = ISHFT(data_tmp, 48)
   50854      378816 :          pack_tmp = ISHFT(pack_tmp, -48)
   50855      378816 :          idata = idata + 1
   50856      378816 :          data_tmp = full_data(idata)
   50857      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50858      378816 :          data_tmp = IAND(data_tmp, mask_left(48))
   50859      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50860      378816 :          ipack = ipack + 1
   50861      378816 :          packed_data(ipack) = pack_tmp
   50862      378816 :          data_tmp = full_data(idata)
   50863      378816 :          pack_tmp = ISHFT(data_tmp, 51)
   50864      378816 :          pack_tmp = ISHFT(pack_tmp, -51)
   50865      378816 :          idata = idata + 1
   50866      378816 :          data_tmp = full_data(idata)
   50867      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50868      378816 :          data_tmp = IAND(data_tmp, mask_left(51))
   50869      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50870      378816 :          ipack = ipack + 1
   50871      378816 :          packed_data(ipack) = pack_tmp
   50872      378816 :          data_tmp = full_data(idata)
   50873      378816 :          pack_tmp = ISHFT(data_tmp, 54)
   50874      378816 :          pack_tmp = ISHFT(pack_tmp, -54)
   50875      378816 :          idata = idata + 1
   50876      378816 :          data_tmp = full_data(idata)
   50877      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50878      378816 :          data_tmp = IAND(data_tmp, mask_left(54))
   50879      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50880      378816 :          ipack = ipack + 1
   50881      378816 :          packed_data(ipack) = pack_tmp
   50882      378816 :          data_tmp = full_data(idata)
   50883      378816 :          pack_tmp = ISHFT(data_tmp, 57)
   50884      378816 :          pack_tmp = ISHFT(pack_tmp, -57)
   50885      378816 :          idata = idata + 1
   50886      378816 :          data_tmp = full_data(idata)
   50887      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50888      378816 :          data_tmp = IAND(data_tmp, mask_left(57))
   50889      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50890      378816 :          ipack = ipack + 1
   50891      378816 :          packed_data(ipack) = pack_tmp
   50892      378816 :          data_tmp = full_data(idata)
   50893      378816 :          pack_tmp = ISHFT(data_tmp, 60)
   50894      378816 :          pack_tmp = ISHFT(pack_tmp, -60)
   50895      378816 :          idata = idata + 1
   50896      378816 :          data_tmp = full_data(idata)
   50897      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50898      378816 :          data_tmp = IAND(data_tmp, mask_left(60))
   50899      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50900      378816 :          ipack = ipack + 1
   50901      378816 :          packed_data(ipack) = pack_tmp
   50902      378816 :          data_tmp = full_data(idata)
   50903      378816 :          pack_tmp = ISHFT(data_tmp, 63)
   50904      378816 :          pack_tmp = ISHFT(pack_tmp, -61)
   50905      378816 :          idata = idata + 1
   50906      378816 :          data_tmp = full_data(idata)
   50907      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50908      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50909      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
   50910      378816 :          idata = idata + 1
   50911      378816 :          data_tmp = full_data(idata)
   50912      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50913      378816 :          data_tmp = IAND(data_tmp, mask_left(2))
   50914      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50915      378816 :          ipack = ipack + 1
   50916      378816 :          packed_data(ipack) = pack_tmp
   50917      378816 :          data_tmp = full_data(idata)
   50918      378816 :          pack_tmp = ISHFT(data_tmp, 5)
   50919      378816 :          pack_tmp = ISHFT(pack_tmp, -5)
   50920      378816 :          idata = idata + 1
   50921      378816 :          data_tmp = full_data(idata)
   50922      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50923      378816 :          data_tmp = IAND(data_tmp, mask_left(5))
   50924      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50925      378816 :          ipack = ipack + 1
   50926      378816 :          packed_data(ipack) = pack_tmp
   50927      378816 :          data_tmp = full_data(idata)
   50928      378816 :          pack_tmp = ISHFT(data_tmp, 8)
   50929      378816 :          pack_tmp = ISHFT(pack_tmp, -8)
   50930      378816 :          idata = idata + 1
   50931      378816 :          data_tmp = full_data(idata)
   50932      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50933      378816 :          data_tmp = IAND(data_tmp, mask_left(8))
   50934      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50935      378816 :          ipack = ipack + 1
   50936      378816 :          packed_data(ipack) = pack_tmp
   50937      378816 :          data_tmp = full_data(idata)
   50938      378816 :          pack_tmp = ISHFT(data_tmp, 11)
   50939      378816 :          pack_tmp = ISHFT(pack_tmp, -11)
   50940      378816 :          idata = idata + 1
   50941      378816 :          data_tmp = full_data(idata)
   50942      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50943      378816 :          data_tmp = IAND(data_tmp, mask_left(11))
   50944      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50945      378816 :          ipack = ipack + 1
   50946      378816 :          packed_data(ipack) = pack_tmp
   50947      378816 :          data_tmp = full_data(idata)
   50948      378816 :          pack_tmp = ISHFT(data_tmp, 14)
   50949      378816 :          pack_tmp = ISHFT(pack_tmp, -14)
   50950      378816 :          idata = idata + 1
   50951      378816 :          data_tmp = full_data(idata)
   50952      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50953      378816 :          data_tmp = IAND(data_tmp, mask_left(14))
   50954      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50955      378816 :          ipack = ipack + 1
   50956      378816 :          packed_data(ipack) = pack_tmp
   50957      378816 :          data_tmp = full_data(idata)
   50958      378816 :          pack_tmp = ISHFT(data_tmp, 17)
   50959      378816 :          pack_tmp = ISHFT(pack_tmp, -17)
   50960      378816 :          idata = idata + 1
   50961      378816 :          data_tmp = full_data(idata)
   50962      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50963      378816 :          data_tmp = IAND(data_tmp, mask_left(17))
   50964      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50965      378816 :          ipack = ipack + 1
   50966      378816 :          packed_data(ipack) = pack_tmp
   50967      378816 :          data_tmp = full_data(idata)
   50968      378816 :          pack_tmp = ISHFT(data_tmp, 20)
   50969      378816 :          pack_tmp = ISHFT(pack_tmp, -20)
   50970      378816 :          idata = idata + 1
   50971      378816 :          data_tmp = full_data(idata)
   50972      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50973      378816 :          data_tmp = IAND(data_tmp, mask_left(20))
   50974      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50975      378816 :          ipack = ipack + 1
   50976      378816 :          packed_data(ipack) = pack_tmp
   50977      378816 :          data_tmp = full_data(idata)
   50978      378816 :          pack_tmp = ISHFT(data_tmp, 23)
   50979      378816 :          pack_tmp = ISHFT(pack_tmp, -23)
   50980      378816 :          idata = idata + 1
   50981      378816 :          data_tmp = full_data(idata)
   50982      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50983      378816 :          data_tmp = IAND(data_tmp, mask_left(23))
   50984      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50985      378816 :          ipack = ipack + 1
   50986      378816 :          packed_data(ipack) = pack_tmp
   50987      378816 :          data_tmp = full_data(idata)
   50988      378816 :          pack_tmp = ISHFT(data_tmp, 26)
   50989      378816 :          pack_tmp = ISHFT(pack_tmp, -26)
   50990      378816 :          idata = idata + 1
   50991      378816 :          data_tmp = full_data(idata)
   50992      378816 :          data_tmp = ISHFT(data_tmp, 3)
   50993      378816 :          data_tmp = IAND(data_tmp, mask_left(26))
   50994      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50995      378816 :          ipack = ipack + 1
   50996      378816 :          packed_data(ipack) = pack_tmp
   50997      378816 :          data_tmp = full_data(idata)
   50998      378816 :          pack_tmp = ISHFT(data_tmp, 29)
   50999      378816 :          pack_tmp = ISHFT(pack_tmp, -29)
   51000      378816 :          idata = idata + 1
   51001      378816 :          data_tmp = full_data(idata)
   51002      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51003      378816 :          data_tmp = IAND(data_tmp, mask_left(29))
   51004      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51005      378816 :          ipack = ipack + 1
   51006      378816 :          packed_data(ipack) = pack_tmp
   51007      378816 :          data_tmp = full_data(idata)
   51008      378816 :          pack_tmp = ISHFT(data_tmp, 32)
   51009      378816 :          pack_tmp = ISHFT(pack_tmp, -32)
   51010      378816 :          idata = idata + 1
   51011      378816 :          data_tmp = full_data(idata)
   51012      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51013      378816 :          data_tmp = IAND(data_tmp, mask_left(32))
   51014      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51015      378816 :          ipack = ipack + 1
   51016      378816 :          packed_data(ipack) = pack_tmp
   51017      378816 :          data_tmp = full_data(idata)
   51018      378816 :          pack_tmp = ISHFT(data_tmp, 35)
   51019      378816 :          pack_tmp = ISHFT(pack_tmp, -35)
   51020      378816 :          idata = idata + 1
   51021      378816 :          data_tmp = full_data(idata)
   51022      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51023      378816 :          data_tmp = IAND(data_tmp, mask_left(35))
   51024      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51025      378816 :          ipack = ipack + 1
   51026      378816 :          packed_data(ipack) = pack_tmp
   51027      378816 :          data_tmp = full_data(idata)
   51028      378816 :          pack_tmp = ISHFT(data_tmp, 38)
   51029      378816 :          pack_tmp = ISHFT(pack_tmp, -38)
   51030      378816 :          idata = idata + 1
   51031      378816 :          data_tmp = full_data(idata)
   51032      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51033      378816 :          data_tmp = IAND(data_tmp, mask_left(38))
   51034      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51035      378816 :          ipack = ipack + 1
   51036      378816 :          packed_data(ipack) = pack_tmp
   51037      378816 :          data_tmp = full_data(idata)
   51038      378816 :          pack_tmp = ISHFT(data_tmp, 41)
   51039      378816 :          pack_tmp = ISHFT(pack_tmp, -41)
   51040      378816 :          idata = idata + 1
   51041      378816 :          data_tmp = full_data(idata)
   51042      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51043      378816 :          data_tmp = IAND(data_tmp, mask_left(41))
   51044      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51045      378816 :          ipack = ipack + 1
   51046      378816 :          packed_data(ipack) = pack_tmp
   51047      378816 :          data_tmp = full_data(idata)
   51048      378816 :          pack_tmp = ISHFT(data_tmp, 44)
   51049      378816 :          pack_tmp = ISHFT(pack_tmp, -44)
   51050      378816 :          idata = idata + 1
   51051      378816 :          data_tmp = full_data(idata)
   51052      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51053      378816 :          data_tmp = IAND(data_tmp, mask_left(44))
   51054      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51055      378816 :          ipack = ipack + 1
   51056      378816 :          packed_data(ipack) = pack_tmp
   51057      378816 :          data_tmp = full_data(idata)
   51058      378816 :          pack_tmp = ISHFT(data_tmp, 47)
   51059      378816 :          pack_tmp = ISHFT(pack_tmp, -47)
   51060      378816 :          idata = idata + 1
   51061      378816 :          data_tmp = full_data(idata)
   51062      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51063      378816 :          data_tmp = IAND(data_tmp, mask_left(47))
   51064      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51065      378816 :          ipack = ipack + 1
   51066      378816 :          packed_data(ipack) = pack_tmp
   51067      378816 :          data_tmp = full_data(idata)
   51068      378816 :          pack_tmp = ISHFT(data_tmp, 50)
   51069      378816 :          pack_tmp = ISHFT(pack_tmp, -50)
   51070      378816 :          idata = idata + 1
   51071      378816 :          data_tmp = full_data(idata)
   51072      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51073      378816 :          data_tmp = IAND(data_tmp, mask_left(50))
   51074      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51075      378816 :          ipack = ipack + 1
   51076      378816 :          packed_data(ipack) = pack_tmp
   51077      378816 :          data_tmp = full_data(idata)
   51078      378816 :          pack_tmp = ISHFT(data_tmp, 53)
   51079      378816 :          pack_tmp = ISHFT(pack_tmp, -53)
   51080      378816 :          idata = idata + 1
   51081      378816 :          data_tmp = full_data(idata)
   51082      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51083      378816 :          data_tmp = IAND(data_tmp, mask_left(53))
   51084      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51085      378816 :          ipack = ipack + 1
   51086      378816 :          packed_data(ipack) = pack_tmp
   51087      378816 :          data_tmp = full_data(idata)
   51088      378816 :          pack_tmp = ISHFT(data_tmp, 56)
   51089      378816 :          pack_tmp = ISHFT(pack_tmp, -56)
   51090      378816 :          idata = idata + 1
   51091      378816 :          data_tmp = full_data(idata)
   51092      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51093      378816 :          data_tmp = IAND(data_tmp, mask_left(56))
   51094      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51095      378816 :          ipack = ipack + 1
   51096      378816 :          packed_data(ipack) = pack_tmp
   51097      378816 :          data_tmp = full_data(idata)
   51098      378816 :          pack_tmp = ISHFT(data_tmp, 59)
   51099      378816 :          pack_tmp = ISHFT(pack_tmp, -59)
   51100      378816 :          idata = idata + 1
   51101      378816 :          data_tmp = full_data(idata)
   51102      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51103      378816 :          data_tmp = IAND(data_tmp, mask_left(59))
   51104      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51105      378816 :          ipack = ipack + 1
   51106      378816 :          packed_data(ipack) = pack_tmp
   51107      378816 :          data_tmp = full_data(idata)
   51108      378816 :          pack_tmp = ISHFT(data_tmp, 62)
   51109      378816 :          pack_tmp = ISHFT(pack_tmp, -61)
   51110      378816 :          idata = idata + 1
   51111      378816 :          data_tmp = full_data(idata)
   51112      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51113      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51114      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
   51115      378816 :          idata = idata + 1
   51116      378816 :          data_tmp = full_data(idata)
   51117      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51118      378816 :          data_tmp = IAND(data_tmp, mask_left(1))
   51119      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51120      378816 :          ipack = ipack + 1
   51121      378816 :          packed_data(ipack) = pack_tmp
   51122      378816 :          data_tmp = full_data(idata)
   51123      378816 :          pack_tmp = ISHFT(data_tmp, 4)
   51124      378816 :          pack_tmp = ISHFT(pack_tmp, -4)
   51125      378816 :          idata = idata + 1
   51126      378816 :          data_tmp = full_data(idata)
   51127      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51128      378816 :          data_tmp = IAND(data_tmp, mask_left(4))
   51129      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51130      378816 :          ipack = ipack + 1
   51131      378816 :          packed_data(ipack) = pack_tmp
   51132      378816 :          data_tmp = full_data(idata)
   51133      378816 :          pack_tmp = ISHFT(data_tmp, 7)
   51134      378816 :          pack_tmp = ISHFT(pack_tmp, -7)
   51135      378816 :          idata = idata + 1
   51136      378816 :          data_tmp = full_data(idata)
   51137      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51138      378816 :          data_tmp = IAND(data_tmp, mask_left(7))
   51139      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51140      378816 :          ipack = ipack + 1
   51141      378816 :          packed_data(ipack) = pack_tmp
   51142      378816 :          data_tmp = full_data(idata)
   51143      378816 :          pack_tmp = ISHFT(data_tmp, 10)
   51144      378816 :          pack_tmp = ISHFT(pack_tmp, -10)
   51145      378816 :          idata = idata + 1
   51146      378816 :          data_tmp = full_data(idata)
   51147      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51148      378816 :          data_tmp = IAND(data_tmp, mask_left(10))
   51149      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51150      378816 :          ipack = ipack + 1
   51151      378816 :          packed_data(ipack) = pack_tmp
   51152      378816 :          data_tmp = full_data(idata)
   51153      378816 :          pack_tmp = ISHFT(data_tmp, 13)
   51154      378816 :          pack_tmp = ISHFT(pack_tmp, -13)
   51155      378816 :          idata = idata + 1
   51156      378816 :          data_tmp = full_data(idata)
   51157      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51158      378816 :          data_tmp = IAND(data_tmp, mask_left(13))
   51159      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51160      378816 :          ipack = ipack + 1
   51161      378816 :          packed_data(ipack) = pack_tmp
   51162      378816 :          data_tmp = full_data(idata)
   51163      378816 :          pack_tmp = ISHFT(data_tmp, 16)
   51164      378816 :          pack_tmp = ISHFT(pack_tmp, -16)
   51165      378816 :          idata = idata + 1
   51166      378816 :          data_tmp = full_data(idata)
   51167      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51168      378816 :          data_tmp = IAND(data_tmp, mask_left(16))
   51169      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51170      378816 :          ipack = ipack + 1
   51171      378816 :          packed_data(ipack) = pack_tmp
   51172      378816 :          data_tmp = full_data(idata)
   51173      378816 :          pack_tmp = ISHFT(data_tmp, 19)
   51174      378816 :          pack_tmp = ISHFT(pack_tmp, -19)
   51175      378816 :          idata = idata + 1
   51176      378816 :          data_tmp = full_data(idata)
   51177      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51178      378816 :          data_tmp = IAND(data_tmp, mask_left(19))
   51179      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51180      378816 :          ipack = ipack + 1
   51181      378816 :          packed_data(ipack) = pack_tmp
   51182      378816 :          data_tmp = full_data(idata)
   51183      378816 :          pack_tmp = ISHFT(data_tmp, 22)
   51184      378816 :          pack_tmp = ISHFT(pack_tmp, -22)
   51185      378816 :          idata = idata + 1
   51186      378816 :          data_tmp = full_data(idata)
   51187      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51188      378816 :          data_tmp = IAND(data_tmp, mask_left(22))
   51189      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51190      378816 :          ipack = ipack + 1
   51191      378816 :          packed_data(ipack) = pack_tmp
   51192      378816 :          data_tmp = full_data(idata)
   51193      378816 :          pack_tmp = ISHFT(data_tmp, 25)
   51194      378816 :          pack_tmp = ISHFT(pack_tmp, -25)
   51195      378816 :          idata = idata + 1
   51196      378816 :          data_tmp = full_data(idata)
   51197      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51198      378816 :          data_tmp = IAND(data_tmp, mask_left(25))
   51199      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51200      378816 :          ipack = ipack + 1
   51201      378816 :          packed_data(ipack) = pack_tmp
   51202      378816 :          data_tmp = full_data(idata)
   51203      378816 :          pack_tmp = ISHFT(data_tmp, 28)
   51204      378816 :          pack_tmp = ISHFT(pack_tmp, -28)
   51205      378816 :          idata = idata + 1
   51206      378816 :          data_tmp = full_data(idata)
   51207      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51208      378816 :          data_tmp = IAND(data_tmp, mask_left(28))
   51209      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51210      378816 :          ipack = ipack + 1
   51211      378816 :          packed_data(ipack) = pack_tmp
   51212      378816 :          data_tmp = full_data(idata)
   51213      378816 :          pack_tmp = ISHFT(data_tmp, 31)
   51214      378816 :          pack_tmp = ISHFT(pack_tmp, -31)
   51215      378816 :          idata = idata + 1
   51216      378816 :          data_tmp = full_data(idata)
   51217      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51218      378816 :          data_tmp = IAND(data_tmp, mask_left(31))
   51219      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51220      378816 :          ipack = ipack + 1
   51221      378816 :          packed_data(ipack) = pack_tmp
   51222      378816 :          data_tmp = full_data(idata)
   51223      378816 :          pack_tmp = ISHFT(data_tmp, 34)
   51224      378816 :          pack_tmp = ISHFT(pack_tmp, -34)
   51225      378816 :          idata = idata + 1
   51226      378816 :          data_tmp = full_data(idata)
   51227      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51228      378816 :          data_tmp = IAND(data_tmp, mask_left(34))
   51229      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51230      378816 :          ipack = ipack + 1
   51231      378816 :          packed_data(ipack) = pack_tmp
   51232      378816 :          data_tmp = full_data(idata)
   51233      378816 :          pack_tmp = ISHFT(data_tmp, 37)
   51234      378816 :          pack_tmp = ISHFT(pack_tmp, -37)
   51235      378816 :          idata = idata + 1
   51236      378816 :          data_tmp = full_data(idata)
   51237      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51238      378816 :          data_tmp = IAND(data_tmp, mask_left(37))
   51239      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51240      378816 :          ipack = ipack + 1
   51241      378816 :          packed_data(ipack) = pack_tmp
   51242      378816 :          data_tmp = full_data(idata)
   51243      378816 :          pack_tmp = ISHFT(data_tmp, 40)
   51244      378816 :          pack_tmp = ISHFT(pack_tmp, -40)
   51245      378816 :          idata = idata + 1
   51246      378816 :          data_tmp = full_data(idata)
   51247      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51248      378816 :          data_tmp = IAND(data_tmp, mask_left(40))
   51249      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51250      378816 :          ipack = ipack + 1
   51251      378816 :          packed_data(ipack) = pack_tmp
   51252      378816 :          data_tmp = full_data(idata)
   51253      378816 :          pack_tmp = ISHFT(data_tmp, 43)
   51254      378816 :          pack_tmp = ISHFT(pack_tmp, -43)
   51255      378816 :          idata = idata + 1
   51256      378816 :          data_tmp = full_data(idata)
   51257      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51258      378816 :          data_tmp = IAND(data_tmp, mask_left(43))
   51259      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51260      378816 :          ipack = ipack + 1
   51261      378816 :          packed_data(ipack) = pack_tmp
   51262      378816 :          data_tmp = full_data(idata)
   51263      378816 :          pack_tmp = ISHFT(data_tmp, 46)
   51264      378816 :          pack_tmp = ISHFT(pack_tmp, -46)
   51265      378816 :          idata = idata + 1
   51266      378816 :          data_tmp = full_data(idata)
   51267      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51268      378816 :          data_tmp = IAND(data_tmp, mask_left(46))
   51269      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51270      378816 :          ipack = ipack + 1
   51271      378816 :          packed_data(ipack) = pack_tmp
   51272      378816 :          data_tmp = full_data(idata)
   51273      378816 :          pack_tmp = ISHFT(data_tmp, 49)
   51274      378816 :          pack_tmp = ISHFT(pack_tmp, -49)
   51275      378816 :          idata = idata + 1
   51276      378816 :          data_tmp = full_data(idata)
   51277      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51278      378816 :          data_tmp = IAND(data_tmp, mask_left(49))
   51279      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51280      378816 :          ipack = ipack + 1
   51281      378816 :          packed_data(ipack) = pack_tmp
   51282      378816 :          data_tmp = full_data(idata)
   51283      378816 :          pack_tmp = ISHFT(data_tmp, 52)
   51284      378816 :          pack_tmp = ISHFT(pack_tmp, -52)
   51285      378816 :          idata = idata + 1
   51286      378816 :          data_tmp = full_data(idata)
   51287      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51288      378816 :          data_tmp = IAND(data_tmp, mask_left(52))
   51289      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51290      378816 :          ipack = ipack + 1
   51291      378816 :          packed_data(ipack) = pack_tmp
   51292      378816 :          data_tmp = full_data(idata)
   51293      378816 :          pack_tmp = ISHFT(data_tmp, 55)
   51294      378816 :          pack_tmp = ISHFT(pack_tmp, -55)
   51295      378816 :          idata = idata + 1
   51296      378816 :          data_tmp = full_data(idata)
   51297      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51298      378816 :          data_tmp = IAND(data_tmp, mask_left(55))
   51299      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51300      378816 :          ipack = ipack + 1
   51301      378816 :          packed_data(ipack) = pack_tmp
   51302      378816 :          data_tmp = full_data(idata)
   51303      378816 :          pack_tmp = ISHFT(data_tmp, 58)
   51304      378816 :          pack_tmp = ISHFT(pack_tmp, -58)
   51305      378816 :          idata = idata + 1
   51306      378816 :          data_tmp = full_data(idata)
   51307      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51308      378816 :          data_tmp = IAND(data_tmp, mask_left(58))
   51309      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51310      378816 :          ipack = ipack + 1
   51311      378816 :          packed_data(ipack) = pack_tmp
   51312      378816 :          data_tmp = full_data(idata)
   51313      378816 :          pack_tmp = ISHFT(data_tmp, 61)
   51314      378816 :          pack_tmp = ISHFT(pack_tmp, -61)
   51315      378816 :          idata = idata + 1
   51316      378816 :          data_tmp = full_data(idata)
   51317      378816 :          data_tmp = ISHFT(data_tmp, 3)
   51318      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51319             :          pack_tmp = ISHFT(pack_tmp, 0)
   51320      378816 :          pack_tmp = ISHFT(pack_tmp, 0)
   51321      378816 :          ipack = ipack + 1
   51322      378816 :          packed_data(ipack) = pack_tmp
   51323             :       END DO
   51324       23676 :       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       23676 :    END SUBROUTINE ints2bits_61
   51328             : 
   51329             : ! **************************************************************************************************
   51330             : !> \brief ...
   51331             : !> \param Ndata ...
   51332             : !> \param packed_data ...
   51333             : !> \param full_data ...
   51334             : ! **************************************************************************************************
   51335       95427 :    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       95427 :       ipack = 0
   51346       95427 :       idata = 0
   51347       95427 :       pack_tmp = 0
   51348       95427 :       Ndata_rep = (Ndata/64)*64
   51349       95427 :       DO kdata = 1, Ndata_rep, 64
   51350     1526832 :          idata = idata + 1
   51351     1526832 :          data_tmp = ISHFT(pack_tmp, 61)
   51352     1526832 :          ipack = ipack + 1
   51353     1526832 :          pack_tmp = packed_data(ipack)
   51354     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(61)))
   51355     1526832 :          pack_tmp = ISHFT(pack_tmp, -61)
   51356     1526832 :          idata = idata + 1
   51357     1526832 :          data_tmp = ISHFT(pack_tmp, 58)
   51358     1526832 :          ipack = ipack + 1
   51359     1526832 :          pack_tmp = packed_data(ipack)
   51360     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   51361     1526832 :          pack_tmp = ISHFT(pack_tmp, -58)
   51362     1526832 :          idata = idata + 1
   51363     1526832 :          data_tmp = ISHFT(pack_tmp, 55)
   51364     1526832 :          ipack = ipack + 1
   51365     1526832 :          pack_tmp = packed_data(ipack)
   51366     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(55)))
   51367     1526832 :          pack_tmp = ISHFT(pack_tmp, -55)
   51368     1526832 :          idata = idata + 1
   51369     1526832 :          data_tmp = ISHFT(pack_tmp, 52)
   51370     1526832 :          ipack = ipack + 1
   51371     1526832 :          pack_tmp = packed_data(ipack)
   51372     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   51373     1526832 :          pack_tmp = ISHFT(pack_tmp, -52)
   51374     1526832 :          idata = idata + 1
   51375     1526832 :          data_tmp = ISHFT(pack_tmp, 49)
   51376     1526832 :          ipack = ipack + 1
   51377     1526832 :          pack_tmp = packed_data(ipack)
   51378     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   51379     1526832 :          pack_tmp = ISHFT(pack_tmp, -49)
   51380     1526832 :          idata = idata + 1
   51381     1526832 :          data_tmp = ISHFT(pack_tmp, 46)
   51382     1526832 :          ipack = ipack + 1
   51383     1526832 :          pack_tmp = packed_data(ipack)
   51384     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   51385     1526832 :          pack_tmp = ISHFT(pack_tmp, -46)
   51386     1526832 :          idata = idata + 1
   51387     1526832 :          data_tmp = ISHFT(pack_tmp, 43)
   51388     1526832 :          ipack = ipack + 1
   51389     1526832 :          pack_tmp = packed_data(ipack)
   51390     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   51391     1526832 :          pack_tmp = ISHFT(pack_tmp, -43)
   51392     1526832 :          idata = idata + 1
   51393     1526832 :          data_tmp = ISHFT(pack_tmp, 40)
   51394     1526832 :          ipack = ipack + 1
   51395     1526832 :          pack_tmp = packed_data(ipack)
   51396     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   51397     1526832 :          pack_tmp = ISHFT(pack_tmp, -40)
   51398     1526832 :          idata = idata + 1
   51399     1526832 :          data_tmp = ISHFT(pack_tmp, 37)
   51400     1526832 :          ipack = ipack + 1
   51401     1526832 :          pack_tmp = packed_data(ipack)
   51402     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   51403     1526832 :          pack_tmp = ISHFT(pack_tmp, -37)
   51404     1526832 :          idata = idata + 1
   51405     1526832 :          data_tmp = ISHFT(pack_tmp, 34)
   51406     1526832 :          ipack = ipack + 1
   51407     1526832 :          pack_tmp = packed_data(ipack)
   51408     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   51409     1526832 :          pack_tmp = ISHFT(pack_tmp, -34)
   51410     1526832 :          idata = idata + 1
   51411     1526832 :          data_tmp = ISHFT(pack_tmp, 31)
   51412     1526832 :          ipack = ipack + 1
   51413     1526832 :          pack_tmp = packed_data(ipack)
   51414     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   51415     1526832 :          pack_tmp = ISHFT(pack_tmp, -31)
   51416     1526832 :          idata = idata + 1
   51417     1526832 :          data_tmp = ISHFT(pack_tmp, 28)
   51418     1526832 :          ipack = ipack + 1
   51419     1526832 :          pack_tmp = packed_data(ipack)
   51420     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   51421     1526832 :          pack_tmp = ISHFT(pack_tmp, -28)
   51422     1526832 :          idata = idata + 1
   51423     1526832 :          data_tmp = ISHFT(pack_tmp, 25)
   51424     1526832 :          ipack = ipack + 1
   51425     1526832 :          pack_tmp = packed_data(ipack)
   51426     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   51427     1526832 :          pack_tmp = ISHFT(pack_tmp, -25)
   51428     1526832 :          idata = idata + 1
   51429     1526832 :          data_tmp = ISHFT(pack_tmp, 22)
   51430     1526832 :          ipack = ipack + 1
   51431     1526832 :          pack_tmp = packed_data(ipack)
   51432     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   51433     1526832 :          pack_tmp = ISHFT(pack_tmp, -22)
   51434     1526832 :          idata = idata + 1
   51435     1526832 :          data_tmp = ISHFT(pack_tmp, 19)
   51436     1526832 :          ipack = ipack + 1
   51437     1526832 :          pack_tmp = packed_data(ipack)
   51438     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   51439     1526832 :          pack_tmp = ISHFT(pack_tmp, -19)
   51440     1526832 :          idata = idata + 1
   51441     1526832 :          data_tmp = ISHFT(pack_tmp, 16)
   51442     1526832 :          ipack = ipack + 1
   51443     1526832 :          pack_tmp = packed_data(ipack)
   51444     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   51445     1526832 :          pack_tmp = ISHFT(pack_tmp, -16)
   51446     1526832 :          idata = idata + 1
   51447     1526832 :          data_tmp = ISHFT(pack_tmp, 13)
   51448     1526832 :          ipack = ipack + 1
   51449     1526832 :          pack_tmp = packed_data(ipack)
   51450     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   51451     1526832 :          pack_tmp = ISHFT(pack_tmp, -13)
   51452     1526832 :          idata = idata + 1
   51453     1526832 :          data_tmp = ISHFT(pack_tmp, 10)
   51454     1526832 :          ipack = ipack + 1
   51455     1526832 :          pack_tmp = packed_data(ipack)
   51456     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   51457     1526832 :          pack_tmp = ISHFT(pack_tmp, -10)
   51458     1526832 :          idata = idata + 1
   51459     1526832 :          data_tmp = ISHFT(pack_tmp, 7)
   51460     1526832 :          ipack = ipack + 1
   51461     1526832 :          pack_tmp = packed_data(ipack)
   51462     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   51463     1526832 :          pack_tmp = ISHFT(pack_tmp, -7)
   51464     1526832 :          idata = idata + 1
   51465     1526832 :          data_tmp = ISHFT(pack_tmp, 4)
   51466     1526832 :          ipack = ipack + 1
   51467     1526832 :          pack_tmp = packed_data(ipack)
   51468     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   51469     1526832 :          pack_tmp = ISHFT(pack_tmp, -4)
   51470     1526832 :          idata = idata + 1
   51471     1526832 :          data_tmp = ISHFT(pack_tmp, 1)
   51472     1526832 :          ipack = ipack + 1
   51473     1526832 :          pack_tmp = packed_data(ipack)
   51474     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   51475     1526832 :          pack_tmp = ISHFT(pack_tmp, -1)
   51476     1526832 :          idata = idata + 1
   51477     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   51478     1526832 :          full_data(idata) = data_tmp
   51479     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   51480     1526832 :          idata = idata + 1
   51481     1526832 :          data_tmp = ISHFT(pack_tmp, 59)
   51482     1526832 :          ipack = ipack + 1
   51483     1526832 :          pack_tmp = packed_data(ipack)
   51484     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(59)))
   51485     1526832 :          pack_tmp = ISHFT(pack_tmp, -59)
   51486     1526832 :          idata = idata + 1
   51487     1526832 :          data_tmp = ISHFT(pack_tmp, 56)
   51488     1526832 :          ipack = ipack + 1
   51489     1526832 :          pack_tmp = packed_data(ipack)
   51490     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   51491     1526832 :          pack_tmp = ISHFT(pack_tmp, -56)
   51492     1526832 :          idata = idata + 1
   51493     1526832 :          data_tmp = ISHFT(pack_tmp, 53)
   51494     1526832 :          ipack = ipack + 1
   51495     1526832 :          pack_tmp = packed_data(ipack)
   51496     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   51497     1526832 :          pack_tmp = ISHFT(pack_tmp, -53)
   51498     1526832 :          idata = idata + 1
   51499     1526832 :          data_tmp = ISHFT(pack_tmp, 50)
   51500     1526832 :          ipack = ipack + 1
   51501     1526832 :          pack_tmp = packed_data(ipack)
   51502     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   51503     1526832 :          pack_tmp = ISHFT(pack_tmp, -50)
   51504     1526832 :          idata = idata + 1
   51505     1526832 :          data_tmp = ISHFT(pack_tmp, 47)
   51506     1526832 :          ipack = ipack + 1
   51507     1526832 :          pack_tmp = packed_data(ipack)
   51508     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   51509     1526832 :          pack_tmp = ISHFT(pack_tmp, -47)
   51510     1526832 :          idata = idata + 1
   51511     1526832 :          data_tmp = ISHFT(pack_tmp, 44)
   51512     1526832 :          ipack = ipack + 1
   51513     1526832 :          pack_tmp = packed_data(ipack)
   51514     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   51515     1526832 :          pack_tmp = ISHFT(pack_tmp, -44)
   51516     1526832 :          idata = idata + 1
   51517     1526832 :          data_tmp = ISHFT(pack_tmp, 41)
   51518     1526832 :          ipack = ipack + 1
   51519     1526832 :          pack_tmp = packed_data(ipack)
   51520     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   51521     1526832 :          pack_tmp = ISHFT(pack_tmp, -41)
   51522     1526832 :          idata = idata + 1
   51523     1526832 :          data_tmp = ISHFT(pack_tmp, 38)
   51524     1526832 :          ipack = ipack + 1
   51525     1526832 :          pack_tmp = packed_data(ipack)
   51526     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   51527     1526832 :          pack_tmp = ISHFT(pack_tmp, -38)
   51528     1526832 :          idata = idata + 1
   51529     1526832 :          data_tmp = ISHFT(pack_tmp, 35)
   51530     1526832 :          ipack = ipack + 1
   51531     1526832 :          pack_tmp = packed_data(ipack)
   51532     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   51533     1526832 :          pack_tmp = ISHFT(pack_tmp, -35)
   51534     1526832 :          idata = idata + 1
   51535     1526832 :          data_tmp = ISHFT(pack_tmp, 32)
   51536     1526832 :          ipack = ipack + 1
   51537     1526832 :          pack_tmp = packed_data(ipack)
   51538     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   51539     1526832 :          pack_tmp = ISHFT(pack_tmp, -32)
   51540     1526832 :          idata = idata + 1
   51541     1526832 :          data_tmp = ISHFT(pack_tmp, 29)
   51542     1526832 :          ipack = ipack + 1
   51543     1526832 :          pack_tmp = packed_data(ipack)
   51544     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   51545     1526832 :          pack_tmp = ISHFT(pack_tmp, -29)
   51546     1526832 :          idata = idata + 1
   51547     1526832 :          data_tmp = ISHFT(pack_tmp, 26)
   51548     1526832 :          ipack = ipack + 1
   51549     1526832 :          pack_tmp = packed_data(ipack)
   51550     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   51551     1526832 :          pack_tmp = ISHFT(pack_tmp, -26)
   51552     1526832 :          idata = idata + 1
   51553     1526832 :          data_tmp = ISHFT(pack_tmp, 23)
   51554     1526832 :          ipack = ipack + 1
   51555     1526832 :          pack_tmp = packed_data(ipack)
   51556     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   51557     1526832 :          pack_tmp = ISHFT(pack_tmp, -23)
   51558     1526832 :          idata = idata + 1
   51559     1526832 :          data_tmp = ISHFT(pack_tmp, 20)
   51560     1526832 :          ipack = ipack + 1
   51561     1526832 :          pack_tmp = packed_data(ipack)
   51562     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   51563     1526832 :          pack_tmp = ISHFT(pack_tmp, -20)
   51564     1526832 :          idata = idata + 1
   51565     1526832 :          data_tmp = ISHFT(pack_tmp, 17)
   51566     1526832 :          ipack = ipack + 1
   51567     1526832 :          pack_tmp = packed_data(ipack)
   51568     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   51569     1526832 :          pack_tmp = ISHFT(pack_tmp, -17)
   51570     1526832 :          idata = idata + 1
   51571     1526832 :          data_tmp = ISHFT(pack_tmp, 14)
   51572     1526832 :          ipack = ipack + 1
   51573     1526832 :          pack_tmp = packed_data(ipack)
   51574     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   51575     1526832 :          pack_tmp = ISHFT(pack_tmp, -14)
   51576     1526832 :          idata = idata + 1
   51577     1526832 :          data_tmp = ISHFT(pack_tmp, 11)
   51578     1526832 :          ipack = ipack + 1
   51579     1526832 :          pack_tmp = packed_data(ipack)
   51580     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   51581     1526832 :          pack_tmp = ISHFT(pack_tmp, -11)
   51582     1526832 :          idata = idata + 1
   51583     1526832 :          data_tmp = ISHFT(pack_tmp, 8)
   51584     1526832 :          ipack = ipack + 1
   51585     1526832 :          pack_tmp = packed_data(ipack)
   51586     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   51587     1526832 :          pack_tmp = ISHFT(pack_tmp, -8)
   51588     1526832 :          idata = idata + 1
   51589     1526832 :          data_tmp = ISHFT(pack_tmp, 5)
   51590     1526832 :          ipack = ipack + 1
   51591     1526832 :          pack_tmp = packed_data(ipack)
   51592     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   51593     1526832 :          pack_tmp = ISHFT(pack_tmp, -5)
   51594     1526832 :          idata = idata + 1
   51595     1526832 :          data_tmp = ISHFT(pack_tmp, 2)
   51596     1526832 :          ipack = ipack + 1
   51597     1526832 :          pack_tmp = packed_data(ipack)
   51598     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   51599     1526832 :          pack_tmp = ISHFT(pack_tmp, -2)
   51600     1526832 :          idata = idata + 1
   51601     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   51602     1526832 :          full_data(idata) = data_tmp
   51603     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   51604     1526832 :          idata = idata + 1
   51605     1526832 :          data_tmp = ISHFT(pack_tmp, 60)
   51606     1526832 :          ipack = ipack + 1
   51607     1526832 :          pack_tmp = packed_data(ipack)
   51608     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   51609     1526832 :          pack_tmp = ISHFT(pack_tmp, -60)
   51610     1526832 :          idata = idata + 1
   51611     1526832 :          data_tmp = ISHFT(pack_tmp, 57)
   51612     1526832 :          ipack = ipack + 1
   51613     1526832 :          pack_tmp = packed_data(ipack)
   51614     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(57)))
   51615     1526832 :          pack_tmp = ISHFT(pack_tmp, -57)
   51616     1526832 :          idata = idata + 1
   51617     1526832 :          data_tmp = ISHFT(pack_tmp, 54)
   51618     1526832 :          ipack = ipack + 1
   51619     1526832 :          pack_tmp = packed_data(ipack)
   51620     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   51621     1526832 :          pack_tmp = ISHFT(pack_tmp, -54)
   51622     1526832 :          idata = idata + 1
   51623     1526832 :          data_tmp = ISHFT(pack_tmp, 51)
   51624     1526832 :          ipack = ipack + 1
   51625     1526832 :          pack_tmp = packed_data(ipack)
   51626     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   51627     1526832 :          pack_tmp = ISHFT(pack_tmp, -51)
   51628     1526832 :          idata = idata + 1
   51629     1526832 :          data_tmp = ISHFT(pack_tmp, 48)
   51630     1526832 :          ipack = ipack + 1
   51631     1526832 :          pack_tmp = packed_data(ipack)
   51632     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   51633     1526832 :          pack_tmp = ISHFT(pack_tmp, -48)
   51634     1526832 :          idata = idata + 1
   51635     1526832 :          data_tmp = ISHFT(pack_tmp, 45)
   51636     1526832 :          ipack = ipack + 1
   51637     1526832 :          pack_tmp = packed_data(ipack)
   51638     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   51639     1526832 :          pack_tmp = ISHFT(pack_tmp, -45)
   51640     1526832 :          idata = idata + 1
   51641     1526832 :          data_tmp = ISHFT(pack_tmp, 42)
   51642     1526832 :          ipack = ipack + 1
   51643     1526832 :          pack_tmp = packed_data(ipack)
   51644     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   51645     1526832 :          pack_tmp = ISHFT(pack_tmp, -42)
   51646     1526832 :          idata = idata + 1
   51647     1526832 :          data_tmp = ISHFT(pack_tmp, 39)
   51648     1526832 :          ipack = ipack + 1
   51649     1526832 :          pack_tmp = packed_data(ipack)
   51650     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   51651     1526832 :          pack_tmp = ISHFT(pack_tmp, -39)
   51652     1526832 :          idata = idata + 1
   51653     1526832 :          data_tmp = ISHFT(pack_tmp, 36)
   51654     1526832 :          ipack = ipack + 1
   51655     1526832 :          pack_tmp = packed_data(ipack)
   51656     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   51657     1526832 :          pack_tmp = ISHFT(pack_tmp, -36)
   51658     1526832 :          idata = idata + 1
   51659     1526832 :          data_tmp = ISHFT(pack_tmp, 33)
   51660     1526832 :          ipack = ipack + 1
   51661     1526832 :          pack_tmp = packed_data(ipack)
   51662     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   51663     1526832 :          pack_tmp = ISHFT(pack_tmp, -33)
   51664     1526832 :          idata = idata + 1
   51665     1526832 :          data_tmp = ISHFT(pack_tmp, 30)
   51666     1526832 :          ipack = ipack + 1
   51667     1526832 :          pack_tmp = packed_data(ipack)
   51668     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   51669     1526832 :          pack_tmp = ISHFT(pack_tmp, -30)
   51670     1526832 :          idata = idata + 1
   51671     1526832 :          data_tmp = ISHFT(pack_tmp, 27)
   51672     1526832 :          ipack = ipack + 1
   51673     1526832 :          pack_tmp = packed_data(ipack)
   51674     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   51675     1526832 :          pack_tmp = ISHFT(pack_tmp, -27)
   51676     1526832 :          idata = idata + 1
   51677     1526832 :          data_tmp = ISHFT(pack_tmp, 24)
   51678     1526832 :          ipack = ipack + 1
   51679     1526832 :          pack_tmp = packed_data(ipack)
   51680     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   51681     1526832 :          pack_tmp = ISHFT(pack_tmp, -24)
   51682     1526832 :          idata = idata + 1
   51683     1526832 :          data_tmp = ISHFT(pack_tmp, 21)
   51684     1526832 :          ipack = ipack + 1
   51685     1526832 :          pack_tmp = packed_data(ipack)
   51686     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   51687     1526832 :          pack_tmp = ISHFT(pack_tmp, -21)
   51688     1526832 :          idata = idata + 1
   51689     1526832 :          data_tmp = ISHFT(pack_tmp, 18)
   51690     1526832 :          ipack = ipack + 1
   51691     1526832 :          pack_tmp = packed_data(ipack)
   51692     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   51693     1526832 :          pack_tmp = ISHFT(pack_tmp, -18)
   51694     1526832 :          idata = idata + 1
   51695     1526832 :          data_tmp = ISHFT(pack_tmp, 15)
   51696     1526832 :          ipack = ipack + 1
   51697     1526832 :          pack_tmp = packed_data(ipack)
   51698     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   51699     1526832 :          pack_tmp = ISHFT(pack_tmp, -15)
   51700     1526832 :          idata = idata + 1
   51701     1526832 :          data_tmp = ISHFT(pack_tmp, 12)
   51702     1526832 :          ipack = ipack + 1
   51703     1526832 :          pack_tmp = packed_data(ipack)
   51704     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   51705     1526832 :          pack_tmp = ISHFT(pack_tmp, -12)
   51706     1526832 :          idata = idata + 1
   51707     1526832 :          data_tmp = ISHFT(pack_tmp, 9)
   51708     1526832 :          ipack = ipack + 1
   51709     1526832 :          pack_tmp = packed_data(ipack)
   51710     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   51711     1526832 :          pack_tmp = ISHFT(pack_tmp, -9)
   51712     1526832 :          idata = idata + 1
   51713     1526832 :          data_tmp = ISHFT(pack_tmp, 6)
   51714     1526832 :          ipack = ipack + 1
   51715     1526832 :          pack_tmp = packed_data(ipack)
   51716     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   51717     1526832 :          pack_tmp = ISHFT(pack_tmp, -6)
   51718     1526832 :          idata = idata + 1
   51719     1526832 :          data_tmp = ISHFT(pack_tmp, 3)
   51720     1526832 :          ipack = ipack + 1
   51721     1526832 :          pack_tmp = packed_data(ipack)
   51722     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   51723     1526832 :          pack_tmp = ISHFT(pack_tmp, -3)
   51724     1526832 :          idata = idata + 1
   51725     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   51726     1526832 :          full_data(idata) = data_tmp
   51727     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   51728             :       END DO
   51729       95427 :       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       95427 :    END SUBROUTINE bits2ints_61
   51733             : 
   51734             : ! **************************************************************************************************
   51735             : !> \brief ...
   51736             : !> \param Ndata ...
   51737             : !> \param packed_data ...
   51738             : !> \param full_data ...
   51739             : ! **************************************************************************************************
   51740       23676 :    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       23676 :       idata = 0
   51751       23676 :       ipack = 0
   51752       23676 :       Ndata_rep = (Ndata/64)*64
   51753       23676 :       DO kdata = 1, Ndata_rep, 64
   51754      378816 :          pack_tmp = 0
   51755      378816 :          idata = idata + 1
   51756      378816 :          data_tmp = full_data(idata)
   51757      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51758      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51759      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
   51760      378816 :          idata = idata + 1
   51761      378816 :          data_tmp = full_data(idata)
   51762      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51763      378816 :          data_tmp = IAND(data_tmp, mask_left(2))
   51764      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51765      378816 :          ipack = ipack + 1
   51766      378816 :          packed_data(ipack) = pack_tmp
   51767      378816 :          data_tmp = full_data(idata)
   51768      378816 :          pack_tmp = ISHFT(data_tmp, 4)
   51769      378816 :          pack_tmp = ISHFT(pack_tmp, -4)
   51770      378816 :          idata = idata + 1
   51771      378816 :          data_tmp = full_data(idata)
   51772      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51773      378816 :          data_tmp = IAND(data_tmp, mask_left(4))
   51774      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51775      378816 :          ipack = ipack + 1
   51776      378816 :          packed_data(ipack) = pack_tmp
   51777      378816 :          data_tmp = full_data(idata)
   51778      378816 :          pack_tmp = ISHFT(data_tmp, 6)
   51779      378816 :          pack_tmp = ISHFT(pack_tmp, -6)
   51780      378816 :          idata = idata + 1
   51781      378816 :          data_tmp = full_data(idata)
   51782      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51783      378816 :          data_tmp = IAND(data_tmp, mask_left(6))
   51784      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51785      378816 :          ipack = ipack + 1
   51786      378816 :          packed_data(ipack) = pack_tmp
   51787      378816 :          data_tmp = full_data(idata)
   51788      378816 :          pack_tmp = ISHFT(data_tmp, 8)
   51789      378816 :          pack_tmp = ISHFT(pack_tmp, -8)
   51790      378816 :          idata = idata + 1
   51791      378816 :          data_tmp = full_data(idata)
   51792      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51793      378816 :          data_tmp = IAND(data_tmp, mask_left(8))
   51794      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51795      378816 :          ipack = ipack + 1
   51796      378816 :          packed_data(ipack) = pack_tmp
   51797      378816 :          data_tmp = full_data(idata)
   51798      378816 :          pack_tmp = ISHFT(data_tmp, 10)
   51799      378816 :          pack_tmp = ISHFT(pack_tmp, -10)
   51800      378816 :          idata = idata + 1
   51801      378816 :          data_tmp = full_data(idata)
   51802      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51803      378816 :          data_tmp = IAND(data_tmp, mask_left(10))
   51804      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51805      378816 :          ipack = ipack + 1
   51806      378816 :          packed_data(ipack) = pack_tmp
   51807      378816 :          data_tmp = full_data(idata)
   51808      378816 :          pack_tmp = ISHFT(data_tmp, 12)
   51809      378816 :          pack_tmp = ISHFT(pack_tmp, -12)
   51810      378816 :          idata = idata + 1
   51811      378816 :          data_tmp = full_data(idata)
   51812      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51813      378816 :          data_tmp = IAND(data_tmp, mask_left(12))
   51814      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51815      378816 :          ipack = ipack + 1
   51816      378816 :          packed_data(ipack) = pack_tmp
   51817      378816 :          data_tmp = full_data(idata)
   51818      378816 :          pack_tmp = ISHFT(data_tmp, 14)
   51819      378816 :          pack_tmp = ISHFT(pack_tmp, -14)
   51820      378816 :          idata = idata + 1
   51821      378816 :          data_tmp = full_data(idata)
   51822      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51823      378816 :          data_tmp = IAND(data_tmp, mask_left(14))
   51824      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51825      378816 :          ipack = ipack + 1
   51826      378816 :          packed_data(ipack) = pack_tmp
   51827      378816 :          data_tmp = full_data(idata)
   51828      378816 :          pack_tmp = ISHFT(data_tmp, 16)
   51829      378816 :          pack_tmp = ISHFT(pack_tmp, -16)
   51830      378816 :          idata = idata + 1
   51831      378816 :          data_tmp = full_data(idata)
   51832      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51833      378816 :          data_tmp = IAND(data_tmp, mask_left(16))
   51834      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51835      378816 :          ipack = ipack + 1
   51836      378816 :          packed_data(ipack) = pack_tmp
   51837      378816 :          data_tmp = full_data(idata)
   51838      378816 :          pack_tmp = ISHFT(data_tmp, 18)
   51839      378816 :          pack_tmp = ISHFT(pack_tmp, -18)
   51840      378816 :          idata = idata + 1
   51841      378816 :          data_tmp = full_data(idata)
   51842      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51843      378816 :          data_tmp = IAND(data_tmp, mask_left(18))
   51844      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51845      378816 :          ipack = ipack + 1
   51846      378816 :          packed_data(ipack) = pack_tmp
   51847      378816 :          data_tmp = full_data(idata)
   51848      378816 :          pack_tmp = ISHFT(data_tmp, 20)
   51849      378816 :          pack_tmp = ISHFT(pack_tmp, -20)
   51850      378816 :          idata = idata + 1
   51851      378816 :          data_tmp = full_data(idata)
   51852      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51853      378816 :          data_tmp = IAND(data_tmp, mask_left(20))
   51854      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51855      378816 :          ipack = ipack + 1
   51856      378816 :          packed_data(ipack) = pack_tmp
   51857      378816 :          data_tmp = full_data(idata)
   51858      378816 :          pack_tmp = ISHFT(data_tmp, 22)
   51859      378816 :          pack_tmp = ISHFT(pack_tmp, -22)
   51860      378816 :          idata = idata + 1
   51861      378816 :          data_tmp = full_data(idata)
   51862      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51863      378816 :          data_tmp = IAND(data_tmp, mask_left(22))
   51864      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51865      378816 :          ipack = ipack + 1
   51866      378816 :          packed_data(ipack) = pack_tmp
   51867      378816 :          data_tmp = full_data(idata)
   51868      378816 :          pack_tmp = ISHFT(data_tmp, 24)
   51869      378816 :          pack_tmp = ISHFT(pack_tmp, -24)
   51870      378816 :          idata = idata + 1
   51871      378816 :          data_tmp = full_data(idata)
   51872      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51873      378816 :          data_tmp = IAND(data_tmp, mask_left(24))
   51874      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51875      378816 :          ipack = ipack + 1
   51876      378816 :          packed_data(ipack) = pack_tmp
   51877      378816 :          data_tmp = full_data(idata)
   51878      378816 :          pack_tmp = ISHFT(data_tmp, 26)
   51879      378816 :          pack_tmp = ISHFT(pack_tmp, -26)
   51880      378816 :          idata = idata + 1
   51881      378816 :          data_tmp = full_data(idata)
   51882      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51883      378816 :          data_tmp = IAND(data_tmp, mask_left(26))
   51884      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51885      378816 :          ipack = ipack + 1
   51886      378816 :          packed_data(ipack) = pack_tmp
   51887      378816 :          data_tmp = full_data(idata)
   51888      378816 :          pack_tmp = ISHFT(data_tmp, 28)
   51889      378816 :          pack_tmp = ISHFT(pack_tmp, -28)
   51890      378816 :          idata = idata + 1
   51891      378816 :          data_tmp = full_data(idata)
   51892      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51893      378816 :          data_tmp = IAND(data_tmp, mask_left(28))
   51894      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51895      378816 :          ipack = ipack + 1
   51896      378816 :          packed_data(ipack) = pack_tmp
   51897      378816 :          data_tmp = full_data(idata)
   51898      378816 :          pack_tmp = ISHFT(data_tmp, 30)
   51899      378816 :          pack_tmp = ISHFT(pack_tmp, -30)
   51900      378816 :          idata = idata + 1
   51901      378816 :          data_tmp = full_data(idata)
   51902      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51903      378816 :          data_tmp = IAND(data_tmp, mask_left(30))
   51904      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51905      378816 :          ipack = ipack + 1
   51906      378816 :          packed_data(ipack) = pack_tmp
   51907      378816 :          data_tmp = full_data(idata)
   51908      378816 :          pack_tmp = ISHFT(data_tmp, 32)
   51909      378816 :          pack_tmp = ISHFT(pack_tmp, -32)
   51910      378816 :          idata = idata + 1
   51911      378816 :          data_tmp = full_data(idata)
   51912      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51913      378816 :          data_tmp = IAND(data_tmp, mask_left(32))
   51914      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51915      378816 :          ipack = ipack + 1
   51916      378816 :          packed_data(ipack) = pack_tmp
   51917      378816 :          data_tmp = full_data(idata)
   51918      378816 :          pack_tmp = ISHFT(data_tmp, 34)
   51919      378816 :          pack_tmp = ISHFT(pack_tmp, -34)
   51920      378816 :          idata = idata + 1
   51921      378816 :          data_tmp = full_data(idata)
   51922      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51923      378816 :          data_tmp = IAND(data_tmp, mask_left(34))
   51924      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51925      378816 :          ipack = ipack + 1
   51926      378816 :          packed_data(ipack) = pack_tmp
   51927      378816 :          data_tmp = full_data(idata)
   51928      378816 :          pack_tmp = ISHFT(data_tmp, 36)
   51929      378816 :          pack_tmp = ISHFT(pack_tmp, -36)
   51930      378816 :          idata = idata + 1
   51931      378816 :          data_tmp = full_data(idata)
   51932      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51933      378816 :          data_tmp = IAND(data_tmp, mask_left(36))
   51934      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51935      378816 :          ipack = ipack + 1
   51936      378816 :          packed_data(ipack) = pack_tmp
   51937      378816 :          data_tmp = full_data(idata)
   51938      378816 :          pack_tmp = ISHFT(data_tmp, 38)
   51939      378816 :          pack_tmp = ISHFT(pack_tmp, -38)
   51940      378816 :          idata = idata + 1
   51941      378816 :          data_tmp = full_data(idata)
   51942      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51943      378816 :          data_tmp = IAND(data_tmp, mask_left(38))
   51944      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51945      378816 :          ipack = ipack + 1
   51946      378816 :          packed_data(ipack) = pack_tmp
   51947      378816 :          data_tmp = full_data(idata)
   51948      378816 :          pack_tmp = ISHFT(data_tmp, 40)
   51949      378816 :          pack_tmp = ISHFT(pack_tmp, -40)
   51950      378816 :          idata = idata + 1
   51951      378816 :          data_tmp = full_data(idata)
   51952      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51953      378816 :          data_tmp = IAND(data_tmp, mask_left(40))
   51954      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51955      378816 :          ipack = ipack + 1
   51956      378816 :          packed_data(ipack) = pack_tmp
   51957      378816 :          data_tmp = full_data(idata)
   51958      378816 :          pack_tmp = ISHFT(data_tmp, 42)
   51959      378816 :          pack_tmp = ISHFT(pack_tmp, -42)
   51960      378816 :          idata = idata + 1
   51961      378816 :          data_tmp = full_data(idata)
   51962      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51963      378816 :          data_tmp = IAND(data_tmp, mask_left(42))
   51964      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51965      378816 :          ipack = ipack + 1
   51966      378816 :          packed_data(ipack) = pack_tmp
   51967      378816 :          data_tmp = full_data(idata)
   51968      378816 :          pack_tmp = ISHFT(data_tmp, 44)
   51969      378816 :          pack_tmp = ISHFT(pack_tmp, -44)
   51970      378816 :          idata = idata + 1
   51971      378816 :          data_tmp = full_data(idata)
   51972      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51973      378816 :          data_tmp = IAND(data_tmp, mask_left(44))
   51974      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51975      378816 :          ipack = ipack + 1
   51976      378816 :          packed_data(ipack) = pack_tmp
   51977      378816 :          data_tmp = full_data(idata)
   51978      378816 :          pack_tmp = ISHFT(data_tmp, 46)
   51979      378816 :          pack_tmp = ISHFT(pack_tmp, -46)
   51980      378816 :          idata = idata + 1
   51981      378816 :          data_tmp = full_data(idata)
   51982      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51983      378816 :          data_tmp = IAND(data_tmp, mask_left(46))
   51984      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51985      378816 :          ipack = ipack + 1
   51986      378816 :          packed_data(ipack) = pack_tmp
   51987      378816 :          data_tmp = full_data(idata)
   51988      378816 :          pack_tmp = ISHFT(data_tmp, 48)
   51989      378816 :          pack_tmp = ISHFT(pack_tmp, -48)
   51990      378816 :          idata = idata + 1
   51991      378816 :          data_tmp = full_data(idata)
   51992      378816 :          data_tmp = ISHFT(data_tmp, 2)
   51993      378816 :          data_tmp = IAND(data_tmp, mask_left(48))
   51994      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51995      378816 :          ipack = ipack + 1
   51996      378816 :          packed_data(ipack) = pack_tmp
   51997      378816 :          data_tmp = full_data(idata)
   51998      378816 :          pack_tmp = ISHFT(data_tmp, 50)
   51999      378816 :          pack_tmp = ISHFT(pack_tmp, -50)
   52000      378816 :          idata = idata + 1
   52001      378816 :          data_tmp = full_data(idata)
   52002      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52003      378816 :          data_tmp = IAND(data_tmp, mask_left(50))
   52004      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52005      378816 :          ipack = ipack + 1
   52006      378816 :          packed_data(ipack) = pack_tmp
   52007      378816 :          data_tmp = full_data(idata)
   52008      378816 :          pack_tmp = ISHFT(data_tmp, 52)
   52009      378816 :          pack_tmp = ISHFT(pack_tmp, -52)
   52010      378816 :          idata = idata + 1
   52011      378816 :          data_tmp = full_data(idata)
   52012      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52013      378816 :          data_tmp = IAND(data_tmp, mask_left(52))
   52014      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52015      378816 :          ipack = ipack + 1
   52016      378816 :          packed_data(ipack) = pack_tmp
   52017      378816 :          data_tmp = full_data(idata)
   52018      378816 :          pack_tmp = ISHFT(data_tmp, 54)
   52019      378816 :          pack_tmp = ISHFT(pack_tmp, -54)
   52020      378816 :          idata = idata + 1
   52021      378816 :          data_tmp = full_data(idata)
   52022      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52023      378816 :          data_tmp = IAND(data_tmp, mask_left(54))
   52024      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52025      378816 :          ipack = ipack + 1
   52026      378816 :          packed_data(ipack) = pack_tmp
   52027      378816 :          data_tmp = full_data(idata)
   52028      378816 :          pack_tmp = ISHFT(data_tmp, 56)
   52029      378816 :          pack_tmp = ISHFT(pack_tmp, -56)
   52030      378816 :          idata = idata + 1
   52031      378816 :          data_tmp = full_data(idata)
   52032      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52033      378816 :          data_tmp = IAND(data_tmp, mask_left(56))
   52034      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52035      378816 :          ipack = ipack + 1
   52036      378816 :          packed_data(ipack) = pack_tmp
   52037      378816 :          data_tmp = full_data(idata)
   52038      378816 :          pack_tmp = ISHFT(data_tmp, 58)
   52039      378816 :          pack_tmp = ISHFT(pack_tmp, -58)
   52040      378816 :          idata = idata + 1
   52041      378816 :          data_tmp = full_data(idata)
   52042      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52043      378816 :          data_tmp = IAND(data_tmp, mask_left(58))
   52044      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52045      378816 :          ipack = ipack + 1
   52046      378816 :          packed_data(ipack) = pack_tmp
   52047      378816 :          data_tmp = full_data(idata)
   52048      378816 :          pack_tmp = ISHFT(data_tmp, 60)
   52049      378816 :          pack_tmp = ISHFT(pack_tmp, -60)
   52050      378816 :          idata = idata + 1
   52051      378816 :          data_tmp = full_data(idata)
   52052      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52053      378816 :          data_tmp = IAND(data_tmp, mask_left(60))
   52054      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52055      378816 :          ipack = ipack + 1
   52056      378816 :          packed_data(ipack) = pack_tmp
   52057      378816 :          data_tmp = full_data(idata)
   52058      378816 :          pack_tmp = ISHFT(data_tmp, 62)
   52059      378816 :          pack_tmp = ISHFT(pack_tmp, -62)
   52060      378816 :          idata = idata + 1
   52061      378816 :          data_tmp = full_data(idata)
   52062      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52063      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52064      378816 :          pack_tmp = ISHFT(pack_tmp, 0)
   52065      378816 :          idata = idata + 1
   52066      378816 :          data_tmp = full_data(idata)
   52067             :          data_tmp = ISHFT(data_tmp, 2)
   52068      378816 :          data_tmp = IAND(data_tmp, mask_left(0))
   52069      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52070      378816 :          ipack = ipack + 1
   52071      378816 :          packed_data(ipack) = pack_tmp
   52072      378816 :          data_tmp = full_data(idata)
   52073      378816 :          pack_tmp = ISHFT(data_tmp, 2)
   52074      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
   52075      378816 :          idata = idata + 1
   52076      378816 :          data_tmp = full_data(idata)
   52077      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52078      378816 :          data_tmp = IAND(data_tmp, mask_left(2))
   52079      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52080      378816 :          ipack = ipack + 1
   52081      378816 :          packed_data(ipack) = pack_tmp
   52082      378816 :          data_tmp = full_data(idata)
   52083      378816 :          pack_tmp = ISHFT(data_tmp, 4)
   52084      378816 :          pack_tmp = ISHFT(pack_tmp, -4)
   52085      378816 :          idata = idata + 1
   52086      378816 :          data_tmp = full_data(idata)
   52087      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52088      378816 :          data_tmp = IAND(data_tmp, mask_left(4))
   52089      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52090      378816 :          ipack = ipack + 1
   52091      378816 :          packed_data(ipack) = pack_tmp
   52092      378816 :          data_tmp = full_data(idata)
   52093      378816 :          pack_tmp = ISHFT(data_tmp, 6)
   52094      378816 :          pack_tmp = ISHFT(pack_tmp, -6)
   52095      378816 :          idata = idata + 1
   52096      378816 :          data_tmp = full_data(idata)
   52097      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52098      378816 :          data_tmp = IAND(data_tmp, mask_left(6))
   52099      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52100      378816 :          ipack = ipack + 1
   52101      378816 :          packed_data(ipack) = pack_tmp
   52102      378816 :          data_tmp = full_data(idata)
   52103      378816 :          pack_tmp = ISHFT(data_tmp, 8)
   52104      378816 :          pack_tmp = ISHFT(pack_tmp, -8)
   52105      378816 :          idata = idata + 1
   52106      378816 :          data_tmp = full_data(idata)
   52107      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52108      378816 :          data_tmp = IAND(data_tmp, mask_left(8))
   52109      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52110      378816 :          ipack = ipack + 1
   52111      378816 :          packed_data(ipack) = pack_tmp
   52112      378816 :          data_tmp = full_data(idata)
   52113      378816 :          pack_tmp = ISHFT(data_tmp, 10)
   52114      378816 :          pack_tmp = ISHFT(pack_tmp, -10)
   52115      378816 :          idata = idata + 1
   52116      378816 :          data_tmp = full_data(idata)
   52117      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52118      378816 :          data_tmp = IAND(data_tmp, mask_left(10))
   52119      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52120      378816 :          ipack = ipack + 1
   52121      378816 :          packed_data(ipack) = pack_tmp
   52122      378816 :          data_tmp = full_data(idata)
   52123      378816 :          pack_tmp = ISHFT(data_tmp, 12)
   52124      378816 :          pack_tmp = ISHFT(pack_tmp, -12)
   52125      378816 :          idata = idata + 1
   52126      378816 :          data_tmp = full_data(idata)
   52127      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52128      378816 :          data_tmp = IAND(data_tmp, mask_left(12))
   52129      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52130      378816 :          ipack = ipack + 1
   52131      378816 :          packed_data(ipack) = pack_tmp
   52132      378816 :          data_tmp = full_data(idata)
   52133      378816 :          pack_tmp = ISHFT(data_tmp, 14)
   52134      378816 :          pack_tmp = ISHFT(pack_tmp, -14)
   52135      378816 :          idata = idata + 1
   52136      378816 :          data_tmp = full_data(idata)
   52137      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52138      378816 :          data_tmp = IAND(data_tmp, mask_left(14))
   52139      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52140      378816 :          ipack = ipack + 1
   52141      378816 :          packed_data(ipack) = pack_tmp
   52142      378816 :          data_tmp = full_data(idata)
   52143      378816 :          pack_tmp = ISHFT(data_tmp, 16)
   52144      378816 :          pack_tmp = ISHFT(pack_tmp, -16)
   52145      378816 :          idata = idata + 1
   52146      378816 :          data_tmp = full_data(idata)
   52147      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52148      378816 :          data_tmp = IAND(data_tmp, mask_left(16))
   52149      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52150      378816 :          ipack = ipack + 1
   52151      378816 :          packed_data(ipack) = pack_tmp
   52152      378816 :          data_tmp = full_data(idata)
   52153      378816 :          pack_tmp = ISHFT(data_tmp, 18)
   52154      378816 :          pack_tmp = ISHFT(pack_tmp, -18)
   52155      378816 :          idata = idata + 1
   52156      378816 :          data_tmp = full_data(idata)
   52157      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52158      378816 :          data_tmp = IAND(data_tmp, mask_left(18))
   52159      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52160      378816 :          ipack = ipack + 1
   52161      378816 :          packed_data(ipack) = pack_tmp
   52162      378816 :          data_tmp = full_data(idata)
   52163      378816 :          pack_tmp = ISHFT(data_tmp, 20)
   52164      378816 :          pack_tmp = ISHFT(pack_tmp, -20)
   52165      378816 :          idata = idata + 1
   52166      378816 :          data_tmp = full_data(idata)
   52167      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52168      378816 :          data_tmp = IAND(data_tmp, mask_left(20))
   52169      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52170      378816 :          ipack = ipack + 1
   52171      378816 :          packed_data(ipack) = pack_tmp
   52172      378816 :          data_tmp = full_data(idata)
   52173      378816 :          pack_tmp = ISHFT(data_tmp, 22)
   52174      378816 :          pack_tmp = ISHFT(pack_tmp, -22)
   52175      378816 :          idata = idata + 1
   52176      378816 :          data_tmp = full_data(idata)
   52177      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52178      378816 :          data_tmp = IAND(data_tmp, mask_left(22))
   52179      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52180      378816 :          ipack = ipack + 1
   52181      378816 :          packed_data(ipack) = pack_tmp
   52182      378816 :          data_tmp = full_data(idata)
   52183      378816 :          pack_tmp = ISHFT(data_tmp, 24)
   52184      378816 :          pack_tmp = ISHFT(pack_tmp, -24)
   52185      378816 :          idata = idata + 1
   52186      378816 :          data_tmp = full_data(idata)
   52187      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52188      378816 :          data_tmp = IAND(data_tmp, mask_left(24))
   52189      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52190      378816 :          ipack = ipack + 1
   52191      378816 :          packed_data(ipack) = pack_tmp
   52192      378816 :          data_tmp = full_data(idata)
   52193      378816 :          pack_tmp = ISHFT(data_tmp, 26)
   52194      378816 :          pack_tmp = ISHFT(pack_tmp, -26)
   52195      378816 :          idata = idata + 1
   52196      378816 :          data_tmp = full_data(idata)
   52197      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52198      378816 :          data_tmp = IAND(data_tmp, mask_left(26))
   52199      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52200      378816 :          ipack = ipack + 1
   52201      378816 :          packed_data(ipack) = pack_tmp
   52202      378816 :          data_tmp = full_data(idata)
   52203      378816 :          pack_tmp = ISHFT(data_tmp, 28)
   52204      378816 :          pack_tmp = ISHFT(pack_tmp, -28)
   52205      378816 :          idata = idata + 1
   52206      378816 :          data_tmp = full_data(idata)
   52207      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52208      378816 :          data_tmp = IAND(data_tmp, mask_left(28))
   52209      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52210      378816 :          ipack = ipack + 1
   52211      378816 :          packed_data(ipack) = pack_tmp
   52212      378816 :          data_tmp = full_data(idata)
   52213      378816 :          pack_tmp = ISHFT(data_tmp, 30)
   52214      378816 :          pack_tmp = ISHFT(pack_tmp, -30)
   52215      378816 :          idata = idata + 1
   52216      378816 :          data_tmp = full_data(idata)
   52217      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52218      378816 :          data_tmp = IAND(data_tmp, mask_left(30))
   52219      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52220      378816 :          ipack = ipack + 1
   52221      378816 :          packed_data(ipack) = pack_tmp
   52222      378816 :          data_tmp = full_data(idata)
   52223      378816 :          pack_tmp = ISHFT(data_tmp, 32)
   52224      378816 :          pack_tmp = ISHFT(pack_tmp, -32)
   52225      378816 :          idata = idata + 1
   52226      378816 :          data_tmp = full_data(idata)
   52227      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52228      378816 :          data_tmp = IAND(data_tmp, mask_left(32))
   52229      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52230      378816 :          ipack = ipack + 1
   52231      378816 :          packed_data(ipack) = pack_tmp
   52232      378816 :          data_tmp = full_data(idata)
   52233      378816 :          pack_tmp = ISHFT(data_tmp, 34)
   52234      378816 :          pack_tmp = ISHFT(pack_tmp, -34)
   52235      378816 :          idata = idata + 1
   52236      378816 :          data_tmp = full_data(idata)
   52237      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52238      378816 :          data_tmp = IAND(data_tmp, mask_left(34))
   52239      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52240      378816 :          ipack = ipack + 1
   52241      378816 :          packed_data(ipack) = pack_tmp
   52242      378816 :          data_tmp = full_data(idata)
   52243      378816 :          pack_tmp = ISHFT(data_tmp, 36)
   52244      378816 :          pack_tmp = ISHFT(pack_tmp, -36)
   52245      378816 :          idata = idata + 1
   52246      378816 :          data_tmp = full_data(idata)
   52247      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52248      378816 :          data_tmp = IAND(data_tmp, mask_left(36))
   52249      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52250      378816 :          ipack = ipack + 1
   52251      378816 :          packed_data(ipack) = pack_tmp
   52252      378816 :          data_tmp = full_data(idata)
   52253      378816 :          pack_tmp = ISHFT(data_tmp, 38)
   52254      378816 :          pack_tmp = ISHFT(pack_tmp, -38)
   52255      378816 :          idata = idata + 1
   52256      378816 :          data_tmp = full_data(idata)
   52257      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52258      378816 :          data_tmp = IAND(data_tmp, mask_left(38))
   52259      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52260      378816 :          ipack = ipack + 1
   52261      378816 :          packed_data(ipack) = pack_tmp
   52262      378816 :          data_tmp = full_data(idata)
   52263      378816 :          pack_tmp = ISHFT(data_tmp, 40)
   52264      378816 :          pack_tmp = ISHFT(pack_tmp, -40)
   52265      378816 :          idata = idata + 1
   52266      378816 :          data_tmp = full_data(idata)
   52267      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52268      378816 :          data_tmp = IAND(data_tmp, mask_left(40))
   52269      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52270      378816 :          ipack = ipack + 1
   52271      378816 :          packed_data(ipack) = pack_tmp
   52272      378816 :          data_tmp = full_data(idata)
   52273      378816 :          pack_tmp = ISHFT(data_tmp, 42)
   52274      378816 :          pack_tmp = ISHFT(pack_tmp, -42)
   52275      378816 :          idata = idata + 1
   52276      378816 :          data_tmp = full_data(idata)
   52277      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52278      378816 :          data_tmp = IAND(data_tmp, mask_left(42))
   52279      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52280      378816 :          ipack = ipack + 1
   52281      378816 :          packed_data(ipack) = pack_tmp
   52282      378816 :          data_tmp = full_data(idata)
   52283      378816 :          pack_tmp = ISHFT(data_tmp, 44)
   52284      378816 :          pack_tmp = ISHFT(pack_tmp, -44)
   52285      378816 :          idata = idata + 1
   52286      378816 :          data_tmp = full_data(idata)
   52287      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52288      378816 :          data_tmp = IAND(data_tmp, mask_left(44))
   52289      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52290      378816 :          ipack = ipack + 1
   52291      378816 :          packed_data(ipack) = pack_tmp
   52292      378816 :          data_tmp = full_data(idata)
   52293      378816 :          pack_tmp = ISHFT(data_tmp, 46)
   52294      378816 :          pack_tmp = ISHFT(pack_tmp, -46)
   52295      378816 :          idata = idata + 1
   52296      378816 :          data_tmp = full_data(idata)
   52297      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52298      378816 :          data_tmp = IAND(data_tmp, mask_left(46))
   52299      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52300      378816 :          ipack = ipack + 1
   52301      378816 :          packed_data(ipack) = pack_tmp
   52302      378816 :          data_tmp = full_data(idata)
   52303      378816 :          pack_tmp = ISHFT(data_tmp, 48)
   52304      378816 :          pack_tmp = ISHFT(pack_tmp, -48)
   52305      378816 :          idata = idata + 1
   52306      378816 :          data_tmp = full_data(idata)
   52307      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52308      378816 :          data_tmp = IAND(data_tmp, mask_left(48))
   52309      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52310      378816 :          ipack = ipack + 1
   52311      378816 :          packed_data(ipack) = pack_tmp
   52312      378816 :          data_tmp = full_data(idata)
   52313      378816 :          pack_tmp = ISHFT(data_tmp, 50)
   52314      378816 :          pack_tmp = ISHFT(pack_tmp, -50)
   52315      378816 :          idata = idata + 1
   52316      378816 :          data_tmp = full_data(idata)
   52317      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52318      378816 :          data_tmp = IAND(data_tmp, mask_left(50))
   52319      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52320      378816 :          ipack = ipack + 1
   52321      378816 :          packed_data(ipack) = pack_tmp
   52322      378816 :          data_tmp = full_data(idata)
   52323      378816 :          pack_tmp = ISHFT(data_tmp, 52)
   52324      378816 :          pack_tmp = ISHFT(pack_tmp, -52)
   52325      378816 :          idata = idata + 1
   52326      378816 :          data_tmp = full_data(idata)
   52327      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52328      378816 :          data_tmp = IAND(data_tmp, mask_left(52))
   52329      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52330      378816 :          ipack = ipack + 1
   52331      378816 :          packed_data(ipack) = pack_tmp
   52332      378816 :          data_tmp = full_data(idata)
   52333      378816 :          pack_tmp = ISHFT(data_tmp, 54)
   52334      378816 :          pack_tmp = ISHFT(pack_tmp, -54)
   52335      378816 :          idata = idata + 1
   52336      378816 :          data_tmp = full_data(idata)
   52337      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52338      378816 :          data_tmp = IAND(data_tmp, mask_left(54))
   52339      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52340      378816 :          ipack = ipack + 1
   52341      378816 :          packed_data(ipack) = pack_tmp
   52342      378816 :          data_tmp = full_data(idata)
   52343      378816 :          pack_tmp = ISHFT(data_tmp, 56)
   52344      378816 :          pack_tmp = ISHFT(pack_tmp, -56)
   52345      378816 :          idata = idata + 1
   52346      378816 :          data_tmp = full_data(idata)
   52347      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52348      378816 :          data_tmp = IAND(data_tmp, mask_left(56))
   52349      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52350      378816 :          ipack = ipack + 1
   52351      378816 :          packed_data(ipack) = pack_tmp
   52352      378816 :          data_tmp = full_data(idata)
   52353      378816 :          pack_tmp = ISHFT(data_tmp, 58)
   52354      378816 :          pack_tmp = ISHFT(pack_tmp, -58)
   52355      378816 :          idata = idata + 1
   52356      378816 :          data_tmp = full_data(idata)
   52357      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52358      378816 :          data_tmp = IAND(data_tmp, mask_left(58))
   52359      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52360      378816 :          ipack = ipack + 1
   52361      378816 :          packed_data(ipack) = pack_tmp
   52362      378816 :          data_tmp = full_data(idata)
   52363      378816 :          pack_tmp = ISHFT(data_tmp, 60)
   52364      378816 :          pack_tmp = ISHFT(pack_tmp, -60)
   52365      378816 :          idata = idata + 1
   52366      378816 :          data_tmp = full_data(idata)
   52367      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52368      378816 :          data_tmp = IAND(data_tmp, mask_left(60))
   52369      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52370      378816 :          ipack = ipack + 1
   52371      378816 :          packed_data(ipack) = pack_tmp
   52372      378816 :          data_tmp = full_data(idata)
   52373      378816 :          pack_tmp = ISHFT(data_tmp, 62)
   52374      378816 :          pack_tmp = ISHFT(pack_tmp, -62)
   52375      378816 :          idata = idata + 1
   52376      378816 :          data_tmp = full_data(idata)
   52377      378816 :          data_tmp = ISHFT(data_tmp, 2)
   52378      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52379             :          pack_tmp = ISHFT(pack_tmp, 0)
   52380      378816 :          pack_tmp = ISHFT(pack_tmp, 0)
   52381      378816 :          ipack = ipack + 1
   52382      378816 :          packed_data(ipack) = pack_tmp
   52383             :       END DO
   52384       23676 :       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       23676 :    END SUBROUTINE ints2bits_62
   52388             : 
   52389             : ! **************************************************************************************************
   52390             : !> \brief ...
   52391             : !> \param Ndata ...
   52392             : !> \param packed_data ...
   52393             : !> \param full_data ...
   52394             : ! **************************************************************************************************
   52395       95427 :    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       95427 :       ipack = 0
   52406       95427 :       idata = 0
   52407       95427 :       pack_tmp = 0
   52408       95427 :       Ndata_rep = (Ndata/64)*64
   52409       95427 :       DO kdata = 1, Ndata_rep, 64
   52410     1526832 :          idata = idata + 1
   52411     1526832 :          data_tmp = ISHFT(pack_tmp, 62)
   52412     1526832 :          ipack = ipack + 1
   52413     1526832 :          pack_tmp = packed_data(ipack)
   52414     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(62)))
   52415     1526832 :          pack_tmp = ISHFT(pack_tmp, -62)
   52416     1526832 :          idata = idata + 1
   52417     1526832 :          data_tmp = ISHFT(pack_tmp, 60)
   52418     1526832 :          ipack = ipack + 1
   52419     1526832 :          pack_tmp = packed_data(ipack)
   52420     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   52421     1526832 :          pack_tmp = ISHFT(pack_tmp, -60)
   52422     1526832 :          idata = idata + 1
   52423     1526832 :          data_tmp = ISHFT(pack_tmp, 58)
   52424     1526832 :          ipack = ipack + 1
   52425     1526832 :          pack_tmp = packed_data(ipack)
   52426     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   52427     1526832 :          pack_tmp = ISHFT(pack_tmp, -58)
   52428     1526832 :          idata = idata + 1
   52429     1526832 :          data_tmp = ISHFT(pack_tmp, 56)
   52430     1526832 :          ipack = ipack + 1
   52431     1526832 :          pack_tmp = packed_data(ipack)
   52432     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   52433     1526832 :          pack_tmp = ISHFT(pack_tmp, -56)
   52434     1526832 :          idata = idata + 1
   52435     1526832 :          data_tmp = ISHFT(pack_tmp, 54)
   52436     1526832 :          ipack = ipack + 1
   52437     1526832 :          pack_tmp = packed_data(ipack)
   52438     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   52439     1526832 :          pack_tmp = ISHFT(pack_tmp, -54)
   52440     1526832 :          idata = idata + 1
   52441     1526832 :          data_tmp = ISHFT(pack_tmp, 52)
   52442     1526832 :          ipack = ipack + 1
   52443     1526832 :          pack_tmp = packed_data(ipack)
   52444     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   52445     1526832 :          pack_tmp = ISHFT(pack_tmp, -52)
   52446     1526832 :          idata = idata + 1
   52447     1526832 :          data_tmp = ISHFT(pack_tmp, 50)
   52448     1526832 :          ipack = ipack + 1
   52449     1526832 :          pack_tmp = packed_data(ipack)
   52450     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   52451     1526832 :          pack_tmp = ISHFT(pack_tmp, -50)
   52452     1526832 :          idata = idata + 1
   52453     1526832 :          data_tmp = ISHFT(pack_tmp, 48)
   52454     1526832 :          ipack = ipack + 1
   52455     1526832 :          pack_tmp = packed_data(ipack)
   52456     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   52457     1526832 :          pack_tmp = ISHFT(pack_tmp, -48)
   52458     1526832 :          idata = idata + 1
   52459     1526832 :          data_tmp = ISHFT(pack_tmp, 46)
   52460     1526832 :          ipack = ipack + 1
   52461     1526832 :          pack_tmp = packed_data(ipack)
   52462     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   52463     1526832 :          pack_tmp = ISHFT(pack_tmp, -46)
   52464     1526832 :          idata = idata + 1
   52465     1526832 :          data_tmp = ISHFT(pack_tmp, 44)
   52466     1526832 :          ipack = ipack + 1
   52467     1526832 :          pack_tmp = packed_data(ipack)
   52468     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   52469     1526832 :          pack_tmp = ISHFT(pack_tmp, -44)
   52470     1526832 :          idata = idata + 1
   52471     1526832 :          data_tmp = ISHFT(pack_tmp, 42)
   52472     1526832 :          ipack = ipack + 1
   52473     1526832 :          pack_tmp = packed_data(ipack)
   52474     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   52475     1526832 :          pack_tmp = ISHFT(pack_tmp, -42)
   52476     1526832 :          idata = idata + 1
   52477     1526832 :          data_tmp = ISHFT(pack_tmp, 40)
   52478     1526832 :          ipack = ipack + 1
   52479     1526832 :          pack_tmp = packed_data(ipack)
   52480     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   52481     1526832 :          pack_tmp = ISHFT(pack_tmp, -40)
   52482     1526832 :          idata = idata + 1
   52483     1526832 :          data_tmp = ISHFT(pack_tmp, 38)
   52484     1526832 :          ipack = ipack + 1
   52485     1526832 :          pack_tmp = packed_data(ipack)
   52486     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   52487     1526832 :          pack_tmp = ISHFT(pack_tmp, -38)
   52488     1526832 :          idata = idata + 1
   52489     1526832 :          data_tmp = ISHFT(pack_tmp, 36)
   52490     1526832 :          ipack = ipack + 1
   52491     1526832 :          pack_tmp = packed_data(ipack)
   52492     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   52493     1526832 :          pack_tmp = ISHFT(pack_tmp, -36)
   52494     1526832 :          idata = idata + 1
   52495     1526832 :          data_tmp = ISHFT(pack_tmp, 34)
   52496     1526832 :          ipack = ipack + 1
   52497     1526832 :          pack_tmp = packed_data(ipack)
   52498     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   52499     1526832 :          pack_tmp = ISHFT(pack_tmp, -34)
   52500     1526832 :          idata = idata + 1
   52501     1526832 :          data_tmp = ISHFT(pack_tmp, 32)
   52502     1526832 :          ipack = ipack + 1
   52503     1526832 :          pack_tmp = packed_data(ipack)
   52504     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   52505     1526832 :          pack_tmp = ISHFT(pack_tmp, -32)
   52506     1526832 :          idata = idata + 1
   52507     1526832 :          data_tmp = ISHFT(pack_tmp, 30)
   52508     1526832 :          ipack = ipack + 1
   52509     1526832 :          pack_tmp = packed_data(ipack)
   52510     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   52511     1526832 :          pack_tmp = ISHFT(pack_tmp, -30)
   52512     1526832 :          idata = idata + 1
   52513     1526832 :          data_tmp = ISHFT(pack_tmp, 28)
   52514     1526832 :          ipack = ipack + 1
   52515     1526832 :          pack_tmp = packed_data(ipack)
   52516     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   52517     1526832 :          pack_tmp = ISHFT(pack_tmp, -28)
   52518     1526832 :          idata = idata + 1
   52519     1526832 :          data_tmp = ISHFT(pack_tmp, 26)
   52520     1526832 :          ipack = ipack + 1
   52521     1526832 :          pack_tmp = packed_data(ipack)
   52522     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   52523     1526832 :          pack_tmp = ISHFT(pack_tmp, -26)
   52524     1526832 :          idata = idata + 1
   52525     1526832 :          data_tmp = ISHFT(pack_tmp, 24)
   52526     1526832 :          ipack = ipack + 1
   52527     1526832 :          pack_tmp = packed_data(ipack)
   52528     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   52529     1526832 :          pack_tmp = ISHFT(pack_tmp, -24)
   52530     1526832 :          idata = idata + 1
   52531     1526832 :          data_tmp = ISHFT(pack_tmp, 22)
   52532     1526832 :          ipack = ipack + 1
   52533     1526832 :          pack_tmp = packed_data(ipack)
   52534     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   52535     1526832 :          pack_tmp = ISHFT(pack_tmp, -22)
   52536     1526832 :          idata = idata + 1
   52537     1526832 :          data_tmp = ISHFT(pack_tmp, 20)
   52538     1526832 :          ipack = ipack + 1
   52539     1526832 :          pack_tmp = packed_data(ipack)
   52540     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   52541     1526832 :          pack_tmp = ISHFT(pack_tmp, -20)
   52542     1526832 :          idata = idata + 1
   52543     1526832 :          data_tmp = ISHFT(pack_tmp, 18)
   52544     1526832 :          ipack = ipack + 1
   52545     1526832 :          pack_tmp = packed_data(ipack)
   52546     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   52547     1526832 :          pack_tmp = ISHFT(pack_tmp, -18)
   52548     1526832 :          idata = idata + 1
   52549     1526832 :          data_tmp = ISHFT(pack_tmp, 16)
   52550     1526832 :          ipack = ipack + 1
   52551     1526832 :          pack_tmp = packed_data(ipack)
   52552     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   52553     1526832 :          pack_tmp = ISHFT(pack_tmp, -16)
   52554     1526832 :          idata = idata + 1
   52555     1526832 :          data_tmp = ISHFT(pack_tmp, 14)
   52556     1526832 :          ipack = ipack + 1
   52557     1526832 :          pack_tmp = packed_data(ipack)
   52558     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   52559     1526832 :          pack_tmp = ISHFT(pack_tmp, -14)
   52560     1526832 :          idata = idata + 1
   52561     1526832 :          data_tmp = ISHFT(pack_tmp, 12)
   52562     1526832 :          ipack = ipack + 1
   52563     1526832 :          pack_tmp = packed_data(ipack)
   52564     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   52565     1526832 :          pack_tmp = ISHFT(pack_tmp, -12)
   52566     1526832 :          idata = idata + 1
   52567     1526832 :          data_tmp = ISHFT(pack_tmp, 10)
   52568     1526832 :          ipack = ipack + 1
   52569     1526832 :          pack_tmp = packed_data(ipack)
   52570     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   52571     1526832 :          pack_tmp = ISHFT(pack_tmp, -10)
   52572     1526832 :          idata = idata + 1
   52573     1526832 :          data_tmp = ISHFT(pack_tmp, 8)
   52574     1526832 :          ipack = ipack + 1
   52575     1526832 :          pack_tmp = packed_data(ipack)
   52576     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   52577     1526832 :          pack_tmp = ISHFT(pack_tmp, -8)
   52578     1526832 :          idata = idata + 1
   52579     1526832 :          data_tmp = ISHFT(pack_tmp, 6)
   52580     1526832 :          ipack = ipack + 1
   52581     1526832 :          pack_tmp = packed_data(ipack)
   52582     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   52583     1526832 :          pack_tmp = ISHFT(pack_tmp, -6)
   52584     1526832 :          idata = idata + 1
   52585     1526832 :          data_tmp = ISHFT(pack_tmp, 4)
   52586     1526832 :          ipack = ipack + 1
   52587     1526832 :          pack_tmp = packed_data(ipack)
   52588     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   52589     1526832 :          pack_tmp = ISHFT(pack_tmp, -4)
   52590     1526832 :          idata = idata + 1
   52591     1526832 :          data_tmp = ISHFT(pack_tmp, 2)
   52592     1526832 :          ipack = ipack + 1
   52593     1526832 :          pack_tmp = packed_data(ipack)
   52594     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   52595     1526832 :          pack_tmp = ISHFT(pack_tmp, -2)
   52596     1526832 :          idata = idata + 1
   52597     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   52598     1526832 :          full_data(idata) = data_tmp
   52599     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   52600     1526832 :          idata = idata + 1
   52601     1526832 :          data_tmp = ISHFT(pack_tmp, 62)
   52602     1526832 :          ipack = ipack + 1
   52603     1526832 :          pack_tmp = packed_data(ipack)
   52604     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(62)))
   52605     1526832 :          pack_tmp = ISHFT(pack_tmp, -62)
   52606     1526832 :          idata = idata + 1
   52607     1526832 :          data_tmp = ISHFT(pack_tmp, 60)
   52608     1526832 :          ipack = ipack + 1
   52609     1526832 :          pack_tmp = packed_data(ipack)
   52610     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   52611     1526832 :          pack_tmp = ISHFT(pack_tmp, -60)
   52612     1526832 :          idata = idata + 1
   52613     1526832 :          data_tmp = ISHFT(pack_tmp, 58)
   52614     1526832 :          ipack = ipack + 1
   52615     1526832 :          pack_tmp = packed_data(ipack)
   52616     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   52617     1526832 :          pack_tmp = ISHFT(pack_tmp, -58)
   52618     1526832 :          idata = idata + 1
   52619     1526832 :          data_tmp = ISHFT(pack_tmp, 56)
   52620     1526832 :          ipack = ipack + 1
   52621     1526832 :          pack_tmp = packed_data(ipack)
   52622     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   52623     1526832 :          pack_tmp = ISHFT(pack_tmp, -56)
   52624     1526832 :          idata = idata + 1
   52625     1526832 :          data_tmp = ISHFT(pack_tmp, 54)
   52626     1526832 :          ipack = ipack + 1
   52627     1526832 :          pack_tmp = packed_data(ipack)
   52628     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   52629     1526832 :          pack_tmp = ISHFT(pack_tmp, -54)
   52630     1526832 :          idata = idata + 1
   52631     1526832 :          data_tmp = ISHFT(pack_tmp, 52)
   52632     1526832 :          ipack = ipack + 1
   52633     1526832 :          pack_tmp = packed_data(ipack)
   52634     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   52635     1526832 :          pack_tmp = ISHFT(pack_tmp, -52)
   52636     1526832 :          idata = idata + 1
   52637     1526832 :          data_tmp = ISHFT(pack_tmp, 50)
   52638     1526832 :          ipack = ipack + 1
   52639     1526832 :          pack_tmp = packed_data(ipack)
   52640     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   52641     1526832 :          pack_tmp = ISHFT(pack_tmp, -50)
   52642     1526832 :          idata = idata + 1
   52643     1526832 :          data_tmp = ISHFT(pack_tmp, 48)
   52644     1526832 :          ipack = ipack + 1
   52645     1526832 :          pack_tmp = packed_data(ipack)
   52646     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   52647     1526832 :          pack_tmp = ISHFT(pack_tmp, -48)
   52648     1526832 :          idata = idata + 1
   52649     1526832 :          data_tmp = ISHFT(pack_tmp, 46)
   52650     1526832 :          ipack = ipack + 1
   52651     1526832 :          pack_tmp = packed_data(ipack)
   52652     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   52653     1526832 :          pack_tmp = ISHFT(pack_tmp, -46)
   52654     1526832 :          idata = idata + 1
   52655     1526832 :          data_tmp = ISHFT(pack_tmp, 44)
   52656     1526832 :          ipack = ipack + 1
   52657     1526832 :          pack_tmp = packed_data(ipack)
   52658     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   52659     1526832 :          pack_tmp = ISHFT(pack_tmp, -44)
   52660     1526832 :          idata = idata + 1
   52661     1526832 :          data_tmp = ISHFT(pack_tmp, 42)
   52662     1526832 :          ipack = ipack + 1
   52663     1526832 :          pack_tmp = packed_data(ipack)
   52664     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   52665     1526832 :          pack_tmp = ISHFT(pack_tmp, -42)
   52666     1526832 :          idata = idata + 1
   52667     1526832 :          data_tmp = ISHFT(pack_tmp, 40)
   52668     1526832 :          ipack = ipack + 1
   52669     1526832 :          pack_tmp = packed_data(ipack)
   52670     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   52671     1526832 :          pack_tmp = ISHFT(pack_tmp, -40)
   52672     1526832 :          idata = idata + 1
   52673     1526832 :          data_tmp = ISHFT(pack_tmp, 38)
   52674     1526832 :          ipack = ipack + 1
   52675     1526832 :          pack_tmp = packed_data(ipack)
   52676     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   52677     1526832 :          pack_tmp = ISHFT(pack_tmp, -38)
   52678     1526832 :          idata = idata + 1
   52679     1526832 :          data_tmp = ISHFT(pack_tmp, 36)
   52680     1526832 :          ipack = ipack + 1
   52681     1526832 :          pack_tmp = packed_data(ipack)
   52682     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   52683     1526832 :          pack_tmp = ISHFT(pack_tmp, -36)
   52684     1526832 :          idata = idata + 1
   52685     1526832 :          data_tmp = ISHFT(pack_tmp, 34)
   52686     1526832 :          ipack = ipack + 1
   52687     1526832 :          pack_tmp = packed_data(ipack)
   52688     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   52689     1526832 :          pack_tmp = ISHFT(pack_tmp, -34)
   52690     1526832 :          idata = idata + 1
   52691     1526832 :          data_tmp = ISHFT(pack_tmp, 32)
   52692     1526832 :          ipack = ipack + 1
   52693     1526832 :          pack_tmp = packed_data(ipack)
   52694     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   52695     1526832 :          pack_tmp = ISHFT(pack_tmp, -32)
   52696     1526832 :          idata = idata + 1
   52697     1526832 :          data_tmp = ISHFT(pack_tmp, 30)
   52698     1526832 :          ipack = ipack + 1
   52699     1526832 :          pack_tmp = packed_data(ipack)
   52700     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   52701     1526832 :          pack_tmp = ISHFT(pack_tmp, -30)
   52702     1526832 :          idata = idata + 1
   52703     1526832 :          data_tmp = ISHFT(pack_tmp, 28)
   52704     1526832 :          ipack = ipack + 1
   52705     1526832 :          pack_tmp = packed_data(ipack)
   52706     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   52707     1526832 :          pack_tmp = ISHFT(pack_tmp, -28)
   52708     1526832 :          idata = idata + 1
   52709     1526832 :          data_tmp = ISHFT(pack_tmp, 26)
   52710     1526832 :          ipack = ipack + 1
   52711     1526832 :          pack_tmp = packed_data(ipack)
   52712     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   52713     1526832 :          pack_tmp = ISHFT(pack_tmp, -26)
   52714     1526832 :          idata = idata + 1
   52715     1526832 :          data_tmp = ISHFT(pack_tmp, 24)
   52716     1526832 :          ipack = ipack + 1
   52717     1526832 :          pack_tmp = packed_data(ipack)
   52718     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   52719     1526832 :          pack_tmp = ISHFT(pack_tmp, -24)
   52720     1526832 :          idata = idata + 1
   52721     1526832 :          data_tmp = ISHFT(pack_tmp, 22)
   52722     1526832 :          ipack = ipack + 1
   52723     1526832 :          pack_tmp = packed_data(ipack)
   52724     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   52725     1526832 :          pack_tmp = ISHFT(pack_tmp, -22)
   52726     1526832 :          idata = idata + 1
   52727     1526832 :          data_tmp = ISHFT(pack_tmp, 20)
   52728     1526832 :          ipack = ipack + 1
   52729     1526832 :          pack_tmp = packed_data(ipack)
   52730     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   52731     1526832 :          pack_tmp = ISHFT(pack_tmp, -20)
   52732     1526832 :          idata = idata + 1
   52733     1526832 :          data_tmp = ISHFT(pack_tmp, 18)
   52734     1526832 :          ipack = ipack + 1
   52735     1526832 :          pack_tmp = packed_data(ipack)
   52736     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   52737     1526832 :          pack_tmp = ISHFT(pack_tmp, -18)
   52738     1526832 :          idata = idata + 1
   52739     1526832 :          data_tmp = ISHFT(pack_tmp, 16)
   52740     1526832 :          ipack = ipack + 1
   52741     1526832 :          pack_tmp = packed_data(ipack)
   52742     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   52743     1526832 :          pack_tmp = ISHFT(pack_tmp, -16)
   52744     1526832 :          idata = idata + 1
   52745     1526832 :          data_tmp = ISHFT(pack_tmp, 14)
   52746     1526832 :          ipack = ipack + 1
   52747     1526832 :          pack_tmp = packed_data(ipack)
   52748     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   52749     1526832 :          pack_tmp = ISHFT(pack_tmp, -14)
   52750     1526832 :          idata = idata + 1
   52751     1526832 :          data_tmp = ISHFT(pack_tmp, 12)
   52752     1526832 :          ipack = ipack + 1
   52753     1526832 :          pack_tmp = packed_data(ipack)
   52754     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   52755     1526832 :          pack_tmp = ISHFT(pack_tmp, -12)
   52756     1526832 :          idata = idata + 1
   52757     1526832 :          data_tmp = ISHFT(pack_tmp, 10)
   52758     1526832 :          ipack = ipack + 1
   52759     1526832 :          pack_tmp = packed_data(ipack)
   52760     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   52761     1526832 :          pack_tmp = ISHFT(pack_tmp, -10)
   52762     1526832 :          idata = idata + 1
   52763     1526832 :          data_tmp = ISHFT(pack_tmp, 8)
   52764     1526832 :          ipack = ipack + 1
   52765     1526832 :          pack_tmp = packed_data(ipack)
   52766     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   52767     1526832 :          pack_tmp = ISHFT(pack_tmp, -8)
   52768     1526832 :          idata = idata + 1
   52769     1526832 :          data_tmp = ISHFT(pack_tmp, 6)
   52770     1526832 :          ipack = ipack + 1
   52771     1526832 :          pack_tmp = packed_data(ipack)
   52772     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   52773     1526832 :          pack_tmp = ISHFT(pack_tmp, -6)
   52774     1526832 :          idata = idata + 1
   52775     1526832 :          data_tmp = ISHFT(pack_tmp, 4)
   52776     1526832 :          ipack = ipack + 1
   52777     1526832 :          pack_tmp = packed_data(ipack)
   52778     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   52779     1526832 :          pack_tmp = ISHFT(pack_tmp, -4)
   52780     1526832 :          idata = idata + 1
   52781     1526832 :          data_tmp = ISHFT(pack_tmp, 2)
   52782     1526832 :          ipack = ipack + 1
   52783     1526832 :          pack_tmp = packed_data(ipack)
   52784     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   52785     1526832 :          pack_tmp = ISHFT(pack_tmp, -2)
   52786     1526832 :          idata = idata + 1
   52787     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   52788     1526832 :          full_data(idata) = data_tmp
   52789     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   52790             :       END DO
   52791       95427 :       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       95427 :    END SUBROUTINE bits2ints_62
   52795             : 
   52796             : ! **************************************************************************************************
   52797             : !> \brief ...
   52798             : !> \param Ndata ...
   52799             : !> \param packed_data ...
   52800             : !> \param full_data ...
   52801             : ! **************************************************************************************************
   52802       23676 :    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       23676 :       idata = 0
   52813       23676 :       ipack = 0
   52814       23676 :       Ndata_rep = (Ndata/64)*64
   52815       23676 :       DO kdata = 1, Ndata_rep, 64
   52816      378816 :          pack_tmp = 0
   52817      378816 :          idata = idata + 1
   52818      378816 :          data_tmp = full_data(idata)
   52819      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52820      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52821      378816 :          pack_tmp = ISHFT(pack_tmp, -1)
   52822      378816 :          idata = idata + 1
   52823      378816 :          data_tmp = full_data(idata)
   52824      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52825      378816 :          data_tmp = IAND(data_tmp, mask_left(1))
   52826      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52827      378816 :          ipack = ipack + 1
   52828      378816 :          packed_data(ipack) = pack_tmp
   52829      378816 :          data_tmp = full_data(idata)
   52830      378816 :          pack_tmp = ISHFT(data_tmp, 2)
   52831      378816 :          pack_tmp = ISHFT(pack_tmp, -2)
   52832      378816 :          idata = idata + 1
   52833      378816 :          data_tmp = full_data(idata)
   52834      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52835      378816 :          data_tmp = IAND(data_tmp, mask_left(2))
   52836      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52837      378816 :          ipack = ipack + 1
   52838      378816 :          packed_data(ipack) = pack_tmp
   52839      378816 :          data_tmp = full_data(idata)
   52840      378816 :          pack_tmp = ISHFT(data_tmp, 3)
   52841      378816 :          pack_tmp = ISHFT(pack_tmp, -3)
   52842      378816 :          idata = idata + 1
   52843      378816 :          data_tmp = full_data(idata)
   52844      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52845      378816 :          data_tmp = IAND(data_tmp, mask_left(3))
   52846      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52847      378816 :          ipack = ipack + 1
   52848      378816 :          packed_data(ipack) = pack_tmp
   52849      378816 :          data_tmp = full_data(idata)
   52850      378816 :          pack_tmp = ISHFT(data_tmp, 4)
   52851      378816 :          pack_tmp = ISHFT(pack_tmp, -4)
   52852      378816 :          idata = idata + 1
   52853      378816 :          data_tmp = full_data(idata)
   52854      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52855      378816 :          data_tmp = IAND(data_tmp, mask_left(4))
   52856      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52857      378816 :          ipack = ipack + 1
   52858      378816 :          packed_data(ipack) = pack_tmp
   52859      378816 :          data_tmp = full_data(idata)
   52860      378816 :          pack_tmp = ISHFT(data_tmp, 5)
   52861      378816 :          pack_tmp = ISHFT(pack_tmp, -5)
   52862      378816 :          idata = idata + 1
   52863      378816 :          data_tmp = full_data(idata)
   52864      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52865      378816 :          data_tmp = IAND(data_tmp, mask_left(5))
   52866      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52867      378816 :          ipack = ipack + 1
   52868      378816 :          packed_data(ipack) = pack_tmp
   52869      378816 :          data_tmp = full_data(idata)
   52870      378816 :          pack_tmp = ISHFT(data_tmp, 6)
   52871      378816 :          pack_tmp = ISHFT(pack_tmp, -6)
   52872      378816 :          idata = idata + 1
   52873      378816 :          data_tmp = full_data(idata)
   52874      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52875      378816 :          data_tmp = IAND(data_tmp, mask_left(6))
   52876      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52877      378816 :          ipack = ipack + 1
   52878      378816 :          packed_data(ipack) = pack_tmp
   52879      378816 :          data_tmp = full_data(idata)
   52880      378816 :          pack_tmp = ISHFT(data_tmp, 7)
   52881      378816 :          pack_tmp = ISHFT(pack_tmp, -7)
   52882      378816 :          idata = idata + 1
   52883      378816 :          data_tmp = full_data(idata)
   52884      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52885      378816 :          data_tmp = IAND(data_tmp, mask_left(7))
   52886      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52887      378816 :          ipack = ipack + 1
   52888      378816 :          packed_data(ipack) = pack_tmp
   52889      378816 :          data_tmp = full_data(idata)
   52890      378816 :          pack_tmp = ISHFT(data_tmp, 8)
   52891      378816 :          pack_tmp = ISHFT(pack_tmp, -8)
   52892      378816 :          idata = idata + 1
   52893      378816 :          data_tmp = full_data(idata)
   52894      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52895      378816 :          data_tmp = IAND(data_tmp, mask_left(8))
   52896      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52897      378816 :          ipack = ipack + 1
   52898      378816 :          packed_data(ipack) = pack_tmp
   52899      378816 :          data_tmp = full_data(idata)
   52900      378816 :          pack_tmp = ISHFT(data_tmp, 9)
   52901      378816 :          pack_tmp = ISHFT(pack_tmp, -9)
   52902      378816 :          idata = idata + 1
   52903      378816 :          data_tmp = full_data(idata)
   52904      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52905      378816 :          data_tmp = IAND(data_tmp, mask_left(9))
   52906      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52907      378816 :          ipack = ipack + 1
   52908      378816 :          packed_data(ipack) = pack_tmp
   52909      378816 :          data_tmp = full_data(idata)
   52910      378816 :          pack_tmp = ISHFT(data_tmp, 10)
   52911      378816 :          pack_tmp = ISHFT(pack_tmp, -10)
   52912      378816 :          idata = idata + 1
   52913      378816 :          data_tmp = full_data(idata)
   52914      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52915      378816 :          data_tmp = IAND(data_tmp, mask_left(10))
   52916      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52917      378816 :          ipack = ipack + 1
   52918      378816 :          packed_data(ipack) = pack_tmp
   52919      378816 :          data_tmp = full_data(idata)
   52920      378816 :          pack_tmp = ISHFT(data_tmp, 11)
   52921      378816 :          pack_tmp = ISHFT(pack_tmp, -11)
   52922      378816 :          idata = idata + 1
   52923      378816 :          data_tmp = full_data(idata)
   52924      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52925      378816 :          data_tmp = IAND(data_tmp, mask_left(11))
   52926      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52927      378816 :          ipack = ipack + 1
   52928      378816 :          packed_data(ipack) = pack_tmp
   52929      378816 :          data_tmp = full_data(idata)
   52930      378816 :          pack_tmp = ISHFT(data_tmp, 12)
   52931      378816 :          pack_tmp = ISHFT(pack_tmp, -12)
   52932      378816 :          idata = idata + 1
   52933      378816 :          data_tmp = full_data(idata)
   52934      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52935      378816 :          data_tmp = IAND(data_tmp, mask_left(12))
   52936      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52937      378816 :          ipack = ipack + 1
   52938      378816 :          packed_data(ipack) = pack_tmp
   52939      378816 :          data_tmp = full_data(idata)
   52940      378816 :          pack_tmp = ISHFT(data_tmp, 13)
   52941      378816 :          pack_tmp = ISHFT(pack_tmp, -13)
   52942      378816 :          idata = idata + 1
   52943      378816 :          data_tmp = full_data(idata)
   52944      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52945      378816 :          data_tmp = IAND(data_tmp, mask_left(13))
   52946      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52947      378816 :          ipack = ipack + 1
   52948      378816 :          packed_data(ipack) = pack_tmp
   52949      378816 :          data_tmp = full_data(idata)
   52950      378816 :          pack_tmp = ISHFT(data_tmp, 14)
   52951      378816 :          pack_tmp = ISHFT(pack_tmp, -14)
   52952      378816 :          idata = idata + 1
   52953      378816 :          data_tmp = full_data(idata)
   52954      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52955      378816 :          data_tmp = IAND(data_tmp, mask_left(14))
   52956      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52957      378816 :          ipack = ipack + 1
   52958      378816 :          packed_data(ipack) = pack_tmp
   52959      378816 :          data_tmp = full_data(idata)
   52960      378816 :          pack_tmp = ISHFT(data_tmp, 15)
   52961      378816 :          pack_tmp = ISHFT(pack_tmp, -15)
   52962      378816 :          idata = idata + 1
   52963      378816 :          data_tmp = full_data(idata)
   52964      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52965      378816 :          data_tmp = IAND(data_tmp, mask_left(15))
   52966      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52967      378816 :          ipack = ipack + 1
   52968      378816 :          packed_data(ipack) = pack_tmp
   52969      378816 :          data_tmp = full_data(idata)
   52970      378816 :          pack_tmp = ISHFT(data_tmp, 16)
   52971      378816 :          pack_tmp = ISHFT(pack_tmp, -16)
   52972      378816 :          idata = idata + 1
   52973      378816 :          data_tmp = full_data(idata)
   52974      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52975      378816 :          data_tmp = IAND(data_tmp, mask_left(16))
   52976      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52977      378816 :          ipack = ipack + 1
   52978      378816 :          packed_data(ipack) = pack_tmp
   52979      378816 :          data_tmp = full_data(idata)
   52980      378816 :          pack_tmp = ISHFT(data_tmp, 17)
   52981      378816 :          pack_tmp = ISHFT(pack_tmp, -17)
   52982      378816 :          idata = idata + 1
   52983      378816 :          data_tmp = full_data(idata)
   52984      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52985      378816 :          data_tmp = IAND(data_tmp, mask_left(17))
   52986      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52987      378816 :          ipack = ipack + 1
   52988      378816 :          packed_data(ipack) = pack_tmp
   52989      378816 :          data_tmp = full_data(idata)
   52990      378816 :          pack_tmp = ISHFT(data_tmp, 18)
   52991      378816 :          pack_tmp = ISHFT(pack_tmp, -18)
   52992      378816 :          idata = idata + 1
   52993      378816 :          data_tmp = full_data(idata)
   52994      378816 :          data_tmp = ISHFT(data_tmp, 1)
   52995      378816 :          data_tmp = IAND(data_tmp, mask_left(18))
   52996      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52997      378816 :          ipack = ipack + 1
   52998      378816 :          packed_data(ipack) = pack_tmp
   52999      378816 :          data_tmp = full_data(idata)
   53000      378816 :          pack_tmp = ISHFT(data_tmp, 19)
   53001      378816 :          pack_tmp = ISHFT(pack_tmp, -19)
   53002      378816 :          idata = idata + 1
   53003      378816 :          data_tmp = full_data(idata)
   53004      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53005      378816 :          data_tmp = IAND(data_tmp, mask_left(19))
   53006      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53007      378816 :          ipack = ipack + 1
   53008      378816 :          packed_data(ipack) = pack_tmp
   53009      378816 :          data_tmp = full_data(idata)
   53010      378816 :          pack_tmp = ISHFT(data_tmp, 20)
   53011      378816 :          pack_tmp = ISHFT(pack_tmp, -20)
   53012      378816 :          idata = idata + 1
   53013      378816 :          data_tmp = full_data(idata)
   53014      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53015      378816 :          data_tmp = IAND(data_tmp, mask_left(20))
   53016      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53017      378816 :          ipack = ipack + 1
   53018      378816 :          packed_data(ipack) = pack_tmp
   53019      378816 :          data_tmp = full_data(idata)
   53020      378816 :          pack_tmp = ISHFT(data_tmp, 21)
   53021      378816 :          pack_tmp = ISHFT(pack_tmp, -21)
   53022      378816 :          idata = idata + 1
   53023      378816 :          data_tmp = full_data(idata)
   53024      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53025      378816 :          data_tmp = IAND(data_tmp, mask_left(21))
   53026      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53027      378816 :          ipack = ipack + 1
   53028      378816 :          packed_data(ipack) = pack_tmp
   53029      378816 :          data_tmp = full_data(idata)
   53030      378816 :          pack_tmp = ISHFT(data_tmp, 22)
   53031      378816 :          pack_tmp = ISHFT(pack_tmp, -22)
   53032      378816 :          idata = idata + 1
   53033      378816 :          data_tmp = full_data(idata)
   53034      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53035      378816 :          data_tmp = IAND(data_tmp, mask_left(22))
   53036      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53037      378816 :          ipack = ipack + 1
   53038      378816 :          packed_data(ipack) = pack_tmp
   53039      378816 :          data_tmp = full_data(idata)
   53040      378816 :          pack_tmp = ISHFT(data_tmp, 23)
   53041      378816 :          pack_tmp = ISHFT(pack_tmp, -23)
   53042      378816 :          idata = idata + 1
   53043      378816 :          data_tmp = full_data(idata)
   53044      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53045      378816 :          data_tmp = IAND(data_tmp, mask_left(23))
   53046      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53047      378816 :          ipack = ipack + 1
   53048      378816 :          packed_data(ipack) = pack_tmp
   53049      378816 :          data_tmp = full_data(idata)
   53050      378816 :          pack_tmp = ISHFT(data_tmp, 24)
   53051      378816 :          pack_tmp = ISHFT(pack_tmp, -24)
   53052      378816 :          idata = idata + 1
   53053      378816 :          data_tmp = full_data(idata)
   53054      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53055      378816 :          data_tmp = IAND(data_tmp, mask_left(24))
   53056      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53057      378816 :          ipack = ipack + 1
   53058      378816 :          packed_data(ipack) = pack_tmp
   53059      378816 :          data_tmp = full_data(idata)
   53060      378816 :          pack_tmp = ISHFT(data_tmp, 25)
   53061      378816 :          pack_tmp = ISHFT(pack_tmp, -25)
   53062      378816 :          idata = idata + 1
   53063      378816 :          data_tmp = full_data(idata)
   53064      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53065      378816 :          data_tmp = IAND(data_tmp, mask_left(25))
   53066      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53067      378816 :          ipack = ipack + 1
   53068      378816 :          packed_data(ipack) = pack_tmp
   53069      378816 :          data_tmp = full_data(idata)
   53070      378816 :          pack_tmp = ISHFT(data_tmp, 26)
   53071      378816 :          pack_tmp = ISHFT(pack_tmp, -26)
   53072      378816 :          idata = idata + 1
   53073      378816 :          data_tmp = full_data(idata)
   53074      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53075      378816 :          data_tmp = IAND(data_tmp, mask_left(26))
   53076      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53077      378816 :          ipack = ipack + 1
   53078      378816 :          packed_data(ipack) = pack_tmp
   53079      378816 :          data_tmp = full_data(idata)
   53080      378816 :          pack_tmp = ISHFT(data_tmp, 27)
   53081      378816 :          pack_tmp = ISHFT(pack_tmp, -27)
   53082      378816 :          idata = idata + 1
   53083      378816 :          data_tmp = full_data(idata)
   53084      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53085      378816 :          data_tmp = IAND(data_tmp, mask_left(27))
   53086      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53087      378816 :          ipack = ipack + 1
   53088      378816 :          packed_data(ipack) = pack_tmp
   53089      378816 :          data_tmp = full_data(idata)
   53090      378816 :          pack_tmp = ISHFT(data_tmp, 28)
   53091      378816 :          pack_tmp = ISHFT(pack_tmp, -28)
   53092      378816 :          idata = idata + 1
   53093      378816 :          data_tmp = full_data(idata)
   53094      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53095      378816 :          data_tmp = IAND(data_tmp, mask_left(28))
   53096      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53097      378816 :          ipack = ipack + 1
   53098      378816 :          packed_data(ipack) = pack_tmp
   53099      378816 :          data_tmp = full_data(idata)
   53100      378816 :          pack_tmp = ISHFT(data_tmp, 29)
   53101      378816 :          pack_tmp = ISHFT(pack_tmp, -29)
   53102      378816 :          idata = idata + 1
   53103      378816 :          data_tmp = full_data(idata)
   53104      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53105      378816 :          data_tmp = IAND(data_tmp, mask_left(29))
   53106      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53107      378816 :          ipack = ipack + 1
   53108      378816 :          packed_data(ipack) = pack_tmp
   53109      378816 :          data_tmp = full_data(idata)
   53110      378816 :          pack_tmp = ISHFT(data_tmp, 30)
   53111      378816 :          pack_tmp = ISHFT(pack_tmp, -30)
   53112      378816 :          idata = idata + 1
   53113      378816 :          data_tmp = full_data(idata)
   53114      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53115      378816 :          data_tmp = IAND(data_tmp, mask_left(30))
   53116      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53117      378816 :          ipack = ipack + 1
   53118      378816 :          packed_data(ipack) = pack_tmp
   53119      378816 :          data_tmp = full_data(idata)
   53120      378816 :          pack_tmp = ISHFT(data_tmp, 31)
   53121      378816 :          pack_tmp = ISHFT(pack_tmp, -31)
   53122      378816 :          idata = idata + 1
   53123      378816 :          data_tmp = full_data(idata)
   53124      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53125      378816 :          data_tmp = IAND(data_tmp, mask_left(31))
   53126      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53127      378816 :          ipack = ipack + 1
   53128      378816 :          packed_data(ipack) = pack_tmp
   53129      378816 :          data_tmp = full_data(idata)
   53130      378816 :          pack_tmp = ISHFT(data_tmp, 32)
   53131      378816 :          pack_tmp = ISHFT(pack_tmp, -32)
   53132      378816 :          idata = idata + 1
   53133      378816 :          data_tmp = full_data(idata)
   53134      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53135      378816 :          data_tmp = IAND(data_tmp, mask_left(32))
   53136      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53137      378816 :          ipack = ipack + 1
   53138      378816 :          packed_data(ipack) = pack_tmp
   53139      378816 :          data_tmp = full_data(idata)
   53140      378816 :          pack_tmp = ISHFT(data_tmp, 33)
   53141      378816 :          pack_tmp = ISHFT(pack_tmp, -33)
   53142      378816 :          idata = idata + 1
   53143      378816 :          data_tmp = full_data(idata)
   53144      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53145      378816 :          data_tmp = IAND(data_tmp, mask_left(33))
   53146      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53147      378816 :          ipack = ipack + 1
   53148      378816 :          packed_data(ipack) = pack_tmp
   53149      378816 :          data_tmp = full_data(idata)
   53150      378816 :          pack_tmp = ISHFT(data_tmp, 34)
   53151      378816 :          pack_tmp = ISHFT(pack_tmp, -34)
   53152      378816 :          idata = idata + 1
   53153      378816 :          data_tmp = full_data(idata)
   53154      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53155      378816 :          data_tmp = IAND(data_tmp, mask_left(34))
   53156      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53157      378816 :          ipack = ipack + 1
   53158      378816 :          packed_data(ipack) = pack_tmp
   53159      378816 :          data_tmp = full_data(idata)
   53160      378816 :          pack_tmp = ISHFT(data_tmp, 35)
   53161      378816 :          pack_tmp = ISHFT(pack_tmp, -35)
   53162      378816 :          idata = idata + 1
   53163      378816 :          data_tmp = full_data(idata)
   53164      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53165      378816 :          data_tmp = IAND(data_tmp, mask_left(35))
   53166      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53167      378816 :          ipack = ipack + 1
   53168      378816 :          packed_data(ipack) = pack_tmp
   53169      378816 :          data_tmp = full_data(idata)
   53170      378816 :          pack_tmp = ISHFT(data_tmp, 36)
   53171      378816 :          pack_tmp = ISHFT(pack_tmp, -36)
   53172      378816 :          idata = idata + 1
   53173      378816 :          data_tmp = full_data(idata)
   53174      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53175      378816 :          data_tmp = IAND(data_tmp, mask_left(36))
   53176      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53177      378816 :          ipack = ipack + 1
   53178      378816 :          packed_data(ipack) = pack_tmp
   53179      378816 :          data_tmp = full_data(idata)
   53180      378816 :          pack_tmp = ISHFT(data_tmp, 37)
   53181      378816 :          pack_tmp = ISHFT(pack_tmp, -37)
   53182      378816 :          idata = idata + 1
   53183      378816 :          data_tmp = full_data(idata)
   53184      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53185      378816 :          data_tmp = IAND(data_tmp, mask_left(37))
   53186      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53187      378816 :          ipack = ipack + 1
   53188      378816 :          packed_data(ipack) = pack_tmp
   53189      378816 :          data_tmp = full_data(idata)
   53190      378816 :          pack_tmp = ISHFT(data_tmp, 38)
   53191      378816 :          pack_tmp = ISHFT(pack_tmp, -38)
   53192      378816 :          idata = idata + 1
   53193      378816 :          data_tmp = full_data(idata)
   53194      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53195      378816 :          data_tmp = IAND(data_tmp, mask_left(38))
   53196      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53197      378816 :          ipack = ipack + 1
   53198      378816 :          packed_data(ipack) = pack_tmp
   53199      378816 :          data_tmp = full_data(idata)
   53200      378816 :          pack_tmp = ISHFT(data_tmp, 39)
   53201      378816 :          pack_tmp = ISHFT(pack_tmp, -39)
   53202      378816 :          idata = idata + 1
   53203      378816 :          data_tmp = full_data(idata)
   53204      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53205      378816 :          data_tmp = IAND(data_tmp, mask_left(39))
   53206      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53207      378816 :          ipack = ipack + 1
   53208      378816 :          packed_data(ipack) = pack_tmp
   53209      378816 :          data_tmp = full_data(idata)
   53210      378816 :          pack_tmp = ISHFT(data_tmp, 40)
   53211      378816 :          pack_tmp = ISHFT(pack_tmp, -40)
   53212      378816 :          idata = idata + 1
   53213      378816 :          data_tmp = full_data(idata)
   53214      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53215      378816 :          data_tmp = IAND(data_tmp, mask_left(40))
   53216      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53217      378816 :          ipack = ipack + 1
   53218      378816 :          packed_data(ipack) = pack_tmp
   53219      378816 :          data_tmp = full_data(idata)
   53220      378816 :          pack_tmp = ISHFT(data_tmp, 41)
   53221      378816 :          pack_tmp = ISHFT(pack_tmp, -41)
   53222      378816 :          idata = idata + 1
   53223      378816 :          data_tmp = full_data(idata)
   53224      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53225      378816 :          data_tmp = IAND(data_tmp, mask_left(41))
   53226      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53227      378816 :          ipack = ipack + 1
   53228      378816 :          packed_data(ipack) = pack_tmp
   53229      378816 :          data_tmp = full_data(idata)
   53230      378816 :          pack_tmp = ISHFT(data_tmp, 42)
   53231      378816 :          pack_tmp = ISHFT(pack_tmp, -42)
   53232      378816 :          idata = idata + 1
   53233      378816 :          data_tmp = full_data(idata)
   53234      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53235      378816 :          data_tmp = IAND(data_tmp, mask_left(42))
   53236      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53237      378816 :          ipack = ipack + 1
   53238      378816 :          packed_data(ipack) = pack_tmp
   53239      378816 :          data_tmp = full_data(idata)
   53240      378816 :          pack_tmp = ISHFT(data_tmp, 43)
   53241      378816 :          pack_tmp = ISHFT(pack_tmp, -43)
   53242      378816 :          idata = idata + 1
   53243      378816 :          data_tmp = full_data(idata)
   53244      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53245      378816 :          data_tmp = IAND(data_tmp, mask_left(43))
   53246      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53247      378816 :          ipack = ipack + 1
   53248      378816 :          packed_data(ipack) = pack_tmp
   53249      378816 :          data_tmp = full_data(idata)
   53250      378816 :          pack_tmp = ISHFT(data_tmp, 44)
   53251      378816 :          pack_tmp = ISHFT(pack_tmp, -44)
   53252      378816 :          idata = idata + 1
   53253      378816 :          data_tmp = full_data(idata)
   53254      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53255      378816 :          data_tmp = IAND(data_tmp, mask_left(44))
   53256      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53257      378816 :          ipack = ipack + 1
   53258      378816 :          packed_data(ipack) = pack_tmp
   53259      378816 :          data_tmp = full_data(idata)
   53260      378816 :          pack_tmp = ISHFT(data_tmp, 45)
   53261      378816 :          pack_tmp = ISHFT(pack_tmp, -45)
   53262      378816 :          idata = idata + 1
   53263      378816 :          data_tmp = full_data(idata)
   53264      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53265      378816 :          data_tmp = IAND(data_tmp, mask_left(45))
   53266      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53267      378816 :          ipack = ipack + 1
   53268      378816 :          packed_data(ipack) = pack_tmp
   53269      378816 :          data_tmp = full_data(idata)
   53270      378816 :          pack_tmp = ISHFT(data_tmp, 46)
   53271      378816 :          pack_tmp = ISHFT(pack_tmp, -46)
   53272      378816 :          idata = idata + 1
   53273      378816 :          data_tmp = full_data(idata)
   53274      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53275      378816 :          data_tmp = IAND(data_tmp, mask_left(46))
   53276      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53277      378816 :          ipack = ipack + 1
   53278      378816 :          packed_data(ipack) = pack_tmp
   53279      378816 :          data_tmp = full_data(idata)
   53280      378816 :          pack_tmp = ISHFT(data_tmp, 47)
   53281      378816 :          pack_tmp = ISHFT(pack_tmp, -47)
   53282      378816 :          idata = idata + 1
   53283      378816 :          data_tmp = full_data(idata)
   53284      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53285      378816 :          data_tmp = IAND(data_tmp, mask_left(47))
   53286      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53287      378816 :          ipack = ipack + 1
   53288      378816 :          packed_data(ipack) = pack_tmp
   53289      378816 :          data_tmp = full_data(idata)
   53290      378816 :          pack_tmp = ISHFT(data_tmp, 48)
   53291      378816 :          pack_tmp = ISHFT(pack_tmp, -48)
   53292      378816 :          idata = idata + 1
   53293      378816 :          data_tmp = full_data(idata)
   53294      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53295      378816 :          data_tmp = IAND(data_tmp, mask_left(48))
   53296      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53297      378816 :          ipack = ipack + 1
   53298      378816 :          packed_data(ipack) = pack_tmp
   53299      378816 :          data_tmp = full_data(idata)
   53300      378816 :          pack_tmp = ISHFT(data_tmp, 49)
   53301      378816 :          pack_tmp = ISHFT(pack_tmp, -49)
   53302      378816 :          idata = idata + 1
   53303      378816 :          data_tmp = full_data(idata)
   53304      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53305      378816 :          data_tmp = IAND(data_tmp, mask_left(49))
   53306      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53307      378816 :          ipack = ipack + 1
   53308      378816 :          packed_data(ipack) = pack_tmp
   53309      378816 :          data_tmp = full_data(idata)
   53310      378816 :          pack_tmp = ISHFT(data_tmp, 50)
   53311      378816 :          pack_tmp = ISHFT(pack_tmp, -50)
   53312      378816 :          idata = idata + 1
   53313      378816 :          data_tmp = full_data(idata)
   53314      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53315      378816 :          data_tmp = IAND(data_tmp, mask_left(50))
   53316      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53317      378816 :          ipack = ipack + 1
   53318      378816 :          packed_data(ipack) = pack_tmp
   53319      378816 :          data_tmp = full_data(idata)
   53320      378816 :          pack_tmp = ISHFT(data_tmp, 51)
   53321      378816 :          pack_tmp = ISHFT(pack_tmp, -51)
   53322      378816 :          idata = idata + 1
   53323      378816 :          data_tmp = full_data(idata)
   53324      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53325      378816 :          data_tmp = IAND(data_tmp, mask_left(51))
   53326      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53327      378816 :          ipack = ipack + 1
   53328      378816 :          packed_data(ipack) = pack_tmp
   53329      378816 :          data_tmp = full_data(idata)
   53330      378816 :          pack_tmp = ISHFT(data_tmp, 52)
   53331      378816 :          pack_tmp = ISHFT(pack_tmp, -52)
   53332      378816 :          idata = idata + 1
   53333      378816 :          data_tmp = full_data(idata)
   53334      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53335      378816 :          data_tmp = IAND(data_tmp, mask_left(52))
   53336      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53337      378816 :          ipack = ipack + 1
   53338      378816 :          packed_data(ipack) = pack_tmp
   53339      378816 :          data_tmp = full_data(idata)
   53340      378816 :          pack_tmp = ISHFT(data_tmp, 53)
   53341      378816 :          pack_tmp = ISHFT(pack_tmp, -53)
   53342      378816 :          idata = idata + 1
   53343      378816 :          data_tmp = full_data(idata)
   53344      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53345      378816 :          data_tmp = IAND(data_tmp, mask_left(53))
   53346      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53347      378816 :          ipack = ipack + 1
   53348      378816 :          packed_data(ipack) = pack_tmp
   53349      378816 :          data_tmp = full_data(idata)
   53350      378816 :          pack_tmp = ISHFT(data_tmp, 54)
   53351      378816 :          pack_tmp = ISHFT(pack_tmp, -54)
   53352      378816 :          idata = idata + 1
   53353      378816 :          data_tmp = full_data(idata)
   53354      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53355      378816 :          data_tmp = IAND(data_tmp, mask_left(54))
   53356      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53357      378816 :          ipack = ipack + 1
   53358      378816 :          packed_data(ipack) = pack_tmp
   53359      378816 :          data_tmp = full_data(idata)
   53360      378816 :          pack_tmp = ISHFT(data_tmp, 55)
   53361      378816 :          pack_tmp = ISHFT(pack_tmp, -55)
   53362      378816 :          idata = idata + 1
   53363      378816 :          data_tmp = full_data(idata)
   53364      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53365      378816 :          data_tmp = IAND(data_tmp, mask_left(55))
   53366      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53367      378816 :          ipack = ipack + 1
   53368      378816 :          packed_data(ipack) = pack_tmp
   53369      378816 :          data_tmp = full_data(idata)
   53370      378816 :          pack_tmp = ISHFT(data_tmp, 56)
   53371      378816 :          pack_tmp = ISHFT(pack_tmp, -56)
   53372      378816 :          idata = idata + 1
   53373      378816 :          data_tmp = full_data(idata)
   53374      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53375      378816 :          data_tmp = IAND(data_tmp, mask_left(56))
   53376      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53377      378816 :          ipack = ipack + 1
   53378      378816 :          packed_data(ipack) = pack_tmp
   53379      378816 :          data_tmp = full_data(idata)
   53380      378816 :          pack_tmp = ISHFT(data_tmp, 57)
   53381      378816 :          pack_tmp = ISHFT(pack_tmp, -57)
   53382      378816 :          idata = idata + 1
   53383      378816 :          data_tmp = full_data(idata)
   53384      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53385      378816 :          data_tmp = IAND(data_tmp, mask_left(57))
   53386      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53387      378816 :          ipack = ipack + 1
   53388      378816 :          packed_data(ipack) = pack_tmp
   53389      378816 :          data_tmp = full_data(idata)
   53390      378816 :          pack_tmp = ISHFT(data_tmp, 58)
   53391      378816 :          pack_tmp = ISHFT(pack_tmp, -58)
   53392      378816 :          idata = idata + 1
   53393      378816 :          data_tmp = full_data(idata)
   53394      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53395      378816 :          data_tmp = IAND(data_tmp, mask_left(58))
   53396      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53397      378816 :          ipack = ipack + 1
   53398      378816 :          packed_data(ipack) = pack_tmp
   53399      378816 :          data_tmp = full_data(idata)
   53400      378816 :          pack_tmp = ISHFT(data_tmp, 59)
   53401      378816 :          pack_tmp = ISHFT(pack_tmp, -59)
   53402      378816 :          idata = idata + 1
   53403      378816 :          data_tmp = full_data(idata)
   53404      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53405      378816 :          data_tmp = IAND(data_tmp, mask_left(59))
   53406      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53407      378816 :          ipack = ipack + 1
   53408      378816 :          packed_data(ipack) = pack_tmp
   53409      378816 :          data_tmp = full_data(idata)
   53410      378816 :          pack_tmp = ISHFT(data_tmp, 60)
   53411      378816 :          pack_tmp = ISHFT(pack_tmp, -60)
   53412      378816 :          idata = idata + 1
   53413      378816 :          data_tmp = full_data(idata)
   53414      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53415      378816 :          data_tmp = IAND(data_tmp, mask_left(60))
   53416      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53417      378816 :          ipack = ipack + 1
   53418      378816 :          packed_data(ipack) = pack_tmp
   53419      378816 :          data_tmp = full_data(idata)
   53420      378816 :          pack_tmp = ISHFT(data_tmp, 61)
   53421      378816 :          pack_tmp = ISHFT(pack_tmp, -61)
   53422      378816 :          idata = idata + 1
   53423      378816 :          data_tmp = full_data(idata)
   53424      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53425      378816 :          data_tmp = IAND(data_tmp, mask_left(61))
   53426      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53427      378816 :          ipack = ipack + 1
   53428      378816 :          packed_data(ipack) = pack_tmp
   53429      378816 :          data_tmp = full_data(idata)
   53430      378816 :          pack_tmp = ISHFT(data_tmp, 62)
   53431      378816 :          pack_tmp = ISHFT(pack_tmp, -62)
   53432      378816 :          idata = idata + 1
   53433      378816 :          data_tmp = full_data(idata)
   53434      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53435      378816 :          data_tmp = IAND(data_tmp, mask_left(62))
   53436      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53437      378816 :          ipack = ipack + 1
   53438      378816 :          packed_data(ipack) = pack_tmp
   53439      378816 :          data_tmp = full_data(idata)
   53440      378816 :          pack_tmp = ISHFT(data_tmp, 63)
   53441      378816 :          pack_tmp = ISHFT(pack_tmp, -63)
   53442      378816 :          idata = idata + 1
   53443      378816 :          data_tmp = full_data(idata)
   53444      378816 :          data_tmp = ISHFT(data_tmp, 1)
   53445      378816 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53446             :          pack_tmp = ISHFT(pack_tmp, 0)
   53447      378816 :          pack_tmp = ISHFT(pack_tmp, 0)
   53448      378816 :          ipack = ipack + 1
   53449      378816 :          packed_data(ipack) = pack_tmp
   53450             :       END DO
   53451       23676 :       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       23676 :    END SUBROUTINE ints2bits_63
   53455             : 
   53456             : ! **************************************************************************************************
   53457             : !> \brief ...
   53458             : !> \param Ndata ...
   53459             : !> \param packed_data ...
   53460             : !> \param full_data ...
   53461             : ! **************************************************************************************************
   53462       95427 :    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       95427 :       ipack = 0
   53473       95427 :       idata = 0
   53474       95427 :       pack_tmp = 0
   53475       95427 :       Ndata_rep = (Ndata/64)*64
   53476       95427 :       DO kdata = 1, Ndata_rep, 64
   53477     1526832 :          idata = idata + 1
   53478     1526832 :          data_tmp = ISHFT(pack_tmp, 63)
   53479     1526832 :          ipack = ipack + 1
   53480     1526832 :          pack_tmp = packed_data(ipack)
   53481     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(63)))
   53482     1526832 :          pack_tmp = ISHFT(pack_tmp, -63)
   53483     1526832 :          idata = idata + 1
   53484     1526832 :          data_tmp = ISHFT(pack_tmp, 62)
   53485     1526832 :          ipack = ipack + 1
   53486     1526832 :          pack_tmp = packed_data(ipack)
   53487     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(62)))
   53488     1526832 :          pack_tmp = ISHFT(pack_tmp, -62)
   53489     1526832 :          idata = idata + 1
   53490     1526832 :          data_tmp = ISHFT(pack_tmp, 61)
   53491     1526832 :          ipack = ipack + 1
   53492     1526832 :          pack_tmp = packed_data(ipack)
   53493     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(61)))
   53494     1526832 :          pack_tmp = ISHFT(pack_tmp, -61)
   53495     1526832 :          idata = idata + 1
   53496     1526832 :          data_tmp = ISHFT(pack_tmp, 60)
   53497     1526832 :          ipack = ipack + 1
   53498     1526832 :          pack_tmp = packed_data(ipack)
   53499     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   53500     1526832 :          pack_tmp = ISHFT(pack_tmp, -60)
   53501     1526832 :          idata = idata + 1
   53502     1526832 :          data_tmp = ISHFT(pack_tmp, 59)
   53503     1526832 :          ipack = ipack + 1
   53504     1526832 :          pack_tmp = packed_data(ipack)
   53505     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(59)))
   53506     1526832 :          pack_tmp = ISHFT(pack_tmp, -59)
   53507     1526832 :          idata = idata + 1
   53508     1526832 :          data_tmp = ISHFT(pack_tmp, 58)
   53509     1526832 :          ipack = ipack + 1
   53510     1526832 :          pack_tmp = packed_data(ipack)
   53511     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   53512     1526832 :          pack_tmp = ISHFT(pack_tmp, -58)
   53513     1526832 :          idata = idata + 1
   53514     1526832 :          data_tmp = ISHFT(pack_tmp, 57)
   53515     1526832 :          ipack = ipack + 1
   53516     1526832 :          pack_tmp = packed_data(ipack)
   53517     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(57)))
   53518     1526832 :          pack_tmp = ISHFT(pack_tmp, -57)
   53519     1526832 :          idata = idata + 1
   53520     1526832 :          data_tmp = ISHFT(pack_tmp, 56)
   53521     1526832 :          ipack = ipack + 1
   53522     1526832 :          pack_tmp = packed_data(ipack)
   53523     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   53524     1526832 :          pack_tmp = ISHFT(pack_tmp, -56)
   53525     1526832 :          idata = idata + 1
   53526     1526832 :          data_tmp = ISHFT(pack_tmp, 55)
   53527     1526832 :          ipack = ipack + 1
   53528     1526832 :          pack_tmp = packed_data(ipack)
   53529     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(55)))
   53530     1526832 :          pack_tmp = ISHFT(pack_tmp, -55)
   53531     1526832 :          idata = idata + 1
   53532     1526832 :          data_tmp = ISHFT(pack_tmp, 54)
   53533     1526832 :          ipack = ipack + 1
   53534     1526832 :          pack_tmp = packed_data(ipack)
   53535     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   53536     1526832 :          pack_tmp = ISHFT(pack_tmp, -54)
   53537     1526832 :          idata = idata + 1
   53538     1526832 :          data_tmp = ISHFT(pack_tmp, 53)
   53539     1526832 :          ipack = ipack + 1
   53540     1526832 :          pack_tmp = packed_data(ipack)
   53541     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   53542     1526832 :          pack_tmp = ISHFT(pack_tmp, -53)
   53543     1526832 :          idata = idata + 1
   53544     1526832 :          data_tmp = ISHFT(pack_tmp, 52)
   53545     1526832 :          ipack = ipack + 1
   53546     1526832 :          pack_tmp = packed_data(ipack)
   53547     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   53548     1526832 :          pack_tmp = ISHFT(pack_tmp, -52)
   53549     1526832 :          idata = idata + 1
   53550     1526832 :          data_tmp = ISHFT(pack_tmp, 51)
   53551     1526832 :          ipack = ipack + 1
   53552     1526832 :          pack_tmp = packed_data(ipack)
   53553     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   53554     1526832 :          pack_tmp = ISHFT(pack_tmp, -51)
   53555     1526832 :          idata = idata + 1
   53556     1526832 :          data_tmp = ISHFT(pack_tmp, 50)
   53557     1526832 :          ipack = ipack + 1
   53558     1526832 :          pack_tmp = packed_data(ipack)
   53559     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   53560     1526832 :          pack_tmp = ISHFT(pack_tmp, -50)
   53561     1526832 :          idata = idata + 1
   53562     1526832 :          data_tmp = ISHFT(pack_tmp, 49)
   53563     1526832 :          ipack = ipack + 1
   53564     1526832 :          pack_tmp = packed_data(ipack)
   53565     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   53566     1526832 :          pack_tmp = ISHFT(pack_tmp, -49)
   53567     1526832 :          idata = idata + 1
   53568     1526832 :          data_tmp = ISHFT(pack_tmp, 48)
   53569     1526832 :          ipack = ipack + 1
   53570     1526832 :          pack_tmp = packed_data(ipack)
   53571     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   53572     1526832 :          pack_tmp = ISHFT(pack_tmp, -48)
   53573     1526832 :          idata = idata + 1
   53574     1526832 :          data_tmp = ISHFT(pack_tmp, 47)
   53575     1526832 :          ipack = ipack + 1
   53576     1526832 :          pack_tmp = packed_data(ipack)
   53577     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   53578     1526832 :          pack_tmp = ISHFT(pack_tmp, -47)
   53579     1526832 :          idata = idata + 1
   53580     1526832 :          data_tmp = ISHFT(pack_tmp, 46)
   53581     1526832 :          ipack = ipack + 1
   53582     1526832 :          pack_tmp = packed_data(ipack)
   53583     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   53584     1526832 :          pack_tmp = ISHFT(pack_tmp, -46)
   53585     1526832 :          idata = idata + 1
   53586     1526832 :          data_tmp = ISHFT(pack_tmp, 45)
   53587     1526832 :          ipack = ipack + 1
   53588     1526832 :          pack_tmp = packed_data(ipack)
   53589     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   53590     1526832 :          pack_tmp = ISHFT(pack_tmp, -45)
   53591     1526832 :          idata = idata + 1
   53592     1526832 :          data_tmp = ISHFT(pack_tmp, 44)
   53593     1526832 :          ipack = ipack + 1
   53594     1526832 :          pack_tmp = packed_data(ipack)
   53595     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   53596     1526832 :          pack_tmp = ISHFT(pack_tmp, -44)
   53597     1526832 :          idata = idata + 1
   53598     1526832 :          data_tmp = ISHFT(pack_tmp, 43)
   53599     1526832 :          ipack = ipack + 1
   53600     1526832 :          pack_tmp = packed_data(ipack)
   53601     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   53602     1526832 :          pack_tmp = ISHFT(pack_tmp, -43)
   53603     1526832 :          idata = idata + 1
   53604     1526832 :          data_tmp = ISHFT(pack_tmp, 42)
   53605     1526832 :          ipack = ipack + 1
   53606     1526832 :          pack_tmp = packed_data(ipack)
   53607     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   53608     1526832 :          pack_tmp = ISHFT(pack_tmp, -42)
   53609     1526832 :          idata = idata + 1
   53610     1526832 :          data_tmp = ISHFT(pack_tmp, 41)
   53611     1526832 :          ipack = ipack + 1
   53612     1526832 :          pack_tmp = packed_data(ipack)
   53613     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   53614     1526832 :          pack_tmp = ISHFT(pack_tmp, -41)
   53615     1526832 :          idata = idata + 1
   53616     1526832 :          data_tmp = ISHFT(pack_tmp, 40)
   53617     1526832 :          ipack = ipack + 1
   53618     1526832 :          pack_tmp = packed_data(ipack)
   53619     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   53620     1526832 :          pack_tmp = ISHFT(pack_tmp, -40)
   53621     1526832 :          idata = idata + 1
   53622     1526832 :          data_tmp = ISHFT(pack_tmp, 39)
   53623     1526832 :          ipack = ipack + 1
   53624     1526832 :          pack_tmp = packed_data(ipack)
   53625     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   53626     1526832 :          pack_tmp = ISHFT(pack_tmp, -39)
   53627     1526832 :          idata = idata + 1
   53628     1526832 :          data_tmp = ISHFT(pack_tmp, 38)
   53629     1526832 :          ipack = ipack + 1
   53630     1526832 :          pack_tmp = packed_data(ipack)
   53631     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   53632     1526832 :          pack_tmp = ISHFT(pack_tmp, -38)
   53633     1526832 :          idata = idata + 1
   53634     1526832 :          data_tmp = ISHFT(pack_tmp, 37)
   53635     1526832 :          ipack = ipack + 1
   53636     1526832 :          pack_tmp = packed_data(ipack)
   53637     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   53638     1526832 :          pack_tmp = ISHFT(pack_tmp, -37)
   53639     1526832 :          idata = idata + 1
   53640     1526832 :          data_tmp = ISHFT(pack_tmp, 36)
   53641     1526832 :          ipack = ipack + 1
   53642     1526832 :          pack_tmp = packed_data(ipack)
   53643     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   53644     1526832 :          pack_tmp = ISHFT(pack_tmp, -36)
   53645     1526832 :          idata = idata + 1
   53646     1526832 :          data_tmp = ISHFT(pack_tmp, 35)
   53647     1526832 :          ipack = ipack + 1
   53648     1526832 :          pack_tmp = packed_data(ipack)
   53649     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   53650     1526832 :          pack_tmp = ISHFT(pack_tmp, -35)
   53651     1526832 :          idata = idata + 1
   53652     1526832 :          data_tmp = ISHFT(pack_tmp, 34)
   53653     1526832 :          ipack = ipack + 1
   53654     1526832 :          pack_tmp = packed_data(ipack)
   53655     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   53656     1526832 :          pack_tmp = ISHFT(pack_tmp, -34)
   53657     1526832 :          idata = idata + 1
   53658     1526832 :          data_tmp = ISHFT(pack_tmp, 33)
   53659     1526832 :          ipack = ipack + 1
   53660     1526832 :          pack_tmp = packed_data(ipack)
   53661     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   53662     1526832 :          pack_tmp = ISHFT(pack_tmp, -33)
   53663     1526832 :          idata = idata + 1
   53664     1526832 :          data_tmp = ISHFT(pack_tmp, 32)
   53665     1526832 :          ipack = ipack + 1
   53666     1526832 :          pack_tmp = packed_data(ipack)
   53667     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   53668     1526832 :          pack_tmp = ISHFT(pack_tmp, -32)
   53669     1526832 :          idata = idata + 1
   53670     1526832 :          data_tmp = ISHFT(pack_tmp, 31)
   53671     1526832 :          ipack = ipack + 1
   53672     1526832 :          pack_tmp = packed_data(ipack)
   53673     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   53674     1526832 :          pack_tmp = ISHFT(pack_tmp, -31)
   53675     1526832 :          idata = idata + 1
   53676     1526832 :          data_tmp = ISHFT(pack_tmp, 30)
   53677     1526832 :          ipack = ipack + 1
   53678     1526832 :          pack_tmp = packed_data(ipack)
   53679     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   53680     1526832 :          pack_tmp = ISHFT(pack_tmp, -30)
   53681     1526832 :          idata = idata + 1
   53682     1526832 :          data_tmp = ISHFT(pack_tmp, 29)
   53683     1526832 :          ipack = ipack + 1
   53684     1526832 :          pack_tmp = packed_data(ipack)
   53685     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   53686     1526832 :          pack_tmp = ISHFT(pack_tmp, -29)
   53687     1526832 :          idata = idata + 1
   53688     1526832 :          data_tmp = ISHFT(pack_tmp, 28)
   53689     1526832 :          ipack = ipack + 1
   53690     1526832 :          pack_tmp = packed_data(ipack)
   53691     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   53692     1526832 :          pack_tmp = ISHFT(pack_tmp, -28)
   53693     1526832 :          idata = idata + 1
   53694     1526832 :          data_tmp = ISHFT(pack_tmp, 27)
   53695     1526832 :          ipack = ipack + 1
   53696     1526832 :          pack_tmp = packed_data(ipack)
   53697     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   53698     1526832 :          pack_tmp = ISHFT(pack_tmp, -27)
   53699     1526832 :          idata = idata + 1
   53700     1526832 :          data_tmp = ISHFT(pack_tmp, 26)
   53701     1526832 :          ipack = ipack + 1
   53702     1526832 :          pack_tmp = packed_data(ipack)
   53703     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   53704     1526832 :          pack_tmp = ISHFT(pack_tmp, -26)
   53705     1526832 :          idata = idata + 1
   53706     1526832 :          data_tmp = ISHFT(pack_tmp, 25)
   53707     1526832 :          ipack = ipack + 1
   53708     1526832 :          pack_tmp = packed_data(ipack)
   53709     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   53710     1526832 :          pack_tmp = ISHFT(pack_tmp, -25)
   53711     1526832 :          idata = idata + 1
   53712     1526832 :          data_tmp = ISHFT(pack_tmp, 24)
   53713     1526832 :          ipack = ipack + 1
   53714     1526832 :          pack_tmp = packed_data(ipack)
   53715     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   53716     1526832 :          pack_tmp = ISHFT(pack_tmp, -24)
   53717     1526832 :          idata = idata + 1
   53718     1526832 :          data_tmp = ISHFT(pack_tmp, 23)
   53719     1526832 :          ipack = ipack + 1
   53720     1526832 :          pack_tmp = packed_data(ipack)
   53721     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   53722     1526832 :          pack_tmp = ISHFT(pack_tmp, -23)
   53723     1526832 :          idata = idata + 1
   53724     1526832 :          data_tmp = ISHFT(pack_tmp, 22)
   53725     1526832 :          ipack = ipack + 1
   53726     1526832 :          pack_tmp = packed_data(ipack)
   53727     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   53728     1526832 :          pack_tmp = ISHFT(pack_tmp, -22)
   53729     1526832 :          idata = idata + 1
   53730     1526832 :          data_tmp = ISHFT(pack_tmp, 21)
   53731     1526832 :          ipack = ipack + 1
   53732     1526832 :          pack_tmp = packed_data(ipack)
   53733     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   53734     1526832 :          pack_tmp = ISHFT(pack_tmp, -21)
   53735     1526832 :          idata = idata + 1
   53736     1526832 :          data_tmp = ISHFT(pack_tmp, 20)
   53737     1526832 :          ipack = ipack + 1
   53738     1526832 :          pack_tmp = packed_data(ipack)
   53739     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   53740     1526832 :          pack_tmp = ISHFT(pack_tmp, -20)
   53741     1526832 :          idata = idata + 1
   53742     1526832 :          data_tmp = ISHFT(pack_tmp, 19)
   53743     1526832 :          ipack = ipack + 1
   53744     1526832 :          pack_tmp = packed_data(ipack)
   53745     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   53746     1526832 :          pack_tmp = ISHFT(pack_tmp, -19)
   53747     1526832 :          idata = idata + 1
   53748     1526832 :          data_tmp = ISHFT(pack_tmp, 18)
   53749     1526832 :          ipack = ipack + 1
   53750     1526832 :          pack_tmp = packed_data(ipack)
   53751     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   53752     1526832 :          pack_tmp = ISHFT(pack_tmp, -18)
   53753     1526832 :          idata = idata + 1
   53754     1526832 :          data_tmp = ISHFT(pack_tmp, 17)
   53755     1526832 :          ipack = ipack + 1
   53756     1526832 :          pack_tmp = packed_data(ipack)
   53757     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   53758     1526832 :          pack_tmp = ISHFT(pack_tmp, -17)
   53759     1526832 :          idata = idata + 1
   53760     1526832 :          data_tmp = ISHFT(pack_tmp, 16)
   53761     1526832 :          ipack = ipack + 1
   53762     1526832 :          pack_tmp = packed_data(ipack)
   53763     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   53764     1526832 :          pack_tmp = ISHFT(pack_tmp, -16)
   53765     1526832 :          idata = idata + 1
   53766     1526832 :          data_tmp = ISHFT(pack_tmp, 15)
   53767     1526832 :          ipack = ipack + 1
   53768     1526832 :          pack_tmp = packed_data(ipack)
   53769     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   53770     1526832 :          pack_tmp = ISHFT(pack_tmp, -15)
   53771     1526832 :          idata = idata + 1
   53772     1526832 :          data_tmp = ISHFT(pack_tmp, 14)
   53773     1526832 :          ipack = ipack + 1
   53774     1526832 :          pack_tmp = packed_data(ipack)
   53775     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   53776     1526832 :          pack_tmp = ISHFT(pack_tmp, -14)
   53777     1526832 :          idata = idata + 1
   53778     1526832 :          data_tmp = ISHFT(pack_tmp, 13)
   53779     1526832 :          ipack = ipack + 1
   53780     1526832 :          pack_tmp = packed_data(ipack)
   53781     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   53782     1526832 :          pack_tmp = ISHFT(pack_tmp, -13)
   53783     1526832 :          idata = idata + 1
   53784     1526832 :          data_tmp = ISHFT(pack_tmp, 12)
   53785     1526832 :          ipack = ipack + 1
   53786     1526832 :          pack_tmp = packed_data(ipack)
   53787     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   53788     1526832 :          pack_tmp = ISHFT(pack_tmp, -12)
   53789     1526832 :          idata = idata + 1
   53790     1526832 :          data_tmp = ISHFT(pack_tmp, 11)
   53791     1526832 :          ipack = ipack + 1
   53792     1526832 :          pack_tmp = packed_data(ipack)
   53793     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   53794     1526832 :          pack_tmp = ISHFT(pack_tmp, -11)
   53795     1526832 :          idata = idata + 1
   53796     1526832 :          data_tmp = ISHFT(pack_tmp, 10)
   53797     1526832 :          ipack = ipack + 1
   53798     1526832 :          pack_tmp = packed_data(ipack)
   53799     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   53800     1526832 :          pack_tmp = ISHFT(pack_tmp, -10)
   53801     1526832 :          idata = idata + 1
   53802     1526832 :          data_tmp = ISHFT(pack_tmp, 9)
   53803     1526832 :          ipack = ipack + 1
   53804     1526832 :          pack_tmp = packed_data(ipack)
   53805     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   53806     1526832 :          pack_tmp = ISHFT(pack_tmp, -9)
   53807     1526832 :          idata = idata + 1
   53808     1526832 :          data_tmp = ISHFT(pack_tmp, 8)
   53809     1526832 :          ipack = ipack + 1
   53810     1526832 :          pack_tmp = packed_data(ipack)
   53811     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   53812     1526832 :          pack_tmp = ISHFT(pack_tmp, -8)
   53813     1526832 :          idata = idata + 1
   53814     1526832 :          data_tmp = ISHFT(pack_tmp, 7)
   53815     1526832 :          ipack = ipack + 1
   53816     1526832 :          pack_tmp = packed_data(ipack)
   53817     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   53818     1526832 :          pack_tmp = ISHFT(pack_tmp, -7)
   53819     1526832 :          idata = idata + 1
   53820     1526832 :          data_tmp = ISHFT(pack_tmp, 6)
   53821     1526832 :          ipack = ipack + 1
   53822     1526832 :          pack_tmp = packed_data(ipack)
   53823     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   53824     1526832 :          pack_tmp = ISHFT(pack_tmp, -6)
   53825     1526832 :          idata = idata + 1
   53826     1526832 :          data_tmp = ISHFT(pack_tmp, 5)
   53827     1526832 :          ipack = ipack + 1
   53828     1526832 :          pack_tmp = packed_data(ipack)
   53829     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   53830     1526832 :          pack_tmp = ISHFT(pack_tmp, -5)
   53831     1526832 :          idata = idata + 1
   53832     1526832 :          data_tmp = ISHFT(pack_tmp, 4)
   53833     1526832 :          ipack = ipack + 1
   53834     1526832 :          pack_tmp = packed_data(ipack)
   53835     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   53836     1526832 :          pack_tmp = ISHFT(pack_tmp, -4)
   53837     1526832 :          idata = idata + 1
   53838     1526832 :          data_tmp = ISHFT(pack_tmp, 3)
   53839     1526832 :          ipack = ipack + 1
   53840     1526832 :          pack_tmp = packed_data(ipack)
   53841     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   53842     1526832 :          pack_tmp = ISHFT(pack_tmp, -3)
   53843     1526832 :          idata = idata + 1
   53844     1526832 :          data_tmp = ISHFT(pack_tmp, 2)
   53845     1526832 :          ipack = ipack + 1
   53846     1526832 :          pack_tmp = packed_data(ipack)
   53847     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   53848     1526832 :          pack_tmp = ISHFT(pack_tmp, -2)
   53849     1526832 :          idata = idata + 1
   53850     1526832 :          data_tmp = ISHFT(pack_tmp, 1)
   53851     1526832 :          ipack = ipack + 1
   53852     1526832 :          pack_tmp = packed_data(ipack)
   53853     1526832 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   53854     1526832 :          pack_tmp = ISHFT(pack_tmp, -1)
   53855     1526832 :          idata = idata + 1
   53856     1526832 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   53857     1526832 :          full_data(idata) = data_tmp
   53858     1526832 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   53859             :       END DO
   53860       95427 :       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       95427 :    END SUBROUTINE bits2ints_63
   53864             : 
   53865             : ! **************************************************************************************************
   53866             : !> \brief ...
   53867             : !> \param Nbits ...
   53868             : !> \param Ndata ...
   53869             : !> \param packed_data ...
   53870             : !> \param full_data ...
   53871             : ! **************************************************************************************************
   53872     2013064 :    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     2036740 :       SELECT CASE (Nbits)
   53878             :       CASE (1)
   53879       23676 :          CALL ints2bits_1(Ndata, packed_data, full_data)
   53880             :       CASE (2)
   53881       23676 :          CALL ints2bits_2(Ndata, packed_data, full_data)
   53882             :       CASE (3)
   53883       23921 :          CALL ints2bits_3(Ndata, packed_data, full_data)
   53884             :       CASE (4)
   53885       24027 :          CALL ints2bits_4(Ndata, packed_data, full_data)
   53886             :       CASE (5)
   53887       23911 :          CALL ints2bits_5(Ndata, packed_data, full_data)
   53888             :       CASE (6)
   53889       51515 :          CALL ints2bits_6(Ndata, packed_data, full_data)
   53890             :       CASE (7)
   53891       24032 :          CALL ints2bits_7(Ndata, packed_data, full_data)
   53892             :       CASE (8)
   53893       24022 :          CALL ints2bits_8(Ndata, packed_data, full_data)
   53894             :       CASE (9)
   53895       23980 :          CALL ints2bits_9(Ndata, packed_data, full_data)
   53896             :       CASE (10)
   53897       50461 :          CALL ints2bits_10(Ndata, packed_data, full_data)
   53898             :       CASE (11)
   53899       26433 :          CALL ints2bits_11(Ndata, packed_data, full_data)
   53900             :       CASE (12)
   53901       26679 :          CALL ints2bits_12(Ndata, packed_data, full_data)
   53902             :       CASE (13)
   53903       28076 :          CALL ints2bits_13(Ndata, packed_data, full_data)
   53904             :       CASE (14)
   53905       27120 :          CALL ints2bits_14(Ndata, packed_data, full_data)
   53906             :       CASE (15)
   53907       27438 :          CALL ints2bits_15(Ndata, packed_data, full_data)
   53908             :       CASE (16)
   53909       28308 :          CALL ints2bits_16(Ndata, packed_data, full_data)
   53910             :       CASE (17)
   53911       31814 :          CALL ints2bits_17(Ndata, packed_data, full_data)
   53912             :       CASE (18)
   53913       32721 :          CALL ints2bits_18(Ndata, packed_data, full_data)
   53914             :       CASE (19)
   53915       30454 :          CALL ints2bits_19(Ndata, packed_data, full_data)
   53916             :       CASE (20)
   53917       41397 :          CALL ints2bits_20(Ndata, packed_data, full_data)
   53918             :       CASE (21)
   53919       29420 :          CALL ints2bits_21(Ndata, packed_data, full_data)
   53920             :       CASE (22)
   53921       29277 :          CALL ints2bits_22(Ndata, packed_data, full_data)
   53922             :       CASE (23)
   53923       73601 :          CALL ints2bits_23(Ndata, packed_data, full_data)
   53924             :       CASE (24)
   53925       36159 :          CALL ints2bits_24(Ndata, packed_data, full_data)
   53926             :       CASE (25)
   53927       37326 :          CALL ints2bits_25(Ndata, packed_data, full_data)
   53928             :       CASE (26)
   53929       30075 :          CALL ints2bits_26(Ndata, packed_data, full_data)
   53930             :       CASE (27)
   53931       29614 :          CALL ints2bits_27(Ndata, packed_data, full_data)
   53932             :       CASE (28)
   53933       33876 :          CALL ints2bits_28(Ndata, packed_data, full_data)
   53934             :       CASE (29)
   53935       36880 :          CALL ints2bits_29(Ndata, packed_data, full_data)
   53936             :       CASE (30)
   53937       43669 :          CALL ints2bits_30(Ndata, packed_data, full_data)
   53938             :       CASE (31)
   53939       43650 :          CALL ints2bits_31(Ndata, packed_data, full_data)
   53940             :       CASE (32)
   53941       52049 :          CALL ints2bits_32(Ndata, packed_data, full_data)
   53942             :       CASE (33)
   53943       53526 :          CALL ints2bits_33(Ndata, packed_data, full_data)
   53944             :       CASE (34)
   53945       46935 :          CALL ints2bits_34(Ndata, packed_data, full_data)
   53946             :       CASE (35)
   53947       47204 :          CALL ints2bits_35(Ndata, packed_data, full_data)
   53948             :       CASE (36)
   53949       47706 :          CALL ints2bits_36(Ndata, packed_data, full_data)
   53950             :       CASE (37)
   53951       35359 :          CALL ints2bits_37(Ndata, packed_data, full_data)
   53952             :       CASE (38)
   53953       32712 :          CALL ints2bits_38(Ndata, packed_data, full_data)
   53954             :       CASE (39)
   53955       28447 :          CALL ints2bits_39(Ndata, packed_data, full_data)
   53956             :       CASE (40)
   53957       27201 :          CALL ints2bits_40(Ndata, packed_data, full_data)
   53958             :       CASE (41)
   53959       27007 :          CALL ints2bits_41(Ndata, packed_data, full_data)
   53960             :       CASE (42)
   53961       25373 :          CALL ints2bits_42(Ndata, packed_data, full_data)
   53962             :       CASE (43)
   53963       26035 :          CALL ints2bits_43(Ndata, packed_data, full_data)
   53964             :       CASE (44)
   53965       27514 :          CALL ints2bits_44(Ndata, packed_data, full_data)
   53966             :       CASE (45)
   53967       29149 :          CALL ints2bits_45(Ndata, packed_data, full_data)
   53968             :       CASE (46)
   53969       28680 :          CALL ints2bits_46(Ndata, packed_data, full_data)
   53970             :       CASE (47)
   53971       26112 :          CALL ints2bits_47(Ndata, packed_data, full_data)
   53972             :       CASE (48)
   53973       26673 :          CALL ints2bits_48(Ndata, packed_data, full_data)
   53974             :       CASE (49)
   53975       25532 :          CALL ints2bits_49(Ndata, packed_data, full_data)
   53976             :       CASE (50)
   53977       25110 :          CALL ints2bits_50(Ndata, packed_data, full_data)
   53978             :       CASE (51)
   53979       24160 :          CALL ints2bits_51(Ndata, packed_data, full_data)
   53980             :       CASE (52)
   53981       24186 :          CALL ints2bits_52(Ndata, packed_data, full_data)
   53982             :       CASE (53)
   53983       24176 :          CALL ints2bits_53(Ndata, packed_data, full_data)
   53984             :       CASE (54)
   53985       24054 :          CALL ints2bits_54(Ndata, packed_data, full_data)
   53986             :       CASE (55)
   53987       23972 :          CALL ints2bits_55(Ndata, packed_data, full_data)
   53988             :       CASE (56)
   53989       23814 :          CALL ints2bits_56(Ndata, packed_data, full_data)
   53990             :       CASE (57)
   53991       23738 :          CALL ints2bits_57(Ndata, packed_data, full_data)
   53992             :       CASE (58)
   53993       23700 :          CALL ints2bits_58(Ndata, packed_data, full_data)
   53994             :       CASE (59)
   53995       23676 :          CALL ints2bits_59(Ndata, packed_data, full_data)
   53996             :       CASE (60)
   53997       23676 :          CALL ints2bits_60(Ndata, packed_data, full_data)
   53998             :       CASE (61)
   53999       23676 :          CALL ints2bits_61(Ndata, packed_data, full_data)
   54000             :       CASE (62)
   54001       23676 :          CALL ints2bits_62(Ndata, packed_data, full_data)
   54002             :       CASE (63)
   54003     2013064 :          CALL ints2bits_63(Ndata, packed_data, full_data)
   54004             :       END SELECT
   54005     2013064 :    END SUBROUTINE ints2bits_specific
   54006             : 
   54007             : ! **************************************************************************************************
   54008             : !> \brief ...
   54009             : !> \param Nbits ...
   54010             : !> \param Ndata ...
   54011             : !> \param packed_data ...
   54012             : !> \param full_data ...
   54013             : ! **************************************************************************************************
   54014     9262499 :    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     9357926 :       SELECT CASE (Nbits)
   54020             :       CASE (1)
   54021       95427 :          CALL bits2ints_1(Ndata, packed_data, full_data)
   54022             :       CASE (2)
   54023       95427 :          CALL bits2ints_2(Ndata, packed_data, full_data)
   54024             :       CASE (3)
   54025       96813 :          CALL bits2ints_3(Ndata, packed_data, full_data)
   54026             :       CASE (4)
   54027       97628 :          CALL bits2ints_4(Ndata, packed_data, full_data)
   54028             :       CASE (5)
   54029       96652 :          CALL bits2ints_5(Ndata, packed_data, full_data)
   54030             :       CASE (6)
   54031      245707 :          CALL bits2ints_6(Ndata, packed_data, full_data)
   54032             :       CASE (7)
   54033       98938 :          CALL bits2ints_7(Ndata, packed_data, full_data)
   54034             :       CASE (8)
   54035       99008 :          CALL bits2ints_8(Ndata, packed_data, full_data)
   54036             :       CASE (9)
   54037       98342 :          CALL bits2ints_9(Ndata, packed_data, full_data)
   54038             :       CASE (10)
   54039      303538 :          CALL bits2ints_10(Ndata, packed_data, full_data)
   54040             :       CASE (11)
   54041      116992 :          CALL bits2ints_11(Ndata, packed_data, full_data)
   54042             :       CASE (12)
   54043      118924 :          CALL bits2ints_12(Ndata, packed_data, full_data)
   54044             :       CASE (13)
   54045      131082 :          CALL bits2ints_13(Ndata, packed_data, full_data)
   54046             :       CASE (14)
   54047      122822 :          CALL bits2ints_14(Ndata, packed_data, full_data)
   54048             :       CASE (15)
   54049      124897 :          CALL bits2ints_15(Ndata, packed_data, full_data)
   54050             :       CASE (16)
   54051      137301 :          CALL bits2ints_16(Ndata, packed_data, full_data)
   54052             :       CASE (17)
   54053      162988 :          CALL bits2ints_17(Ndata, packed_data, full_data)
   54054             :       CASE (18)
   54055      170117 :          CALL bits2ints_18(Ndata, packed_data, full_data)
   54056             :       CASE (19)
   54057      154104 :          CALL bits2ints_19(Ndata, packed_data, full_data)
   54058             :       CASE (20)
   54059      283120 :          CALL bits2ints_20(Ndata, packed_data, full_data)
   54060             :       CASE (21)
   54061      150592 :          CALL bits2ints_21(Ndata, packed_data, full_data)
   54062             :       CASE (22)
   54063      150345 :          CALL bits2ints_22(Ndata, packed_data, full_data)
   54064             :       CASE (23)
   54065      228100 :          CALL bits2ints_23(Ndata, packed_data, full_data)
   54066             :       CASE (24)
   54067      160664 :          CALL bits2ints_24(Ndata, packed_data, full_data)
   54068             :       CASE (25)
   54069      161571 :          CALL bits2ints_25(Ndata, packed_data, full_data)
   54070             :       CASE (26)
   54071      133483 :          CALL bits2ints_26(Ndata, packed_data, full_data)
   54072             :       CASE (27)
   54073      133749 :          CALL bits2ints_27(Ndata, packed_data, full_data)
   54074             :       CASE (28)
   54075      156972 :          CALL bits2ints_28(Ndata, packed_data, full_data)
   54076             :       CASE (29)
   54077      177246 :          CALL bits2ints_29(Ndata, packed_data, full_data)
   54078             :       CASE (30)
   54079      226921 :          CALL bits2ints_30(Ndata, packed_data, full_data)
   54080             :       CASE (31)
   54081      273385 :          CALL bits2ints_31(Ndata, packed_data, full_data)
   54082             :       CASE (32)
   54083      351255 :          CALL bits2ints_32(Ndata, packed_data, full_data)
   54084             :       CASE (33)
   54085      265947 :          CALL bits2ints_33(Ndata, packed_data, full_data)
   54086             :       CASE (34)
   54087      218297 :          CALL bits2ints_34(Ndata, packed_data, full_data)
   54088             :       CASE (35)
   54089      226587 :          CALL bits2ints_35(Ndata, packed_data, full_data)
   54090             :       CASE (36)
   54091      175748 :          CALL bits2ints_36(Ndata, packed_data, full_data)
   54092             :       CASE (37)
   54093      148792 :          CALL bits2ints_37(Ndata, packed_data, full_data)
   54094             :       CASE (38)
   54095      162450 :          CALL bits2ints_38(Ndata, packed_data, full_data)
   54096             :       CASE (39)
   54097      125730 :          CALL bits2ints_39(Ndata, packed_data, full_data)
   54098             :       CASE (40)
   54099      126699 :          CALL bits2ints_40(Ndata, packed_data, full_data)
   54100             :       CASE (41)
   54101      131305 :          CALL bits2ints_41(Ndata, packed_data, full_data)
   54102             :       CASE (42)
   54103      115902 :          CALL bits2ints_42(Ndata, packed_data, full_data)
   54104             :       CASE (43)
   54105      115831 :          CALL bits2ints_43(Ndata, packed_data, full_data)
   54106             :       CASE (44)
   54107      123361 :          CALL bits2ints_44(Ndata, packed_data, full_data)
   54108             :       CASE (45)
   54109      132071 :          CALL bits2ints_45(Ndata, packed_data, full_data)
   54110             :       CASE (46)
   54111      120083 :          CALL bits2ints_46(Ndata, packed_data, full_data)
   54112             :       CASE (47)
   54113      114725 :          CALL bits2ints_47(Ndata, packed_data, full_data)
   54114             :       CASE (48)
   54115      112296 :          CALL bits2ints_48(Ndata, packed_data, full_data)
   54116             :       CASE (49)
   54117      101717 :          CALL bits2ints_49(Ndata, packed_data, full_data)
   54118             :       CASE (50)
   54119       99829 :          CALL bits2ints_50(Ndata, packed_data, full_data)
   54120             :       CASE (51)
   54121       98507 :          CALL bits2ints_51(Ndata, packed_data, full_data)
   54122             :       CASE (52)
   54123      100439 :          CALL bits2ints_52(Ndata, packed_data, full_data)
   54124             :       CASE (53)
   54125      108085 :          CALL bits2ints_53(Ndata, packed_data, full_data)
   54126             :       CASE (54)
   54127      110773 :          CALL bits2ints_54(Ndata, packed_data, full_data)
   54128             :       CASE (55)
   54129      106721 :          CALL bits2ints_55(Ndata, packed_data, full_data)
   54130             :       CASE (56)
   54131      102645 :          CALL bits2ints_56(Ndata, packed_data, full_data)
   54132             :       CASE (57)
   54133       98969 :          CALL bits2ints_57(Ndata, packed_data, full_data)
   54134             :       CASE (58)
   54135       96891 :          CALL bits2ints_58(Ndata, packed_data, full_data)
   54136             :       CASE (59)
   54137       95427 :          CALL bits2ints_59(Ndata, packed_data, full_data)
   54138             :       CASE (60)
   54139       95427 :          CALL bits2ints_60(Ndata, packed_data, full_data)
   54140             :       CASE (61)
   54141       95427 :          CALL bits2ints_61(Ndata, packed_data, full_data)
   54142             :       CASE (62)
   54143       95427 :          CALL bits2ints_62(Ndata, packed_data, full_data)
   54144             :       CASE (63)
   54145     9262499 :          CALL bits2ints_63(Ndata, packed_data, full_data)
   54146             :       END SELECT
   54147     9262499 :    END SUBROUTINE bits2ints_specific
   54148             : 
   54149             : END MODULE hfx_compression_core_methods

Generated by: LCOV version 1.15